Blame view

fs/cifs/cifsacl.h 2.88 KB
bf8206791   Steve French   [CIFS] Kerberos a...
1
2
3
  /*
   *   fs/cifs/cifsacl.h
   *
bcb020341   Steve French   [CIFS] move cifs ...
4
   *   Copyright (c) International Business Machines  Corp., 2007
bf8206791   Steve French   [CIFS] Kerberos a...
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   *   Author(s): Steve French (sfrench@us.ibm.com)
   *
   *   This library is free software; you can redistribute it and/or modify
   *   it under the terms of the GNU Lesser General Public License as published
   *   by the Free Software Foundation; either version 2.1 of the License, or
   *   (at your option) any later version.
   *
   *   This library is distributed in the hope that it will be useful,
   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
   *   the GNU Lesser General Public License for more details.
   *
   *   You should have received a copy of the GNU Lesser General Public License
   *   along with this library; if not, write to the Free Software
   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
   */
  
  #ifndef _CIFSACL_H
  #define _CIFSACL_H
297647c21   Steve French   [CIFS] CIFS ACL s...
24

a750e77c2   Steve French   [CIFS] acl suppor...
25
26
  #define NUM_AUTHS 6 /* number of authority fields */
  #define NUM_SUBAUTHS 5 /* number of sub authority fields */
297647c21   Steve French   [CIFS] CIFS ACL s...
27
28
  #define NUM_WK_SIDS 7 /* number of well known sids */
  #define SIDNAMELENGTH 20 /* long enough for the ones we care about */
cce246ee5   Steve French   [CIFS] Fix acl le...
29
  #define DEFSECDESCLEN 192 /* sec desc len contaiting a dacl with three aces */
297647c21   Steve French   [CIFS] CIFS ACL s...
30

a750e77c2   Steve French   [CIFS] acl suppor...
31
32
33
34
35
36
  #define READ_BIT        0x4
  #define WRITE_BIT       0x2
  #define EXEC_BIT        0x1
  
  #define UBITSHIFT	6
  #define GBITSHIFT	3
63d2583f5   Steve French   [CIFS] Fix walkin...
37
38
  #define ACCESS_ALLOWED	0
  #define ACCESS_DENIED	1
9409ae58e   Shirish Pargaonkar   cifs: Invoke id m...
39
40
41
42
43
44
45
46
  #define SIDOWNER 1
  #define SIDGROUP 2
  #define SIDLEN 150 /* S- 1 revision- 6 authorities- max 5 sub authorities */
  
  #define SID_ID_MAPPED 0
  #define SID_ID_PENDING 1
  #define SID_MAP_EXPIRE (3600 * HZ) /* map entry expires after one hour */
  #define SID_MAP_RETRY (300 * HZ)   /* wait 5 minutes for next attempt to map */
442aa310f   Steve French   [CIFS] Support fo...
47
  struct cifs_ntsd {
af6f4612f   Steve French   [CIFS] Fix some e...
48
49
50
51
52
53
  	__le16 revision; /* revision level */
  	__le16 type;
  	__le32 osidoffset;
  	__le32 gsidoffset;
  	__le32 sacloffset;
  	__le32 dacloffset;
442aa310f   Steve French   [CIFS] Support fo...
54
  } __attribute__((packed));
bf8206791   Steve French   [CIFS] Kerberos a...
55
56
  struct cifs_sid {
  	__u8 revision; /* revision level */
4084973db   Steve French   [CIFS] change mis...
57
  	__u8 num_subauth;
442aa310f   Steve French   [CIFS] Support fo...
58
  	__u8 authority[6];
44093ca2f   Steve French   [CIFS] acl suppor...
59
  	__le32 sub_auth[5]; /* sub_auth[num_subauth] */
442aa310f   Steve French   [CIFS] Support fo...
60
61
62
  } __attribute__((packed));
  
  struct cifs_acl {
af6f4612f   Steve French   [CIFS] Fix some e...
63
64
65
  	__le16 revision; /* revision level */
  	__le16 size;
  	__le32 num_aces;
442aa310f   Steve French   [CIFS] Support fo...
66
  } __attribute__((packed));
44093ca2f   Steve French   [CIFS] acl suppor...
67
  struct cifs_ace {
442aa310f   Steve French   [CIFS] Support fo...
68
69
  	__u8 type;
  	__u8 flags;
8f2376adf   Cyril Gorcunov   [CIFS] Fix endian...
70
71
  	__le16 size;
  	__le32 access_req;
44093ca2f   Steve French   [CIFS] acl suppor...
72
  	struct cifs_sid sid; /* ie UUID of user or group who gets these perms */
297647c21   Steve French   [CIFS] CIFS ACL s...
73
74
75
76
77
  } __attribute__((packed));
  
  struct cifs_wksid {
  	struct cifs_sid cifssid;
  	char sidname[SIDNAMELENGTH];
bf8206791   Steve French   [CIFS] Kerberos a...
78
  } __attribute__((packed));
9409ae58e   Shirish Pargaonkar   cifs: Invoke id m...
79
80
81
82
83
84
85
86
87
88
89
90
91
92
  struct cifs_sid_id {
  	unsigned int refcount; /* increment with spinlock, decrement without */
  	unsigned long id;
  	unsigned long time;
  	unsigned long state;
  	char *sidstr;
  	struct rb_node rbnode;
  	struct cifs_sid sid;
  };
  
  #ifdef __KERNEL__
  extern struct key_type cifs_idmap_key_type;
  extern const struct cred *root_cred;
  #endif /* KERNEL */
d61e5808d   Steve French   [CIFS] acl suppor...
93
  extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
297647c21   Steve French   [CIFS] CIFS ACL s...
94

a6230af7b   Steve French   [CIFS] Minor clea...
95
  #endif /* _CIFSACL_H */