2 // sa_reply.defs - SecurityAgent-side Mach RPC interface to Server.
4 #include <mach/std_types.defs>
5 #include <mach/mach_types.defs>
7 subsystem secagentreply 1200;
8 serverprefix sa_reply_server_;
9 userprefix sa_reply_client_;
11 import <security_agent_client/sa_types.h>;
16 type OSStatus = int32;
17 type AuthorizationResult = int32;
19 type Data = array [] of char;
21 type AuthorizationItemSetBlob = Data
22 ctype: AuthorizationItemSetPtr;
23 type AuthorizationItemSetPtr = unsigned32;
24 type AuthorizationValueVectorBlob = Data
25 ctype: AuthorizationValueVectorPtr;
26 type AuthorizationValueVectorPtr = unsigned32;
29 #define BLOB(name,type) name: type##Blob; name##Base: type##Ptr
32 // Staged SecurityAgent reply protocol
34 simpleroutine didCreate(requestport instanceReplyPort: mach_port_t;
35 instanceRequestPort: mach_port_make_send_t); // give client send rights to mechanism request port
37 simpleroutine setResult(requestport instanceReplyPort: mach_port_t;
38 status: AuthorizationResult;
39 BLOB(hintsIn,AuthorizationItemSet);
40 BLOB(contextIn,AuthorizationItemSet));
42 simpleroutine requestInterrupt(requestport instanceReplyPort: mach_port_t);
44 simpleroutine didDeactivate(requestport instanceReplyPort: mach_port_t);
46 simpleroutine reportError(requestport instanceReplyPort: mach_port_t;
49 simpleroutine didStartTx(clientReplyPort: mach_port_move_send_once_t;
50 result: kern_return_t);
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