1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _NFSD_CLD_H 20 #define _NFSD_CLD_H 21 #include <linux/types.h> 22 #define CLD_UPCALL_VERSION 2 23 #define NFS4_OPAQUE_LIMIT 1024 24 #ifndef SHA256_DIGEST_SIZE 25 #define SHA256_DIGEST_SIZE 32 26 #endif 27 enum cld_command { 28 Cld_Create, 29 Cld_Remove, 30 Cld_Check, 31 Cld_GraceDone, 32 Cld_GraceStart, 33 Cld_GetVersion, 34 }; 35 struct cld_name { 36 __u16 cn_len; 37 unsigned char cn_id[NFS4_OPAQUE_LIMIT]; 38 } __attribute__((packed)); 39 struct cld_princhash { 40 __u8 cp_len; 41 unsigned char cp_data[SHA256_DIGEST_SIZE]; 42 } __attribute__((packed)); 43 struct cld_clntinfo { 44 struct cld_name cc_name; 45 struct cld_princhash cc_princhash; 46 } __attribute__((packed)); 47 struct cld_msg { 48 __u8 cm_vers; 49 __u8 cm_cmd; 50 __s16 cm_status; 51 __u32 cm_xid; 52 union { 53 __s64 cm_gracetime; 54 struct cld_name cm_name; 55 __u8 cm_version; 56 } __attribute__((packed)) cm_u; 57 } __attribute__((packed)); 58 struct cld_msg_v2 { 59 __u8 cm_vers; 60 __u8 cm_cmd; 61 __s16 cm_status; 62 __u32 cm_xid; 63 union { 64 struct cld_name cm_name; 65 __u8 cm_version; 66 struct cld_clntinfo cm_clntinfo; 67 } __attribute__((packed)) cm_u; 68 } __attribute__((packed)); 69 struct cld_msg_hdr { 70 __u8 cm_vers; 71 __u8 cm_cmd; 72 __s16 cm_status; 73 __u32 cm_xid; 74 } __attribute__((packed)); 75 #endif 76