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 7subsystem secagentreply 1200; 8serverprefix sa_reply_server_; 9userprefix sa_reply_client_; 10 11import <security_agent_client/sa_types.h>; 12 13// 14// Data types 15// 16type OSStatus = int32; 17type AuthorizationResult = int32; 18 19type Data = array [] of char; 20 21type AuthorizationItemSetBlob = Data 22 ctype: AuthorizationItemSetPtr; 23type AuthorizationItemSetPtr = unsigned32; 24type AuthorizationValueVectorBlob = Data 25 ctype: AuthorizationValueVectorPtr; 26type AuthorizationValueVectorPtr = unsigned32; 27 28 29#define BLOB(name,type) name: type##Blob; name##Base: type##Ptr 30 31// 32// Staged SecurityAgent reply protocol 33// 34simpleroutine didCreate(requestport instanceReplyPort: mach_port_t; 35 instanceRequestPort: mach_port_make_send_t); // give client send rights to mechanism request port 36 37simpleroutine setResult(requestport instanceReplyPort: mach_port_t; 38 status: AuthorizationResult; 39 BLOB(hintsIn,AuthorizationItemSet); 40 BLOB(contextIn,AuthorizationItemSet)); 41 42simpleroutine requestInterrupt(requestport instanceReplyPort: mach_port_t); 43 44simpleroutine didDeactivate(requestport instanceReplyPort: mach_port_t); 45 46simpleroutine reportError(requestport instanceReplyPort: mach_port_t; 47 status: OSStatus); 48 49simpleroutine 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 54skip; // client: txEnd 55