Chameleon

Chameleon Svn Source Tree

Root/branches/ErmaC/Trunk/i386/include/mach/ledger.h

1#ifndef_ledger_user_
2#define_ledger_user_
3
4/* Module ledger */
5
6#include <string.h>
7#include <mach/ndr.h>
8#include <mach/boolean.h>
9#include <mach/kern_return.h>
10#include <mach/notify.h>
11#include <mach/mach_types.h>
12#include <mach/message.h>
13#include <mach/mig_errors.h>
14#include <mach/port.h>
15
16#ifdef AUTOTEST
17#ifndef FUNCTION_PTR_T
18#define FUNCTION_PTR_T
19typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
20typedef struct {
21 char *name;
22 function_ptr_t function;
23} function_table_entry;
24typedef function_table_entry *function_table_t;
25#endif /* FUNCTION_PTR_T */
26#endif /* AUTOTEST */
27
28#ifndefledger_MSG_COUNT
29#defineledger_MSG_COUNT4
30#endif/* ledger_MSG_COUNT */
31
32#include <mach/std_types.h>
33#include <mach/mig.h>
34#include <mach/mach_types.h>
35
36#ifdef __BeforeMigUserHeader
37__BeforeMigUserHeader
38#endif /* __BeforeMigUserHeader */
39
40#include <sys/cdefs.h>
41__BEGIN_DECLS
42
43
44/* Routine ledger_create */
45#ifdefmig_external
46mig_external
47#else
48extern
49#endif/* mig_external */
50kern_return_t ledger_create
51(
52ledger_t parent_ledger,
53ledger_t ledger_ledger,
54ledger_t *new_ledger,
55ledger_item_t transfer
56);
57
58/* Routine ledger_terminate */
59#ifdefmig_external
60mig_external
61#else
62extern
63#endif/* mig_external */
64kern_return_t ledger_terminate
65(
66ledger_t ledger
67);
68
69/* Routine ledger_transfer */
70#ifdefmig_external
71mig_external
72#else
73extern
74#endif/* mig_external */
75kern_return_t ledger_transfer
76(
77ledger_t parent_ledger,
78ledger_t child_ledger,
79ledger_item_t transfer
80);
81
82/* Routine ledger_read */
83#ifdefmig_external
84mig_external
85#else
86extern
87#endif/* mig_external */
88kern_return_t ledger_read
89(
90ledger_t ledger,
91ledger_item_t *balance,
92ledger_item_t *limit
93);
94
95__END_DECLS
96
97/********************** Caution **************************/
98/* The following data types should be used to calculate */
99/* maximum message sizes only. The actual message may be */
100/* smaller, and the position of the arguments within the */
101/* message layout may vary from what is presented here. */
102/* For example, if any of the arguments are variable- */
103/* sized, and less than the maximum is sent, the data */
104/* will be packed tight in the actual message to reduce */
105/* the presence of holes. */
106/********************** Caution **************************/
107
108/* typedefs for all requests */
109
110#ifndef __Request__ledger_subsystem__defined
111#define __Request__ledger_subsystem__defined
112
113#ifdef __MigPackStructs
114#pragma pack(4)
115#endif
116typedef struct {
117mach_msg_header_t Head;
118/* start of the kernel processed data */
119mach_msg_body_t msgh_body;
120mach_msg_port_descriptor_t ledger_ledger;
121/* end of the kernel processed data */
122NDR_record_t NDR;
123ledger_item_t transfer;
124} __Request__ledger_create_t;
125#ifdef __MigPackStructs
126#pragma pack()
127#endif
128
129#ifdef __MigPackStructs
130#pragma pack(4)
131#endif
132typedef struct {
133mach_msg_header_t Head;
134} __Request__ledger_terminate_t;
135#ifdef __MigPackStructs
136#pragma pack()
137#endif
138
139#ifdef __MigPackStructs
140#pragma pack(4)
141#endif
142typedef struct {
143mach_msg_header_t Head;
144/* start of the kernel processed data */
145mach_msg_body_t msgh_body;
146mach_msg_port_descriptor_t child_ledger;
147/* end of the kernel processed data */
148NDR_record_t NDR;
149ledger_item_t transfer;
150} __Request__ledger_transfer_t;
151#ifdef __MigPackStructs
152#pragma pack()
153#endif
154
155#ifdef __MigPackStructs
156#pragma pack(4)
157#endif
158typedef struct {
159mach_msg_header_t Head;
160} __Request__ledger_read_t;
161#ifdef __MigPackStructs
162#pragma pack()
163#endif
164#endif /* !__Request__ledger_subsystem__defined */
165
166/* union of all requests */
167
168#ifndef __RequestUnion__ledger_subsystem__defined
169#define __RequestUnion__ledger_subsystem__defined
170union __RequestUnion__ledger_subsystem {
171__Request__ledger_create_t Request_ledger_create;
172__Request__ledger_terminate_t Request_ledger_terminate;
173__Request__ledger_transfer_t Request_ledger_transfer;
174__Request__ledger_read_t Request_ledger_read;
175};
176#endif /* !__RequestUnion__ledger_subsystem__defined */
177/* typedefs for all replies */
178
179#ifndef __Reply__ledger_subsystem__defined
180#define __Reply__ledger_subsystem__defined
181
182#ifdef __MigPackStructs
183#pragma pack(4)
184#endif
185typedef struct {
186mach_msg_header_t Head;
187/* start of the kernel processed data */
188mach_msg_body_t msgh_body;
189mach_msg_port_descriptor_t new_ledger;
190/* end of the kernel processed data */
191} __Reply__ledger_create_t;
192#ifdef __MigPackStructs
193#pragma pack()
194#endif
195
196#ifdef __MigPackStructs
197#pragma pack(4)
198#endif
199typedef struct {
200mach_msg_header_t Head;
201NDR_record_t NDR;
202kern_return_t RetCode;
203} __Reply__ledger_terminate_t;
204#ifdef __MigPackStructs
205#pragma pack()
206#endif
207
208#ifdef __MigPackStructs
209#pragma pack(4)
210#endif
211typedef struct {
212mach_msg_header_t Head;
213NDR_record_t NDR;
214kern_return_t RetCode;
215} __Reply__ledger_transfer_t;
216#ifdef __MigPackStructs
217#pragma pack()
218#endif
219
220#ifdef __MigPackStructs
221#pragma pack(4)
222#endif
223typedef struct {
224mach_msg_header_t Head;
225NDR_record_t NDR;
226kern_return_t RetCode;
227ledger_item_t balance;
228ledger_item_t limit;
229} __Reply__ledger_read_t;
230#ifdef __MigPackStructs
231#pragma pack()
232#endif
233#endif /* !__Reply__ledger_subsystem__defined */
234
235/* union of all replies */
236
237#ifndef __ReplyUnion__ledger_subsystem__defined
238#define __ReplyUnion__ledger_subsystem__defined
239union __ReplyUnion__ledger_subsystem {
240__Reply__ledger_create_t Reply_ledger_create;
241__Reply__ledger_terminate_t Reply_ledger_terminate;
242__Reply__ledger_transfer_t Reply_ledger_transfer;
243__Reply__ledger_read_t Reply_ledger_read;
244};
245#endif /* !__RequestUnion__ledger_subsystem__defined */
246
247#ifndef subsystem_to_name_map_ledger
248#define subsystem_to_name_map_ledger \
249 { "ledger_create", 5000 },\
250 { "ledger_terminate", 5001 },\
251 { "ledger_transfer", 5002 },\
252 { "ledger_read", 5003 }
253#endif
254
255#ifdef __AfterMigUserHeader
256__AfterMigUserHeader
257#endif /* __AfterMigUserHeader */
258
259#endif /* _ledger_user_ */
260

Archive Download this file

Revision: 1622