emacs/nt/inc/sys/acl.h
Eli Zaretskii 66447e07c1 Support Posix ACL APIs on MS-Windows.
src/w32.c: Include sddl.h and sys/acl.h.
 (SDDL_REVISION_1): Define if not already defined.
 (g_b_init_get_security_descriptor_dacl)
 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
 (g_b_init_is_valid_security_descriptor)
 (g_b_init_set_file_security): New static flags.
 (globals_of_w32): Initialize them to zero.
 (SetFileSecurity_Name): New string constant.
 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
 (IsValidSecurityDescriptor_Proc): New typedefs.
 (get_file_security, get_security_descriptor_owner)
 (get_security_descriptor_group): Set errno to ENOTSUP.
 (set_file_security, get_security_descriptor_dacl)
 (is_valid_security_descriptor, convert_sd_to_sddl)
 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
 (acl_free, acl_get_file, acl_set_file): New functions.
 src/fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.

 nt/inc/sys/acl.h: New file.
 nt/inc/ms-w32.h (ENOTSUP): Define if undefined.
 nt/config.nt (HAVE_POSIX_ACL): Define.

 doc/lispref/files.texi (File Attributes, Changing Files): Update to include
 MS-Windows support for ACLs.
2012-12-17 21:14:34 +02:00

25 lines
618 B
C

/* Emulation of Posix ACLs for Windows. */
#ifndef ACL_H
#define ACL_H
#define NOMINMAX 1 /* don't define min and max */
#include <windows.h>
typedef PSECURITY_DESCRIPTOR acl_t;
typedef unsigned acl_type_t;
/* Values of acl_type_t */
#define ACL_TYPE_ACCESS 0
#define ACL_TYPE_DEFAULT 1
typedef unsigned acl_perm_t;
extern int acl_valid (acl_t);
extern acl_t acl_get_file (const char *, acl_type_t);
extern int acl_set_file (const char *, acl_type_t, acl_t);
extern char * acl_to_text (acl_t, ssize_t *);
extern acl_t acl_from_text (const char *);
extern int acl_free (void *);
#endif /* ACL_H */