10d429e5bSmrg /*
20d429e5bSmrg * This file generated automatically from xselinux.xml by c_client.py.
30d429e5bSmrg * Edit at your peril.
40d429e5bSmrg */
50d429e5bSmrg
6ed2038faSmrg #ifdef HAVE_CONFIG_H
7ed2038faSmrg #include "config.h"
8ed2038faSmrg #endif
9ed2038faSmrg #include <stdlib.h>
100d429e5bSmrg #include <string.h>
110d429e5bSmrg #include <assert.h>
12ed2038faSmrg #include <stddef.h> /* for offsetof() */
130d429e5bSmrg #include "xcbext.h"
140d429e5bSmrg #include "xselinux.h"
15ed2038faSmrg
16ed2038faSmrg #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
170d429e5bSmrg #include "xproto.h"
180d429e5bSmrg
190d429e5bSmrg xcb_extension_t xcb_selinux_id = { "SELinux", 0 };
200d429e5bSmrg
210d429e5bSmrg xcb_selinux_query_version_cookie_t
xcb_selinux_query_version(xcb_connection_t * c,uint8_t client_major,uint8_t client_minor)22*ba6321feSmrg xcb_selinux_query_version (xcb_connection_t *c,
23*ba6321feSmrg uint8_t client_major,
24*ba6321feSmrg uint8_t client_minor)
250d429e5bSmrg {
260d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
27*ba6321feSmrg .count = 2,
28*ba6321feSmrg .ext = &xcb_selinux_id,
29*ba6321feSmrg .opcode = XCB_SELINUX_QUERY_VERSION,
30*ba6321feSmrg .isvoid = 0
310d429e5bSmrg };
320d429e5bSmrg
330d429e5bSmrg struct iovec xcb_parts[4];
340d429e5bSmrg xcb_selinux_query_version_cookie_t xcb_ret;
350d429e5bSmrg xcb_selinux_query_version_request_t xcb_out;
360d429e5bSmrg
370d429e5bSmrg xcb_out.client_major = client_major;
380d429e5bSmrg xcb_out.client_minor = client_minor;
390d429e5bSmrg
400d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
410d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
420d429e5bSmrg xcb_parts[3].iov_base = 0;
430d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
44ed2038faSmrg
450d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
460d429e5bSmrg return xcb_ret;
470d429e5bSmrg }
480d429e5bSmrg
490d429e5bSmrg xcb_selinux_query_version_cookie_t
xcb_selinux_query_version_unchecked(xcb_connection_t * c,uint8_t client_major,uint8_t client_minor)50*ba6321feSmrg xcb_selinux_query_version_unchecked (xcb_connection_t *c,
51*ba6321feSmrg uint8_t client_major,
52*ba6321feSmrg uint8_t client_minor)
530d429e5bSmrg {
540d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
55*ba6321feSmrg .count = 2,
56*ba6321feSmrg .ext = &xcb_selinux_id,
57*ba6321feSmrg .opcode = XCB_SELINUX_QUERY_VERSION,
58*ba6321feSmrg .isvoid = 0
590d429e5bSmrg };
600d429e5bSmrg
610d429e5bSmrg struct iovec xcb_parts[4];
620d429e5bSmrg xcb_selinux_query_version_cookie_t xcb_ret;
630d429e5bSmrg xcb_selinux_query_version_request_t xcb_out;
640d429e5bSmrg
650d429e5bSmrg xcb_out.client_major = client_major;
660d429e5bSmrg xcb_out.client_minor = client_minor;
670d429e5bSmrg
680d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
690d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
700d429e5bSmrg xcb_parts[3].iov_base = 0;
710d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
72ed2038faSmrg
730d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
740d429e5bSmrg return xcb_ret;
750d429e5bSmrg }
760d429e5bSmrg
770d429e5bSmrg xcb_selinux_query_version_reply_t *
xcb_selinux_query_version_reply(xcb_connection_t * c,xcb_selinux_query_version_cookie_t cookie,xcb_generic_error_t ** e)78*ba6321feSmrg xcb_selinux_query_version_reply (xcb_connection_t *c,
790d429e5bSmrg xcb_selinux_query_version_cookie_t cookie /**< */,
80*ba6321feSmrg xcb_generic_error_t **e)
810d429e5bSmrg {
820d429e5bSmrg return (xcb_selinux_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
830d429e5bSmrg }
840d429e5bSmrg
85ed2038faSmrg int
xcb_selinux_set_device_create_context_sizeof(const void * _buffer)86*ba6321feSmrg xcb_selinux_set_device_create_context_sizeof (const void *_buffer)
87ed2038faSmrg {
88ed2038faSmrg char *xcb_tmp = (char *)_buffer;
89ed2038faSmrg const xcb_selinux_set_device_create_context_request_t *_aux = (xcb_selinux_set_device_create_context_request_t *)_buffer;
90ed2038faSmrg unsigned int xcb_buffer_len = 0;
91ed2038faSmrg unsigned int xcb_block_len = 0;
92ed2038faSmrg unsigned int xcb_pad = 0;
936f16f8b8Smrg unsigned int xcb_align_to = 0;
94ed2038faSmrg
95ed2038faSmrg
96ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_device_create_context_request_t);
97ed2038faSmrg xcb_tmp += xcb_block_len;
986f16f8b8Smrg xcb_buffer_len += xcb_block_len;
996f16f8b8Smrg xcb_block_len = 0;
100ed2038faSmrg /* context */
101ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
102ed2038faSmrg xcb_tmp += xcb_block_len;
103ed2038faSmrg xcb_align_to = ALIGNOF(char);
104ed2038faSmrg /* insert padding */
105ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
106ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
107ed2038faSmrg if (0 != xcb_pad) {
108ed2038faSmrg xcb_tmp += xcb_pad;
109ed2038faSmrg xcb_pad = 0;
110ed2038faSmrg }
111ed2038faSmrg xcb_block_len = 0;
112ed2038faSmrg
113ed2038faSmrg return xcb_buffer_len;
114ed2038faSmrg }
115ed2038faSmrg
1160d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_device_create_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)117*ba6321feSmrg xcb_selinux_set_device_create_context_checked (xcb_connection_t *c,
118*ba6321feSmrg uint32_t context_len,
119*ba6321feSmrg const char *context)
1200d429e5bSmrg {
1210d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
122*ba6321feSmrg .count = 4,
123*ba6321feSmrg .ext = &xcb_selinux_id,
124*ba6321feSmrg .opcode = XCB_SELINUX_SET_DEVICE_CREATE_CONTEXT,
125*ba6321feSmrg .isvoid = 1
1260d429e5bSmrg };
1270d429e5bSmrg
1280d429e5bSmrg struct iovec xcb_parts[6];
1290d429e5bSmrg xcb_void_cookie_t xcb_ret;
1300d429e5bSmrg xcb_selinux_set_device_create_context_request_t xcb_out;
1310d429e5bSmrg
1320d429e5bSmrg xcb_out.context_len = context_len;
1330d429e5bSmrg
1340d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1350d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1360d429e5bSmrg xcb_parts[3].iov_base = 0;
1370d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
138ed2038faSmrg /* char context */
1390d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
1400d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
1410d429e5bSmrg xcb_parts[5].iov_base = 0;
1420d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
143ed2038faSmrg
1440d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1450d429e5bSmrg return xcb_ret;
1460d429e5bSmrg }
1470d429e5bSmrg
1480d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_device_create_context(xcb_connection_t * c,uint32_t context_len,const char * context)149*ba6321feSmrg xcb_selinux_set_device_create_context (xcb_connection_t *c,
150*ba6321feSmrg uint32_t context_len,
151*ba6321feSmrg const char *context)
1520d429e5bSmrg {
1530d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
154*ba6321feSmrg .count = 4,
155*ba6321feSmrg .ext = &xcb_selinux_id,
156*ba6321feSmrg .opcode = XCB_SELINUX_SET_DEVICE_CREATE_CONTEXT,
157*ba6321feSmrg .isvoid = 1
1580d429e5bSmrg };
1590d429e5bSmrg
1600d429e5bSmrg struct iovec xcb_parts[6];
1610d429e5bSmrg xcb_void_cookie_t xcb_ret;
1620d429e5bSmrg xcb_selinux_set_device_create_context_request_t xcb_out;
1630d429e5bSmrg
1640d429e5bSmrg xcb_out.context_len = context_len;
1650d429e5bSmrg
1660d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
1670d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
1680d429e5bSmrg xcb_parts[3].iov_base = 0;
1690d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
170ed2038faSmrg /* char context */
1710d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
1720d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
1730d429e5bSmrg xcb_parts[5].iov_base = 0;
1740d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
175ed2038faSmrg
1760d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1770d429e5bSmrg return xcb_ret;
1780d429e5bSmrg }
1790d429e5bSmrg
180*ba6321feSmrg char *
xcb_selinux_set_device_create_context_context(const xcb_selinux_set_device_create_context_request_t * R)181*ba6321feSmrg xcb_selinux_set_device_create_context_context (const xcb_selinux_set_device_create_context_request_t *R)
182*ba6321feSmrg {
183*ba6321feSmrg return (char *) (R + 1);
184*ba6321feSmrg }
185*ba6321feSmrg
186ed2038faSmrg int
xcb_selinux_set_device_create_context_context_length(const xcb_selinux_set_device_create_context_request_t * R)187*ba6321feSmrg xcb_selinux_set_device_create_context_context_length (const xcb_selinux_set_device_create_context_request_t *R)
188*ba6321feSmrg {
189*ba6321feSmrg return R->context_len;
190*ba6321feSmrg }
191*ba6321feSmrg
192*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_device_create_context_context_end(const xcb_selinux_set_device_create_context_request_t * R)193*ba6321feSmrg xcb_selinux_set_device_create_context_context_end (const xcb_selinux_set_device_create_context_request_t *R)
194*ba6321feSmrg {
195*ba6321feSmrg xcb_generic_iterator_t i;
196*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
197*ba6321feSmrg i.rem = 0;
198*ba6321feSmrg i.index = (char *) i.data - (char *) R;
199*ba6321feSmrg return i;
200*ba6321feSmrg }
201*ba6321feSmrg
202*ba6321feSmrg int
xcb_selinux_get_device_create_context_sizeof(const void * _buffer)203*ba6321feSmrg xcb_selinux_get_device_create_context_sizeof (const void *_buffer)
204ed2038faSmrg {
205ed2038faSmrg char *xcb_tmp = (char *)_buffer;
206ed2038faSmrg const xcb_selinux_get_device_create_context_reply_t *_aux = (xcb_selinux_get_device_create_context_reply_t *)_buffer;
207ed2038faSmrg unsigned int xcb_buffer_len = 0;
208ed2038faSmrg unsigned int xcb_block_len = 0;
209ed2038faSmrg unsigned int xcb_pad = 0;
2106f16f8b8Smrg unsigned int xcb_align_to = 0;
211ed2038faSmrg
212ed2038faSmrg
213ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_device_create_context_reply_t);
214ed2038faSmrg xcb_tmp += xcb_block_len;
2156f16f8b8Smrg xcb_buffer_len += xcb_block_len;
2166f16f8b8Smrg xcb_block_len = 0;
217ed2038faSmrg /* context */
218ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
219ed2038faSmrg xcb_tmp += xcb_block_len;
220ed2038faSmrg xcb_align_to = ALIGNOF(char);
221ed2038faSmrg /* insert padding */
222ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
223ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
224ed2038faSmrg if (0 != xcb_pad) {
225ed2038faSmrg xcb_tmp += xcb_pad;
226ed2038faSmrg xcb_pad = 0;
227ed2038faSmrg }
228ed2038faSmrg xcb_block_len = 0;
229ed2038faSmrg
230ed2038faSmrg return xcb_buffer_len;
231ed2038faSmrg }
232ed2038faSmrg
2330d429e5bSmrg xcb_selinux_get_device_create_context_cookie_t
xcb_selinux_get_device_create_context(xcb_connection_t * c)234*ba6321feSmrg xcb_selinux_get_device_create_context (xcb_connection_t *c)
2350d429e5bSmrg {
2360d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
237*ba6321feSmrg .count = 2,
238*ba6321feSmrg .ext = &xcb_selinux_id,
239*ba6321feSmrg .opcode = XCB_SELINUX_GET_DEVICE_CREATE_CONTEXT,
240*ba6321feSmrg .isvoid = 0
2410d429e5bSmrg };
2420d429e5bSmrg
2430d429e5bSmrg struct iovec xcb_parts[4];
2440d429e5bSmrg xcb_selinux_get_device_create_context_cookie_t xcb_ret;
2450d429e5bSmrg xcb_selinux_get_device_create_context_request_t xcb_out;
2460d429e5bSmrg
2470d429e5bSmrg
2480d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2490d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2500d429e5bSmrg xcb_parts[3].iov_base = 0;
2510d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
252ed2038faSmrg
2530d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2540d429e5bSmrg return xcb_ret;
2550d429e5bSmrg }
2560d429e5bSmrg
2570d429e5bSmrg xcb_selinux_get_device_create_context_cookie_t
xcb_selinux_get_device_create_context_unchecked(xcb_connection_t * c)258*ba6321feSmrg xcb_selinux_get_device_create_context_unchecked (xcb_connection_t *c)
2590d429e5bSmrg {
2600d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
261*ba6321feSmrg .count = 2,
262*ba6321feSmrg .ext = &xcb_selinux_id,
263*ba6321feSmrg .opcode = XCB_SELINUX_GET_DEVICE_CREATE_CONTEXT,
264*ba6321feSmrg .isvoid = 0
2650d429e5bSmrg };
2660d429e5bSmrg
2670d429e5bSmrg struct iovec xcb_parts[4];
2680d429e5bSmrg xcb_selinux_get_device_create_context_cookie_t xcb_ret;
2690d429e5bSmrg xcb_selinux_get_device_create_context_request_t xcb_out;
2700d429e5bSmrg
2710d429e5bSmrg
2720d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
2730d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
2740d429e5bSmrg xcb_parts[3].iov_base = 0;
2750d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
276ed2038faSmrg
2770d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2780d429e5bSmrg return xcb_ret;
2790d429e5bSmrg }
2800d429e5bSmrg
2810d429e5bSmrg char *
xcb_selinux_get_device_create_context_context(const xcb_selinux_get_device_create_context_reply_t * R)282*ba6321feSmrg xcb_selinux_get_device_create_context_context (const xcb_selinux_get_device_create_context_reply_t *R)
2830d429e5bSmrg {
2840d429e5bSmrg return (char *) (R + 1);
2850d429e5bSmrg }
2860d429e5bSmrg
2870d429e5bSmrg int
xcb_selinux_get_device_create_context_context_length(const xcb_selinux_get_device_create_context_reply_t * R)288*ba6321feSmrg xcb_selinux_get_device_create_context_context_length (const xcb_selinux_get_device_create_context_reply_t *R)
2890d429e5bSmrg {
2900d429e5bSmrg return R->context_len;
2910d429e5bSmrg }
2920d429e5bSmrg
2930d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_device_create_context_context_end(const xcb_selinux_get_device_create_context_reply_t * R)294*ba6321feSmrg xcb_selinux_get_device_create_context_context_end (const xcb_selinux_get_device_create_context_reply_t *R)
2950d429e5bSmrg {
2960d429e5bSmrg xcb_generic_iterator_t i;
2970d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
2980d429e5bSmrg i.rem = 0;
2990d429e5bSmrg i.index = (char *) i.data - (char *) R;
3000d429e5bSmrg return i;
3010d429e5bSmrg }
3020d429e5bSmrg
3030d429e5bSmrg xcb_selinux_get_device_create_context_reply_t *
xcb_selinux_get_device_create_context_reply(xcb_connection_t * c,xcb_selinux_get_device_create_context_cookie_t cookie,xcb_generic_error_t ** e)304*ba6321feSmrg xcb_selinux_get_device_create_context_reply (xcb_connection_t *c,
3050d429e5bSmrg xcb_selinux_get_device_create_context_cookie_t cookie /**< */,
306*ba6321feSmrg xcb_generic_error_t **e)
3070d429e5bSmrg {
3080d429e5bSmrg return (xcb_selinux_get_device_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3090d429e5bSmrg }
3100d429e5bSmrg
311ed2038faSmrg int
xcb_selinux_set_device_context_sizeof(const void * _buffer)312*ba6321feSmrg xcb_selinux_set_device_context_sizeof (const void *_buffer)
313ed2038faSmrg {
314ed2038faSmrg char *xcb_tmp = (char *)_buffer;
315ed2038faSmrg const xcb_selinux_set_device_context_request_t *_aux = (xcb_selinux_set_device_context_request_t *)_buffer;
316ed2038faSmrg unsigned int xcb_buffer_len = 0;
317ed2038faSmrg unsigned int xcb_block_len = 0;
318ed2038faSmrg unsigned int xcb_pad = 0;
3196f16f8b8Smrg unsigned int xcb_align_to = 0;
320ed2038faSmrg
321ed2038faSmrg
322ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_device_context_request_t);
323ed2038faSmrg xcb_tmp += xcb_block_len;
3246f16f8b8Smrg xcb_buffer_len += xcb_block_len;
3256f16f8b8Smrg xcb_block_len = 0;
326ed2038faSmrg /* context */
327ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
328ed2038faSmrg xcb_tmp += xcb_block_len;
329ed2038faSmrg xcb_align_to = ALIGNOF(char);
330ed2038faSmrg /* insert padding */
331ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
332ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
333ed2038faSmrg if (0 != xcb_pad) {
334ed2038faSmrg xcb_tmp += xcb_pad;
335ed2038faSmrg xcb_pad = 0;
336ed2038faSmrg }
337ed2038faSmrg xcb_block_len = 0;
338ed2038faSmrg
339ed2038faSmrg return xcb_buffer_len;
340ed2038faSmrg }
341ed2038faSmrg
3420d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_device_context_checked(xcb_connection_t * c,uint32_t device,uint32_t context_len,const char * context)343*ba6321feSmrg xcb_selinux_set_device_context_checked (xcb_connection_t *c,
344*ba6321feSmrg uint32_t device,
345*ba6321feSmrg uint32_t context_len,
346*ba6321feSmrg const char *context)
3470d429e5bSmrg {
3480d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
349*ba6321feSmrg .count = 4,
350*ba6321feSmrg .ext = &xcb_selinux_id,
351*ba6321feSmrg .opcode = XCB_SELINUX_SET_DEVICE_CONTEXT,
352*ba6321feSmrg .isvoid = 1
3530d429e5bSmrg };
3540d429e5bSmrg
3550d429e5bSmrg struct iovec xcb_parts[6];
3560d429e5bSmrg xcb_void_cookie_t xcb_ret;
3570d429e5bSmrg xcb_selinux_set_device_context_request_t xcb_out;
3580d429e5bSmrg
3590d429e5bSmrg xcb_out.device = device;
3600d429e5bSmrg xcb_out.context_len = context_len;
3610d429e5bSmrg
3620d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
3630d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
3640d429e5bSmrg xcb_parts[3].iov_base = 0;
3650d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
366ed2038faSmrg /* char context */
3670d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
3680d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
3690d429e5bSmrg xcb_parts[5].iov_base = 0;
3700d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
371ed2038faSmrg
3720d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3730d429e5bSmrg return xcb_ret;
3740d429e5bSmrg }
3750d429e5bSmrg
3760d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_device_context(xcb_connection_t * c,uint32_t device,uint32_t context_len,const char * context)377*ba6321feSmrg xcb_selinux_set_device_context (xcb_connection_t *c,
378*ba6321feSmrg uint32_t device,
379*ba6321feSmrg uint32_t context_len,
380*ba6321feSmrg const char *context)
3810d429e5bSmrg {
3820d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
383*ba6321feSmrg .count = 4,
384*ba6321feSmrg .ext = &xcb_selinux_id,
385*ba6321feSmrg .opcode = XCB_SELINUX_SET_DEVICE_CONTEXT,
386*ba6321feSmrg .isvoid = 1
3870d429e5bSmrg };
3880d429e5bSmrg
3890d429e5bSmrg struct iovec xcb_parts[6];
3900d429e5bSmrg xcb_void_cookie_t xcb_ret;
3910d429e5bSmrg xcb_selinux_set_device_context_request_t xcb_out;
3920d429e5bSmrg
3930d429e5bSmrg xcb_out.device = device;
3940d429e5bSmrg xcb_out.context_len = context_len;
3950d429e5bSmrg
3960d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
3970d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
3980d429e5bSmrg xcb_parts[3].iov_base = 0;
3990d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
400ed2038faSmrg /* char context */
4010d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
4020d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
4030d429e5bSmrg xcb_parts[5].iov_base = 0;
4040d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
405ed2038faSmrg
4060d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4070d429e5bSmrg return xcb_ret;
4080d429e5bSmrg }
4090d429e5bSmrg
410*ba6321feSmrg char *
xcb_selinux_set_device_context_context(const xcb_selinux_set_device_context_request_t * R)411*ba6321feSmrg xcb_selinux_set_device_context_context (const xcb_selinux_set_device_context_request_t *R)
412*ba6321feSmrg {
413*ba6321feSmrg return (char *) (R + 1);
414*ba6321feSmrg }
415*ba6321feSmrg
416ed2038faSmrg int
xcb_selinux_set_device_context_context_length(const xcb_selinux_set_device_context_request_t * R)417*ba6321feSmrg xcb_selinux_set_device_context_context_length (const xcb_selinux_set_device_context_request_t *R)
418*ba6321feSmrg {
419*ba6321feSmrg return R->context_len;
420*ba6321feSmrg }
421*ba6321feSmrg
422*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_device_context_context_end(const xcb_selinux_set_device_context_request_t * R)423*ba6321feSmrg xcb_selinux_set_device_context_context_end (const xcb_selinux_set_device_context_request_t *R)
424*ba6321feSmrg {
425*ba6321feSmrg xcb_generic_iterator_t i;
426*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
427*ba6321feSmrg i.rem = 0;
428*ba6321feSmrg i.index = (char *) i.data - (char *) R;
429*ba6321feSmrg return i;
430*ba6321feSmrg }
431*ba6321feSmrg
432*ba6321feSmrg int
xcb_selinux_get_device_context_sizeof(const void * _buffer)433*ba6321feSmrg xcb_selinux_get_device_context_sizeof (const void *_buffer)
434ed2038faSmrg {
435ed2038faSmrg char *xcb_tmp = (char *)_buffer;
436ed2038faSmrg const xcb_selinux_get_device_context_reply_t *_aux = (xcb_selinux_get_device_context_reply_t *)_buffer;
437ed2038faSmrg unsigned int xcb_buffer_len = 0;
438ed2038faSmrg unsigned int xcb_block_len = 0;
439ed2038faSmrg unsigned int xcb_pad = 0;
4406f16f8b8Smrg unsigned int xcb_align_to = 0;
441ed2038faSmrg
442ed2038faSmrg
443ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_device_context_reply_t);
444ed2038faSmrg xcb_tmp += xcb_block_len;
4456f16f8b8Smrg xcb_buffer_len += xcb_block_len;
4466f16f8b8Smrg xcb_block_len = 0;
447ed2038faSmrg /* context */
448ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
449ed2038faSmrg xcb_tmp += xcb_block_len;
450ed2038faSmrg xcb_align_to = ALIGNOF(char);
451ed2038faSmrg /* insert padding */
452ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
453ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
454ed2038faSmrg if (0 != xcb_pad) {
455ed2038faSmrg xcb_tmp += xcb_pad;
456ed2038faSmrg xcb_pad = 0;
457ed2038faSmrg }
458ed2038faSmrg xcb_block_len = 0;
459ed2038faSmrg
460ed2038faSmrg return xcb_buffer_len;
461ed2038faSmrg }
462ed2038faSmrg
4630d429e5bSmrg xcb_selinux_get_device_context_cookie_t
xcb_selinux_get_device_context(xcb_connection_t * c,uint32_t device)464*ba6321feSmrg xcb_selinux_get_device_context (xcb_connection_t *c,
465*ba6321feSmrg uint32_t device)
4660d429e5bSmrg {
4670d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
468*ba6321feSmrg .count = 2,
469*ba6321feSmrg .ext = &xcb_selinux_id,
470*ba6321feSmrg .opcode = XCB_SELINUX_GET_DEVICE_CONTEXT,
471*ba6321feSmrg .isvoid = 0
4720d429e5bSmrg };
4730d429e5bSmrg
4740d429e5bSmrg struct iovec xcb_parts[4];
4750d429e5bSmrg xcb_selinux_get_device_context_cookie_t xcb_ret;
4760d429e5bSmrg xcb_selinux_get_device_context_request_t xcb_out;
4770d429e5bSmrg
4780d429e5bSmrg xcb_out.device = device;
4790d429e5bSmrg
4800d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
4810d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
4820d429e5bSmrg xcb_parts[3].iov_base = 0;
4830d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
484ed2038faSmrg
4850d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4860d429e5bSmrg return xcb_ret;
4870d429e5bSmrg }
4880d429e5bSmrg
4890d429e5bSmrg xcb_selinux_get_device_context_cookie_t
xcb_selinux_get_device_context_unchecked(xcb_connection_t * c,uint32_t device)490*ba6321feSmrg xcb_selinux_get_device_context_unchecked (xcb_connection_t *c,
491*ba6321feSmrg uint32_t device)
4920d429e5bSmrg {
4930d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
494*ba6321feSmrg .count = 2,
495*ba6321feSmrg .ext = &xcb_selinux_id,
496*ba6321feSmrg .opcode = XCB_SELINUX_GET_DEVICE_CONTEXT,
497*ba6321feSmrg .isvoid = 0
4980d429e5bSmrg };
4990d429e5bSmrg
5000d429e5bSmrg struct iovec xcb_parts[4];
5010d429e5bSmrg xcb_selinux_get_device_context_cookie_t xcb_ret;
5020d429e5bSmrg xcb_selinux_get_device_context_request_t xcb_out;
5030d429e5bSmrg
5040d429e5bSmrg xcb_out.device = device;
5050d429e5bSmrg
5060d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
5070d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
5080d429e5bSmrg xcb_parts[3].iov_base = 0;
5090d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
510ed2038faSmrg
5110d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5120d429e5bSmrg return xcb_ret;
5130d429e5bSmrg }
5140d429e5bSmrg
5150d429e5bSmrg char *
xcb_selinux_get_device_context_context(const xcb_selinux_get_device_context_reply_t * R)516*ba6321feSmrg xcb_selinux_get_device_context_context (const xcb_selinux_get_device_context_reply_t *R)
5170d429e5bSmrg {
5180d429e5bSmrg return (char *) (R + 1);
5190d429e5bSmrg }
5200d429e5bSmrg
5210d429e5bSmrg int
xcb_selinux_get_device_context_context_length(const xcb_selinux_get_device_context_reply_t * R)522*ba6321feSmrg xcb_selinux_get_device_context_context_length (const xcb_selinux_get_device_context_reply_t *R)
5230d429e5bSmrg {
5240d429e5bSmrg return R->context_len;
5250d429e5bSmrg }
5260d429e5bSmrg
5270d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_device_context_context_end(const xcb_selinux_get_device_context_reply_t * R)528*ba6321feSmrg xcb_selinux_get_device_context_context_end (const xcb_selinux_get_device_context_reply_t *R)
5290d429e5bSmrg {
5300d429e5bSmrg xcb_generic_iterator_t i;
5310d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
5320d429e5bSmrg i.rem = 0;
5330d429e5bSmrg i.index = (char *) i.data - (char *) R;
5340d429e5bSmrg return i;
5350d429e5bSmrg }
5360d429e5bSmrg
5370d429e5bSmrg xcb_selinux_get_device_context_reply_t *
xcb_selinux_get_device_context_reply(xcb_connection_t * c,xcb_selinux_get_device_context_cookie_t cookie,xcb_generic_error_t ** e)538*ba6321feSmrg xcb_selinux_get_device_context_reply (xcb_connection_t *c,
5390d429e5bSmrg xcb_selinux_get_device_context_cookie_t cookie /**< */,
540*ba6321feSmrg xcb_generic_error_t **e)
5410d429e5bSmrg {
5420d429e5bSmrg return (xcb_selinux_get_device_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5430d429e5bSmrg }
5440d429e5bSmrg
545ed2038faSmrg int
xcb_selinux_set_window_create_context_sizeof(const void * _buffer)546*ba6321feSmrg xcb_selinux_set_window_create_context_sizeof (const void *_buffer)
547ed2038faSmrg {
548ed2038faSmrg char *xcb_tmp = (char *)_buffer;
549ed2038faSmrg const xcb_selinux_set_window_create_context_request_t *_aux = (xcb_selinux_set_window_create_context_request_t *)_buffer;
550ed2038faSmrg unsigned int xcb_buffer_len = 0;
551ed2038faSmrg unsigned int xcb_block_len = 0;
552ed2038faSmrg unsigned int xcb_pad = 0;
5536f16f8b8Smrg unsigned int xcb_align_to = 0;
554ed2038faSmrg
555ed2038faSmrg
556ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_window_create_context_request_t);
557ed2038faSmrg xcb_tmp += xcb_block_len;
5586f16f8b8Smrg xcb_buffer_len += xcb_block_len;
5596f16f8b8Smrg xcb_block_len = 0;
560ed2038faSmrg /* context */
561ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
562ed2038faSmrg xcb_tmp += xcb_block_len;
563ed2038faSmrg xcb_align_to = ALIGNOF(char);
564ed2038faSmrg /* insert padding */
565ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
566ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
567ed2038faSmrg if (0 != xcb_pad) {
568ed2038faSmrg xcb_tmp += xcb_pad;
569ed2038faSmrg xcb_pad = 0;
570ed2038faSmrg }
571ed2038faSmrg xcb_block_len = 0;
572ed2038faSmrg
573ed2038faSmrg return xcb_buffer_len;
574ed2038faSmrg }
575ed2038faSmrg
5760d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_window_create_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)577*ba6321feSmrg xcb_selinux_set_window_create_context_checked (xcb_connection_t *c,
578*ba6321feSmrg uint32_t context_len,
579*ba6321feSmrg const char *context)
5800d429e5bSmrg {
5810d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
582*ba6321feSmrg .count = 4,
583*ba6321feSmrg .ext = &xcb_selinux_id,
584*ba6321feSmrg .opcode = XCB_SELINUX_SET_WINDOW_CREATE_CONTEXT,
585*ba6321feSmrg .isvoid = 1
5860d429e5bSmrg };
5870d429e5bSmrg
5880d429e5bSmrg struct iovec xcb_parts[6];
5890d429e5bSmrg xcb_void_cookie_t xcb_ret;
5900d429e5bSmrg xcb_selinux_set_window_create_context_request_t xcb_out;
5910d429e5bSmrg
5920d429e5bSmrg xcb_out.context_len = context_len;
5930d429e5bSmrg
5940d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
5950d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
5960d429e5bSmrg xcb_parts[3].iov_base = 0;
5970d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
598ed2038faSmrg /* char context */
5990d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
6000d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
6010d429e5bSmrg xcb_parts[5].iov_base = 0;
6020d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
603ed2038faSmrg
6040d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6050d429e5bSmrg return xcb_ret;
6060d429e5bSmrg }
6070d429e5bSmrg
6080d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_window_create_context(xcb_connection_t * c,uint32_t context_len,const char * context)609*ba6321feSmrg xcb_selinux_set_window_create_context (xcb_connection_t *c,
610*ba6321feSmrg uint32_t context_len,
611*ba6321feSmrg const char *context)
6120d429e5bSmrg {
6130d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
614*ba6321feSmrg .count = 4,
615*ba6321feSmrg .ext = &xcb_selinux_id,
616*ba6321feSmrg .opcode = XCB_SELINUX_SET_WINDOW_CREATE_CONTEXT,
617*ba6321feSmrg .isvoid = 1
6180d429e5bSmrg };
6190d429e5bSmrg
6200d429e5bSmrg struct iovec xcb_parts[6];
6210d429e5bSmrg xcb_void_cookie_t xcb_ret;
6220d429e5bSmrg xcb_selinux_set_window_create_context_request_t xcb_out;
6230d429e5bSmrg
6240d429e5bSmrg xcb_out.context_len = context_len;
6250d429e5bSmrg
6260d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
6270d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
6280d429e5bSmrg xcb_parts[3].iov_base = 0;
6290d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
630ed2038faSmrg /* char context */
6310d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
6320d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
6330d429e5bSmrg xcb_parts[5].iov_base = 0;
6340d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
635ed2038faSmrg
6360d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6370d429e5bSmrg return xcb_ret;
6380d429e5bSmrg }
6390d429e5bSmrg
640*ba6321feSmrg char *
xcb_selinux_set_window_create_context_context(const xcb_selinux_set_window_create_context_request_t * R)641*ba6321feSmrg xcb_selinux_set_window_create_context_context (const xcb_selinux_set_window_create_context_request_t *R)
642*ba6321feSmrg {
643*ba6321feSmrg return (char *) (R + 1);
644*ba6321feSmrg }
645*ba6321feSmrg
646ed2038faSmrg int
xcb_selinux_set_window_create_context_context_length(const xcb_selinux_set_window_create_context_request_t * R)647*ba6321feSmrg xcb_selinux_set_window_create_context_context_length (const xcb_selinux_set_window_create_context_request_t *R)
648*ba6321feSmrg {
649*ba6321feSmrg return R->context_len;
650*ba6321feSmrg }
651*ba6321feSmrg
652*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_window_create_context_context_end(const xcb_selinux_set_window_create_context_request_t * R)653*ba6321feSmrg xcb_selinux_set_window_create_context_context_end (const xcb_selinux_set_window_create_context_request_t *R)
654*ba6321feSmrg {
655*ba6321feSmrg xcb_generic_iterator_t i;
656*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
657*ba6321feSmrg i.rem = 0;
658*ba6321feSmrg i.index = (char *) i.data - (char *) R;
659*ba6321feSmrg return i;
660*ba6321feSmrg }
661*ba6321feSmrg
662*ba6321feSmrg int
xcb_selinux_get_window_create_context_sizeof(const void * _buffer)663*ba6321feSmrg xcb_selinux_get_window_create_context_sizeof (const void *_buffer)
664ed2038faSmrg {
665ed2038faSmrg char *xcb_tmp = (char *)_buffer;
666ed2038faSmrg const xcb_selinux_get_window_create_context_reply_t *_aux = (xcb_selinux_get_window_create_context_reply_t *)_buffer;
667ed2038faSmrg unsigned int xcb_buffer_len = 0;
668ed2038faSmrg unsigned int xcb_block_len = 0;
669ed2038faSmrg unsigned int xcb_pad = 0;
6706f16f8b8Smrg unsigned int xcb_align_to = 0;
671ed2038faSmrg
672ed2038faSmrg
673ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_window_create_context_reply_t);
674ed2038faSmrg xcb_tmp += xcb_block_len;
6756f16f8b8Smrg xcb_buffer_len += xcb_block_len;
6766f16f8b8Smrg xcb_block_len = 0;
677ed2038faSmrg /* context */
678ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
679ed2038faSmrg xcb_tmp += xcb_block_len;
680ed2038faSmrg xcb_align_to = ALIGNOF(char);
681ed2038faSmrg /* insert padding */
682ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
683ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
684ed2038faSmrg if (0 != xcb_pad) {
685ed2038faSmrg xcb_tmp += xcb_pad;
686ed2038faSmrg xcb_pad = 0;
687ed2038faSmrg }
688ed2038faSmrg xcb_block_len = 0;
689ed2038faSmrg
690ed2038faSmrg return xcb_buffer_len;
691ed2038faSmrg }
692ed2038faSmrg
6930d429e5bSmrg xcb_selinux_get_window_create_context_cookie_t
xcb_selinux_get_window_create_context(xcb_connection_t * c)694*ba6321feSmrg xcb_selinux_get_window_create_context (xcb_connection_t *c)
6950d429e5bSmrg {
6960d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
697*ba6321feSmrg .count = 2,
698*ba6321feSmrg .ext = &xcb_selinux_id,
699*ba6321feSmrg .opcode = XCB_SELINUX_GET_WINDOW_CREATE_CONTEXT,
700*ba6321feSmrg .isvoid = 0
7010d429e5bSmrg };
7020d429e5bSmrg
7030d429e5bSmrg struct iovec xcb_parts[4];
7040d429e5bSmrg xcb_selinux_get_window_create_context_cookie_t xcb_ret;
7050d429e5bSmrg xcb_selinux_get_window_create_context_request_t xcb_out;
7060d429e5bSmrg
7070d429e5bSmrg
7080d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
7090d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
7100d429e5bSmrg xcb_parts[3].iov_base = 0;
7110d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
712ed2038faSmrg
7130d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7140d429e5bSmrg return xcb_ret;
7150d429e5bSmrg }
7160d429e5bSmrg
7170d429e5bSmrg xcb_selinux_get_window_create_context_cookie_t
xcb_selinux_get_window_create_context_unchecked(xcb_connection_t * c)718*ba6321feSmrg xcb_selinux_get_window_create_context_unchecked (xcb_connection_t *c)
7190d429e5bSmrg {
7200d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
721*ba6321feSmrg .count = 2,
722*ba6321feSmrg .ext = &xcb_selinux_id,
723*ba6321feSmrg .opcode = XCB_SELINUX_GET_WINDOW_CREATE_CONTEXT,
724*ba6321feSmrg .isvoid = 0
7250d429e5bSmrg };
7260d429e5bSmrg
7270d429e5bSmrg struct iovec xcb_parts[4];
7280d429e5bSmrg xcb_selinux_get_window_create_context_cookie_t xcb_ret;
7290d429e5bSmrg xcb_selinux_get_window_create_context_request_t xcb_out;
7300d429e5bSmrg
7310d429e5bSmrg
7320d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
7330d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
7340d429e5bSmrg xcb_parts[3].iov_base = 0;
7350d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
736ed2038faSmrg
7370d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7380d429e5bSmrg return xcb_ret;
7390d429e5bSmrg }
7400d429e5bSmrg
7410d429e5bSmrg char *
xcb_selinux_get_window_create_context_context(const xcb_selinux_get_window_create_context_reply_t * R)742*ba6321feSmrg xcb_selinux_get_window_create_context_context (const xcb_selinux_get_window_create_context_reply_t *R)
7430d429e5bSmrg {
7440d429e5bSmrg return (char *) (R + 1);
7450d429e5bSmrg }
7460d429e5bSmrg
7470d429e5bSmrg int
xcb_selinux_get_window_create_context_context_length(const xcb_selinux_get_window_create_context_reply_t * R)748*ba6321feSmrg xcb_selinux_get_window_create_context_context_length (const xcb_selinux_get_window_create_context_reply_t *R)
7490d429e5bSmrg {
7500d429e5bSmrg return R->context_len;
7510d429e5bSmrg }
7520d429e5bSmrg
7530d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_window_create_context_context_end(const xcb_selinux_get_window_create_context_reply_t * R)754*ba6321feSmrg xcb_selinux_get_window_create_context_context_end (const xcb_selinux_get_window_create_context_reply_t *R)
7550d429e5bSmrg {
7560d429e5bSmrg xcb_generic_iterator_t i;
7570d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
7580d429e5bSmrg i.rem = 0;
7590d429e5bSmrg i.index = (char *) i.data - (char *) R;
7600d429e5bSmrg return i;
7610d429e5bSmrg }
7620d429e5bSmrg
7630d429e5bSmrg xcb_selinux_get_window_create_context_reply_t *
xcb_selinux_get_window_create_context_reply(xcb_connection_t * c,xcb_selinux_get_window_create_context_cookie_t cookie,xcb_generic_error_t ** e)764*ba6321feSmrg xcb_selinux_get_window_create_context_reply (xcb_connection_t *c,
7650d429e5bSmrg xcb_selinux_get_window_create_context_cookie_t cookie /**< */,
766*ba6321feSmrg xcb_generic_error_t **e)
7670d429e5bSmrg {
7680d429e5bSmrg return (xcb_selinux_get_window_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7690d429e5bSmrg }
7700d429e5bSmrg
771ed2038faSmrg int
xcb_selinux_get_window_context_sizeof(const void * _buffer)772*ba6321feSmrg xcb_selinux_get_window_context_sizeof (const void *_buffer)
773ed2038faSmrg {
774ed2038faSmrg char *xcb_tmp = (char *)_buffer;
775ed2038faSmrg const xcb_selinux_get_window_context_reply_t *_aux = (xcb_selinux_get_window_context_reply_t *)_buffer;
776ed2038faSmrg unsigned int xcb_buffer_len = 0;
777ed2038faSmrg unsigned int xcb_block_len = 0;
778ed2038faSmrg unsigned int xcb_pad = 0;
7796f16f8b8Smrg unsigned int xcb_align_to = 0;
780ed2038faSmrg
781ed2038faSmrg
782ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_window_context_reply_t);
783ed2038faSmrg xcb_tmp += xcb_block_len;
7846f16f8b8Smrg xcb_buffer_len += xcb_block_len;
7856f16f8b8Smrg xcb_block_len = 0;
786ed2038faSmrg /* context */
787ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
788ed2038faSmrg xcb_tmp += xcb_block_len;
789ed2038faSmrg xcb_align_to = ALIGNOF(char);
790ed2038faSmrg /* insert padding */
791ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
792ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
793ed2038faSmrg if (0 != xcb_pad) {
794ed2038faSmrg xcb_tmp += xcb_pad;
795ed2038faSmrg xcb_pad = 0;
796ed2038faSmrg }
797ed2038faSmrg xcb_block_len = 0;
798ed2038faSmrg
799ed2038faSmrg return xcb_buffer_len;
800ed2038faSmrg }
801ed2038faSmrg
8020d429e5bSmrg xcb_selinux_get_window_context_cookie_t
xcb_selinux_get_window_context(xcb_connection_t * c,xcb_window_t window)803*ba6321feSmrg xcb_selinux_get_window_context (xcb_connection_t *c,
804*ba6321feSmrg xcb_window_t window)
8050d429e5bSmrg {
8060d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
807*ba6321feSmrg .count = 2,
808*ba6321feSmrg .ext = &xcb_selinux_id,
809*ba6321feSmrg .opcode = XCB_SELINUX_GET_WINDOW_CONTEXT,
810*ba6321feSmrg .isvoid = 0
8110d429e5bSmrg };
8120d429e5bSmrg
8130d429e5bSmrg struct iovec xcb_parts[4];
8140d429e5bSmrg xcb_selinux_get_window_context_cookie_t xcb_ret;
8150d429e5bSmrg xcb_selinux_get_window_context_request_t xcb_out;
8160d429e5bSmrg
8170d429e5bSmrg xcb_out.window = window;
8180d429e5bSmrg
8190d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
8200d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
8210d429e5bSmrg xcb_parts[3].iov_base = 0;
8220d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
823ed2038faSmrg
8240d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8250d429e5bSmrg return xcb_ret;
8260d429e5bSmrg }
8270d429e5bSmrg
8280d429e5bSmrg xcb_selinux_get_window_context_cookie_t
xcb_selinux_get_window_context_unchecked(xcb_connection_t * c,xcb_window_t window)829*ba6321feSmrg xcb_selinux_get_window_context_unchecked (xcb_connection_t *c,
830*ba6321feSmrg xcb_window_t window)
8310d429e5bSmrg {
8320d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
833*ba6321feSmrg .count = 2,
834*ba6321feSmrg .ext = &xcb_selinux_id,
835*ba6321feSmrg .opcode = XCB_SELINUX_GET_WINDOW_CONTEXT,
836*ba6321feSmrg .isvoid = 0
8370d429e5bSmrg };
8380d429e5bSmrg
8390d429e5bSmrg struct iovec xcb_parts[4];
8400d429e5bSmrg xcb_selinux_get_window_context_cookie_t xcb_ret;
8410d429e5bSmrg xcb_selinux_get_window_context_request_t xcb_out;
8420d429e5bSmrg
8430d429e5bSmrg xcb_out.window = window;
8440d429e5bSmrg
8450d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
8460d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
8470d429e5bSmrg xcb_parts[3].iov_base = 0;
8480d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
849ed2038faSmrg
8500d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8510d429e5bSmrg return xcb_ret;
8520d429e5bSmrg }
8530d429e5bSmrg
8540d429e5bSmrg char *
xcb_selinux_get_window_context_context(const xcb_selinux_get_window_context_reply_t * R)855*ba6321feSmrg xcb_selinux_get_window_context_context (const xcb_selinux_get_window_context_reply_t *R)
8560d429e5bSmrg {
8570d429e5bSmrg return (char *) (R + 1);
8580d429e5bSmrg }
8590d429e5bSmrg
8600d429e5bSmrg int
xcb_selinux_get_window_context_context_length(const xcb_selinux_get_window_context_reply_t * R)861*ba6321feSmrg xcb_selinux_get_window_context_context_length (const xcb_selinux_get_window_context_reply_t *R)
8620d429e5bSmrg {
8630d429e5bSmrg return R->context_len;
8640d429e5bSmrg }
8650d429e5bSmrg
8660d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_window_context_context_end(const xcb_selinux_get_window_context_reply_t * R)867*ba6321feSmrg xcb_selinux_get_window_context_context_end (const xcb_selinux_get_window_context_reply_t *R)
8680d429e5bSmrg {
8690d429e5bSmrg xcb_generic_iterator_t i;
8700d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
8710d429e5bSmrg i.rem = 0;
8720d429e5bSmrg i.index = (char *) i.data - (char *) R;
8730d429e5bSmrg return i;
8740d429e5bSmrg }
8750d429e5bSmrg
8760d429e5bSmrg xcb_selinux_get_window_context_reply_t *
xcb_selinux_get_window_context_reply(xcb_connection_t * c,xcb_selinux_get_window_context_cookie_t cookie,xcb_generic_error_t ** e)877*ba6321feSmrg xcb_selinux_get_window_context_reply (xcb_connection_t *c,
8780d429e5bSmrg xcb_selinux_get_window_context_cookie_t cookie /**< */,
879*ba6321feSmrg xcb_generic_error_t **e)
8800d429e5bSmrg {
8810d429e5bSmrg return (xcb_selinux_get_window_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
8820d429e5bSmrg }
8830d429e5bSmrg
884ed2038faSmrg int
xcb_selinux_list_item_sizeof(const void * _buffer)885*ba6321feSmrg xcb_selinux_list_item_sizeof (const void *_buffer)
886ed2038faSmrg {
887ed2038faSmrg char *xcb_tmp = (char *)_buffer;
888ed2038faSmrg const xcb_selinux_list_item_t *_aux = (xcb_selinux_list_item_t *)_buffer;
889ed2038faSmrg unsigned int xcb_buffer_len = 0;
890ed2038faSmrg unsigned int xcb_block_len = 0;
891ed2038faSmrg unsigned int xcb_pad = 0;
8926f16f8b8Smrg unsigned int xcb_align_to = 0;
893ed2038faSmrg
894ed2038faSmrg
895ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_list_item_t);
896ed2038faSmrg xcb_tmp += xcb_block_len;
8976f16f8b8Smrg xcb_buffer_len += xcb_block_len;
8986f16f8b8Smrg xcb_block_len = 0;
899ed2038faSmrg /* object_context */
900ed2038faSmrg xcb_block_len += _aux->object_context_len * sizeof(char);
901ed2038faSmrg xcb_tmp += xcb_block_len;
902ed2038faSmrg xcb_align_to = ALIGNOF(char);
903*ba6321feSmrg xcb_align_to = 4;
904*ba6321feSmrg /* insert padding */
905*ba6321feSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
906*ba6321feSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
907*ba6321feSmrg if (0 != xcb_pad) {
908*ba6321feSmrg xcb_tmp += xcb_pad;
909*ba6321feSmrg xcb_pad = 0;
910*ba6321feSmrg }
911*ba6321feSmrg xcb_block_len = 0;
912ed2038faSmrg /* insert padding */
913ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
914ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
915ed2038faSmrg if (0 != xcb_pad) {
916ed2038faSmrg xcb_tmp += xcb_pad;
917ed2038faSmrg xcb_pad = 0;
918ed2038faSmrg }
919ed2038faSmrg xcb_block_len = 0;
920ed2038faSmrg /* data_context */
921ed2038faSmrg xcb_block_len += _aux->data_context_len * sizeof(char);
922ed2038faSmrg xcb_tmp += xcb_block_len;
923ed2038faSmrg xcb_align_to = ALIGNOF(char);
924*ba6321feSmrg xcb_align_to = 4;
925*ba6321feSmrg /* insert padding */
926*ba6321feSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
927*ba6321feSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
928*ba6321feSmrg if (0 != xcb_pad) {
929*ba6321feSmrg xcb_tmp += xcb_pad;
930*ba6321feSmrg xcb_pad = 0;
931*ba6321feSmrg }
932*ba6321feSmrg xcb_block_len = 0;
933ed2038faSmrg /* insert padding */
934ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
935ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
936ed2038faSmrg if (0 != xcb_pad) {
937ed2038faSmrg xcb_tmp += xcb_pad;
938ed2038faSmrg xcb_pad = 0;
939ed2038faSmrg }
940ed2038faSmrg xcb_block_len = 0;
941ed2038faSmrg
942ed2038faSmrg return xcb_buffer_len;
943ed2038faSmrg }
944ed2038faSmrg
9450d429e5bSmrg char *
xcb_selinux_list_item_object_context(const xcb_selinux_list_item_t * R)946*ba6321feSmrg xcb_selinux_list_item_object_context (const xcb_selinux_list_item_t *R)
9470d429e5bSmrg {
9480d429e5bSmrg return (char *) (R + 1);
9490d429e5bSmrg }
9500d429e5bSmrg
9510d429e5bSmrg int
xcb_selinux_list_item_object_context_length(const xcb_selinux_list_item_t * R)952*ba6321feSmrg xcb_selinux_list_item_object_context_length (const xcb_selinux_list_item_t *R)
9530d429e5bSmrg {
9540d429e5bSmrg return R->object_context_len;
9550d429e5bSmrg }
9560d429e5bSmrg
9570d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_list_item_object_context_end(const xcb_selinux_list_item_t * R)958*ba6321feSmrg xcb_selinux_list_item_object_context_end (const xcb_selinux_list_item_t *R)
9590d429e5bSmrg {
9600d429e5bSmrg xcb_generic_iterator_t i;
9610d429e5bSmrg i.data = ((char *) (R + 1)) + (R->object_context_len);
9620d429e5bSmrg i.rem = 0;
9630d429e5bSmrg i.index = (char *) i.data - (char *) R;
9640d429e5bSmrg return i;
9650d429e5bSmrg }
9660d429e5bSmrg
9670d429e5bSmrg char *
xcb_selinux_list_item_data_context(const xcb_selinux_list_item_t * R)968*ba6321feSmrg xcb_selinux_list_item_data_context (const xcb_selinux_list_item_t *R)
9690d429e5bSmrg {
9700d429e5bSmrg xcb_generic_iterator_t prev = xcb_selinux_list_item_object_context_end(R);
971*ba6321feSmrg return (char *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0);
9720d429e5bSmrg }
9730d429e5bSmrg
9740d429e5bSmrg int
xcb_selinux_list_item_data_context_length(const xcb_selinux_list_item_t * R)975*ba6321feSmrg xcb_selinux_list_item_data_context_length (const xcb_selinux_list_item_t *R)
9760d429e5bSmrg {
9770d429e5bSmrg return R->data_context_len;
9780d429e5bSmrg }
9790d429e5bSmrg
9800d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_list_item_data_context_end(const xcb_selinux_list_item_t * R)981*ba6321feSmrg xcb_selinux_list_item_data_context_end (const xcb_selinux_list_item_t *R)
9820d429e5bSmrg {
9830d429e5bSmrg xcb_generic_iterator_t i;
984*ba6321feSmrg xcb_generic_iterator_t prev = xcb_selinux_list_item_object_context_end(R);
985*ba6321feSmrg i.data = ((char *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (R->data_context_len);
9860d429e5bSmrg i.rem = 0;
9870d429e5bSmrg i.index = (char *) i.data - (char *) R;
9880d429e5bSmrg return i;
9890d429e5bSmrg }
9900d429e5bSmrg
9910d429e5bSmrg void
xcb_selinux_list_item_next(xcb_selinux_list_item_iterator_t * i)992*ba6321feSmrg xcb_selinux_list_item_next (xcb_selinux_list_item_iterator_t *i)
9930d429e5bSmrg {
9940d429e5bSmrg xcb_selinux_list_item_t *R = i->data;
995ed2038faSmrg xcb_generic_iterator_t child;
996ed2038faSmrg child.data = (xcb_selinux_list_item_t *)(((char *)R) + xcb_selinux_list_item_sizeof(R));
997ed2038faSmrg i->index = (char *) child.data - (char *) i->data;
9980d429e5bSmrg --i->rem;
9990d429e5bSmrg i->data = (xcb_selinux_list_item_t *) child.data;
10000d429e5bSmrg }
10010d429e5bSmrg
10020d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_list_item_end(xcb_selinux_list_item_iterator_t i)1003*ba6321feSmrg xcb_selinux_list_item_end (xcb_selinux_list_item_iterator_t i)
10040d429e5bSmrg {
10050d429e5bSmrg xcb_generic_iterator_t ret;
10060d429e5bSmrg while(i.rem > 0)
10070d429e5bSmrg xcb_selinux_list_item_next(&i);
10080d429e5bSmrg ret.data = i.data;
10090d429e5bSmrg ret.rem = i.rem;
10100d429e5bSmrg ret.index = i.index;
10110d429e5bSmrg return ret;
10120d429e5bSmrg }
10130d429e5bSmrg
1014ed2038faSmrg int
xcb_selinux_set_property_create_context_sizeof(const void * _buffer)1015*ba6321feSmrg xcb_selinux_set_property_create_context_sizeof (const void *_buffer)
1016ed2038faSmrg {
1017ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1018ed2038faSmrg const xcb_selinux_set_property_create_context_request_t *_aux = (xcb_selinux_set_property_create_context_request_t *)_buffer;
1019ed2038faSmrg unsigned int xcb_buffer_len = 0;
1020ed2038faSmrg unsigned int xcb_block_len = 0;
1021ed2038faSmrg unsigned int xcb_pad = 0;
10226f16f8b8Smrg unsigned int xcb_align_to = 0;
1023ed2038faSmrg
1024ed2038faSmrg
1025ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_property_create_context_request_t);
1026ed2038faSmrg xcb_tmp += xcb_block_len;
10276f16f8b8Smrg xcb_buffer_len += xcb_block_len;
10286f16f8b8Smrg xcb_block_len = 0;
1029ed2038faSmrg /* context */
1030ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1031ed2038faSmrg xcb_tmp += xcb_block_len;
1032ed2038faSmrg xcb_align_to = ALIGNOF(char);
1033ed2038faSmrg /* insert padding */
1034ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1035ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1036ed2038faSmrg if (0 != xcb_pad) {
1037ed2038faSmrg xcb_tmp += xcb_pad;
1038ed2038faSmrg xcb_pad = 0;
1039ed2038faSmrg }
1040ed2038faSmrg xcb_block_len = 0;
1041ed2038faSmrg
1042ed2038faSmrg return xcb_buffer_len;
1043ed2038faSmrg }
1044ed2038faSmrg
10450d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_property_create_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)1046*ba6321feSmrg xcb_selinux_set_property_create_context_checked (xcb_connection_t *c,
1047*ba6321feSmrg uint32_t context_len,
1048*ba6321feSmrg const char *context)
10490d429e5bSmrg {
10500d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1051*ba6321feSmrg .count = 4,
1052*ba6321feSmrg .ext = &xcb_selinux_id,
1053*ba6321feSmrg .opcode = XCB_SELINUX_SET_PROPERTY_CREATE_CONTEXT,
1054*ba6321feSmrg .isvoid = 1
10550d429e5bSmrg };
10560d429e5bSmrg
10570d429e5bSmrg struct iovec xcb_parts[6];
10580d429e5bSmrg xcb_void_cookie_t xcb_ret;
10590d429e5bSmrg xcb_selinux_set_property_create_context_request_t xcb_out;
10600d429e5bSmrg
10610d429e5bSmrg xcb_out.context_len = context_len;
10620d429e5bSmrg
10630d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
10640d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
10650d429e5bSmrg xcb_parts[3].iov_base = 0;
10660d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1067ed2038faSmrg /* char context */
10680d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
10690d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
10700d429e5bSmrg xcb_parts[5].iov_base = 0;
10710d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1072ed2038faSmrg
10730d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10740d429e5bSmrg return xcb_ret;
10750d429e5bSmrg }
10760d429e5bSmrg
10770d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_property_create_context(xcb_connection_t * c,uint32_t context_len,const char * context)1078*ba6321feSmrg xcb_selinux_set_property_create_context (xcb_connection_t *c,
1079*ba6321feSmrg uint32_t context_len,
1080*ba6321feSmrg const char *context)
10810d429e5bSmrg {
10820d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1083*ba6321feSmrg .count = 4,
1084*ba6321feSmrg .ext = &xcb_selinux_id,
1085*ba6321feSmrg .opcode = XCB_SELINUX_SET_PROPERTY_CREATE_CONTEXT,
1086*ba6321feSmrg .isvoid = 1
10870d429e5bSmrg };
10880d429e5bSmrg
10890d429e5bSmrg struct iovec xcb_parts[6];
10900d429e5bSmrg xcb_void_cookie_t xcb_ret;
10910d429e5bSmrg xcb_selinux_set_property_create_context_request_t xcb_out;
10920d429e5bSmrg
10930d429e5bSmrg xcb_out.context_len = context_len;
10940d429e5bSmrg
10950d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
10960d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
10970d429e5bSmrg xcb_parts[3].iov_base = 0;
10980d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1099ed2038faSmrg /* char context */
11000d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
11010d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
11020d429e5bSmrg xcb_parts[5].iov_base = 0;
11030d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1104ed2038faSmrg
11050d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11060d429e5bSmrg return xcb_ret;
11070d429e5bSmrg }
11080d429e5bSmrg
1109*ba6321feSmrg char *
xcb_selinux_set_property_create_context_context(const xcb_selinux_set_property_create_context_request_t * R)1110*ba6321feSmrg xcb_selinux_set_property_create_context_context (const xcb_selinux_set_property_create_context_request_t *R)
1111*ba6321feSmrg {
1112*ba6321feSmrg return (char *) (R + 1);
1113*ba6321feSmrg }
1114*ba6321feSmrg
1115ed2038faSmrg int
xcb_selinux_set_property_create_context_context_length(const xcb_selinux_set_property_create_context_request_t * R)1116*ba6321feSmrg xcb_selinux_set_property_create_context_context_length (const xcb_selinux_set_property_create_context_request_t *R)
1117*ba6321feSmrg {
1118*ba6321feSmrg return R->context_len;
1119*ba6321feSmrg }
1120*ba6321feSmrg
1121*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_property_create_context_context_end(const xcb_selinux_set_property_create_context_request_t * R)1122*ba6321feSmrg xcb_selinux_set_property_create_context_context_end (const xcb_selinux_set_property_create_context_request_t *R)
1123*ba6321feSmrg {
1124*ba6321feSmrg xcb_generic_iterator_t i;
1125*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
1126*ba6321feSmrg i.rem = 0;
1127*ba6321feSmrg i.index = (char *) i.data - (char *) R;
1128*ba6321feSmrg return i;
1129*ba6321feSmrg }
1130*ba6321feSmrg
1131*ba6321feSmrg int
xcb_selinux_get_property_create_context_sizeof(const void * _buffer)1132*ba6321feSmrg xcb_selinux_get_property_create_context_sizeof (const void *_buffer)
1133ed2038faSmrg {
1134ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1135ed2038faSmrg const xcb_selinux_get_property_create_context_reply_t *_aux = (xcb_selinux_get_property_create_context_reply_t *)_buffer;
1136ed2038faSmrg unsigned int xcb_buffer_len = 0;
1137ed2038faSmrg unsigned int xcb_block_len = 0;
1138ed2038faSmrg unsigned int xcb_pad = 0;
11396f16f8b8Smrg unsigned int xcb_align_to = 0;
1140ed2038faSmrg
1141ed2038faSmrg
1142ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_property_create_context_reply_t);
1143ed2038faSmrg xcb_tmp += xcb_block_len;
11446f16f8b8Smrg xcb_buffer_len += xcb_block_len;
11456f16f8b8Smrg xcb_block_len = 0;
1146ed2038faSmrg /* context */
1147ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1148ed2038faSmrg xcb_tmp += xcb_block_len;
1149ed2038faSmrg xcb_align_to = ALIGNOF(char);
1150ed2038faSmrg /* insert padding */
1151ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1152ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1153ed2038faSmrg if (0 != xcb_pad) {
1154ed2038faSmrg xcb_tmp += xcb_pad;
1155ed2038faSmrg xcb_pad = 0;
1156ed2038faSmrg }
1157ed2038faSmrg xcb_block_len = 0;
1158ed2038faSmrg
1159ed2038faSmrg return xcb_buffer_len;
1160ed2038faSmrg }
1161ed2038faSmrg
11620d429e5bSmrg xcb_selinux_get_property_create_context_cookie_t
xcb_selinux_get_property_create_context(xcb_connection_t * c)1163*ba6321feSmrg xcb_selinux_get_property_create_context (xcb_connection_t *c)
11640d429e5bSmrg {
11650d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1166*ba6321feSmrg .count = 2,
1167*ba6321feSmrg .ext = &xcb_selinux_id,
1168*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_CREATE_CONTEXT,
1169*ba6321feSmrg .isvoid = 0
11700d429e5bSmrg };
11710d429e5bSmrg
11720d429e5bSmrg struct iovec xcb_parts[4];
11730d429e5bSmrg xcb_selinux_get_property_create_context_cookie_t xcb_ret;
11740d429e5bSmrg xcb_selinux_get_property_create_context_request_t xcb_out;
11750d429e5bSmrg
11760d429e5bSmrg
11770d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
11780d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
11790d429e5bSmrg xcb_parts[3].iov_base = 0;
11800d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1181ed2038faSmrg
11820d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11830d429e5bSmrg return xcb_ret;
11840d429e5bSmrg }
11850d429e5bSmrg
11860d429e5bSmrg xcb_selinux_get_property_create_context_cookie_t
xcb_selinux_get_property_create_context_unchecked(xcb_connection_t * c)1187*ba6321feSmrg xcb_selinux_get_property_create_context_unchecked (xcb_connection_t *c)
11880d429e5bSmrg {
11890d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1190*ba6321feSmrg .count = 2,
1191*ba6321feSmrg .ext = &xcb_selinux_id,
1192*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_CREATE_CONTEXT,
1193*ba6321feSmrg .isvoid = 0
11940d429e5bSmrg };
11950d429e5bSmrg
11960d429e5bSmrg struct iovec xcb_parts[4];
11970d429e5bSmrg xcb_selinux_get_property_create_context_cookie_t xcb_ret;
11980d429e5bSmrg xcb_selinux_get_property_create_context_request_t xcb_out;
11990d429e5bSmrg
12000d429e5bSmrg
12010d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
12020d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
12030d429e5bSmrg xcb_parts[3].iov_base = 0;
12040d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1205ed2038faSmrg
12060d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12070d429e5bSmrg return xcb_ret;
12080d429e5bSmrg }
12090d429e5bSmrg
12100d429e5bSmrg char *
xcb_selinux_get_property_create_context_context(const xcb_selinux_get_property_create_context_reply_t * R)1211*ba6321feSmrg xcb_selinux_get_property_create_context_context (const xcb_selinux_get_property_create_context_reply_t *R)
12120d429e5bSmrg {
12130d429e5bSmrg return (char *) (R + 1);
12140d429e5bSmrg }
12150d429e5bSmrg
12160d429e5bSmrg int
xcb_selinux_get_property_create_context_context_length(const xcb_selinux_get_property_create_context_reply_t * R)1217*ba6321feSmrg xcb_selinux_get_property_create_context_context_length (const xcb_selinux_get_property_create_context_reply_t *R)
12180d429e5bSmrg {
12190d429e5bSmrg return R->context_len;
12200d429e5bSmrg }
12210d429e5bSmrg
12220d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_property_create_context_context_end(const xcb_selinux_get_property_create_context_reply_t * R)1223*ba6321feSmrg xcb_selinux_get_property_create_context_context_end (const xcb_selinux_get_property_create_context_reply_t *R)
12240d429e5bSmrg {
12250d429e5bSmrg xcb_generic_iterator_t i;
12260d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
12270d429e5bSmrg i.rem = 0;
12280d429e5bSmrg i.index = (char *) i.data - (char *) R;
12290d429e5bSmrg return i;
12300d429e5bSmrg }
12310d429e5bSmrg
12320d429e5bSmrg xcb_selinux_get_property_create_context_reply_t *
xcb_selinux_get_property_create_context_reply(xcb_connection_t * c,xcb_selinux_get_property_create_context_cookie_t cookie,xcb_generic_error_t ** e)1233*ba6321feSmrg xcb_selinux_get_property_create_context_reply (xcb_connection_t *c,
12340d429e5bSmrg xcb_selinux_get_property_create_context_cookie_t cookie /**< */,
1235*ba6321feSmrg xcb_generic_error_t **e)
12360d429e5bSmrg {
12370d429e5bSmrg return (xcb_selinux_get_property_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
12380d429e5bSmrg }
12390d429e5bSmrg
1240ed2038faSmrg int
xcb_selinux_set_property_use_context_sizeof(const void * _buffer)1241*ba6321feSmrg xcb_selinux_set_property_use_context_sizeof (const void *_buffer)
1242ed2038faSmrg {
1243ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1244ed2038faSmrg const xcb_selinux_set_property_use_context_request_t *_aux = (xcb_selinux_set_property_use_context_request_t *)_buffer;
1245ed2038faSmrg unsigned int xcb_buffer_len = 0;
1246ed2038faSmrg unsigned int xcb_block_len = 0;
1247ed2038faSmrg unsigned int xcb_pad = 0;
12486f16f8b8Smrg unsigned int xcb_align_to = 0;
1249ed2038faSmrg
1250ed2038faSmrg
1251ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_property_use_context_request_t);
1252ed2038faSmrg xcb_tmp += xcb_block_len;
12536f16f8b8Smrg xcb_buffer_len += xcb_block_len;
12546f16f8b8Smrg xcb_block_len = 0;
1255ed2038faSmrg /* context */
1256ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1257ed2038faSmrg xcb_tmp += xcb_block_len;
1258ed2038faSmrg xcb_align_to = ALIGNOF(char);
1259ed2038faSmrg /* insert padding */
1260ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1261ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1262ed2038faSmrg if (0 != xcb_pad) {
1263ed2038faSmrg xcb_tmp += xcb_pad;
1264ed2038faSmrg xcb_pad = 0;
1265ed2038faSmrg }
1266ed2038faSmrg xcb_block_len = 0;
1267ed2038faSmrg
1268ed2038faSmrg return xcb_buffer_len;
1269ed2038faSmrg }
1270ed2038faSmrg
12710d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_property_use_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)1272*ba6321feSmrg xcb_selinux_set_property_use_context_checked (xcb_connection_t *c,
1273*ba6321feSmrg uint32_t context_len,
1274*ba6321feSmrg const char *context)
12750d429e5bSmrg {
12760d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1277*ba6321feSmrg .count = 4,
1278*ba6321feSmrg .ext = &xcb_selinux_id,
1279*ba6321feSmrg .opcode = XCB_SELINUX_SET_PROPERTY_USE_CONTEXT,
1280*ba6321feSmrg .isvoid = 1
12810d429e5bSmrg };
12820d429e5bSmrg
12830d429e5bSmrg struct iovec xcb_parts[6];
12840d429e5bSmrg xcb_void_cookie_t xcb_ret;
12850d429e5bSmrg xcb_selinux_set_property_use_context_request_t xcb_out;
12860d429e5bSmrg
12870d429e5bSmrg xcb_out.context_len = context_len;
12880d429e5bSmrg
12890d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
12900d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
12910d429e5bSmrg xcb_parts[3].iov_base = 0;
12920d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1293ed2038faSmrg /* char context */
12940d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
12950d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
12960d429e5bSmrg xcb_parts[5].iov_base = 0;
12970d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1298ed2038faSmrg
12990d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13000d429e5bSmrg return xcb_ret;
13010d429e5bSmrg }
13020d429e5bSmrg
13030d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_property_use_context(xcb_connection_t * c,uint32_t context_len,const char * context)1304*ba6321feSmrg xcb_selinux_set_property_use_context (xcb_connection_t *c,
1305*ba6321feSmrg uint32_t context_len,
1306*ba6321feSmrg const char *context)
13070d429e5bSmrg {
13080d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1309*ba6321feSmrg .count = 4,
1310*ba6321feSmrg .ext = &xcb_selinux_id,
1311*ba6321feSmrg .opcode = XCB_SELINUX_SET_PROPERTY_USE_CONTEXT,
1312*ba6321feSmrg .isvoid = 1
13130d429e5bSmrg };
13140d429e5bSmrg
13150d429e5bSmrg struct iovec xcb_parts[6];
13160d429e5bSmrg xcb_void_cookie_t xcb_ret;
13170d429e5bSmrg xcb_selinux_set_property_use_context_request_t xcb_out;
13180d429e5bSmrg
13190d429e5bSmrg xcb_out.context_len = context_len;
13200d429e5bSmrg
13210d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
13220d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
13230d429e5bSmrg xcb_parts[3].iov_base = 0;
13240d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1325ed2038faSmrg /* char context */
13260d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
13270d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
13280d429e5bSmrg xcb_parts[5].iov_base = 0;
13290d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1330ed2038faSmrg
13310d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13320d429e5bSmrg return xcb_ret;
13330d429e5bSmrg }
13340d429e5bSmrg
1335*ba6321feSmrg char *
xcb_selinux_set_property_use_context_context(const xcb_selinux_set_property_use_context_request_t * R)1336*ba6321feSmrg xcb_selinux_set_property_use_context_context (const xcb_selinux_set_property_use_context_request_t *R)
1337*ba6321feSmrg {
1338*ba6321feSmrg return (char *) (R + 1);
1339*ba6321feSmrg }
1340*ba6321feSmrg
1341ed2038faSmrg int
xcb_selinux_set_property_use_context_context_length(const xcb_selinux_set_property_use_context_request_t * R)1342*ba6321feSmrg xcb_selinux_set_property_use_context_context_length (const xcb_selinux_set_property_use_context_request_t *R)
1343*ba6321feSmrg {
1344*ba6321feSmrg return R->context_len;
1345*ba6321feSmrg }
1346*ba6321feSmrg
1347*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_property_use_context_context_end(const xcb_selinux_set_property_use_context_request_t * R)1348*ba6321feSmrg xcb_selinux_set_property_use_context_context_end (const xcb_selinux_set_property_use_context_request_t *R)
1349*ba6321feSmrg {
1350*ba6321feSmrg xcb_generic_iterator_t i;
1351*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
1352*ba6321feSmrg i.rem = 0;
1353*ba6321feSmrg i.index = (char *) i.data - (char *) R;
1354*ba6321feSmrg return i;
1355*ba6321feSmrg }
1356*ba6321feSmrg
1357*ba6321feSmrg int
xcb_selinux_get_property_use_context_sizeof(const void * _buffer)1358*ba6321feSmrg xcb_selinux_get_property_use_context_sizeof (const void *_buffer)
1359ed2038faSmrg {
1360ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1361ed2038faSmrg const xcb_selinux_get_property_use_context_reply_t *_aux = (xcb_selinux_get_property_use_context_reply_t *)_buffer;
1362ed2038faSmrg unsigned int xcb_buffer_len = 0;
1363ed2038faSmrg unsigned int xcb_block_len = 0;
1364ed2038faSmrg unsigned int xcb_pad = 0;
13656f16f8b8Smrg unsigned int xcb_align_to = 0;
1366ed2038faSmrg
1367ed2038faSmrg
1368ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_property_use_context_reply_t);
1369ed2038faSmrg xcb_tmp += xcb_block_len;
13706f16f8b8Smrg xcb_buffer_len += xcb_block_len;
13716f16f8b8Smrg xcb_block_len = 0;
1372ed2038faSmrg /* context */
1373ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1374ed2038faSmrg xcb_tmp += xcb_block_len;
1375ed2038faSmrg xcb_align_to = ALIGNOF(char);
1376ed2038faSmrg /* insert padding */
1377ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1378ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1379ed2038faSmrg if (0 != xcb_pad) {
1380ed2038faSmrg xcb_tmp += xcb_pad;
1381ed2038faSmrg xcb_pad = 0;
1382ed2038faSmrg }
1383ed2038faSmrg xcb_block_len = 0;
1384ed2038faSmrg
1385ed2038faSmrg return xcb_buffer_len;
1386ed2038faSmrg }
1387ed2038faSmrg
13880d429e5bSmrg xcb_selinux_get_property_use_context_cookie_t
xcb_selinux_get_property_use_context(xcb_connection_t * c)1389*ba6321feSmrg xcb_selinux_get_property_use_context (xcb_connection_t *c)
13900d429e5bSmrg {
13910d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1392*ba6321feSmrg .count = 2,
1393*ba6321feSmrg .ext = &xcb_selinux_id,
1394*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_USE_CONTEXT,
1395*ba6321feSmrg .isvoid = 0
13960d429e5bSmrg };
13970d429e5bSmrg
13980d429e5bSmrg struct iovec xcb_parts[4];
13990d429e5bSmrg xcb_selinux_get_property_use_context_cookie_t xcb_ret;
14000d429e5bSmrg xcb_selinux_get_property_use_context_request_t xcb_out;
14010d429e5bSmrg
14020d429e5bSmrg
14030d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
14040d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
14050d429e5bSmrg xcb_parts[3].iov_base = 0;
14060d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1407ed2038faSmrg
14080d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
14090d429e5bSmrg return xcb_ret;
14100d429e5bSmrg }
14110d429e5bSmrg
14120d429e5bSmrg xcb_selinux_get_property_use_context_cookie_t
xcb_selinux_get_property_use_context_unchecked(xcb_connection_t * c)1413*ba6321feSmrg xcb_selinux_get_property_use_context_unchecked (xcb_connection_t *c)
14140d429e5bSmrg {
14150d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1416*ba6321feSmrg .count = 2,
1417*ba6321feSmrg .ext = &xcb_selinux_id,
1418*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_USE_CONTEXT,
1419*ba6321feSmrg .isvoid = 0
14200d429e5bSmrg };
14210d429e5bSmrg
14220d429e5bSmrg struct iovec xcb_parts[4];
14230d429e5bSmrg xcb_selinux_get_property_use_context_cookie_t xcb_ret;
14240d429e5bSmrg xcb_selinux_get_property_use_context_request_t xcb_out;
14250d429e5bSmrg
14260d429e5bSmrg
14270d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
14280d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
14290d429e5bSmrg xcb_parts[3].iov_base = 0;
14300d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1431ed2038faSmrg
14320d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
14330d429e5bSmrg return xcb_ret;
14340d429e5bSmrg }
14350d429e5bSmrg
14360d429e5bSmrg char *
xcb_selinux_get_property_use_context_context(const xcb_selinux_get_property_use_context_reply_t * R)1437*ba6321feSmrg xcb_selinux_get_property_use_context_context (const xcb_selinux_get_property_use_context_reply_t *R)
14380d429e5bSmrg {
14390d429e5bSmrg return (char *) (R + 1);
14400d429e5bSmrg }
14410d429e5bSmrg
14420d429e5bSmrg int
xcb_selinux_get_property_use_context_context_length(const xcb_selinux_get_property_use_context_reply_t * R)1443*ba6321feSmrg xcb_selinux_get_property_use_context_context_length (const xcb_selinux_get_property_use_context_reply_t *R)
14440d429e5bSmrg {
14450d429e5bSmrg return R->context_len;
14460d429e5bSmrg }
14470d429e5bSmrg
14480d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_property_use_context_context_end(const xcb_selinux_get_property_use_context_reply_t * R)1449*ba6321feSmrg xcb_selinux_get_property_use_context_context_end (const xcb_selinux_get_property_use_context_reply_t *R)
14500d429e5bSmrg {
14510d429e5bSmrg xcb_generic_iterator_t i;
14520d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
14530d429e5bSmrg i.rem = 0;
14540d429e5bSmrg i.index = (char *) i.data - (char *) R;
14550d429e5bSmrg return i;
14560d429e5bSmrg }
14570d429e5bSmrg
14580d429e5bSmrg xcb_selinux_get_property_use_context_reply_t *
xcb_selinux_get_property_use_context_reply(xcb_connection_t * c,xcb_selinux_get_property_use_context_cookie_t cookie,xcb_generic_error_t ** e)1459*ba6321feSmrg xcb_selinux_get_property_use_context_reply (xcb_connection_t *c,
14600d429e5bSmrg xcb_selinux_get_property_use_context_cookie_t cookie /**< */,
1461*ba6321feSmrg xcb_generic_error_t **e)
14620d429e5bSmrg {
14630d429e5bSmrg return (xcb_selinux_get_property_use_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
14640d429e5bSmrg }
14650d429e5bSmrg
1466ed2038faSmrg int
xcb_selinux_get_property_context_sizeof(const void * _buffer)1467*ba6321feSmrg xcb_selinux_get_property_context_sizeof (const void *_buffer)
1468ed2038faSmrg {
1469ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1470ed2038faSmrg const xcb_selinux_get_property_context_reply_t *_aux = (xcb_selinux_get_property_context_reply_t *)_buffer;
1471ed2038faSmrg unsigned int xcb_buffer_len = 0;
1472ed2038faSmrg unsigned int xcb_block_len = 0;
1473ed2038faSmrg unsigned int xcb_pad = 0;
14746f16f8b8Smrg unsigned int xcb_align_to = 0;
1475ed2038faSmrg
1476ed2038faSmrg
1477ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_property_context_reply_t);
1478ed2038faSmrg xcb_tmp += xcb_block_len;
14796f16f8b8Smrg xcb_buffer_len += xcb_block_len;
14806f16f8b8Smrg xcb_block_len = 0;
1481ed2038faSmrg /* context */
1482ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1483ed2038faSmrg xcb_tmp += xcb_block_len;
1484ed2038faSmrg xcb_align_to = ALIGNOF(char);
1485ed2038faSmrg /* insert padding */
1486ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1487ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1488ed2038faSmrg if (0 != xcb_pad) {
1489ed2038faSmrg xcb_tmp += xcb_pad;
1490ed2038faSmrg xcb_pad = 0;
1491ed2038faSmrg }
1492ed2038faSmrg xcb_block_len = 0;
1493ed2038faSmrg
1494ed2038faSmrg return xcb_buffer_len;
1495ed2038faSmrg }
1496ed2038faSmrg
14970d429e5bSmrg xcb_selinux_get_property_context_cookie_t
xcb_selinux_get_property_context(xcb_connection_t * c,xcb_window_t window,xcb_atom_t property)1498*ba6321feSmrg xcb_selinux_get_property_context (xcb_connection_t *c,
1499*ba6321feSmrg xcb_window_t window,
1500*ba6321feSmrg xcb_atom_t property)
15010d429e5bSmrg {
15020d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1503*ba6321feSmrg .count = 2,
1504*ba6321feSmrg .ext = &xcb_selinux_id,
1505*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_CONTEXT,
1506*ba6321feSmrg .isvoid = 0
15070d429e5bSmrg };
15080d429e5bSmrg
15090d429e5bSmrg struct iovec xcb_parts[4];
15100d429e5bSmrg xcb_selinux_get_property_context_cookie_t xcb_ret;
15110d429e5bSmrg xcb_selinux_get_property_context_request_t xcb_out;
15120d429e5bSmrg
15130d429e5bSmrg xcb_out.window = window;
15140d429e5bSmrg xcb_out.property = property;
15150d429e5bSmrg
15160d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
15170d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
15180d429e5bSmrg xcb_parts[3].iov_base = 0;
15190d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1520ed2038faSmrg
15210d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
15220d429e5bSmrg return xcb_ret;
15230d429e5bSmrg }
15240d429e5bSmrg
15250d429e5bSmrg xcb_selinux_get_property_context_cookie_t
xcb_selinux_get_property_context_unchecked(xcb_connection_t * c,xcb_window_t window,xcb_atom_t property)1526*ba6321feSmrg xcb_selinux_get_property_context_unchecked (xcb_connection_t *c,
1527*ba6321feSmrg xcb_window_t window,
1528*ba6321feSmrg xcb_atom_t property)
15290d429e5bSmrg {
15300d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1531*ba6321feSmrg .count = 2,
1532*ba6321feSmrg .ext = &xcb_selinux_id,
1533*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_CONTEXT,
1534*ba6321feSmrg .isvoid = 0
15350d429e5bSmrg };
15360d429e5bSmrg
15370d429e5bSmrg struct iovec xcb_parts[4];
15380d429e5bSmrg xcb_selinux_get_property_context_cookie_t xcb_ret;
15390d429e5bSmrg xcb_selinux_get_property_context_request_t xcb_out;
15400d429e5bSmrg
15410d429e5bSmrg xcb_out.window = window;
15420d429e5bSmrg xcb_out.property = property;
15430d429e5bSmrg
15440d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
15450d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
15460d429e5bSmrg xcb_parts[3].iov_base = 0;
15470d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1548ed2038faSmrg
15490d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
15500d429e5bSmrg return xcb_ret;
15510d429e5bSmrg }
15520d429e5bSmrg
15530d429e5bSmrg char *
xcb_selinux_get_property_context_context(const xcb_selinux_get_property_context_reply_t * R)1554*ba6321feSmrg xcb_selinux_get_property_context_context (const xcb_selinux_get_property_context_reply_t *R)
15550d429e5bSmrg {
15560d429e5bSmrg return (char *) (R + 1);
15570d429e5bSmrg }
15580d429e5bSmrg
15590d429e5bSmrg int
xcb_selinux_get_property_context_context_length(const xcb_selinux_get_property_context_reply_t * R)1560*ba6321feSmrg xcb_selinux_get_property_context_context_length (const xcb_selinux_get_property_context_reply_t *R)
15610d429e5bSmrg {
15620d429e5bSmrg return R->context_len;
15630d429e5bSmrg }
15640d429e5bSmrg
15650d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_property_context_context_end(const xcb_selinux_get_property_context_reply_t * R)1566*ba6321feSmrg xcb_selinux_get_property_context_context_end (const xcb_selinux_get_property_context_reply_t *R)
15670d429e5bSmrg {
15680d429e5bSmrg xcb_generic_iterator_t i;
15690d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
15700d429e5bSmrg i.rem = 0;
15710d429e5bSmrg i.index = (char *) i.data - (char *) R;
15720d429e5bSmrg return i;
15730d429e5bSmrg }
15740d429e5bSmrg
15750d429e5bSmrg xcb_selinux_get_property_context_reply_t *
xcb_selinux_get_property_context_reply(xcb_connection_t * c,xcb_selinux_get_property_context_cookie_t cookie,xcb_generic_error_t ** e)1576*ba6321feSmrg xcb_selinux_get_property_context_reply (xcb_connection_t *c,
15770d429e5bSmrg xcb_selinux_get_property_context_cookie_t cookie /**< */,
1578*ba6321feSmrg xcb_generic_error_t **e)
15790d429e5bSmrg {
15800d429e5bSmrg return (xcb_selinux_get_property_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
15810d429e5bSmrg }
15820d429e5bSmrg
1583ed2038faSmrg int
xcb_selinux_get_property_data_context_sizeof(const void * _buffer)1584*ba6321feSmrg xcb_selinux_get_property_data_context_sizeof (const void *_buffer)
1585ed2038faSmrg {
1586ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1587ed2038faSmrg const xcb_selinux_get_property_data_context_reply_t *_aux = (xcb_selinux_get_property_data_context_reply_t *)_buffer;
1588ed2038faSmrg unsigned int xcb_buffer_len = 0;
1589ed2038faSmrg unsigned int xcb_block_len = 0;
1590ed2038faSmrg unsigned int xcb_pad = 0;
15916f16f8b8Smrg unsigned int xcb_align_to = 0;
1592ed2038faSmrg
1593ed2038faSmrg
1594ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_property_data_context_reply_t);
1595ed2038faSmrg xcb_tmp += xcb_block_len;
15966f16f8b8Smrg xcb_buffer_len += xcb_block_len;
15976f16f8b8Smrg xcb_block_len = 0;
1598ed2038faSmrg /* context */
1599ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1600ed2038faSmrg xcb_tmp += xcb_block_len;
1601ed2038faSmrg xcb_align_to = ALIGNOF(char);
1602ed2038faSmrg /* insert padding */
1603ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1604ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1605ed2038faSmrg if (0 != xcb_pad) {
1606ed2038faSmrg xcb_tmp += xcb_pad;
1607ed2038faSmrg xcb_pad = 0;
1608ed2038faSmrg }
1609ed2038faSmrg xcb_block_len = 0;
1610ed2038faSmrg
1611ed2038faSmrg return xcb_buffer_len;
1612ed2038faSmrg }
1613ed2038faSmrg
16140d429e5bSmrg xcb_selinux_get_property_data_context_cookie_t
xcb_selinux_get_property_data_context(xcb_connection_t * c,xcb_window_t window,xcb_atom_t property)1615*ba6321feSmrg xcb_selinux_get_property_data_context (xcb_connection_t *c,
1616*ba6321feSmrg xcb_window_t window,
1617*ba6321feSmrg xcb_atom_t property)
16180d429e5bSmrg {
16190d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1620*ba6321feSmrg .count = 2,
1621*ba6321feSmrg .ext = &xcb_selinux_id,
1622*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_DATA_CONTEXT,
1623*ba6321feSmrg .isvoid = 0
16240d429e5bSmrg };
16250d429e5bSmrg
16260d429e5bSmrg struct iovec xcb_parts[4];
16270d429e5bSmrg xcb_selinux_get_property_data_context_cookie_t xcb_ret;
16280d429e5bSmrg xcb_selinux_get_property_data_context_request_t xcb_out;
16290d429e5bSmrg
16300d429e5bSmrg xcb_out.window = window;
16310d429e5bSmrg xcb_out.property = property;
16320d429e5bSmrg
16330d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
16340d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
16350d429e5bSmrg xcb_parts[3].iov_base = 0;
16360d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1637ed2038faSmrg
16380d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
16390d429e5bSmrg return xcb_ret;
16400d429e5bSmrg }
16410d429e5bSmrg
16420d429e5bSmrg xcb_selinux_get_property_data_context_cookie_t
xcb_selinux_get_property_data_context_unchecked(xcb_connection_t * c,xcb_window_t window,xcb_atom_t property)1643*ba6321feSmrg xcb_selinux_get_property_data_context_unchecked (xcb_connection_t *c,
1644*ba6321feSmrg xcb_window_t window,
1645*ba6321feSmrg xcb_atom_t property)
16460d429e5bSmrg {
16470d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1648*ba6321feSmrg .count = 2,
1649*ba6321feSmrg .ext = &xcb_selinux_id,
1650*ba6321feSmrg .opcode = XCB_SELINUX_GET_PROPERTY_DATA_CONTEXT,
1651*ba6321feSmrg .isvoid = 0
16520d429e5bSmrg };
16530d429e5bSmrg
16540d429e5bSmrg struct iovec xcb_parts[4];
16550d429e5bSmrg xcb_selinux_get_property_data_context_cookie_t xcb_ret;
16560d429e5bSmrg xcb_selinux_get_property_data_context_request_t xcb_out;
16570d429e5bSmrg
16580d429e5bSmrg xcb_out.window = window;
16590d429e5bSmrg xcb_out.property = property;
16600d429e5bSmrg
16610d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
16620d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
16630d429e5bSmrg xcb_parts[3].iov_base = 0;
16640d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1665ed2038faSmrg
16660d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
16670d429e5bSmrg return xcb_ret;
16680d429e5bSmrg }
16690d429e5bSmrg
16700d429e5bSmrg char *
xcb_selinux_get_property_data_context_context(const xcb_selinux_get_property_data_context_reply_t * R)1671*ba6321feSmrg xcb_selinux_get_property_data_context_context (const xcb_selinux_get_property_data_context_reply_t *R)
16720d429e5bSmrg {
16730d429e5bSmrg return (char *) (R + 1);
16740d429e5bSmrg }
16750d429e5bSmrg
16760d429e5bSmrg int
xcb_selinux_get_property_data_context_context_length(const xcb_selinux_get_property_data_context_reply_t * R)1677*ba6321feSmrg xcb_selinux_get_property_data_context_context_length (const xcb_selinux_get_property_data_context_reply_t *R)
16780d429e5bSmrg {
16790d429e5bSmrg return R->context_len;
16800d429e5bSmrg }
16810d429e5bSmrg
16820d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_property_data_context_context_end(const xcb_selinux_get_property_data_context_reply_t * R)1683*ba6321feSmrg xcb_selinux_get_property_data_context_context_end (const xcb_selinux_get_property_data_context_reply_t *R)
16840d429e5bSmrg {
16850d429e5bSmrg xcb_generic_iterator_t i;
16860d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
16870d429e5bSmrg i.rem = 0;
16880d429e5bSmrg i.index = (char *) i.data - (char *) R;
16890d429e5bSmrg return i;
16900d429e5bSmrg }
16910d429e5bSmrg
16920d429e5bSmrg xcb_selinux_get_property_data_context_reply_t *
xcb_selinux_get_property_data_context_reply(xcb_connection_t * c,xcb_selinux_get_property_data_context_cookie_t cookie,xcb_generic_error_t ** e)1693*ba6321feSmrg xcb_selinux_get_property_data_context_reply (xcb_connection_t *c,
16940d429e5bSmrg xcb_selinux_get_property_data_context_cookie_t cookie /**< */,
1695*ba6321feSmrg xcb_generic_error_t **e)
16960d429e5bSmrg {
16970d429e5bSmrg return (xcb_selinux_get_property_data_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
16980d429e5bSmrg }
16990d429e5bSmrg
1700ed2038faSmrg int
xcb_selinux_list_properties_sizeof(const void * _buffer)1701*ba6321feSmrg xcb_selinux_list_properties_sizeof (const void *_buffer)
1702ed2038faSmrg {
1703ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1704ed2038faSmrg const xcb_selinux_list_properties_reply_t *_aux = (xcb_selinux_list_properties_reply_t *)_buffer;
1705ed2038faSmrg unsigned int xcb_buffer_len = 0;
1706ed2038faSmrg unsigned int xcb_block_len = 0;
1707ed2038faSmrg unsigned int xcb_pad = 0;
17086f16f8b8Smrg unsigned int xcb_align_to = 0;
1709ed2038faSmrg
1710ed2038faSmrg unsigned int i;
1711ed2038faSmrg unsigned int xcb_tmp_len;
1712ed2038faSmrg
1713ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_list_properties_reply_t);
1714ed2038faSmrg xcb_tmp += xcb_block_len;
17156f16f8b8Smrg xcb_buffer_len += xcb_block_len;
17166f16f8b8Smrg xcb_block_len = 0;
1717ed2038faSmrg /* properties */
1718ed2038faSmrg for(i=0; i<_aux->properties_len; i++) {
1719ed2038faSmrg xcb_tmp_len = xcb_selinux_list_item_sizeof(xcb_tmp);
1720ed2038faSmrg xcb_block_len += xcb_tmp_len;
1721ed2038faSmrg xcb_tmp += xcb_tmp_len;
1722ed2038faSmrg }
1723ed2038faSmrg xcb_align_to = ALIGNOF(xcb_selinux_list_item_t);
1724ed2038faSmrg /* insert padding */
1725ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1726ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1727ed2038faSmrg if (0 != xcb_pad) {
1728ed2038faSmrg xcb_tmp += xcb_pad;
1729ed2038faSmrg xcb_pad = 0;
1730ed2038faSmrg }
1731ed2038faSmrg xcb_block_len = 0;
1732ed2038faSmrg
1733ed2038faSmrg return xcb_buffer_len;
1734ed2038faSmrg }
1735ed2038faSmrg
17360d429e5bSmrg xcb_selinux_list_properties_cookie_t
xcb_selinux_list_properties(xcb_connection_t * c,xcb_window_t window)1737*ba6321feSmrg xcb_selinux_list_properties (xcb_connection_t *c,
1738*ba6321feSmrg xcb_window_t window)
17390d429e5bSmrg {
17400d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1741*ba6321feSmrg .count = 2,
1742*ba6321feSmrg .ext = &xcb_selinux_id,
1743*ba6321feSmrg .opcode = XCB_SELINUX_LIST_PROPERTIES,
1744*ba6321feSmrg .isvoid = 0
17450d429e5bSmrg };
17460d429e5bSmrg
17470d429e5bSmrg struct iovec xcb_parts[4];
17480d429e5bSmrg xcb_selinux_list_properties_cookie_t xcb_ret;
17490d429e5bSmrg xcb_selinux_list_properties_request_t xcb_out;
17500d429e5bSmrg
17510d429e5bSmrg xcb_out.window = window;
17520d429e5bSmrg
17530d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
17540d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
17550d429e5bSmrg xcb_parts[3].iov_base = 0;
17560d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1757ed2038faSmrg
17580d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
17590d429e5bSmrg return xcb_ret;
17600d429e5bSmrg }
17610d429e5bSmrg
17620d429e5bSmrg xcb_selinux_list_properties_cookie_t
xcb_selinux_list_properties_unchecked(xcb_connection_t * c,xcb_window_t window)1763*ba6321feSmrg xcb_selinux_list_properties_unchecked (xcb_connection_t *c,
1764*ba6321feSmrg xcb_window_t window)
17650d429e5bSmrg {
17660d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1767*ba6321feSmrg .count = 2,
1768*ba6321feSmrg .ext = &xcb_selinux_id,
1769*ba6321feSmrg .opcode = XCB_SELINUX_LIST_PROPERTIES,
1770*ba6321feSmrg .isvoid = 0
17710d429e5bSmrg };
17720d429e5bSmrg
17730d429e5bSmrg struct iovec xcb_parts[4];
17740d429e5bSmrg xcb_selinux_list_properties_cookie_t xcb_ret;
17750d429e5bSmrg xcb_selinux_list_properties_request_t xcb_out;
17760d429e5bSmrg
17770d429e5bSmrg xcb_out.window = window;
17780d429e5bSmrg
17790d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
17800d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
17810d429e5bSmrg xcb_parts[3].iov_base = 0;
17820d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1783ed2038faSmrg
17840d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
17850d429e5bSmrg return xcb_ret;
17860d429e5bSmrg }
17870d429e5bSmrg
17880d429e5bSmrg int
xcb_selinux_list_properties_properties_length(const xcb_selinux_list_properties_reply_t * R)1789*ba6321feSmrg xcb_selinux_list_properties_properties_length (const xcb_selinux_list_properties_reply_t *R)
17900d429e5bSmrg {
17910d429e5bSmrg return R->properties_len;
17920d429e5bSmrg }
17930d429e5bSmrg
17940d429e5bSmrg xcb_selinux_list_item_iterator_t
xcb_selinux_list_properties_properties_iterator(const xcb_selinux_list_properties_reply_t * R)1795*ba6321feSmrg xcb_selinux_list_properties_properties_iterator (const xcb_selinux_list_properties_reply_t *R)
17960d429e5bSmrg {
17970d429e5bSmrg xcb_selinux_list_item_iterator_t i;
17980d429e5bSmrg i.data = (xcb_selinux_list_item_t *) (R + 1);
17990d429e5bSmrg i.rem = R->properties_len;
18000d429e5bSmrg i.index = (char *) i.data - (char *) R;
18010d429e5bSmrg return i;
18020d429e5bSmrg }
18030d429e5bSmrg
18040d429e5bSmrg xcb_selinux_list_properties_reply_t *
xcb_selinux_list_properties_reply(xcb_connection_t * c,xcb_selinux_list_properties_cookie_t cookie,xcb_generic_error_t ** e)1805*ba6321feSmrg xcb_selinux_list_properties_reply (xcb_connection_t *c,
18060d429e5bSmrg xcb_selinux_list_properties_cookie_t cookie /**< */,
1807*ba6321feSmrg xcb_generic_error_t **e)
18080d429e5bSmrg {
18090d429e5bSmrg return (xcb_selinux_list_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
18100d429e5bSmrg }
18110d429e5bSmrg
1812ed2038faSmrg int
xcb_selinux_set_selection_create_context_sizeof(const void * _buffer)1813*ba6321feSmrg xcb_selinux_set_selection_create_context_sizeof (const void *_buffer)
1814ed2038faSmrg {
1815ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1816ed2038faSmrg const xcb_selinux_set_selection_create_context_request_t *_aux = (xcb_selinux_set_selection_create_context_request_t *)_buffer;
1817ed2038faSmrg unsigned int xcb_buffer_len = 0;
1818ed2038faSmrg unsigned int xcb_block_len = 0;
1819ed2038faSmrg unsigned int xcb_pad = 0;
18206f16f8b8Smrg unsigned int xcb_align_to = 0;
1821ed2038faSmrg
1822ed2038faSmrg
1823ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_selection_create_context_request_t);
1824ed2038faSmrg xcb_tmp += xcb_block_len;
18256f16f8b8Smrg xcb_buffer_len += xcb_block_len;
18266f16f8b8Smrg xcb_block_len = 0;
1827ed2038faSmrg /* context */
1828ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1829ed2038faSmrg xcb_tmp += xcb_block_len;
1830ed2038faSmrg xcb_align_to = ALIGNOF(char);
1831ed2038faSmrg /* insert padding */
1832ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1833ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1834ed2038faSmrg if (0 != xcb_pad) {
1835ed2038faSmrg xcb_tmp += xcb_pad;
1836ed2038faSmrg xcb_pad = 0;
1837ed2038faSmrg }
1838ed2038faSmrg xcb_block_len = 0;
1839ed2038faSmrg
1840ed2038faSmrg return xcb_buffer_len;
1841ed2038faSmrg }
1842ed2038faSmrg
18430d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_selection_create_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)1844*ba6321feSmrg xcb_selinux_set_selection_create_context_checked (xcb_connection_t *c,
1845*ba6321feSmrg uint32_t context_len,
1846*ba6321feSmrg const char *context)
18470d429e5bSmrg {
18480d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1849*ba6321feSmrg .count = 4,
1850*ba6321feSmrg .ext = &xcb_selinux_id,
1851*ba6321feSmrg .opcode = XCB_SELINUX_SET_SELECTION_CREATE_CONTEXT,
1852*ba6321feSmrg .isvoid = 1
18530d429e5bSmrg };
18540d429e5bSmrg
18550d429e5bSmrg struct iovec xcb_parts[6];
18560d429e5bSmrg xcb_void_cookie_t xcb_ret;
18570d429e5bSmrg xcb_selinux_set_selection_create_context_request_t xcb_out;
18580d429e5bSmrg
18590d429e5bSmrg xcb_out.context_len = context_len;
18600d429e5bSmrg
18610d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
18620d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
18630d429e5bSmrg xcb_parts[3].iov_base = 0;
18640d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1865ed2038faSmrg /* char context */
18660d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
18670d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
18680d429e5bSmrg xcb_parts[5].iov_base = 0;
18690d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1870ed2038faSmrg
18710d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
18720d429e5bSmrg return xcb_ret;
18730d429e5bSmrg }
18740d429e5bSmrg
18750d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_selection_create_context(xcb_connection_t * c,uint32_t context_len,const char * context)1876*ba6321feSmrg xcb_selinux_set_selection_create_context (xcb_connection_t *c,
1877*ba6321feSmrg uint32_t context_len,
1878*ba6321feSmrg const char *context)
18790d429e5bSmrg {
18800d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1881*ba6321feSmrg .count = 4,
1882*ba6321feSmrg .ext = &xcb_selinux_id,
1883*ba6321feSmrg .opcode = XCB_SELINUX_SET_SELECTION_CREATE_CONTEXT,
1884*ba6321feSmrg .isvoid = 1
18850d429e5bSmrg };
18860d429e5bSmrg
18870d429e5bSmrg struct iovec xcb_parts[6];
18880d429e5bSmrg xcb_void_cookie_t xcb_ret;
18890d429e5bSmrg xcb_selinux_set_selection_create_context_request_t xcb_out;
18900d429e5bSmrg
18910d429e5bSmrg xcb_out.context_len = context_len;
18920d429e5bSmrg
18930d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
18940d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
18950d429e5bSmrg xcb_parts[3].iov_base = 0;
18960d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1897ed2038faSmrg /* char context */
18980d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
18990d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
19000d429e5bSmrg xcb_parts[5].iov_base = 0;
19010d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1902ed2038faSmrg
19030d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
19040d429e5bSmrg return xcb_ret;
19050d429e5bSmrg }
19060d429e5bSmrg
1907*ba6321feSmrg char *
xcb_selinux_set_selection_create_context_context(const xcb_selinux_set_selection_create_context_request_t * R)1908*ba6321feSmrg xcb_selinux_set_selection_create_context_context (const xcb_selinux_set_selection_create_context_request_t *R)
1909*ba6321feSmrg {
1910*ba6321feSmrg return (char *) (R + 1);
1911*ba6321feSmrg }
1912*ba6321feSmrg
1913ed2038faSmrg int
xcb_selinux_set_selection_create_context_context_length(const xcb_selinux_set_selection_create_context_request_t * R)1914*ba6321feSmrg xcb_selinux_set_selection_create_context_context_length (const xcb_selinux_set_selection_create_context_request_t *R)
1915*ba6321feSmrg {
1916*ba6321feSmrg return R->context_len;
1917*ba6321feSmrg }
1918*ba6321feSmrg
1919*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_selection_create_context_context_end(const xcb_selinux_set_selection_create_context_request_t * R)1920*ba6321feSmrg xcb_selinux_set_selection_create_context_context_end (const xcb_selinux_set_selection_create_context_request_t *R)
1921*ba6321feSmrg {
1922*ba6321feSmrg xcb_generic_iterator_t i;
1923*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
1924*ba6321feSmrg i.rem = 0;
1925*ba6321feSmrg i.index = (char *) i.data - (char *) R;
1926*ba6321feSmrg return i;
1927*ba6321feSmrg }
1928*ba6321feSmrg
1929*ba6321feSmrg int
xcb_selinux_get_selection_create_context_sizeof(const void * _buffer)1930*ba6321feSmrg xcb_selinux_get_selection_create_context_sizeof (const void *_buffer)
1931ed2038faSmrg {
1932ed2038faSmrg char *xcb_tmp = (char *)_buffer;
1933ed2038faSmrg const xcb_selinux_get_selection_create_context_reply_t *_aux = (xcb_selinux_get_selection_create_context_reply_t *)_buffer;
1934ed2038faSmrg unsigned int xcb_buffer_len = 0;
1935ed2038faSmrg unsigned int xcb_block_len = 0;
1936ed2038faSmrg unsigned int xcb_pad = 0;
19376f16f8b8Smrg unsigned int xcb_align_to = 0;
1938ed2038faSmrg
1939ed2038faSmrg
1940ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_selection_create_context_reply_t);
1941ed2038faSmrg xcb_tmp += xcb_block_len;
19426f16f8b8Smrg xcb_buffer_len += xcb_block_len;
19436f16f8b8Smrg xcb_block_len = 0;
1944ed2038faSmrg /* context */
1945ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
1946ed2038faSmrg xcb_tmp += xcb_block_len;
1947ed2038faSmrg xcb_align_to = ALIGNOF(char);
1948ed2038faSmrg /* insert padding */
1949ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1950ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
1951ed2038faSmrg if (0 != xcb_pad) {
1952ed2038faSmrg xcb_tmp += xcb_pad;
1953ed2038faSmrg xcb_pad = 0;
1954ed2038faSmrg }
1955ed2038faSmrg xcb_block_len = 0;
1956ed2038faSmrg
1957ed2038faSmrg return xcb_buffer_len;
1958ed2038faSmrg }
1959ed2038faSmrg
19600d429e5bSmrg xcb_selinux_get_selection_create_context_cookie_t
xcb_selinux_get_selection_create_context(xcb_connection_t * c)1961*ba6321feSmrg xcb_selinux_get_selection_create_context (xcb_connection_t *c)
19620d429e5bSmrg {
19630d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1964*ba6321feSmrg .count = 2,
1965*ba6321feSmrg .ext = &xcb_selinux_id,
1966*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_CREATE_CONTEXT,
1967*ba6321feSmrg .isvoid = 0
19680d429e5bSmrg };
19690d429e5bSmrg
19700d429e5bSmrg struct iovec xcb_parts[4];
19710d429e5bSmrg xcb_selinux_get_selection_create_context_cookie_t xcb_ret;
19720d429e5bSmrg xcb_selinux_get_selection_create_context_request_t xcb_out;
19730d429e5bSmrg
19740d429e5bSmrg
19750d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
19760d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
19770d429e5bSmrg xcb_parts[3].iov_base = 0;
19780d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1979ed2038faSmrg
19800d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
19810d429e5bSmrg return xcb_ret;
19820d429e5bSmrg }
19830d429e5bSmrg
19840d429e5bSmrg xcb_selinux_get_selection_create_context_cookie_t
xcb_selinux_get_selection_create_context_unchecked(xcb_connection_t * c)1985*ba6321feSmrg xcb_selinux_get_selection_create_context_unchecked (xcb_connection_t *c)
19860d429e5bSmrg {
19870d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
1988*ba6321feSmrg .count = 2,
1989*ba6321feSmrg .ext = &xcb_selinux_id,
1990*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_CREATE_CONTEXT,
1991*ba6321feSmrg .isvoid = 0
19920d429e5bSmrg };
19930d429e5bSmrg
19940d429e5bSmrg struct iovec xcb_parts[4];
19950d429e5bSmrg xcb_selinux_get_selection_create_context_cookie_t xcb_ret;
19960d429e5bSmrg xcb_selinux_get_selection_create_context_request_t xcb_out;
19970d429e5bSmrg
19980d429e5bSmrg
19990d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
20000d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
20010d429e5bSmrg xcb_parts[3].iov_base = 0;
20020d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2003ed2038faSmrg
20040d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
20050d429e5bSmrg return xcb_ret;
20060d429e5bSmrg }
20070d429e5bSmrg
20080d429e5bSmrg char *
xcb_selinux_get_selection_create_context_context(const xcb_selinux_get_selection_create_context_reply_t * R)2009*ba6321feSmrg xcb_selinux_get_selection_create_context_context (const xcb_selinux_get_selection_create_context_reply_t *R)
20100d429e5bSmrg {
20110d429e5bSmrg return (char *) (R + 1);
20120d429e5bSmrg }
20130d429e5bSmrg
20140d429e5bSmrg int
xcb_selinux_get_selection_create_context_context_length(const xcb_selinux_get_selection_create_context_reply_t * R)2015*ba6321feSmrg xcb_selinux_get_selection_create_context_context_length (const xcb_selinux_get_selection_create_context_reply_t *R)
20160d429e5bSmrg {
20170d429e5bSmrg return R->context_len;
20180d429e5bSmrg }
20190d429e5bSmrg
20200d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_selection_create_context_context_end(const xcb_selinux_get_selection_create_context_reply_t * R)2021*ba6321feSmrg xcb_selinux_get_selection_create_context_context_end (const xcb_selinux_get_selection_create_context_reply_t *R)
20220d429e5bSmrg {
20230d429e5bSmrg xcb_generic_iterator_t i;
20240d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
20250d429e5bSmrg i.rem = 0;
20260d429e5bSmrg i.index = (char *) i.data - (char *) R;
20270d429e5bSmrg return i;
20280d429e5bSmrg }
20290d429e5bSmrg
20300d429e5bSmrg xcb_selinux_get_selection_create_context_reply_t *
xcb_selinux_get_selection_create_context_reply(xcb_connection_t * c,xcb_selinux_get_selection_create_context_cookie_t cookie,xcb_generic_error_t ** e)2031*ba6321feSmrg xcb_selinux_get_selection_create_context_reply (xcb_connection_t *c,
20320d429e5bSmrg xcb_selinux_get_selection_create_context_cookie_t cookie /**< */,
2033*ba6321feSmrg xcb_generic_error_t **e)
20340d429e5bSmrg {
20350d429e5bSmrg return (xcb_selinux_get_selection_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
20360d429e5bSmrg }
20370d429e5bSmrg
2038ed2038faSmrg int
xcb_selinux_set_selection_use_context_sizeof(const void * _buffer)2039*ba6321feSmrg xcb_selinux_set_selection_use_context_sizeof (const void *_buffer)
2040ed2038faSmrg {
2041ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2042ed2038faSmrg const xcb_selinux_set_selection_use_context_request_t *_aux = (xcb_selinux_set_selection_use_context_request_t *)_buffer;
2043ed2038faSmrg unsigned int xcb_buffer_len = 0;
2044ed2038faSmrg unsigned int xcb_block_len = 0;
2045ed2038faSmrg unsigned int xcb_pad = 0;
20466f16f8b8Smrg unsigned int xcb_align_to = 0;
2047ed2038faSmrg
2048ed2038faSmrg
2049ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_set_selection_use_context_request_t);
2050ed2038faSmrg xcb_tmp += xcb_block_len;
20516f16f8b8Smrg xcb_buffer_len += xcb_block_len;
20526f16f8b8Smrg xcb_block_len = 0;
2053ed2038faSmrg /* context */
2054ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
2055ed2038faSmrg xcb_tmp += xcb_block_len;
2056ed2038faSmrg xcb_align_to = ALIGNOF(char);
2057ed2038faSmrg /* insert padding */
2058ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2059ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2060ed2038faSmrg if (0 != xcb_pad) {
2061ed2038faSmrg xcb_tmp += xcb_pad;
2062ed2038faSmrg xcb_pad = 0;
2063ed2038faSmrg }
2064ed2038faSmrg xcb_block_len = 0;
2065ed2038faSmrg
2066ed2038faSmrg return xcb_buffer_len;
2067ed2038faSmrg }
2068ed2038faSmrg
20690d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_selection_use_context_checked(xcb_connection_t * c,uint32_t context_len,const char * context)2070*ba6321feSmrg xcb_selinux_set_selection_use_context_checked (xcb_connection_t *c,
2071*ba6321feSmrg uint32_t context_len,
2072*ba6321feSmrg const char *context)
20730d429e5bSmrg {
20740d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2075*ba6321feSmrg .count = 4,
2076*ba6321feSmrg .ext = &xcb_selinux_id,
2077*ba6321feSmrg .opcode = XCB_SELINUX_SET_SELECTION_USE_CONTEXT,
2078*ba6321feSmrg .isvoid = 1
20790d429e5bSmrg };
20800d429e5bSmrg
20810d429e5bSmrg struct iovec xcb_parts[6];
20820d429e5bSmrg xcb_void_cookie_t xcb_ret;
20830d429e5bSmrg xcb_selinux_set_selection_use_context_request_t xcb_out;
20840d429e5bSmrg
20850d429e5bSmrg xcb_out.context_len = context_len;
20860d429e5bSmrg
20870d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
20880d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
20890d429e5bSmrg xcb_parts[3].iov_base = 0;
20900d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2091ed2038faSmrg /* char context */
20920d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
20930d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
20940d429e5bSmrg xcb_parts[5].iov_base = 0;
20950d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2096ed2038faSmrg
20970d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
20980d429e5bSmrg return xcb_ret;
20990d429e5bSmrg }
21000d429e5bSmrg
21010d429e5bSmrg xcb_void_cookie_t
xcb_selinux_set_selection_use_context(xcb_connection_t * c,uint32_t context_len,const char * context)2102*ba6321feSmrg xcb_selinux_set_selection_use_context (xcb_connection_t *c,
2103*ba6321feSmrg uint32_t context_len,
2104*ba6321feSmrg const char *context)
21050d429e5bSmrg {
21060d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2107*ba6321feSmrg .count = 4,
2108*ba6321feSmrg .ext = &xcb_selinux_id,
2109*ba6321feSmrg .opcode = XCB_SELINUX_SET_SELECTION_USE_CONTEXT,
2110*ba6321feSmrg .isvoid = 1
21110d429e5bSmrg };
21120d429e5bSmrg
21130d429e5bSmrg struct iovec xcb_parts[6];
21140d429e5bSmrg xcb_void_cookie_t xcb_ret;
21150d429e5bSmrg xcb_selinux_set_selection_use_context_request_t xcb_out;
21160d429e5bSmrg
21170d429e5bSmrg xcb_out.context_len = context_len;
21180d429e5bSmrg
21190d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
21200d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
21210d429e5bSmrg xcb_parts[3].iov_base = 0;
21220d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2123ed2038faSmrg /* char context */
21240d429e5bSmrg xcb_parts[4].iov_base = (char *) context;
21250d429e5bSmrg xcb_parts[4].iov_len = context_len * sizeof(char);
21260d429e5bSmrg xcb_parts[5].iov_base = 0;
21270d429e5bSmrg xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2128ed2038faSmrg
21290d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
21300d429e5bSmrg return xcb_ret;
21310d429e5bSmrg }
21320d429e5bSmrg
2133*ba6321feSmrg char *
xcb_selinux_set_selection_use_context_context(const xcb_selinux_set_selection_use_context_request_t * R)2134*ba6321feSmrg xcb_selinux_set_selection_use_context_context (const xcb_selinux_set_selection_use_context_request_t *R)
2135*ba6321feSmrg {
2136*ba6321feSmrg return (char *) (R + 1);
2137*ba6321feSmrg }
2138*ba6321feSmrg
2139ed2038faSmrg int
xcb_selinux_set_selection_use_context_context_length(const xcb_selinux_set_selection_use_context_request_t * R)2140*ba6321feSmrg xcb_selinux_set_selection_use_context_context_length (const xcb_selinux_set_selection_use_context_request_t *R)
2141*ba6321feSmrg {
2142*ba6321feSmrg return R->context_len;
2143*ba6321feSmrg }
2144*ba6321feSmrg
2145*ba6321feSmrg xcb_generic_iterator_t
xcb_selinux_set_selection_use_context_context_end(const xcb_selinux_set_selection_use_context_request_t * R)2146*ba6321feSmrg xcb_selinux_set_selection_use_context_context_end (const xcb_selinux_set_selection_use_context_request_t *R)
2147*ba6321feSmrg {
2148*ba6321feSmrg xcb_generic_iterator_t i;
2149*ba6321feSmrg i.data = ((char *) (R + 1)) + (R->context_len);
2150*ba6321feSmrg i.rem = 0;
2151*ba6321feSmrg i.index = (char *) i.data - (char *) R;
2152*ba6321feSmrg return i;
2153*ba6321feSmrg }
2154*ba6321feSmrg
2155*ba6321feSmrg int
xcb_selinux_get_selection_use_context_sizeof(const void * _buffer)2156*ba6321feSmrg xcb_selinux_get_selection_use_context_sizeof (const void *_buffer)
2157ed2038faSmrg {
2158ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2159ed2038faSmrg const xcb_selinux_get_selection_use_context_reply_t *_aux = (xcb_selinux_get_selection_use_context_reply_t *)_buffer;
2160ed2038faSmrg unsigned int xcb_buffer_len = 0;
2161ed2038faSmrg unsigned int xcb_block_len = 0;
2162ed2038faSmrg unsigned int xcb_pad = 0;
21636f16f8b8Smrg unsigned int xcb_align_to = 0;
2164ed2038faSmrg
2165ed2038faSmrg
2166ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_selection_use_context_reply_t);
2167ed2038faSmrg xcb_tmp += xcb_block_len;
21686f16f8b8Smrg xcb_buffer_len += xcb_block_len;
21696f16f8b8Smrg xcb_block_len = 0;
2170ed2038faSmrg /* context */
2171ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
2172ed2038faSmrg xcb_tmp += xcb_block_len;
2173ed2038faSmrg xcb_align_to = ALIGNOF(char);
2174ed2038faSmrg /* insert padding */
2175ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2176ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2177ed2038faSmrg if (0 != xcb_pad) {
2178ed2038faSmrg xcb_tmp += xcb_pad;
2179ed2038faSmrg xcb_pad = 0;
2180ed2038faSmrg }
2181ed2038faSmrg xcb_block_len = 0;
2182ed2038faSmrg
2183ed2038faSmrg return xcb_buffer_len;
2184ed2038faSmrg }
2185ed2038faSmrg
21860d429e5bSmrg xcb_selinux_get_selection_use_context_cookie_t
xcb_selinux_get_selection_use_context(xcb_connection_t * c)2187*ba6321feSmrg xcb_selinux_get_selection_use_context (xcb_connection_t *c)
21880d429e5bSmrg {
21890d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2190*ba6321feSmrg .count = 2,
2191*ba6321feSmrg .ext = &xcb_selinux_id,
2192*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_USE_CONTEXT,
2193*ba6321feSmrg .isvoid = 0
21940d429e5bSmrg };
21950d429e5bSmrg
21960d429e5bSmrg struct iovec xcb_parts[4];
21970d429e5bSmrg xcb_selinux_get_selection_use_context_cookie_t xcb_ret;
21980d429e5bSmrg xcb_selinux_get_selection_use_context_request_t xcb_out;
21990d429e5bSmrg
22000d429e5bSmrg
22010d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
22020d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
22030d429e5bSmrg xcb_parts[3].iov_base = 0;
22040d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2205ed2038faSmrg
22060d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
22070d429e5bSmrg return xcb_ret;
22080d429e5bSmrg }
22090d429e5bSmrg
22100d429e5bSmrg xcb_selinux_get_selection_use_context_cookie_t
xcb_selinux_get_selection_use_context_unchecked(xcb_connection_t * c)2211*ba6321feSmrg xcb_selinux_get_selection_use_context_unchecked (xcb_connection_t *c)
22120d429e5bSmrg {
22130d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2214*ba6321feSmrg .count = 2,
2215*ba6321feSmrg .ext = &xcb_selinux_id,
2216*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_USE_CONTEXT,
2217*ba6321feSmrg .isvoid = 0
22180d429e5bSmrg };
22190d429e5bSmrg
22200d429e5bSmrg struct iovec xcb_parts[4];
22210d429e5bSmrg xcb_selinux_get_selection_use_context_cookie_t xcb_ret;
22220d429e5bSmrg xcb_selinux_get_selection_use_context_request_t xcb_out;
22230d429e5bSmrg
22240d429e5bSmrg
22250d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
22260d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
22270d429e5bSmrg xcb_parts[3].iov_base = 0;
22280d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2229ed2038faSmrg
22300d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
22310d429e5bSmrg return xcb_ret;
22320d429e5bSmrg }
22330d429e5bSmrg
22340d429e5bSmrg char *
xcb_selinux_get_selection_use_context_context(const xcb_selinux_get_selection_use_context_reply_t * R)2235*ba6321feSmrg xcb_selinux_get_selection_use_context_context (const xcb_selinux_get_selection_use_context_reply_t *R)
22360d429e5bSmrg {
22370d429e5bSmrg return (char *) (R + 1);
22380d429e5bSmrg }
22390d429e5bSmrg
22400d429e5bSmrg int
xcb_selinux_get_selection_use_context_context_length(const xcb_selinux_get_selection_use_context_reply_t * R)2241*ba6321feSmrg xcb_selinux_get_selection_use_context_context_length (const xcb_selinux_get_selection_use_context_reply_t *R)
22420d429e5bSmrg {
22430d429e5bSmrg return R->context_len;
22440d429e5bSmrg }
22450d429e5bSmrg
22460d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_selection_use_context_context_end(const xcb_selinux_get_selection_use_context_reply_t * R)2247*ba6321feSmrg xcb_selinux_get_selection_use_context_context_end (const xcb_selinux_get_selection_use_context_reply_t *R)
22480d429e5bSmrg {
22490d429e5bSmrg xcb_generic_iterator_t i;
22500d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
22510d429e5bSmrg i.rem = 0;
22520d429e5bSmrg i.index = (char *) i.data - (char *) R;
22530d429e5bSmrg return i;
22540d429e5bSmrg }
22550d429e5bSmrg
22560d429e5bSmrg xcb_selinux_get_selection_use_context_reply_t *
xcb_selinux_get_selection_use_context_reply(xcb_connection_t * c,xcb_selinux_get_selection_use_context_cookie_t cookie,xcb_generic_error_t ** e)2257*ba6321feSmrg xcb_selinux_get_selection_use_context_reply (xcb_connection_t *c,
22580d429e5bSmrg xcb_selinux_get_selection_use_context_cookie_t cookie /**< */,
2259*ba6321feSmrg xcb_generic_error_t **e)
22600d429e5bSmrg {
22610d429e5bSmrg return (xcb_selinux_get_selection_use_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
22620d429e5bSmrg }
22630d429e5bSmrg
2264ed2038faSmrg int
xcb_selinux_get_selection_context_sizeof(const void * _buffer)2265*ba6321feSmrg xcb_selinux_get_selection_context_sizeof (const void *_buffer)
2266ed2038faSmrg {
2267ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2268ed2038faSmrg const xcb_selinux_get_selection_context_reply_t *_aux = (xcb_selinux_get_selection_context_reply_t *)_buffer;
2269ed2038faSmrg unsigned int xcb_buffer_len = 0;
2270ed2038faSmrg unsigned int xcb_block_len = 0;
2271ed2038faSmrg unsigned int xcb_pad = 0;
22726f16f8b8Smrg unsigned int xcb_align_to = 0;
2273ed2038faSmrg
2274ed2038faSmrg
2275ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_selection_context_reply_t);
2276ed2038faSmrg xcb_tmp += xcb_block_len;
22776f16f8b8Smrg xcb_buffer_len += xcb_block_len;
22786f16f8b8Smrg xcb_block_len = 0;
2279ed2038faSmrg /* context */
2280ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
2281ed2038faSmrg xcb_tmp += xcb_block_len;
2282ed2038faSmrg xcb_align_to = ALIGNOF(char);
2283ed2038faSmrg /* insert padding */
2284ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2285ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2286ed2038faSmrg if (0 != xcb_pad) {
2287ed2038faSmrg xcb_tmp += xcb_pad;
2288ed2038faSmrg xcb_pad = 0;
2289ed2038faSmrg }
2290ed2038faSmrg xcb_block_len = 0;
2291ed2038faSmrg
2292ed2038faSmrg return xcb_buffer_len;
2293ed2038faSmrg }
2294ed2038faSmrg
22950d429e5bSmrg xcb_selinux_get_selection_context_cookie_t
xcb_selinux_get_selection_context(xcb_connection_t * c,xcb_atom_t selection)2296*ba6321feSmrg xcb_selinux_get_selection_context (xcb_connection_t *c,
2297*ba6321feSmrg xcb_atom_t selection)
22980d429e5bSmrg {
22990d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2300*ba6321feSmrg .count = 2,
2301*ba6321feSmrg .ext = &xcb_selinux_id,
2302*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_CONTEXT,
2303*ba6321feSmrg .isvoid = 0
23040d429e5bSmrg };
23050d429e5bSmrg
23060d429e5bSmrg struct iovec xcb_parts[4];
23070d429e5bSmrg xcb_selinux_get_selection_context_cookie_t xcb_ret;
23080d429e5bSmrg xcb_selinux_get_selection_context_request_t xcb_out;
23090d429e5bSmrg
23100d429e5bSmrg xcb_out.selection = selection;
23110d429e5bSmrg
23120d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
23130d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
23140d429e5bSmrg xcb_parts[3].iov_base = 0;
23150d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2316ed2038faSmrg
23170d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
23180d429e5bSmrg return xcb_ret;
23190d429e5bSmrg }
23200d429e5bSmrg
23210d429e5bSmrg xcb_selinux_get_selection_context_cookie_t
xcb_selinux_get_selection_context_unchecked(xcb_connection_t * c,xcb_atom_t selection)2322*ba6321feSmrg xcb_selinux_get_selection_context_unchecked (xcb_connection_t *c,
2323*ba6321feSmrg xcb_atom_t selection)
23240d429e5bSmrg {
23250d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2326*ba6321feSmrg .count = 2,
2327*ba6321feSmrg .ext = &xcb_selinux_id,
2328*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_CONTEXT,
2329*ba6321feSmrg .isvoid = 0
23300d429e5bSmrg };
23310d429e5bSmrg
23320d429e5bSmrg struct iovec xcb_parts[4];
23330d429e5bSmrg xcb_selinux_get_selection_context_cookie_t xcb_ret;
23340d429e5bSmrg xcb_selinux_get_selection_context_request_t xcb_out;
23350d429e5bSmrg
23360d429e5bSmrg xcb_out.selection = selection;
23370d429e5bSmrg
23380d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
23390d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
23400d429e5bSmrg xcb_parts[3].iov_base = 0;
23410d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2342ed2038faSmrg
23430d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
23440d429e5bSmrg return xcb_ret;
23450d429e5bSmrg }
23460d429e5bSmrg
23470d429e5bSmrg char *
xcb_selinux_get_selection_context_context(const xcb_selinux_get_selection_context_reply_t * R)2348*ba6321feSmrg xcb_selinux_get_selection_context_context (const xcb_selinux_get_selection_context_reply_t *R)
23490d429e5bSmrg {
23500d429e5bSmrg return (char *) (R + 1);
23510d429e5bSmrg }
23520d429e5bSmrg
23530d429e5bSmrg int
xcb_selinux_get_selection_context_context_length(const xcb_selinux_get_selection_context_reply_t * R)2354*ba6321feSmrg xcb_selinux_get_selection_context_context_length (const xcb_selinux_get_selection_context_reply_t *R)
23550d429e5bSmrg {
23560d429e5bSmrg return R->context_len;
23570d429e5bSmrg }
23580d429e5bSmrg
23590d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_selection_context_context_end(const xcb_selinux_get_selection_context_reply_t * R)2360*ba6321feSmrg xcb_selinux_get_selection_context_context_end (const xcb_selinux_get_selection_context_reply_t *R)
23610d429e5bSmrg {
23620d429e5bSmrg xcb_generic_iterator_t i;
23630d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
23640d429e5bSmrg i.rem = 0;
23650d429e5bSmrg i.index = (char *) i.data - (char *) R;
23660d429e5bSmrg return i;
23670d429e5bSmrg }
23680d429e5bSmrg
23690d429e5bSmrg xcb_selinux_get_selection_context_reply_t *
xcb_selinux_get_selection_context_reply(xcb_connection_t * c,xcb_selinux_get_selection_context_cookie_t cookie,xcb_generic_error_t ** e)2370*ba6321feSmrg xcb_selinux_get_selection_context_reply (xcb_connection_t *c,
23710d429e5bSmrg xcb_selinux_get_selection_context_cookie_t cookie /**< */,
2372*ba6321feSmrg xcb_generic_error_t **e)
23730d429e5bSmrg {
23740d429e5bSmrg return (xcb_selinux_get_selection_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
23750d429e5bSmrg }
23760d429e5bSmrg
2377ed2038faSmrg int
xcb_selinux_get_selection_data_context_sizeof(const void * _buffer)2378*ba6321feSmrg xcb_selinux_get_selection_data_context_sizeof (const void *_buffer)
2379ed2038faSmrg {
2380ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2381ed2038faSmrg const xcb_selinux_get_selection_data_context_reply_t *_aux = (xcb_selinux_get_selection_data_context_reply_t *)_buffer;
2382ed2038faSmrg unsigned int xcb_buffer_len = 0;
2383ed2038faSmrg unsigned int xcb_block_len = 0;
2384ed2038faSmrg unsigned int xcb_pad = 0;
23856f16f8b8Smrg unsigned int xcb_align_to = 0;
2386ed2038faSmrg
2387ed2038faSmrg
2388ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_selection_data_context_reply_t);
2389ed2038faSmrg xcb_tmp += xcb_block_len;
23906f16f8b8Smrg xcb_buffer_len += xcb_block_len;
23916f16f8b8Smrg xcb_block_len = 0;
2392ed2038faSmrg /* context */
2393ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
2394ed2038faSmrg xcb_tmp += xcb_block_len;
2395ed2038faSmrg xcb_align_to = ALIGNOF(char);
2396ed2038faSmrg /* insert padding */
2397ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2398ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2399ed2038faSmrg if (0 != xcb_pad) {
2400ed2038faSmrg xcb_tmp += xcb_pad;
2401ed2038faSmrg xcb_pad = 0;
2402ed2038faSmrg }
2403ed2038faSmrg xcb_block_len = 0;
2404ed2038faSmrg
2405ed2038faSmrg return xcb_buffer_len;
2406ed2038faSmrg }
2407ed2038faSmrg
24080d429e5bSmrg xcb_selinux_get_selection_data_context_cookie_t
xcb_selinux_get_selection_data_context(xcb_connection_t * c,xcb_atom_t selection)2409*ba6321feSmrg xcb_selinux_get_selection_data_context (xcb_connection_t *c,
2410*ba6321feSmrg xcb_atom_t selection)
24110d429e5bSmrg {
24120d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2413*ba6321feSmrg .count = 2,
2414*ba6321feSmrg .ext = &xcb_selinux_id,
2415*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_DATA_CONTEXT,
2416*ba6321feSmrg .isvoid = 0
24170d429e5bSmrg };
24180d429e5bSmrg
24190d429e5bSmrg struct iovec xcb_parts[4];
24200d429e5bSmrg xcb_selinux_get_selection_data_context_cookie_t xcb_ret;
24210d429e5bSmrg xcb_selinux_get_selection_data_context_request_t xcb_out;
24220d429e5bSmrg
24230d429e5bSmrg xcb_out.selection = selection;
24240d429e5bSmrg
24250d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
24260d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
24270d429e5bSmrg xcb_parts[3].iov_base = 0;
24280d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2429ed2038faSmrg
24300d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
24310d429e5bSmrg return xcb_ret;
24320d429e5bSmrg }
24330d429e5bSmrg
24340d429e5bSmrg xcb_selinux_get_selection_data_context_cookie_t
xcb_selinux_get_selection_data_context_unchecked(xcb_connection_t * c,xcb_atom_t selection)2435*ba6321feSmrg xcb_selinux_get_selection_data_context_unchecked (xcb_connection_t *c,
2436*ba6321feSmrg xcb_atom_t selection)
24370d429e5bSmrg {
24380d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2439*ba6321feSmrg .count = 2,
2440*ba6321feSmrg .ext = &xcb_selinux_id,
2441*ba6321feSmrg .opcode = XCB_SELINUX_GET_SELECTION_DATA_CONTEXT,
2442*ba6321feSmrg .isvoid = 0
24430d429e5bSmrg };
24440d429e5bSmrg
24450d429e5bSmrg struct iovec xcb_parts[4];
24460d429e5bSmrg xcb_selinux_get_selection_data_context_cookie_t xcb_ret;
24470d429e5bSmrg xcb_selinux_get_selection_data_context_request_t xcb_out;
24480d429e5bSmrg
24490d429e5bSmrg xcb_out.selection = selection;
24500d429e5bSmrg
24510d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
24520d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
24530d429e5bSmrg xcb_parts[3].iov_base = 0;
24540d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2455ed2038faSmrg
24560d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
24570d429e5bSmrg return xcb_ret;
24580d429e5bSmrg }
24590d429e5bSmrg
24600d429e5bSmrg char *
xcb_selinux_get_selection_data_context_context(const xcb_selinux_get_selection_data_context_reply_t * R)2461*ba6321feSmrg xcb_selinux_get_selection_data_context_context (const xcb_selinux_get_selection_data_context_reply_t *R)
24620d429e5bSmrg {
24630d429e5bSmrg return (char *) (R + 1);
24640d429e5bSmrg }
24650d429e5bSmrg
24660d429e5bSmrg int
xcb_selinux_get_selection_data_context_context_length(const xcb_selinux_get_selection_data_context_reply_t * R)2467*ba6321feSmrg xcb_selinux_get_selection_data_context_context_length (const xcb_selinux_get_selection_data_context_reply_t *R)
24680d429e5bSmrg {
24690d429e5bSmrg return R->context_len;
24700d429e5bSmrg }
24710d429e5bSmrg
24720d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_selection_data_context_context_end(const xcb_selinux_get_selection_data_context_reply_t * R)2473*ba6321feSmrg xcb_selinux_get_selection_data_context_context_end (const xcb_selinux_get_selection_data_context_reply_t *R)
24740d429e5bSmrg {
24750d429e5bSmrg xcb_generic_iterator_t i;
24760d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
24770d429e5bSmrg i.rem = 0;
24780d429e5bSmrg i.index = (char *) i.data - (char *) R;
24790d429e5bSmrg return i;
24800d429e5bSmrg }
24810d429e5bSmrg
24820d429e5bSmrg xcb_selinux_get_selection_data_context_reply_t *
xcb_selinux_get_selection_data_context_reply(xcb_connection_t * c,xcb_selinux_get_selection_data_context_cookie_t cookie,xcb_generic_error_t ** e)2483*ba6321feSmrg xcb_selinux_get_selection_data_context_reply (xcb_connection_t *c,
24840d429e5bSmrg xcb_selinux_get_selection_data_context_cookie_t cookie /**< */,
2485*ba6321feSmrg xcb_generic_error_t **e)
24860d429e5bSmrg {
24870d429e5bSmrg return (xcb_selinux_get_selection_data_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
24880d429e5bSmrg }
24890d429e5bSmrg
2490ed2038faSmrg int
xcb_selinux_list_selections_sizeof(const void * _buffer)2491*ba6321feSmrg xcb_selinux_list_selections_sizeof (const void *_buffer)
2492ed2038faSmrg {
2493ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2494ed2038faSmrg const xcb_selinux_list_selections_reply_t *_aux = (xcb_selinux_list_selections_reply_t *)_buffer;
2495ed2038faSmrg unsigned int xcb_buffer_len = 0;
2496ed2038faSmrg unsigned int xcb_block_len = 0;
2497ed2038faSmrg unsigned int xcb_pad = 0;
24986f16f8b8Smrg unsigned int xcb_align_to = 0;
2499ed2038faSmrg
2500ed2038faSmrg unsigned int i;
2501ed2038faSmrg unsigned int xcb_tmp_len;
2502ed2038faSmrg
2503ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_list_selections_reply_t);
2504ed2038faSmrg xcb_tmp += xcb_block_len;
25056f16f8b8Smrg xcb_buffer_len += xcb_block_len;
25066f16f8b8Smrg xcb_block_len = 0;
2507ed2038faSmrg /* selections */
2508ed2038faSmrg for(i=0; i<_aux->selections_len; i++) {
2509ed2038faSmrg xcb_tmp_len = xcb_selinux_list_item_sizeof(xcb_tmp);
2510ed2038faSmrg xcb_block_len += xcb_tmp_len;
2511ed2038faSmrg xcb_tmp += xcb_tmp_len;
2512ed2038faSmrg }
2513ed2038faSmrg xcb_align_to = ALIGNOF(xcb_selinux_list_item_t);
2514ed2038faSmrg /* insert padding */
2515ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2516ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2517ed2038faSmrg if (0 != xcb_pad) {
2518ed2038faSmrg xcb_tmp += xcb_pad;
2519ed2038faSmrg xcb_pad = 0;
2520ed2038faSmrg }
2521ed2038faSmrg xcb_block_len = 0;
2522ed2038faSmrg
2523ed2038faSmrg return xcb_buffer_len;
2524ed2038faSmrg }
2525ed2038faSmrg
25260d429e5bSmrg xcb_selinux_list_selections_cookie_t
xcb_selinux_list_selections(xcb_connection_t * c)2527*ba6321feSmrg xcb_selinux_list_selections (xcb_connection_t *c)
25280d429e5bSmrg {
25290d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2530*ba6321feSmrg .count = 2,
2531*ba6321feSmrg .ext = &xcb_selinux_id,
2532*ba6321feSmrg .opcode = XCB_SELINUX_LIST_SELECTIONS,
2533*ba6321feSmrg .isvoid = 0
25340d429e5bSmrg };
25350d429e5bSmrg
25360d429e5bSmrg struct iovec xcb_parts[4];
25370d429e5bSmrg xcb_selinux_list_selections_cookie_t xcb_ret;
25380d429e5bSmrg xcb_selinux_list_selections_request_t xcb_out;
25390d429e5bSmrg
25400d429e5bSmrg
25410d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
25420d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
25430d429e5bSmrg xcb_parts[3].iov_base = 0;
25440d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2545ed2038faSmrg
25460d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
25470d429e5bSmrg return xcb_ret;
25480d429e5bSmrg }
25490d429e5bSmrg
25500d429e5bSmrg xcb_selinux_list_selections_cookie_t
xcb_selinux_list_selections_unchecked(xcb_connection_t * c)2551*ba6321feSmrg xcb_selinux_list_selections_unchecked (xcb_connection_t *c)
25520d429e5bSmrg {
25530d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2554*ba6321feSmrg .count = 2,
2555*ba6321feSmrg .ext = &xcb_selinux_id,
2556*ba6321feSmrg .opcode = XCB_SELINUX_LIST_SELECTIONS,
2557*ba6321feSmrg .isvoid = 0
25580d429e5bSmrg };
25590d429e5bSmrg
25600d429e5bSmrg struct iovec xcb_parts[4];
25610d429e5bSmrg xcb_selinux_list_selections_cookie_t xcb_ret;
25620d429e5bSmrg xcb_selinux_list_selections_request_t xcb_out;
25630d429e5bSmrg
25640d429e5bSmrg
25650d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
25660d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
25670d429e5bSmrg xcb_parts[3].iov_base = 0;
25680d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2569ed2038faSmrg
25700d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
25710d429e5bSmrg return xcb_ret;
25720d429e5bSmrg }
25730d429e5bSmrg
25740d429e5bSmrg int
xcb_selinux_list_selections_selections_length(const xcb_selinux_list_selections_reply_t * R)2575*ba6321feSmrg xcb_selinux_list_selections_selections_length (const xcb_selinux_list_selections_reply_t *R)
25760d429e5bSmrg {
25770d429e5bSmrg return R->selections_len;
25780d429e5bSmrg }
25790d429e5bSmrg
25800d429e5bSmrg xcb_selinux_list_item_iterator_t
xcb_selinux_list_selections_selections_iterator(const xcb_selinux_list_selections_reply_t * R)2581*ba6321feSmrg xcb_selinux_list_selections_selections_iterator (const xcb_selinux_list_selections_reply_t *R)
25820d429e5bSmrg {
25830d429e5bSmrg xcb_selinux_list_item_iterator_t i;
25840d429e5bSmrg i.data = (xcb_selinux_list_item_t *) (R + 1);
25850d429e5bSmrg i.rem = R->selections_len;
25860d429e5bSmrg i.index = (char *) i.data - (char *) R;
25870d429e5bSmrg return i;
25880d429e5bSmrg }
25890d429e5bSmrg
25900d429e5bSmrg xcb_selinux_list_selections_reply_t *
xcb_selinux_list_selections_reply(xcb_connection_t * c,xcb_selinux_list_selections_cookie_t cookie,xcb_generic_error_t ** e)2591*ba6321feSmrg xcb_selinux_list_selections_reply (xcb_connection_t *c,
25920d429e5bSmrg xcb_selinux_list_selections_cookie_t cookie /**< */,
2593*ba6321feSmrg xcb_generic_error_t **e)
25940d429e5bSmrg {
25950d429e5bSmrg return (xcb_selinux_list_selections_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
25960d429e5bSmrg }
25970d429e5bSmrg
2598ed2038faSmrg int
xcb_selinux_get_client_context_sizeof(const void * _buffer)2599*ba6321feSmrg xcb_selinux_get_client_context_sizeof (const void *_buffer)
2600ed2038faSmrg {
2601ed2038faSmrg char *xcb_tmp = (char *)_buffer;
2602ed2038faSmrg const xcb_selinux_get_client_context_reply_t *_aux = (xcb_selinux_get_client_context_reply_t *)_buffer;
2603ed2038faSmrg unsigned int xcb_buffer_len = 0;
2604ed2038faSmrg unsigned int xcb_block_len = 0;
2605ed2038faSmrg unsigned int xcb_pad = 0;
26066f16f8b8Smrg unsigned int xcb_align_to = 0;
2607ed2038faSmrg
2608ed2038faSmrg
2609ed2038faSmrg xcb_block_len += sizeof(xcb_selinux_get_client_context_reply_t);
2610ed2038faSmrg xcb_tmp += xcb_block_len;
26116f16f8b8Smrg xcb_buffer_len += xcb_block_len;
26126f16f8b8Smrg xcb_block_len = 0;
2613ed2038faSmrg /* context */
2614ed2038faSmrg xcb_block_len += _aux->context_len * sizeof(char);
2615ed2038faSmrg xcb_tmp += xcb_block_len;
2616ed2038faSmrg xcb_align_to = ALIGNOF(char);
2617ed2038faSmrg /* insert padding */
2618ed2038faSmrg xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2619ed2038faSmrg xcb_buffer_len += xcb_block_len + xcb_pad;
2620ed2038faSmrg if (0 != xcb_pad) {
2621ed2038faSmrg xcb_tmp += xcb_pad;
2622ed2038faSmrg xcb_pad = 0;
2623ed2038faSmrg }
2624ed2038faSmrg xcb_block_len = 0;
2625ed2038faSmrg
2626ed2038faSmrg return xcb_buffer_len;
2627ed2038faSmrg }
2628ed2038faSmrg
26290d429e5bSmrg xcb_selinux_get_client_context_cookie_t
xcb_selinux_get_client_context(xcb_connection_t * c,uint32_t resource)2630*ba6321feSmrg xcb_selinux_get_client_context (xcb_connection_t *c,
2631*ba6321feSmrg uint32_t resource)
26320d429e5bSmrg {
26330d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2634*ba6321feSmrg .count = 2,
2635*ba6321feSmrg .ext = &xcb_selinux_id,
2636*ba6321feSmrg .opcode = XCB_SELINUX_GET_CLIENT_CONTEXT,
2637*ba6321feSmrg .isvoid = 0
26380d429e5bSmrg };
26390d429e5bSmrg
26400d429e5bSmrg struct iovec xcb_parts[4];
26410d429e5bSmrg xcb_selinux_get_client_context_cookie_t xcb_ret;
26420d429e5bSmrg xcb_selinux_get_client_context_request_t xcb_out;
26430d429e5bSmrg
26440d429e5bSmrg xcb_out.resource = resource;
26450d429e5bSmrg
26460d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
26470d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
26480d429e5bSmrg xcb_parts[3].iov_base = 0;
26490d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2650ed2038faSmrg
26510d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
26520d429e5bSmrg return xcb_ret;
26530d429e5bSmrg }
26540d429e5bSmrg
26550d429e5bSmrg xcb_selinux_get_client_context_cookie_t
xcb_selinux_get_client_context_unchecked(xcb_connection_t * c,uint32_t resource)2656*ba6321feSmrg xcb_selinux_get_client_context_unchecked (xcb_connection_t *c,
2657*ba6321feSmrg uint32_t resource)
26580d429e5bSmrg {
26590d429e5bSmrg static const xcb_protocol_request_t xcb_req = {
2660*ba6321feSmrg .count = 2,
2661*ba6321feSmrg .ext = &xcb_selinux_id,
2662*ba6321feSmrg .opcode = XCB_SELINUX_GET_CLIENT_CONTEXT,
2663*ba6321feSmrg .isvoid = 0
26640d429e5bSmrg };
26650d429e5bSmrg
26660d429e5bSmrg struct iovec xcb_parts[4];
26670d429e5bSmrg xcb_selinux_get_client_context_cookie_t xcb_ret;
26680d429e5bSmrg xcb_selinux_get_client_context_request_t xcb_out;
26690d429e5bSmrg
26700d429e5bSmrg xcb_out.resource = resource;
26710d429e5bSmrg
26720d429e5bSmrg xcb_parts[2].iov_base = (char *) &xcb_out;
26730d429e5bSmrg xcb_parts[2].iov_len = sizeof(xcb_out);
26740d429e5bSmrg xcb_parts[3].iov_base = 0;
26750d429e5bSmrg xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2676ed2038faSmrg
26770d429e5bSmrg xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
26780d429e5bSmrg return xcb_ret;
26790d429e5bSmrg }
26800d429e5bSmrg
26810d429e5bSmrg char *
xcb_selinux_get_client_context_context(const xcb_selinux_get_client_context_reply_t * R)2682*ba6321feSmrg xcb_selinux_get_client_context_context (const xcb_selinux_get_client_context_reply_t *R)
26830d429e5bSmrg {
26840d429e5bSmrg return (char *) (R + 1);
26850d429e5bSmrg }
26860d429e5bSmrg
26870d429e5bSmrg int
xcb_selinux_get_client_context_context_length(const xcb_selinux_get_client_context_reply_t * R)2688*ba6321feSmrg xcb_selinux_get_client_context_context_length (const xcb_selinux_get_client_context_reply_t *R)
26890d429e5bSmrg {
26900d429e5bSmrg return R->context_len;
26910d429e5bSmrg }
26920d429e5bSmrg
26930d429e5bSmrg xcb_generic_iterator_t
xcb_selinux_get_client_context_context_end(const xcb_selinux_get_client_context_reply_t * R)2694*ba6321feSmrg xcb_selinux_get_client_context_context_end (const xcb_selinux_get_client_context_reply_t *R)
26950d429e5bSmrg {
26960d429e5bSmrg xcb_generic_iterator_t i;
26970d429e5bSmrg i.data = ((char *) (R + 1)) + (R->context_len);
26980d429e5bSmrg i.rem = 0;
26990d429e5bSmrg i.index = (char *) i.data - (char *) R;
27000d429e5bSmrg return i;
27010d429e5bSmrg }
27020d429e5bSmrg
27030d429e5bSmrg xcb_selinux_get_client_context_reply_t *
xcb_selinux_get_client_context_reply(xcb_connection_t * c,xcb_selinux_get_client_context_cookie_t cookie,xcb_generic_error_t ** e)2704*ba6321feSmrg xcb_selinux_get_client_context_reply (xcb_connection_t *c,
27050d429e5bSmrg xcb_selinux_get_client_context_cookie_t cookie /**< */,
2706*ba6321feSmrg xcb_generic_error_t **e)
27070d429e5bSmrg {
27080d429e5bSmrg return (xcb_selinux_get_client_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
27090d429e5bSmrg }
27100d429e5bSmrg
2711