1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * include/linux/nfs4.h 3*53ee8cc1Swenshuai.xi * 4*53ee8cc1Swenshuai.xi * NFSv4 protocol definitions. 5*53ee8cc1Swenshuai.xi * 6*53ee8cc1Swenshuai.xi * Copyright (c) 2002 The Regents of the University of Michigan. 7*53ee8cc1Swenshuai.xi * All rights reserved. 8*53ee8cc1Swenshuai.xi * 9*53ee8cc1Swenshuai.xi * Kendrick Smith <kmsmith@umich.edu> 10*53ee8cc1Swenshuai.xi * Andy Adamson <andros@umich.edu> 11*53ee8cc1Swenshuai.xi */ 12*53ee8cc1Swenshuai.xi 13*53ee8cc1Swenshuai.xi #ifndef _LINUX_NFS4_H 14*53ee8cc1Swenshuai.xi #define _LINUX_NFS4_H 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xi #include <linux/types.h> 17*53ee8cc1Swenshuai.xi 18*53ee8cc1Swenshuai.xi #define NFS4_BITMAP_SIZE 2 19*53ee8cc1Swenshuai.xi #define NFS4_VERIFIER_SIZE 8 20*53ee8cc1Swenshuai.xi #define NFS4_STATEID_SIZE 16 21*53ee8cc1Swenshuai.xi #define NFS4_FHSIZE 128 22*53ee8cc1Swenshuai.xi #define NFS4_MAXPATHLEN PATH_MAX 23*53ee8cc1Swenshuai.xi #define NFS4_MAXNAMLEN NAME_MAX 24*53ee8cc1Swenshuai.xi 25*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_READ 0x0001 26*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_LOOKUP 0x0002 27*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_MODIFY 0x0004 28*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_EXTEND 0x0008 29*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_DELETE 0x0010 30*53ee8cc1Swenshuai.xi #define NFS4_ACCESS_EXECUTE 0x0020 31*53ee8cc1Swenshuai.xi 32*53ee8cc1Swenshuai.xi #define NFS4_FH_PERSISTENT 0x0000 33*53ee8cc1Swenshuai.xi #define NFS4_FH_NOEXPIRE_WITH_OPEN 0x0001 34*53ee8cc1Swenshuai.xi #define NFS4_FH_VOLATILE_ANY 0x0002 35*53ee8cc1Swenshuai.xi #define NFS4_FH_VOL_MIGRATION 0x0004 36*53ee8cc1Swenshuai.xi #define NFS4_FH_VOL_RENAME 0x0008 37*53ee8cc1Swenshuai.xi 38*53ee8cc1Swenshuai.xi #define NFS4_OPEN_RESULT_CONFIRM 0x0002 39*53ee8cc1Swenshuai.xi #define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004 40*53ee8cc1Swenshuai.xi 41*53ee8cc1Swenshuai.xi #define NFS4_SHARE_ACCESS_READ 0x0001 42*53ee8cc1Swenshuai.xi #define NFS4_SHARE_ACCESS_WRITE 0x0002 43*53ee8cc1Swenshuai.xi #define NFS4_SHARE_ACCESS_BOTH 0x0003 44*53ee8cc1Swenshuai.xi #define NFS4_SHARE_DENY_READ 0x0001 45*53ee8cc1Swenshuai.xi #define NFS4_SHARE_DENY_WRITE 0x0002 46*53ee8cc1Swenshuai.xi #define NFS4_SHARE_DENY_BOTH 0x0003 47*53ee8cc1Swenshuai.xi 48*53ee8cc1Swenshuai.xi #define NFS4_SET_TO_SERVER_TIME 0 49*53ee8cc1Swenshuai.xi #define NFS4_SET_TO_CLIENT_TIME 1 50*53ee8cc1Swenshuai.xi 51*53ee8cc1Swenshuai.xi #define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0 52*53ee8cc1Swenshuai.xi #define NFS4_ACE_ACCESS_DENIED_ACE_TYPE 1 53*53ee8cc1Swenshuai.xi #define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE 2 54*53ee8cc1Swenshuai.xi #define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE 3 55*53ee8cc1Swenshuai.xi 56*53ee8cc1Swenshuai.xi #define ACL4_SUPPORT_ALLOW_ACL 0x01 57*53ee8cc1Swenshuai.xi #define ACL4_SUPPORT_DENY_ACL 0x02 58*53ee8cc1Swenshuai.xi #define ACL4_SUPPORT_AUDIT_ACL 0x04 59*53ee8cc1Swenshuai.xi #define ACL4_SUPPORT_ALARM_ACL 0x08 60*53ee8cc1Swenshuai.xi 61*53ee8cc1Swenshuai.xi #define NFS4_ACE_FILE_INHERIT_ACE 0x00000001 62*53ee8cc1Swenshuai.xi #define NFS4_ACE_DIRECTORY_INHERIT_ACE 0x00000002 63*53ee8cc1Swenshuai.xi #define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE 0x00000004 64*53ee8cc1Swenshuai.xi #define NFS4_ACE_INHERIT_ONLY_ACE 0x00000008 65*53ee8cc1Swenshuai.xi #define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010 66*53ee8cc1Swenshuai.xi #define NFS4_ACE_FAILED_ACCESS_ACE_FLAG 0x00000020 67*53ee8cc1Swenshuai.xi #define NFS4_ACE_IDENTIFIER_GROUP 0x00000040 68*53ee8cc1Swenshuai.xi #define NFS4_ACE_OWNER 0x00000080 69*53ee8cc1Swenshuai.xi #define NFS4_ACE_GROUP 0x00000100 70*53ee8cc1Swenshuai.xi #define NFS4_ACE_EVERYONE 0x00000200 71*53ee8cc1Swenshuai.xi 72*53ee8cc1Swenshuai.xi #define NFS4_ACE_READ_DATA 0x00000001 73*53ee8cc1Swenshuai.xi #define NFS4_ACE_LIST_DIRECTORY 0x00000001 74*53ee8cc1Swenshuai.xi #define NFS4_ACE_WRITE_DATA 0x00000002 75*53ee8cc1Swenshuai.xi #define NFS4_ACE_ADD_FILE 0x00000002 76*53ee8cc1Swenshuai.xi #define NFS4_ACE_APPEND_DATA 0x00000004 77*53ee8cc1Swenshuai.xi #define NFS4_ACE_ADD_SUBDIRECTORY 0x00000004 78*53ee8cc1Swenshuai.xi #define NFS4_ACE_READ_NAMED_ATTRS 0x00000008 79*53ee8cc1Swenshuai.xi #define NFS4_ACE_WRITE_NAMED_ATTRS 0x00000010 80*53ee8cc1Swenshuai.xi #define NFS4_ACE_EXECUTE 0x00000020 81*53ee8cc1Swenshuai.xi #define NFS4_ACE_DELETE_CHILD 0x00000040 82*53ee8cc1Swenshuai.xi #define NFS4_ACE_READ_ATTRIBUTES 0x00000080 83*53ee8cc1Swenshuai.xi #define NFS4_ACE_WRITE_ATTRIBUTES 0x00000100 84*53ee8cc1Swenshuai.xi #define NFS4_ACE_DELETE 0x00010000 85*53ee8cc1Swenshuai.xi #define NFS4_ACE_READ_ACL 0x00020000 86*53ee8cc1Swenshuai.xi #define NFS4_ACE_WRITE_ACL 0x00040000 87*53ee8cc1Swenshuai.xi #define NFS4_ACE_WRITE_OWNER 0x00080000 88*53ee8cc1Swenshuai.xi #define NFS4_ACE_SYNCHRONIZE 0x00100000 89*53ee8cc1Swenshuai.xi #define NFS4_ACE_GENERIC_READ 0x00120081 90*53ee8cc1Swenshuai.xi #define NFS4_ACE_GENERIC_WRITE 0x00160106 91*53ee8cc1Swenshuai.xi #define NFS4_ACE_GENERIC_EXECUTE 0x001200A0 92*53ee8cc1Swenshuai.xi #define NFS4_ACE_MASK_ALL 0x001F01FF 93*53ee8cc1Swenshuai.xi 94*53ee8cc1Swenshuai.xi enum nfs4_acl_whotype { 95*53ee8cc1Swenshuai.xi NFS4_ACL_WHO_NAMED = 0, 96*53ee8cc1Swenshuai.xi NFS4_ACL_WHO_OWNER, 97*53ee8cc1Swenshuai.xi NFS4_ACL_WHO_GROUP, 98*53ee8cc1Swenshuai.xi NFS4_ACL_WHO_EVERYONE, 99*53ee8cc1Swenshuai.xi }; 100*53ee8cc1Swenshuai.xi 101*53ee8cc1Swenshuai.xi #endif 102*53ee8cc1Swenshuai.xi 103*53ee8cc1Swenshuai.xi /* 104*53ee8cc1Swenshuai.xi * Local variables: 105*53ee8cc1Swenshuai.xi * c-basic-offset: 8 106*53ee8cc1Swenshuai.xi * End: 107*53ee8cc1Swenshuai.xi */ 108