r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
[tprouty/samba.git] / source / include / privileges.h
index 5266e46e3a3fee2e53bb743d927061696985e8ce..b579bd0cb2513890b32854a37b784feaa9e4de98 100644 (file)
@@ -6,11 +6,11 @@
    Copyright (C) Luke Kenneth Casson Leighton 1996-1997
    Copyright (C) Paul Ashton 1997
    Copyright (C) Simo Sorce 2003
-   Copyright (C) Gerald (Jerry) Carter 2004
+   Copyright (C) Gerald (Jerry) Carter 2005
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -19,8 +19,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef PRIVILEGES_H
@@ -57,8 +56,13 @@ typedef struct {
 #define SE_ADD_USERS                   { { 0x00000040, 0x00000000, 0x00000000, 0x00000000 } }
 #define SE_DISK_OPERATOR               { { 0x00000080, 0x00000000, 0x00000000, 0x00000000 } }
 #define SE_REMOTE_SHUTDOWN             { { 0x00000100, 0x00000000, 0x00000000, 0x00000000 } }
+#define SE_BACKUP                      { { 0x00000200, 0x00000000, 0x00000000, 0x00000000 } }
+#define SE_RESTORE                     { { 0x00000400, 0x00000000, 0x00000000, 0x00000000 } }
+#define SE_TAKE_OWNERSHIP              { { 0x00000800, 0x00000000, 0x00000000, 0x00000000 } }
 
-/* defined in lib/privilegs.c */
+/* defined in lib/privilegs_basic.c */
+
+extern const SE_PRIV se_priv_all;
 
 extern const SE_PRIV se_priv_none;
 extern const SE_PRIV se_machine_account;
@@ -66,6 +70,8 @@ extern const SE_PRIV se_print_operator;
 extern const SE_PRIV se_add_users;
 extern const SE_PRIV se_disk_operators;
 extern const SE_PRIV se_remote_shutdown;
+extern const SE_PRIV se_restore;
+extern const SE_PRIV se_take_ownership;
 
 
 /*
@@ -78,25 +84,22 @@ extern const SE_PRIV se_remote_shutdown;
 #define PR_LOG_ON_SERVICE      0x0010
 
 
-#ifndef _BOOL
-typedef int BOOL;
-#define _BOOL       /* So we don't typedef BOOL again in vfs.h */
-#endif
-
-typedef struct LUID
-{
-       uint32 low;
+typedef struct {
        uint32 high;
+       uint32 low;
 } LUID;
 
-typedef struct LUID_ATTR
-{
+typedef struct {
        LUID luid;
        uint32 attr;
 } LUID_ATTR;
 
-typedef struct privilege_set
-{
+#ifndef _UPPER_BOOL
+typedef int BOOL;
+#define _UPPER_BOOL
+#endif
+
+typedef struct {
        TALLOC_CTX *mem_ctx;
        BOOL ext_ctx;
        uint32 count;
@@ -104,10 +107,11 @@ typedef struct privilege_set
        LUID_ATTR *set;
 } PRIVILEGE_SET;
 
-typedef struct _PRIVS {
+typedef struct {
        SE_PRIV se_priv;
        const char *name;
        const char *description;
+       LUID luid;
 } PRIVS;
 
 #endif /* PRIVILEGES_H */