Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[linux-2.6] / include / linux / generic_acl.h
1 /*
2  * include/linux/generic_acl.h
3  *
4  * (C) 2005 Andreas Gruenbacher <agruen@suse.de>
5  *
6  * This file is released under the GPL.
7  */
8
9 #ifndef GENERIC_ACL_H
10 #define GENERIC_ACL_H
11
12 #include <linux/posix_acl.h>
13 #include <linux/posix_acl_xattr.h>
14
15 /**
16  * struct generic_acl_operations  -  filesystem operations
17  *
18  * Filesystems must make these operations available to the generic
19  * operations.
20  */
21 struct generic_acl_operations {
22         struct posix_acl *(*getacl)(struct inode *, int);
23         void (*setacl)(struct inode *, int, struct posix_acl *);
24 };
25
26 size_t generic_acl_list(struct inode *, struct generic_acl_operations *, int,
27                         char *, size_t);
28 int generic_acl_get(struct inode *, struct generic_acl_operations *, int,
29                     void *, size_t);
30 int generic_acl_set(struct inode *, struct generic_acl_operations *, int,
31                     const void *, size_t);
32 int generic_acl_init(struct inode *, struct inode *,
33                      struct generic_acl_operations *);
34 int generic_acl_chmod(struct inode *, struct generic_acl_operations *);
35
36 #endif