182 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
/************************************************************
 | 
						|
 | 
						|
Author: Eamon Walsh <ewalsh@epoch.ncsc.mil>
 | 
						|
 | 
						|
Permission to use, copy, modify, distribute, and sell this software and its
 | 
						|
documentation for any purpose is hereby granted without fee, provided that
 | 
						|
this permission notice appear in supporting documentation.  This permission
 | 
						|
notice shall be included in all copies or substantial portions of the
 | 
						|
Software.
 | 
						|
 | 
						|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
						|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
						|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 | 
						|
AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
						|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
						|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
						|
 | 
						|
********************************************************/
 | 
						|
 | 
						|
#ifndef _XSELINUX_H
 | 
						|
#define _XSELINUX_H
 | 
						|
 | 
						|
#include "dixaccess.h"
 | 
						|
 | 
						|
/* Extension info */
 | 
						|
#define SELINUX_EXTENSION_NAME		"SELinux"
 | 
						|
#define SELINUX_MAJOR_VERSION		1
 | 
						|
#define SELINUX_MINOR_VERSION		0
 | 
						|
#define SELinuxNumberEvents		0
 | 
						|
#define SELinuxNumberErrors		0
 | 
						|
 | 
						|
/* Extension protocol */
 | 
						|
#define X_SELinuxQueryVersion			0
 | 
						|
#define X_SELinuxSetSecurityManager		1
 | 
						|
#define X_SELinuxGetSecurityManager		2
 | 
						|
#define X_SELinuxSetDeviceCreateContext		3
 | 
						|
#define X_SELinuxGetDeviceCreateContext		4
 | 
						|
#define X_SELinuxSetDeviceContext		5
 | 
						|
#define X_SELinuxGetDeviceContext		6
 | 
						|
#define X_SELinuxSetPropertyCreateContext	7
 | 
						|
#define X_SELinuxGetPropertyCreateContext	8
 | 
						|
#define X_SELinuxGetPropertyContext		9
 | 
						|
#define X_SELinuxSetWindowCreateContext		10
 | 
						|
#define X_SELinuxGetWindowCreateContext		11
 | 
						|
#define X_SELinuxGetWindowContext		12
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD8   client_major;
 | 
						|
    CARD8   client_minor;
 | 
						|
    CARD16  unused;
 | 
						|
} SELinuxQueryVersionReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   type;
 | 
						|
    CARD8   pad1;
 | 
						|
    CARD16  sequenceNumber;
 | 
						|
    CARD32  length;
 | 
						|
    CARD16  server_major;
 | 
						|
    CARD16  server_minor;
 | 
						|
    CARD32  pad2;
 | 
						|
    CARD32  pad3;
 | 
						|
    CARD32  pad4;
 | 
						|
    CARD32  pad5;
 | 
						|
    CARD32  pad6; 
 | 
						|
} SELinuxQueryVersionReply;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD32  window;
 | 
						|
} SELinuxSetSecurityManagerReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
} SELinuxGetSecurityManagerReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   type;
 | 
						|
    CARD8   pad1;
 | 
						|
    CARD16  sequenceNumber;
 | 
						|
    CARD32  length;
 | 
						|
    CARD32  window;
 | 
						|
    CARD32  pad2;
 | 
						|
    CARD32  pad3;
 | 
						|
    CARD32  pad4;
 | 
						|
    CARD32  pad5;
 | 
						|
    CARD32  pad6;
 | 
						|
} SELinuxGetSecurityManagerReply;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD8   permanent;
 | 
						|
    CARD8   unused;
 | 
						|
    CARD16  context_len;
 | 
						|
} SELinuxSetCreateContextReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
} SELinuxGetCreateContextReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   type;
 | 
						|
    CARD8   permanent;
 | 
						|
    CARD16  sequenceNumber;
 | 
						|
    CARD32  length;
 | 
						|
    CARD16  context_len;
 | 
						|
    CARD16  pad1;
 | 
						|
    CARD32  pad2;
 | 
						|
    CARD32  pad3;
 | 
						|
    CARD32  pad4;
 | 
						|
    CARD32  pad5;
 | 
						|
    CARD32  pad6;
 | 
						|
} SELinuxGetCreateContextReply;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD32  id;
 | 
						|
    CARD16  unused;
 | 
						|
    CARD16  context_len;
 | 
						|
} SELinuxSetContextReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD32  id;
 | 
						|
} SELinuxGetContextReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   reqType;
 | 
						|
    CARD8   SELinuxReqType;
 | 
						|
    CARD16  length;
 | 
						|
    CARD32  window;
 | 
						|
    CARD32  property;
 | 
						|
} SELinuxGetPropertyContextReq;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
    CARD8   type;
 | 
						|
    CARD8   pad1;
 | 
						|
    CARD16  sequenceNumber;
 | 
						|
    CARD32  length;
 | 
						|
    CARD16  context_len;
 | 
						|
    CARD16  pad2;
 | 
						|
    CARD32  pad3;
 | 
						|
    CARD32  pad4;
 | 
						|
    CARD32  pad5;
 | 
						|
    CARD32  pad6;
 | 
						|
    CARD32  pad7;
 | 
						|
} SELinuxGetContextReply;
 | 
						|
 | 
						|
 | 
						|
/* Private Flask definitions */
 | 
						|
#define SECCLASS_X_DRAWABLE		1
 | 
						|
#define SECCLASS_X_SCREEN		2
 | 
						|
#define SECCLASS_X_GC			3
 | 
						|
#define SECCLASS_X_FONT			4
 | 
						|
#define SECCLASS_X_COLORMAP		5
 | 
						|
#define SECCLASS_X_PROPERTY		6
 | 
						|
#define SECCLASS_X_SELECTION		7
 | 
						|
#define SECCLASS_X_CURSOR		8
 | 
						|
#define SECCLASS_X_CLIENT		9
 | 
						|
#define SECCLASS_X_DEVICE		10
 | 
						|
#define SECCLASS_X_SERVER		11
 | 
						|
#define SECCLASS_X_EXTENSION		12
 | 
						|
#define SECCLASS_X_EVENT		13
 | 
						|
#define SECCLASS_X_FAKEEVENT		14
 | 
						|
#define SECCLASS_X_RESOURCE		15
 | 
						|
 | 
						|
#endif /* _XSELINUX_H */
 |