xselinux.h revision 4642e01f
14642e01fSmrg/************************************************************
24642e01fSmrg
34642e01fSmrgAuthor: Eamon Walsh <ewalsh@epoch.ncsc.mil>
44642e01fSmrg
54642e01fSmrgPermission to use, copy, modify, distribute, and sell this software and its
64642e01fSmrgdocumentation for any purpose is hereby granted without fee, provided that
74642e01fSmrgthis permission notice appear in supporting documentation.  This permission
84642e01fSmrgnotice shall be included in all copies or substantial portions of the
94642e01fSmrgSoftware.
104642e01fSmrg
114642e01fSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
124642e01fSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
134642e01fSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
144642e01fSmrgAUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
154642e01fSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
164642e01fSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
174642e01fSmrg
184642e01fSmrg********************************************************/
194642e01fSmrg
204642e01fSmrg#ifndef _XSELINUX_H
214642e01fSmrg#define _XSELINUX_H
224642e01fSmrg
234642e01fSmrg#include "dixaccess.h"
244642e01fSmrg
254642e01fSmrg/* Extension info */
264642e01fSmrg#define SELINUX_EXTENSION_NAME		"SELinux"
274642e01fSmrg#define SELINUX_MAJOR_VERSION		1
284642e01fSmrg#define SELINUX_MINOR_VERSION		0
294642e01fSmrg#define SELinuxNumberEvents		0
304642e01fSmrg#define SELinuxNumberErrors		0
314642e01fSmrg
324642e01fSmrg/* Extension protocol */
334642e01fSmrg#define X_SELinuxQueryVersion			0
344642e01fSmrg#define X_SELinuxSetDeviceCreateContext		1
354642e01fSmrg#define X_SELinuxGetDeviceCreateContext		2
364642e01fSmrg#define X_SELinuxSetDeviceContext		3
374642e01fSmrg#define X_SELinuxGetDeviceContext		4
384642e01fSmrg#define X_SELinuxSetWindowCreateContext		5
394642e01fSmrg#define X_SELinuxGetWindowCreateContext		6
404642e01fSmrg#define X_SELinuxGetWindowContext		7
414642e01fSmrg#define X_SELinuxSetPropertyCreateContext	8
424642e01fSmrg#define X_SELinuxGetPropertyCreateContext	9
434642e01fSmrg#define X_SELinuxSetPropertyUseContext		10
444642e01fSmrg#define X_SELinuxGetPropertyUseContext		11
454642e01fSmrg#define X_SELinuxGetPropertyContext		12
464642e01fSmrg#define X_SELinuxGetPropertyDataContext		13
474642e01fSmrg#define X_SELinuxListProperties			14
484642e01fSmrg#define X_SELinuxSetSelectionCreateContext	15
494642e01fSmrg#define X_SELinuxGetSelectionCreateContext	16
504642e01fSmrg#define X_SELinuxSetSelectionUseContext		17
514642e01fSmrg#define X_SELinuxGetSelectionUseContext		18
524642e01fSmrg#define X_SELinuxGetSelectionContext		19
534642e01fSmrg#define X_SELinuxGetSelectionDataContext	20
544642e01fSmrg#define X_SELinuxListSelections			21
554642e01fSmrg#define X_SELinuxGetClientContext		22
564642e01fSmrg
574642e01fSmrgtypedef struct {
584642e01fSmrg    CARD8   reqType;
594642e01fSmrg    CARD8   SELinuxReqType;
604642e01fSmrg    CARD16  length;
614642e01fSmrg    CARD8   client_major;
624642e01fSmrg    CARD8   client_minor;
634642e01fSmrg} SELinuxQueryVersionReq;
644642e01fSmrg
654642e01fSmrgtypedef struct {
664642e01fSmrg    CARD8   type;
674642e01fSmrg    CARD8   pad1;
684642e01fSmrg    CARD16  sequenceNumber;
694642e01fSmrg    CARD32  length;
704642e01fSmrg    CARD16  server_major;
714642e01fSmrg    CARD16  server_minor;
724642e01fSmrg    CARD32  pad2;
734642e01fSmrg    CARD32  pad3;
744642e01fSmrg    CARD32  pad4;
754642e01fSmrg    CARD32  pad5;
764642e01fSmrg    CARD32  pad6;
774642e01fSmrg} SELinuxQueryVersionReply;
784642e01fSmrg
794642e01fSmrgtypedef struct {
804642e01fSmrg    CARD8   reqType;
814642e01fSmrg    CARD8   SELinuxReqType;
824642e01fSmrg    CARD16  length;
834642e01fSmrg    CARD32  context_len;
844642e01fSmrg} SELinuxSetCreateContextReq;
854642e01fSmrg
864642e01fSmrgtypedef struct {
874642e01fSmrg    CARD8   reqType;
884642e01fSmrg    CARD8   SELinuxReqType;
894642e01fSmrg    CARD16  length;
904642e01fSmrg} SELinuxGetCreateContextReq;
914642e01fSmrg
924642e01fSmrgtypedef struct {
934642e01fSmrg    CARD8   reqType;
944642e01fSmrg    CARD8   SELinuxReqType;
954642e01fSmrg    CARD16  length;
964642e01fSmrg    CARD32  id;
974642e01fSmrg    CARD32  context_len;
984642e01fSmrg} SELinuxSetContextReq;
994642e01fSmrg
1004642e01fSmrgtypedef struct {
1014642e01fSmrg    CARD8   reqType;
1024642e01fSmrg    CARD8   SELinuxReqType;
1034642e01fSmrg    CARD16  length;
1044642e01fSmrg    CARD32  id;
1054642e01fSmrg} SELinuxGetContextReq;
1064642e01fSmrg
1074642e01fSmrgtypedef struct {
1084642e01fSmrg    CARD8   reqType;
1094642e01fSmrg    CARD8   SELinuxReqType;
1104642e01fSmrg    CARD16  length;
1114642e01fSmrg    CARD32  window;
1124642e01fSmrg    CARD32  property;
1134642e01fSmrg} SELinuxGetPropertyContextReq;
1144642e01fSmrg
1154642e01fSmrgtypedef struct {
1164642e01fSmrg    CARD8   type;
1174642e01fSmrg    CARD8   pad1;
1184642e01fSmrg    CARD16  sequenceNumber;
1194642e01fSmrg    CARD32  length;
1204642e01fSmrg    CARD32  context_len;
1214642e01fSmrg    CARD32  pad2;
1224642e01fSmrg    CARD32  pad3;
1234642e01fSmrg    CARD32  pad4;
1244642e01fSmrg    CARD32  pad5;
1254642e01fSmrg    CARD32  pad6;
1264642e01fSmrg} SELinuxGetContextReply;
1274642e01fSmrg
1284642e01fSmrgtypedef struct {
1294642e01fSmrg    CARD8   type;
1304642e01fSmrg    CARD8   pad1;
1314642e01fSmrg    CARD16  sequenceNumber;
1324642e01fSmrg    CARD32  length;
1334642e01fSmrg    CARD32  count;
1344642e01fSmrg    CARD32  pad2;
1354642e01fSmrg    CARD32  pad3;
1364642e01fSmrg    CARD32  pad4;
1374642e01fSmrg    CARD32  pad5;
1384642e01fSmrg    CARD32  pad6;
1394642e01fSmrg} SELinuxListItemsReply;
1404642e01fSmrg
1414642e01fSmrg
1424642e01fSmrg/* Private Flask definitions */
1434642e01fSmrg#define SECCLASS_X_DRAWABLE		1
1444642e01fSmrg#define SECCLASS_X_SCREEN		2
1454642e01fSmrg#define SECCLASS_X_GC			3
1464642e01fSmrg#define SECCLASS_X_FONT			4
1474642e01fSmrg#define SECCLASS_X_COLORMAP		5
1484642e01fSmrg#define SECCLASS_X_PROPERTY		6
1494642e01fSmrg#define SECCLASS_X_SELECTION		7
1504642e01fSmrg#define SECCLASS_X_CURSOR		8
1514642e01fSmrg#define SECCLASS_X_CLIENT		9
1524642e01fSmrg#define SECCLASS_X_DEVICE		10
1534642e01fSmrg#define SECCLASS_X_SERVER		11
1544642e01fSmrg#define SECCLASS_X_EXTENSION		12
1554642e01fSmrg#define SECCLASS_X_EVENT		13
1564642e01fSmrg#define SECCLASS_X_FAKEEVENT		14
1574642e01fSmrg#define SECCLASS_X_RESOURCE		15
1584642e01fSmrg
1594642e01fSmrg#endif /* _XSELINUX_H */
160