typedef enum { NFNON=0, NFREG=1, NFDIR=2, NFBLK=3, NFCHR=4, NFLNK=5,
NFSOCK=6, NFFIFO=7 } nfs_type;
-/* Structs for common parts of the rpc's */
+/*
+ * Structs for common parts of the rpc's
+ *
+ * NOTE: these structures are not always overlaid directly on the
+ * packet data - sometimes we declare a local variable of that type,
+ * and fill it up with fields extracted using byte pointers - so we
+ * don't use nd_ types for their members.
+ */
+
/*
* File Handle (32 bytes for version 2), variable up to 64 for version 3.
* File Handles of up to NFS_SMALLFH in size are stored directly in the
* Authentication info. Opaque to client.
*/
struct sunrpc_opaque_auth {
- uint32_t oa_flavor; /* flavor of auth */
- uint32_t oa_len; /* length of opaque body */
+ nd_uint32_t oa_flavor; /* flavor of auth */
+ nd_uint32_t oa_len; /* length of opaque body */
/* zero or more bytes of body */
};
* Reply to an rpc request that was rejected by the server.
*/
struct sunrpc_rejected_reply {
- uint32_t rj_stat; /* enum reject_stat */
+ nd_uint32_t rj_stat; /* enum reject_stat */
union {
struct {
- uint32_t low;
- uint32_t high;
+ nd_uint32_t low;
+ nd_uint32_t high;
} RJ_versions;
- uint32_t RJ_why; /* enum auth_stat - why authentication did not work */
+ nd_uint32_t RJ_why; /* enum auth_stat - why authentication did not work */
} ru;
#define rj_vers ru.RJ_versions
#define rj_why ru.RJ_why
* Body of a reply to an rpc request.
*/
struct sunrpc_reply_body {
- uint32_t rp_stat; /* enum reply_stat */
+ nd_uint32_t rp_stat; /* enum reply_stat */
struct sunrpc_rejected_reply rp_reject; /* if rejected */
};
* Body of an rpc request call.
*/
struct sunrpc_call_body {
- uint32_t cb_rpcvers; /* must be equal to two */
- uint32_t cb_prog;
- uint32_t cb_vers;
- uint32_t cb_proc;
+ nd_uint32_t cb_rpcvers; /* must be equal to two */
+ nd_uint32_t cb_prog;
+ nd_uint32_t cb_vers;
+ nd_uint32_t cb_proc;
struct sunrpc_opaque_auth cb_cred;
/* followed by opaque verifier */
};
* The rpc message
*/
struct sunrpc_msg {
- uint32_t rm_xid;
- uint32_t rm_direction; /* enum msg_type */
+ nd_uint32_t rm_xid;
+ nd_uint32_t rm_direction; /* enum msg_type */
union {
struct sunrpc_call_body RM_cmb;
struct sunrpc_reply_body RM_rmb;