1 2 3 4 5 6 7 8 9 10 11 12
13 14 15
16
17 /*!
18 * ======== SyncGeneric ========
19 * Generaic ISync implementation that allows users to plug in their own
20 * functions for signal, wait and query.
21 */
22
23 module SyncGeneric inherits xdc.runtime.knl.ISync
24 {
25 /*! typedef for user specified signal function */
26 typedef Void (*SignalFunc)(UArg);
27
28 /*! typedef for user specified wait function */
29 typedef Bool (*WaitFunc)(UArg, UInt);
30
31 /*! typedef for user specified wait function */
32 typedef Bool (*QueryFunc)(Int);
33
34 instance:
35 /*! user signal function */
36 config SignalFunc userSignal = null;
37
38 /*! user signal function arg */
39 config UArg signalArg = null;
40
41 /*! user wait function */
42 config WaitFunc userWait = null;
43
44 /*! user wait function arg */
45 config UArg waitArg = null;
46
47 /*! user query function */
48 config QueryFunc userQuery = null;
49
50 internal:
51
52
53 struct Instance_State {
54 SignalFunc userSignal;
55 UArg signalArg;
56 WaitFunc userWait;
57 UArg waitArg;
58 QueryFunc userQuery;
59 };
60
61 }
62
63 64
65 66 67
68