1 /* --COPYRIGHT--,ESD
2 * Copyright (c) 2008 Texas Instruments. All rights reserved.
3 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License
5 * v. 1.0 which accompanies this distribution. The Eclipse Public License is
6 * available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
7 * Distribution License is available at
8 * http://www.eclipse.org/org/documents/edl-v10.php.
9 *
10 * Contributors:
11 * Texas Instruments - initial implementation
12 * --/COPYRIGHT--*/
13 /*
14 * ======== SemThread.xdc ========
15 */
16
17 import xdc.runtime.Error;
18 import xdc.runtime.knl.ISemaphore;
19 import xdc.runtime.knl.ISemThreadSupport;
20
21 /*!
22 * ======== SemThread ========
23 * SemThread Manager. [EXPERIMENTAL]
24 *
25 * This module manages semaphores through its proxy ISemThreadSupport
26 * interface. It has a module wide config parameter
27 * {@link #Proxy} which needs to be bound to an OS specific delegate before
28 * this module can be used.
29 *
30 * Here is an example showing how the proxy is bound to an BIOS 6.x specific
31 * delegate.
32 *
33 * var SemThread = xdc.useModule('xdc.runtime.knl.SemThread');
34 * SemThread.Proxy = xdc.useModule('ti.sysbios.xdcruntime.SemThreadSupport');
35 *
36 * Typically the package containing the delegates have a Settings module that
37 * will bind all {@link xdc.runtime.knl} proxies. The following
38 * example sets up all the xdc.runtime.knl proxies.
39 *
40 * xdc.useModule("ti.sysbios.xdcruntime.Settings");
41 *
42 */
43
44 @InstanceInitError /* because initialization can fail */
45 @InstanceFinalize /* have to SemThread_Proxy_delete(sem) on delete */
46
47 module SemThread inherits ISemaphore
48 {
49
50 /*! Proxy that needs to be bound to an OS specific delegate. */
51 proxy Proxy inherits ISemThreadSupport;
52
53 instance:
54
55 /*!
56 * ======== create ========
57 * Create a SemThread object.
58 *
59 * This function creates a new `SemThread` object which is initialized to
60 * count.
61 *
62 * @param(count) initial semaphore count
63 */
64 create(Int count);
65
66 internal:
67
68 struct Instance_State {
69 Proxy.Handle proxyHandle;
70 }
71
72 }
73
74 /*
75 *! Revision History
76 *! ================
77 *! 17-Apr-2009 nitya Review updates
78 */
79 /*
80 * @(#) xdc.runtime.knl; 1, 0, 0,40; 10-7-2009 16:21:32; /db/ztree/library/trees/xdc-u12x/src/packages/
81 */
82