blob: 57f031ee1dcaae895d26588f3ff4b3eb108c7217 [file] [log] [blame]
sewardj8eb8bab2015-07-21 14:44:28 +00001/*--------------------------------------------------------------------*/
2/*--- Solaris-specific kernel interface for the repository cache ---*/
3/*--- protocol. vki-solaris-repcache.h ---*/
4/*--------------------------------------------------------------------*/
5
6/*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
9
Elliott Hughesed398002017-06-21 14:41:24 -070010 Copyright (C) 2015-2017 Ivo Raisr
sewardj8eb8bab2015-07-21 14:44:28 +000011 ivosh@ivosh.net
12
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 02111-1307, USA.
27
28 The GNU General Public License is contained in the file COPYING.
29*/
30
Elliott Hughesed398002017-06-21 14:41:24 -070031/* Copyright 2015-2017, Tomas Jedlicka <jedlickat@gmail.com>. */
iraisr03a6b142015-08-11 09:12:40 +000032
sewardj8eb8bab2015-07-21 14:44:28 +000033#ifndef __VKI_SOLARIS_REPCACHE_H
34#define __VKI_SOLARIS_REPCACHE_H
35
36/* From <repcache_protocol.h> which is consolidation private. */
37#define VKI_REPOSITORY_DOOR_BASEVER (('R' << 24) | ('e' << 16) | ('p' << 8))
38
39#if (SOLARIS_REPCACHE_PROTOCOL_VERSION == 21)
40#define VKI_REPOSITORY_DOOR_VERSION (21 + VKI_REPOSITORY_DOOR_BASEVER)
41enum vki_rep_protocol_requestid {
42 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
43 VKI_REP_PROTOCOL_ENTITY_SETUP,
44 VKI_REP_PROTOCOL_ENTITY_NAME,
45 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
46 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
47 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
48 VKI_REP_PROTOCOL_ENTITY_GET,
49 VKI_REP_PROTOCOL_ENTITY_UPDATE,
50 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
51 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
52 VKI_REP_PROTOCOL_ENTITY_DELETE,
53 VKI_REP_PROTOCOL_ENTITY_RESET,
54 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
55 VKI_REP_PROTOCOL_ITER_SETUP,
56 VKI_REP_PROTOCOL_ITER_START,
57 VKI_REP_PROTOCOL_ITER_READ,
58 VKI_REP_PROTOCOL_ITER_READ_VALUE,
59 VKI_REP_PROTOCOL_ITER_RESET,
60 VKI_REP_PROTOCOL_ITER_TEARDOWN,
61 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
62 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
63 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
64 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
65 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
66 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
67 VKI_REP_PROTOCOL_PROPERTYGRP_SETUP_WAIT,
68 VKI_REP_PROTOCOL_PROPERTYGRP_TX_START,
69 VKI_REP_PROTOCOL_PROPERTYGRP_TX_COMMIT,
70 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
71 VKI_REP_PROTOCOL_CLIENT_WAIT,
72 VKI_REP_PROTOCOL_BACKUP,
73 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
74 VKI_REP_PROTOCOL_SWITCH,
75};
76#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 23)
77#define VKI_REPOSITORY_DOOR_VERSION (23 + VKI_REPOSITORY_DOOR_BASEVER)
78enum vki_rep_protocol_requestid {
79 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
80 VKI_REP_PROTOCOL_ENTITY_SETUP,
81 VKI_REP_PROTOCOL_ENTITY_NAME,
82 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
83 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
84 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
85 VKI_REP_PROTOCOL_ENTITY_GET,
86 VKI_REP_PROTOCOL_ENTITY_UPDATE,
87 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
88 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
89 VKI_REP_PROTOCOL_ENTITY_DELETE,
90 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
91 VKI_REP_PROTOCOL_ENTITY_REMOVE,
92 VKI_REP_PROTOCOL_ENTITY_DELCUST,
93 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
94 VKI_REP_PROTOCOL_ENTITY_RESET,
95 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
96 VKI_REP_PROTOCOL_ITER_SETUP,
97 VKI_REP_PROTOCOL_ITER_START,
98 VKI_REP_PROTOCOL_ITER_READ,
99 VKI_REP_PROTOCOL_ITER_READ_VALUE,
100 VKI_REP_PROTOCOL_ITER_RESET,
101 VKI_REP_PROTOCOL_ITER_TEARDOWN,
102 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
103 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
104 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
105 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
106 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
107 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
108 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
109 VKI_REP_PROTOCOL_PG_TX_START,
110 VKI_REP_PROTOCOL_PG_TX_COMMIT,
111 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
112 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
113 VKI_REP_PROTOCOL_CLIENT_WAIT,
114 VKI_REP_PROTOCOL_BACKUP,
115 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
116 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
117 VKI_REP_PROTOCOL_SET_TX_DECORATION,
118 VKI_REP_PROTOCOL_SWITCH,
119 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
120 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
121 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
122 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
123 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
124 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
125 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
126};
127#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 25)
128#define VKI_REPOSITORY_DOOR_VERSION (25 + VKI_REPOSITORY_DOOR_BASEVER)
129enum vki_rep_protocol_requestid {
130 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
131 VKI_REP_PROTOCOL_ENTITY_SETUP,
132 VKI_REP_PROTOCOL_ENTITY_NAME,
133 VKI_REP_PROTOCOL_ENTITY_FMRI,
134 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
135 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
136 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
137 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
138 VKI_REP_PROTOCOL_ENTITY_GET,
139 VKI_REP_PROTOCOL_ENTITY_UPDATE,
140 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
141 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
142 VKI_REP_PROTOCOL_ENTITY_DELETE,
143 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
144 VKI_REP_PROTOCOL_ENTITY_REMOVE,
145 VKI_REP_PROTOCOL_ENTITY_DELCUST,
146 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
147 VKI_REP_PROTOCOL_ENTITY_RESET,
148 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
149 VKI_REP_PROTOCOL_ITER_SETUP,
150 VKI_REP_PROTOCOL_ITER_START,
151 VKI_REP_PROTOCOL_ITER_READ,
152 VKI_REP_PROTOCOL_ITER_READ_VALUE,
153 VKI_REP_PROTOCOL_ITER_RESET,
154 VKI_REP_PROTOCOL_ITER_TEARDOWN,
155 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
156 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
157 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
158 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
159 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
160 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
161 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
162 VKI_REP_PROTOCOL_PG_TX_START,
163 VKI_REP_PROTOCOL_PG_TX_COMMIT,
164 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
165 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
166 VKI_REP_PROTOCOL_CLIENT_WAIT,
167 VKI_REP_PROTOCOL_BACKUP,
168 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
169 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
170 VKI_REP_PROTOCOL_SET_TX_DECORATION,
171 VKI_REP_PROTOCOL_SWITCH,
172 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
173 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
174 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
175 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
176 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
177 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
178 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
179};
iraisr03a6b142015-08-11 09:12:40 +0000180#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 26)
181#define VKI_REPOSITORY_DOOR_VERSION (26 + VKI_REPOSITORY_DOOR_BASEVER)
182enum vki_rep_protocol_requestid {
183 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
184 VKI_REP_PROTOCOL_ENTITY_SETUP,
185 VKI_REP_PROTOCOL_ENTITY_NAME,
186 VKI_REP_PROTOCOL_ENTITY_FMRI,
187 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
188 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
189 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
190 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
191 VKI_REP_PROTOCOL_ENTITY_GET,
192 VKI_REP_PROTOCOL_ENTITY_UPDATE,
193 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
194 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
195 VKI_REP_PROTOCOL_ENTITY_DELETE,
196 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
197 VKI_REP_PROTOCOL_ENTITY_REMOVE,
198 VKI_REP_PROTOCOL_ENTITY_DELCUST,
199 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
200 VKI_REP_PROTOCOL_ENTITY_RESET,
201 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
202 VKI_REP_PROTOCOL_ITER_SETUP,
203 VKI_REP_PROTOCOL_ITER_START,
204 VKI_REP_PROTOCOL_ITER_READ,
205 VKI_REP_PROTOCOL_ITER_READ_VALUE,
206 VKI_REP_PROTOCOL_ITER_RESET,
207 VKI_REP_PROTOCOL_ITER_TEARDOWN,
208 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
209 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
210 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
211 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
212 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
213 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
214 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
215 VKI_REP_PROTOCOL_PG_TX_START,
216 VKI_REP_PROTOCOL_PG_TX_COMMIT,
217 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
218 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
219 VKI_REP_PROTOCOL_CLIENT_WAIT,
220 VKI_REP_PROTOCOL_BACKUP,
221 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
222 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
223 VKI_REP_PROTOCOL_SET_TX_DECORATION,
224 VKI_REP_PROTOCOL_SWITCH,
225 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
226 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
227 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
228 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
229 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
230 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
231 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
232 VKI_REP_PROTOCOL_MAX_REQUEST
233};
Elliott Hughesa0664b92017-04-18 17:46:52 -0700234#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 27)
235#define VKI_REPOSITORY_DOOR_VERSION (27 + VKI_REPOSITORY_DOOR_BASEVER)
236enum vki_rep_protocol_requestid {
237 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
238 VKI_REP_PROTOCOL_ENTITY_SETUP,
239 VKI_REP_PROTOCOL_ENTITY_NAME,
240 VKI_REP_PROTOCOL_ENTITY_FMRI,
241 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
242 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
243 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
244 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
245 VKI_REP_PROTOCOL_ENTITY_GET,
246 VKI_REP_PROTOCOL_ENTITY_UPDATE,
247 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
248 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
249 VKI_REP_PROTOCOL_ENTITY_DELETE,
250 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
251 VKI_REP_PROTOCOL_ENTITY_REMOVE,
252 VKI_REP_PROTOCOL_ENTITY_DELCUST,
253 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
254 VKI_REP_PROTOCOL_ENTITY_RESET,
255 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
256 VKI_REP_PROTOCOL_ITER_SETUP,
257 VKI_REP_PROTOCOL_ITER_START,
258 VKI_REP_PROTOCOL_ITER_READ,
259 VKI_REP_PROTOCOL_ITER_READ_VALUE,
260 VKI_REP_PROTOCOL_ITER_RESET,
261 VKI_REP_PROTOCOL_ITER_TEARDOWN,
262 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
263 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
264 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
265 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
266 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
267 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
268 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
269 VKI_REP_PROTOCOL_PG_TX_START,
270 VKI_REP_PROTOCOL_PG_TX_COMMIT,
271 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
272 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
273 VKI_REP_PROTOCOL_CLIENT_WAIT,
274 VKI_REP_PROTOCOL_BACKUP,
275 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
276 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
277 VKI_REP_PROTOCOL_SET_TX_DECORATION,
278 VKI_REP_PROTOCOL_SWITCH,
279 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
280 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
281 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
282 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
283 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
284 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
285 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
286 VKI_REP_PROTOCOL_MAX_REQUEST
287};
288#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 31)
289#define VKI_REPOSITORY_DOOR_VERSION (31 + VKI_REPOSITORY_DOOR_BASEVER)
290enum vki_rep_protocol_requestid {
291 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
292 VKI_REP_PROTOCOL_ENTITY_SETUP,
293 VKI_REP_PROTOCOL_ENTITY_NAME,
294 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
295 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
296 VKI_REP_PROTOCOL_ENTITY_GET_CHILD_COMPOSED,
297 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
298 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
299 VKI_REP_PROTOCOL_ENTITY_GET,
300 VKI_REP_PROTOCOL_ENTITY_UPDATE,
301 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
302 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
303 VKI_REP_PROTOCOL_ENTITY_DELETE,
304 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
305 VKI_REP_PROTOCOL_ENTITY_REMOVE,
306 VKI_REP_PROTOCOL_ENTITY_DELCUST,
307 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
308 VKI_REP_PROTOCOL_ENTITY_RESET,
309 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
310 VKI_REP_PROTOCOL_ITER_SETUP,
311 VKI_REP_PROTOCOL_ITER_START,
312 VKI_REP_PROTOCOL_ITER_READ,
313 VKI_REP_PROTOCOL_ITER_READ_VALUE,
314 VKI_REP_PROTOCOL_ITER_RESET,
315 VKI_REP_PROTOCOL_ITER_TEARDOWN,
316 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
317 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
318 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
319 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
320 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
321 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
322 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
323 VKI_REP_PROTOCOL_PG_TX_START,
324 VKI_REP_PROTOCOL_PG_TX_COMMIT,
325 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
326 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
327 VKI_REP_PROTOCOL_CLIENT_WAIT,
328 VKI_REP_PROTOCOL_BACKUP,
329 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
330 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
331 VKI_REP_PROTOCOL_SET_LAYER,
332 VKI_REP_PROTOCOL_SWITCH,
333 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
334 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
335 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
336 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
337 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
338 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
339 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
340 VKI_REP_PROTOCOL_MAX_REQUEST
341};
sewardj8eb8bab2015-07-21 14:44:28 +0000342#else
343#error Unsupported repcache protocol version
344#endif
345
Elliott Hughesed398002017-06-21 14:41:24 -0700346/* The following definitions are currently stable across all repcache protocol
Elliott Hughesa0664b92017-04-18 17:46:52 -0700347 versions. If there is any change to them, they need to be versioned
348 properly so that Valgrind works on older versions. */
349
sewardj8eb8bab2015-07-21 14:44:28 +0000350#define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door"
351#define VKI_REP_PROTOCOL_NAME_LEN 120
Elliott Hughesa0664b92017-04-18 17:46:52 -0700352typedef vki_uint32_t vki_repcache_entity_id_t;
sewardj8eb8bab2015-07-21 14:44:28 +0000353enum vki_repository_door_requestid {
354 VKI_REPOSITORY_DOOR_REQUEST_CONNECT = (('M' << 8) | 1)
355};
356enum vki_repository_door_statusid {
357 VKI_REPOSITORY_DOOR_SUCCESS = 0,
358 VKI_REPOSITORY_DOOR_FAIL_BAD_REQUEST = 1,
359 VKI_REPOSITORY_DOOR_FAIL_VERSION_MISMATCH = 2,
360 VKI_REPOSITORY_DOOR_FAIL_BAD_FLAG = 3,
361 VKI_REPOSITORY_DOOR_FAIL_NO_RESOURCES = 4,
362 VKI_REPOSITORY_DOOR_FAIL_PERMISSION_DENIED = 5
363};
364typedef struct vki_repository_door_request {
365 vki_uint32_t rdr_version;
366 enum vki_repository_door_requestid rdr_request;
367 vki_uint32_t rdr_flags;
368 vki_uint32_t rdr_debug;
369} vki_repository_door_request_t;
370typedef struct vki_repository_door_response {
371 enum vki_repository_door_statusid rdr_status;
372} vki_repository_door_response_t;
373typedef struct vki_rep_protocol_request {
374 enum vki_rep_protocol_requestid rpr_request;
375} vki_rep_protocol_request_t;
376struct vki_rep_protocol_entity_setup {
377 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700378 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000379 vki_uint32_t rpr_entitytype;
380};
381struct vki_rep_protocol_entity_name {
382 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700383 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000384 vki_uint32_t rpr_answertype;
385};
Elliott Hughesa0664b92017-04-18 17:46:52 -0700386struct vki_rep_protocol_entity_fmri {
387 enum vki_rep_protocol_requestid rpr_request;
388 vki_repcache_entity_id_t rpr_entityid;
389};
sewardj8eb8bab2015-07-21 14:44:28 +0000390struct vki_rep_protocol_entity_get {
391 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700392 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000393 vki_uint32_t rpr_object;
394};
395struct vki_rep_protocol_entity_get_child {
396 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700397 vki_repcache_entity_id_t rpr_entityid;
398 vki_repcache_entity_id_t rpr_childid;
sewardj8eb8bab2015-07-21 14:44:28 +0000399 char rpr_name[VKI_REP_PROTOCOL_NAME_LEN];
400};
401struct vki_rep_protocol_entity_parent {
402 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700403 vki_repcache_entity_id_t rpr_entityid;
404 vki_repcache_entity_id_t rpr_outid;
sewardj8eb8bab2015-07-21 14:44:28 +0000405};
iraisr03a6b142015-08-11 09:12:40 +0000406struct vki_rep_protocol_entity_root {
407 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700408 vki_repcache_entity_id_t rpr_entityid;
409 vki_repcache_entity_id_t rpr_outid;
iraisr03a6b142015-08-11 09:12:40 +0000410};
sewardj8eb8bab2015-07-21 14:44:28 +0000411struct vki_rep_protocol_entity_reset {
412 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700413 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000414};
415struct vki_rep_protocol_entity_teardown {
416 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700417 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000418};
419struct vki_rep_protocol_iter_read {
420 enum vki_rep_protocol_requestid rpr_request;
421 vki_uint32_t rpr_iterid;
422 vki_uint32_t rpr_sequence;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700423 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000424};
425struct vki_rep_protocol_iter_read_value {
426 enum vki_rep_protocol_requestid rpr_request;
427 vki_uint32_t rpr_iterid;
428 vki_uint32_t rpr_sequence;
429};
430struct vki_rep_protocol_iter_request {
431 enum vki_rep_protocol_requestid rpr_request;
432 vki_uint32_t rpr_iterid;
433};
434struct vki_rep_protocol_iter_start {
435 enum vki_rep_protocol_requestid rpr_request;
436 vki_uint32_t rpr_iterid;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700437 vki_repcache_entity_id_t rpr_entity;
sewardj8eb8bab2015-07-21 14:44:28 +0000438 vki_uint32_t rpr_itertype;
439 vki_uint32_t rpr_flags;
440 char rpr_pattern[VKI_REP_PROTOCOL_NAME_LEN];
441};
442struct vki_rep_protocol_property_request {
443 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700444 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000445};
446
447
448
449
Elliott Hughesa0664b92017-04-18 17:46:52 -0700450#endif /* __VKI_SOLARIS_REPCACHE_H */