]>
Commit | Line | Data |
---|---|---|
d8f41ccd A |
1 | // |
2 | // sa_reply.defs - SecurityAgent-side Mach RPC interface to Server. | |
3 | // | |
4 | #include <mach/std_types.defs> | |
5 | #include <mach/mach_types.defs> | |
6 | ||
7 | subsystem secagentreply 1200; | |
8 | serverprefix sa_reply_server_; | |
9 | userprefix sa_reply_client_; | |
10 | ||
11 | import <security_agent_client/sa_types.h>; | |
12 | ||
13 | // | |
14 | // Data types | |
15 | // | |
16 | type OSStatus = int32; | |
17 | type AuthorizationResult = int32; | |
18 | ||
19 | type Data = array [] of char; | |
20 | ||
21 | type AuthorizationItemSetBlob = Data | |
22 | ctype: AuthorizationItemSetPtr; | |
23 | type AuthorizationItemSetPtr = unsigned32; | |
24 | type AuthorizationValueVectorBlob = Data | |
25 | ctype: AuthorizationValueVectorPtr; | |
26 | type AuthorizationValueVectorPtr = unsigned32; | |
27 | ||
28 | ||
29 | #define BLOB(name,type) name: type##Blob; name##Base: type##Ptr | |
30 | ||
31 | // | |
32 | // Staged SecurityAgent reply protocol | |
33 | // | |
34 | simpleroutine didCreate(requestport instanceReplyPort: mach_port_t; | |
35 | instanceRequestPort: mach_port_make_send_t); // give client send rights to mechanism request port | |
36 | ||
37 | simpleroutine setResult(requestport instanceReplyPort: mach_port_t; | |
38 | status: AuthorizationResult; | |
39 | BLOB(hintsIn,AuthorizationItemSet); | |
40 | BLOB(contextIn,AuthorizationItemSet)); | |
41 | ||
42 | simpleroutine requestInterrupt(requestport instanceReplyPort: mach_port_t); | |
43 | ||
44 | simpleroutine didDeactivate(requestport instanceReplyPort: mach_port_t); | |
45 | ||
46 | simpleroutine reportError(requestport instanceReplyPort: mach_port_t; | |
47 | status: OSStatus); | |
48 | ||
49 | simpleroutine didStartTx(clientReplyPort: mach_port_move_send_once_t; | |
50 | result: kern_return_t); | |
51 | ||
52 | // in case we decide to support true synchronous agent client IPCs, this | |
53 | // keeps sa_reply routine #s at parity with sa_request routine #s | |
54 | skip; // client: txEnd |