mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-11-04 03:00:20 +00:00 
			
		
		
		
	Move platform specific Linux headers under include/os/linux/. Update the build system accordingly to detect the platform. This lays some of the initial groundwork to supporting building for other platforms. As part of this change it was necessary to create both a user and kernel space sys/simd.h header which can be included in either context. No functional change, the source has been refactored and the relevant #include's updated. Reviewed-by: Jorgen Lundman <lundman@lundman.net> Reviewed-by: Igor Kozhukhov <igor@dilos.org> Signed-off-by: Matthew Macy <mmacy@FreeBSD.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #9198
		
			
				
	
	
		
			120 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
 | 
						|
 *  Copyright (C) 2007 The Regents of the University of California.
 | 
						|
 *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
 | 
						|
 *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
 | 
						|
 *  UCRL-CODE-235197
 | 
						|
 *
 | 
						|
 *  This file is part of the SPL, Solaris Porting Layer.
 | 
						|
 *  For details, see <http://zfsonlinux.org/>.
 | 
						|
 *
 | 
						|
 *  The SPL 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 (at your
 | 
						|
 *  option) any later version.
 | 
						|
 *
 | 
						|
 *  The SPL 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 General Public License
 | 
						|
 *  for more details.
 | 
						|
 *
 | 
						|
 *  You should have received a copy of the GNU General Public License along
 | 
						|
 *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _SPL_ACL_H
 | 
						|
#define	_SPL_ACL_H
 | 
						|
 | 
						|
#include <sys/types.h>
 | 
						|
 | 
						|
typedef struct ace {
 | 
						|
	uid_t a_who;
 | 
						|
	uint32_t a_access_mask;
 | 
						|
	uint16_t a_flags;
 | 
						|
	uint16_t a_type;
 | 
						|
} ace_t;
 | 
						|
 | 
						|
typedef struct ace_object {
 | 
						|
	uid_t		a_who;		/* uid or gid */
 | 
						|
	uint32_t	a_access_mask;	/* read,write,... */
 | 
						|
	uint16_t	a_flags;	/* see below */
 | 
						|
	uint16_t	a_type;		/* allow or deny */
 | 
						|
	uint8_t		a_obj_type[16];	/* obj type */
 | 
						|
	uint8_t		a_inherit_obj_type[16];	/* inherit obj */
 | 
						|
} ace_object_t;
 | 
						|
 | 
						|
#define	MAX_ACL_ENTRIES					1024
 | 
						|
 | 
						|
#define	ACE_READ_DATA					0x00000001
 | 
						|
#define	ACE_LIST_DIRECTORY				0x00000001
 | 
						|
#define	ACE_WRITE_DATA					0x00000002
 | 
						|
#define	ACE_ADD_FILE					0x00000002
 | 
						|
#define	ACE_APPEND_DATA					0x00000004
 | 
						|
#define	ACE_ADD_SUBDIRECTORY				0x00000004
 | 
						|
#define	ACE_READ_NAMED_ATTRS				0x00000008
 | 
						|
#define	ACE_WRITE_NAMED_ATTRS				0x00000010
 | 
						|
#define	ACE_EXECUTE					0x00000020
 | 
						|
#define	ACE_DELETE_CHILD				0x00000040
 | 
						|
#define	ACE_READ_ATTRIBUTES				0x00000080
 | 
						|
#define	ACE_WRITE_ATTRIBUTES				0x00000100
 | 
						|
#define	ACE_DELETE					0x00010000
 | 
						|
#define	ACE_READ_ACL					0x00020000
 | 
						|
#define	ACE_WRITE_ACL					0x00040000
 | 
						|
#define	ACE_WRITE_OWNER					0x00080000
 | 
						|
#define	ACE_SYNCHRONIZE					0x00100000
 | 
						|
 | 
						|
#define	ACE_FILE_INHERIT_ACE				0x0001
 | 
						|
#define	ACE_DIRECTORY_INHERIT_ACE			0x0002
 | 
						|
#define	ACE_NO_PROPAGATE_INHERIT_ACE			0x0004
 | 
						|
#define	ACE_INHERIT_ONLY_ACE				0x0008
 | 
						|
#define	ACE_SUCCESSFUL_ACCESS_ACE_FLAG			0x0010
 | 
						|
#define	ACE_FAILED_ACCESS_ACE_FLAG			0x0020
 | 
						|
#define	ACE_IDENTIFIER_GROUP				0x0040
 | 
						|
#define	ACE_INHERITED_ACE				0x0080
 | 
						|
#define	ACE_OWNER					0x1000
 | 
						|
#define	ACE_GROUP					0x2000
 | 
						|
#define	ACE_EVERYONE					0x4000
 | 
						|
 | 
						|
#define	ACE_ACCESS_ALLOWED_ACE_TYPE			0x0000
 | 
						|
#define	ACE_ACCESS_DENIED_ACE_TYPE			0x0001
 | 
						|
#define	ACE_SYSTEM_AUDIT_ACE_TYPE			0x0002
 | 
						|
#define	ACE_SYSTEM_ALARM_ACE_TYPE			0x0003
 | 
						|
 | 
						|
#define	ACL_AUTO_INHERIT				0x0001
 | 
						|
#define	ACL_PROTECTED					0x0002
 | 
						|
#define	ACL_DEFAULTED					0x0004
 | 
						|
#define	ACL_FLAGS_ALL	(ACL_AUTO_INHERIT|ACL_PROTECTED|ACL_DEFAULTED)
 | 
						|
 | 
						|
#define	ACE_ACCESS_ALLOWED_COMPOUND_ACE_TYPE		0x04
 | 
						|
#define	ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE		0x05
 | 
						|
#define	ACE_ACCESS_DENIED_OBJECT_ACE_TYPE		0x06
 | 
						|
#define	ACE_SYSTEM_AUDIT_OBJECT_ACE_TYPE		0x07
 | 
						|
#define	ACE_SYSTEM_ALARM_OBJECT_ACE_TYPE		0x08
 | 
						|
#define	ACE_ACCESS_ALLOWED_CALLBACK_ACE_TYPE		0x09
 | 
						|
#define	ACE_ACCESS_DENIED_CALLBACK_ACE_TYPE		0x0A
 | 
						|
#define	ACE_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE	0x0B
 | 
						|
#define	ACE_ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE	0x0C
 | 
						|
#define	ACE_SYSTEM_AUDIT_CALLBACK_ACE_TYPE		0x0D
 | 
						|
#define	ACE_SYSTEM_ALARM_CALLBACK_ACE_TYPE		0x0E
 | 
						|
#define	ACE_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE	0x0F
 | 
						|
#define	ACE_SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE	0x10
 | 
						|
 | 
						|
#define	ACE_ALL_TYPES	0x001F
 | 
						|
 | 
						|
#define	ACE_TYPE_FLAGS	(ACE_OWNER|ACE_GROUP|ACE_EVERYONE|ACE_IDENTIFIER_GROUP)
 | 
						|
 | 
						|
/* BEGIN CSTYLED */
 | 
						|
#define	ACE_ALL_PERMS	(ACE_READ_DATA|ACE_LIST_DIRECTORY|ACE_WRITE_DATA| \
 | 
						|
     ACE_ADD_FILE|ACE_APPEND_DATA|ACE_ADD_SUBDIRECTORY|ACE_READ_NAMED_ATTRS| \
 | 
						|
     ACE_WRITE_NAMED_ATTRS|ACE_EXECUTE|ACE_DELETE_CHILD|ACE_READ_ATTRIBUTES| \
 | 
						|
     ACE_WRITE_ATTRIBUTES|ACE_DELETE|ACE_READ_ACL|ACE_WRITE_ACL| \
 | 
						|
     ACE_WRITE_OWNER|ACE_SYNCHRONIZE)
 | 
						|
/* END CSTYLED */
 | 
						|
 | 
						|
#define	VSA_ACE						0x0010
 | 
						|
#define	VSA_ACECNT					0x0020
 | 
						|
#define	VSA_ACE_ALLTYPES				0x0040
 | 
						|
#define	VSA_ACE_ACLFLAGS				0x0080
 | 
						|
 | 
						|
#endif /* _SPL_ACL_H */
 |