b1b9ec3eccb7989854850b1c6a30e064e92d8219
[nivanova/samba-autobuild/.git] / source3 / modules / vfs_hpuxacl.h
1 /*
2  * Unix SMB/Netbios implementation.
3  * VFS module to get and set HP-UX ACLs - prototype header
4  * Copyright (C) Michael Adam 2008
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 /*
21  * This module supports JFS (POSIX) ACLs on VxFS (Veritas * Filesystem).
22  * These are available on HP-UX 11.00 if JFS 3.3 is installed.
23  * On HP-UX 11i (11.11 and above) these ACLs are supported out of
24  * the box.
25  *
26  * There is another form of ACLs on HFS. These ACLs have a
27  * completely different API and their own set of userland tools.
28  * Since HFS seems to be considered deprecated, HFS acls
29  * are not supported. (They could be supported through a separate
30  * vfs-module if there is demand.)
31  */
32
33 #ifndef __VFS_HPUXACL_H__
34 #define __VFS_HPUXACL_H__
35
36 SMB_ACL_T hpuxacl_sys_acl_get_file(vfs_handle_struct *handle,
37                                    const struct smb_filename *smb_fname,
38                                    SMB_ACL_TYPE_T type);
39
40 SMB_ACL_T hpuxacl_sys_acl_get_fd(vfs_handle_struct *handle,
41                                  files_struct *fsp);
42
43 int hpuxacl_sys_acl_set_file(vfs_handle_struct *handle,
44                              const struct smb_filename *smb_fname,
45                              SMB_ACL_TYPE_T type,
46                              SMB_ACL_T theacl);
47
48 int hpuxacl_sys_acl_set_fd(vfs_handle_struct *handle,
49                            files_struct *fsp,
50                            SMB_ACL_T theacl);
51
52 int hpuxacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
53                         const struct smb_filename *smb_fname);
54
55 NTSTATUS vfs_hpuxacl_init(void);
56
57 #endif
58