1includes
2{
3    client_header:
4        "nn/Handle.h",
5        "nn/Result.h",
6        "nn/types.h",
7        "nn/ndm/CTR/ndm_Types.h";
8
9    client_source:
10        "nn/ndm/CTR/ndm_Interface.h";
11
12    server_header:
13        "nn/Handle.h",
14        "nn/Result.h",
15        "nn/types.h",
16        "ndm_InterfaceImpl.h";
17
18    server_source:
19        "nn/ndm/CTR/ndm_Interface.h",
20        "ndm_InterfaceServer.h",
21        "nn/svc.h";
22}
23
24types nn
25{
26	abstract struct Result
27	{
28		bit32	value;
29	};
30
31	abstract struct Handle
32	{
33		bit32	value;
34	};
35
36	abstract struct MoveHandle
37	{
38		bit32	value;
39	};
40
41	abstract struct ProcessId
42	{
43		bit32	value;
44	};
45}
46
47types nn::ndm::CTR
48{
49    abstract struct DaemonName
50    {
51        s32     value;
52    };
53}
54
55module nn::ndm::CTR::Interface
56{
57    Result EnterExclusiveState(
58        in ProcessId processId,
59        in s32 mode
60    );
61
62    Result LeaveExclusiveState(
63        in ProcessId processId
64    );
65
66    Result QueryExclusiveMode(
67        out s32 pMode
68    );
69
70    Result LockState(
71        in ProcessId processId
72    );
73
74    Result UnlockState(
75        in ProcessId processId
76    );
77
78    Result SuspendDaemons(
79        in bit32 mask
80    );
81
82    Result ResumeDaemons(
83        in bit32 mask
84    );
85
86    Result SuspendScheduler(
87        in bool bAsync
88    );
89
90    Result ResumeScheduler(
91    );
92
93    // Debug
94    Result GetCurrentState(
95        out s32 pState
96    );
97    Result GetTargetState(
98        out s32 pState
99    );
100    Result GetStateChangedEvent(
101        out Handle hEvent
102    );
103
104    Result QueryStatus(
105        in DaemonName name,
106        out s32 pStatus
107    );
108
109    Result GetDaemonDisableCount(
110        in DaemonName name,
111        out s32 pCount,
112        out s32 pCountTotal
113    );
114    Result GetSchedulerDisableCount(
115        out s32 pCount,
116        out s32 pCountTotal
117    );
118
119    Result SetScanInterval(
120        in s32 interval
121    );
122    Result GetScanInterval(
123        out s32 pInterval
124    );
125    Result SetRetryInterval(
126        in s32 interval
127    );
128    Result GetRetryInterval(
129        out s32 pInterval
130    );
131}
132