]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/9nfs/rpc.h
cc: fix void cast crash
[plan9front.git] / sys / src / cmd / 9nfs / rpc.h
1 /*
2  *      Cf. /lib/rfc/rfc1014, /lib/rfc/rfc1050
3  */
4
5 enum Bool
6 {
7         FALSE   = 0,
8         TRUE    = 1
9 };
10
11 enum Auth_flavor
12 {
13         AUTH_NULL       = 0,
14         AUTH_UNIX       = 1,
15         AUTH_SHORT      = 2,
16         AUTH_DES        = 3
17 };
18
19 enum Msg_type
20 {
21         CALL    = 0,
22         REPLY   = 1
23 };
24
25 /*
26  * A reply to a call message can take on two forms:
27  * The message was either accepted or rejected.
28  */
29
30 enum Reply_stat
31 {
32         MSG_ACCEPTED    = 0,
33         MSG_DENIED      = 1
34 };
35
36 /*
37  * Given that a call message was accepted, the following is the
38  * status of an attempt to call a remote procedure.
39  */
40 enum Accept_stat
41 {
42         SUCCESS         = 0,    /* RPC executed successfully       */
43         PROG_UNAVAIL    = 1,    /* remote hasn't exported program  */
44         PROG_MISMATCH   = 2,    /* remote can't support version #  */
45         PROC_UNAVAIL    = 3,    /* program can't support procedure */
46         GARBAGE_ARGS    = 4     /* procedure can't decode params   */
47 };
48
49 /*
50  * Reasons why a call message was rejected:
51  */
52 enum Reject_stat
53 {
54         RPC_MISMATCH    = 0,    /* RPC version number != 2          */
55         AUTH_ERROR      = 1     /* remote can't authenticate caller */
56 };
57
58 /*
59  * Why authentication failed:
60  */
61 enum Auth_stat
62 {
63         AUTH_BADCRED            = 1,    /* bad credentials (seal broken) */
64         AUTH_REJECTEDCRED       = 2,    /* client must begin new session */
65         AUTH_BADVERF            = 3,    /* bad verifier (seal broken)    */
66         AUTH_REJECTEDVERF       = 4,    /* verifier expired or replayed  */
67         AUTH_TOOWEAK            = 5     /* rejected for security reasons */
68 };
69
70 enum
71 {
72         IPPROTO_TCP     = 6,    /* protocol number for TCP/IP */
73         IPPROTO_UDP     = 17    /* protocol number for UDP/IP */
74 };
75
76 #define ROUNDUP(n)      ((n) + ((-(n))&3))      
77
78 #define PLONG(x)        (dataptr[3] = ((ulong)(x)), dataptr[2] = ((ulong)(x))>>8, dataptr[1] = ((ulong)(x))>>16, dataptr[0] = ((ulong)(x))>>24, dataptr += 4)
79 #define PPTR(x, n)      (memmove(dataptr, (x), n), dataptr += ROUNDUP(n))
80 #define PBYTE(x)        (*dataptr++ = (x))
81
82 #define GLONG()         (argptr += 4, (((uchar*)argptr)[-1] | (((uchar*)argptr)[-2]<<8) | (((uchar*)argptr)[-3]<<16) | (((uchar*)argptr)[-4]<<24)))
83 #define GPTR(n)         (void *)(argptr); argptr += ROUNDUP(n)
84 #define GBYTE() (argptr++, ((uchar*)argptr)[-1])