1#ifndef _RPC_H
2
3#define _RPC_H
4
5const int32 RPC_VERSION = 2;
6
7typedef enum rpc_auth_flavor
8{
9	RPC_AUTH_NONE       = 0,
10	RPC_AUTH_SYS        = 1,
11	RPC_AUTH_SHORT      = 2
12} rpc_auth_flavor;
13
14typedef enum rpc_msg_type
15{
16	RPC_CALL  = 0,
17	RPC_REPLY = 1
18} rpc_msg_type;
19
20typedef enum rpc_reply_stat
21{
22	RPC_MSG_ACCEPTED = 0,
23	RPC_MSG_DENIED   = 1
24} rpc_reply_stat;
25
26typedef enum rpc_accept_stat
27{
28	RPC_SUCCESS       = 0, /* RPC executed successfully             */
29	RPC_PROG_UNAVAIL  = 1, /* remote hasn't exported program        */
30	RPC_PROG_MISMATCH = 2, /* remote can't support version #        */
31	RPC_PROC_UNAVAIL  = 3, /* program can't support procedure       */
32	RPC_GARBAGE_ARGS  = 4, /* procedure can't decode params         */
33	RPC_SYSTEM_ERR    = 5  /* errors like memory allocation failure */
34} rpc_accept_stat;
35
36typedef enum rpc_reject_stat
37{
38	RPC_RPC_MISMATCH = 0, /* RPC version number != 2          */
39	RPC_AUTH_ERROR = 1    /* remote can't authenticate caller */
40} rpc_reject_stat;
41
42typedef enum rpc_auth_stat
43{
44	RPC_AUTH_OK           = 0,  /* success                          */
45	/*
46	 * failed at remote end
47	 */
48	RPC_AUTH_BADCRED      = 1,  /* bad credential (seal broken)     */
49	RPC_AUTH_REJECTEDCRED = 2,  /* client must begin new session    */
50	RPC_AUTH_BADVERF      = 3,  /* bad verifier (seal broken)       */
51	RPC_AUTH_REJECTEDVERF = 4,  /* verifier expired or replayed     */
52	RPC_AUTH_TOOWEAK      = 5,  /* rejected for security reasons    */
53	/*
54	 * failed locally
55	 */
56	RPC_AUTH_INVALIDRESP  = 6,  /* bogus response verifier          */
57	RPC_AUTH_FAILED       = 7   /* reason unknown                   */
58} rpc_auth_stat;
59
60#endif
61