1 /*--------------------------------------------------------------------*/ 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 10 Copyright (C) 2015-2017 Ivo Raisr 11 ivosh (at) 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 31 /* Copyright 2015-2017, Tomas Jedlicka <jedlickat (at) gmail.com>. */ 32 33 #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) 41 enum 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) 78 enum 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) 129 enum 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 }; 180 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 26) 181 #define VKI_REPOSITORY_DOOR_VERSION (26 + VKI_REPOSITORY_DOOR_BASEVER) 182 enum 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 }; 234 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 27) 235 #define VKI_REPOSITORY_DOOR_VERSION (27 + VKI_REPOSITORY_DOOR_BASEVER) 236 enum 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) 290 enum 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 }; 342 #else 343 #error Unsupported repcache protocol version 344 #endif 345 346 /* The following definitions are currently stable across all repcache protocol 347 versions. If there is any change to them, they need to be versioned 348 properly so that Valgrind works on older versions. */ 349 350 #define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door" 351 #define VKI_REP_PROTOCOL_NAME_LEN 120 352 typedef vki_uint32_t vki_repcache_entity_id_t; 353 enum vki_repository_door_requestid { 354 VKI_REPOSITORY_DOOR_REQUEST_CONNECT = (('M' << 8) | 1) 355 }; 356 enum 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 }; 364 typedef 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; 370 typedef struct vki_repository_door_response { 371 enum vki_repository_door_statusid rdr_status; 372 } vki_repository_door_response_t; 373 typedef struct vki_rep_protocol_request { 374 enum vki_rep_protocol_requestid rpr_request; 375 } vki_rep_protocol_request_t; 376 struct vki_rep_protocol_entity_setup { 377 enum vki_rep_protocol_requestid rpr_request; 378 vki_repcache_entity_id_t rpr_entityid; 379 vki_uint32_t rpr_entitytype; 380 }; 381 struct vki_rep_protocol_entity_name { 382 enum vki_rep_protocol_requestid rpr_request; 383 vki_repcache_entity_id_t rpr_entityid; 384 vki_uint32_t rpr_answertype; 385 }; 386 struct vki_rep_protocol_entity_fmri { 387 enum vki_rep_protocol_requestid rpr_request; 388 vki_repcache_entity_id_t rpr_entityid; 389 }; 390 struct vki_rep_protocol_entity_get { 391 enum vki_rep_protocol_requestid rpr_request; 392 vki_repcache_entity_id_t rpr_entityid; 393 vki_uint32_t rpr_object; 394 }; 395 struct vki_rep_protocol_entity_get_child { 396 enum vki_rep_protocol_requestid rpr_request; 397 vki_repcache_entity_id_t rpr_entityid; 398 vki_repcache_entity_id_t rpr_childid; 399 char rpr_name[VKI_REP_PROTOCOL_NAME_LEN]; 400 }; 401 struct vki_rep_protocol_entity_parent { 402 enum vki_rep_protocol_requestid rpr_request; 403 vki_repcache_entity_id_t rpr_entityid; 404 vki_repcache_entity_id_t rpr_outid; 405 }; 406 struct vki_rep_protocol_entity_root { 407 enum vki_rep_protocol_requestid rpr_request; 408 vki_repcache_entity_id_t rpr_entityid; 409 vki_repcache_entity_id_t rpr_outid; 410 }; 411 struct vki_rep_protocol_entity_reset { 412 enum vki_rep_protocol_requestid rpr_request; 413 vki_repcache_entity_id_t rpr_entityid; 414 }; 415 struct vki_rep_protocol_entity_teardown { 416 enum vki_rep_protocol_requestid rpr_request; 417 vki_repcache_entity_id_t rpr_entityid; 418 }; 419 struct 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; 423 vki_repcache_entity_id_t rpr_entityid; 424 }; 425 struct 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 }; 430 struct vki_rep_protocol_iter_request { 431 enum vki_rep_protocol_requestid rpr_request; 432 vki_uint32_t rpr_iterid; 433 }; 434 struct vki_rep_protocol_iter_start { 435 enum vki_rep_protocol_requestid rpr_request; 436 vki_uint32_t rpr_iterid; 437 vki_repcache_entity_id_t rpr_entity; 438 vki_uint32_t rpr_itertype; 439 vki_uint32_t rpr_flags; 440 char rpr_pattern[VKI_REP_PROTOCOL_NAME_LEN]; 441 }; 442 struct vki_rep_protocol_property_request { 443 enum vki_rep_protocol_requestid rpr_request; 444 vki_repcache_entity_id_t rpr_entityid; 445 }; 446 447 448 449 450 #endif /* __VKI_SOLARIS_REPCACHE_H */ 451