1*4882a593Smuzhiyun /************************************************************ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun Author: Eamon Walsh <ewalsh@tycho.nsa.gov> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun Permission to use, copy, modify, distribute, and sell this software and its 6*4882a593Smuzhiyun documentation for any purpose is hereby granted without fee, provided that 7*4882a593Smuzhiyun this permission notice appear in supporting documentation. This permission 8*4882a593Smuzhiyun notice shall be included in all copies or substantial portions of the 9*4882a593Smuzhiyun Software. 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12*4882a593Smuzhiyun IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13*4882a593Smuzhiyun FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 14*4882a593Smuzhiyun AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 15*4882a593Smuzhiyun AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 16*4882a593Smuzhiyun CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun ********************************************************/ 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #ifndef _XSELINUX_H 21*4882a593Smuzhiyun #define _XSELINUX_H 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun /* Extension info */ 24*4882a593Smuzhiyun #define SELINUX_EXTENSION_NAME "SELinux" 25*4882a593Smuzhiyun #define SELINUX_MAJOR_VERSION 1 26*4882a593Smuzhiyun #define SELINUX_MINOR_VERSION 1 27*4882a593Smuzhiyun #define SELinuxNumberEvents 0 28*4882a593Smuzhiyun #define SELinuxNumberErrors 0 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* Extension protocol */ 31*4882a593Smuzhiyun #define X_SELinuxQueryVersion 0 32*4882a593Smuzhiyun #define X_SELinuxSetDeviceCreateContext 1 33*4882a593Smuzhiyun #define X_SELinuxGetDeviceCreateContext 2 34*4882a593Smuzhiyun #define X_SELinuxSetDeviceContext 3 35*4882a593Smuzhiyun #define X_SELinuxGetDeviceContext 4 36*4882a593Smuzhiyun #define X_SELinuxSetDrawableCreateContext 5 37*4882a593Smuzhiyun #define X_SELinuxGetDrawableCreateContext 6 38*4882a593Smuzhiyun #define X_SELinuxGetDrawableContext 7 39*4882a593Smuzhiyun #define X_SELinuxSetPropertyCreateContext 8 40*4882a593Smuzhiyun #define X_SELinuxGetPropertyCreateContext 9 41*4882a593Smuzhiyun #define X_SELinuxSetPropertyUseContext 10 42*4882a593Smuzhiyun #define X_SELinuxGetPropertyUseContext 11 43*4882a593Smuzhiyun #define X_SELinuxGetPropertyContext 12 44*4882a593Smuzhiyun #define X_SELinuxGetPropertyDataContext 13 45*4882a593Smuzhiyun #define X_SELinuxListProperties 14 46*4882a593Smuzhiyun #define X_SELinuxSetSelectionCreateContext 15 47*4882a593Smuzhiyun #define X_SELinuxGetSelectionCreateContext 16 48*4882a593Smuzhiyun #define X_SELinuxSetSelectionUseContext 17 49*4882a593Smuzhiyun #define X_SELinuxGetSelectionUseContext 18 50*4882a593Smuzhiyun #define X_SELinuxGetSelectionContext 19 51*4882a593Smuzhiyun #define X_SELinuxGetSelectionDataContext 20 52*4882a593Smuzhiyun #define X_SELinuxListSelections 21 53*4882a593Smuzhiyun #define X_SELinuxGetClientContext 22 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun typedef struct { 56*4882a593Smuzhiyun CARD8 reqType; 57*4882a593Smuzhiyun CARD8 SELinuxReqType; 58*4882a593Smuzhiyun CARD16 length; 59*4882a593Smuzhiyun CARD8 client_major; 60*4882a593Smuzhiyun CARD8 client_minor; 61*4882a593Smuzhiyun } SELinuxQueryVersionReq; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun typedef struct { 64*4882a593Smuzhiyun CARD8 type; 65*4882a593Smuzhiyun CARD8 pad1; 66*4882a593Smuzhiyun CARD16 sequenceNumber; 67*4882a593Smuzhiyun CARD32 length; 68*4882a593Smuzhiyun CARD16 server_major; 69*4882a593Smuzhiyun CARD16 server_minor; 70*4882a593Smuzhiyun CARD32 pad2; 71*4882a593Smuzhiyun CARD32 pad3; 72*4882a593Smuzhiyun CARD32 pad4; 73*4882a593Smuzhiyun CARD32 pad5; 74*4882a593Smuzhiyun CARD32 pad6; 75*4882a593Smuzhiyun } SELinuxQueryVersionReply; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun typedef struct { 78*4882a593Smuzhiyun CARD8 reqType; 79*4882a593Smuzhiyun CARD8 SELinuxReqType; 80*4882a593Smuzhiyun CARD16 length; 81*4882a593Smuzhiyun CARD32 context_len; 82*4882a593Smuzhiyun } SELinuxSetCreateContextReq; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun typedef struct { 85*4882a593Smuzhiyun CARD8 reqType; 86*4882a593Smuzhiyun CARD8 SELinuxReqType; 87*4882a593Smuzhiyun CARD16 length; 88*4882a593Smuzhiyun } SELinuxGetCreateContextReq; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun typedef struct { 91*4882a593Smuzhiyun CARD8 reqType; 92*4882a593Smuzhiyun CARD8 SELinuxReqType; 93*4882a593Smuzhiyun CARD16 length; 94*4882a593Smuzhiyun CARD32 id; 95*4882a593Smuzhiyun CARD32 context_len; 96*4882a593Smuzhiyun } SELinuxSetContextReq; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun typedef struct { 99*4882a593Smuzhiyun CARD8 reqType; 100*4882a593Smuzhiyun CARD8 SELinuxReqType; 101*4882a593Smuzhiyun CARD16 length; 102*4882a593Smuzhiyun CARD32 id; 103*4882a593Smuzhiyun } SELinuxGetContextReq; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun typedef struct { 106*4882a593Smuzhiyun CARD8 reqType; 107*4882a593Smuzhiyun CARD8 SELinuxReqType; 108*4882a593Smuzhiyun CARD16 length; 109*4882a593Smuzhiyun CARD32 window; 110*4882a593Smuzhiyun CARD32 property; 111*4882a593Smuzhiyun } SELinuxGetPropertyContextReq; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun typedef struct { 114*4882a593Smuzhiyun CARD8 type; 115*4882a593Smuzhiyun CARD8 pad1; 116*4882a593Smuzhiyun CARD16 sequenceNumber; 117*4882a593Smuzhiyun CARD32 length; 118*4882a593Smuzhiyun CARD32 context_len; 119*4882a593Smuzhiyun CARD32 pad2; 120*4882a593Smuzhiyun CARD32 pad3; 121*4882a593Smuzhiyun CARD32 pad4; 122*4882a593Smuzhiyun CARD32 pad5; 123*4882a593Smuzhiyun CARD32 pad6; 124*4882a593Smuzhiyun } SELinuxGetContextReply; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun typedef struct { 127*4882a593Smuzhiyun CARD8 type; 128*4882a593Smuzhiyun CARD8 pad1; 129*4882a593Smuzhiyun CARD16 sequenceNumber; 130*4882a593Smuzhiyun CARD32 length; 131*4882a593Smuzhiyun CARD32 count; 132*4882a593Smuzhiyun CARD32 pad2; 133*4882a593Smuzhiyun CARD32 pad3; 134*4882a593Smuzhiyun CARD32 pad4; 135*4882a593Smuzhiyun CARD32 pad5; 136*4882a593Smuzhiyun CARD32 pad6; 137*4882a593Smuzhiyun } SELinuxListItemsReply; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun #endif /* _XSELINUX_H */ 140