KerberosAgentIPC.defs [plain text]
/*
* KerberosAgent.defs
*
* Mach Interface specifications for Kerberos Login IPC
*
*/
#include <mach/std_types.defs>
#include <mach/mach_types.defs>
import "KLMachIPC.h";
type DataBlob = array [] of char;
type KLIPCInString = DataBlob;
type KLIPCOutString = DataBlob;
type KLIPCInIntArray = array [] of int32;
type KLIPCInPrincipal = DataBlob;
type KLIPCOutPrincipal = DataBlob;
type KLIPCStatus = unsigned32;
type KLIPCBoolean = unsigned32;
type KLIPCTime = unsigned32;
type KLIPCIndex = unsigned32;
type KLIPCSize = unsigned32;
type KLIPCPid = int32;
type KLIPCFlags = int32;
type KLIPCDialogIdentifier = unsigned32;
// These are the bottleneck routines which have UI.
// We do these via Mach IPC so we can support client-side idling and killing the
// server if the user cancels all dialogs.
subsystem KerberosAgentIPC 128;
serverprefix KAIPC;
userprefix KLIPC;
waittime kKLMachIPCTimeout;
routine GetServerPID (inServerPort : mach_port_t;
out outServerPID : KLIPCPid);
routine AcquireNewInitialTickets (inServerPort : mach_port_t;
inApplicationTask : task_t;
inApplicationPath : KLIPCInString;
inAllowHomeDirectoryAccess : KLIPCBoolean;
inPrincipal : KLIPCInPrincipal;
inFlags : KLIPCFlags;
inLifetime : KLIPCTime;
inRenewLife : KLIPCTime;
inStartTime : KLIPCTime;
inForwardable : KLIPCBoolean;
inProxiable : KLIPCBoolean;
inAddressless : KLIPCBoolean;
inServiceName : KLIPCInString;
out outPrincipal : KLIPCOutPrincipal;
out outCacheName : KLIPCOutString;
out outResult : KLIPCStatus);
routine Prompter (inServerPort : mach_port_t;
inApplicationTask : task_t;
inApplicationPath : KLIPCInString;
inAllowHomeDirectoryAccess : KLIPCBoolean;
inName : KLIPCInString;
inBanner : KLIPCInString;
inNumPrompts : KLIPCIndex;
inPrompts : KLIPCInString;
inHiddens : KLIPCInString;
inReplySizes : KLIPCInIntArray;
out outReplies : KLIPCOutString;
out outResult : KLIPCStatus);
routine ChangePassword (inServerPort : mach_port_t;
inApplicationTask : task_t;
inApplicationPath : KLIPCInString;
inAllowHomeDirectoryAccess : KLIPCBoolean;
inPrincipal : KLIPCInPrincipal;
out outResult : KLIPCStatus);
routine HandleError (inServerPort : mach_port_t;
inApplicationTask : task_t;
inApplicationPath : KLIPCInString;
inAllowHomeDirectoryAccess : KLIPCBoolean;
inError : KLIPCStatus;
inDialog : KLIPCDialogIdentifier;
inShowAlert : KLIPCBoolean;
out outResult : KLIPCStatus);