1 /* 2 * Copyright (c) 2003 Mats O Jansson <moj@stacken.kth.se> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /* 18 * YP v1 access protocol 19 * 20 * Created by looking at ypv1_prot.h on AIX 5.1 21 * 22 */ 23 #ifdef RPC_HDR 24 %#include <rpcsvc/yp.h> 25 #endif 26 27 enum ypreqtype { 28 YPREQ_KEY = 1, 29 YPREQ_NOKEY = 2, 30 YPREQ_MAP_PARMS = 3 31 }; 32 33 enum ypresptype { 34 YPRESP_VAL = 1, 35 YPRESP_KEY_VAL = 2, 36 YPRESP_MAP_PARMS = 3 37 }; 38 39 union yprequest switch (ypreqtype yp_reqtype) { 40 case YPREQ_KEY: 41 ypreq_key yp_req_keytype; 42 case YPREQ_NOKEY: 43 ypreq_nokey yp_req_nokeytype; 44 case YPREQ_MAP_PARMS: 45 ypmap_parms yp_req_map_parmstype; 46 }; 47 48 union ypresponse switch (ypresptype yp_resptype) { 49 case YPRESP_VAL: 50 ypresp_val yp_resp_valtype; 51 case YPRESP_KEY_VAL: 52 ypresp_key_val yp_resp_key_valtype; 53 case YPRESP_MAP_PARMS: 54 ypmap_parms yp_resp_map_parmstype; 55 }; 56 57 program YPPROG { 58 version YPOLDVERS { 59 60 void 61 YPOLDPROC_NULL(void) = 0; 62 63 bool_t 64 YPOLDPROC_DOMAIN(domainname) = 1; 65 66 bool_t 67 YPOLDPROC_DOMAIN_NONACK(domainname) = 2; 68 69 ypresponse 70 YPOLDPROC_MATCH(yprequest) = 3; 71 72 ypresponse 73 YPOLDPROC_FIRST(yprequest) = 4; 74 75 ypresponse 76 YPOLDPROC_NEXT(yprequest) = 5; 77 78 ypresponse 79 YPOLDPROC_POLL(yprequest) = 6; 80 81 void 82 YPOLDPROC_PUSH(yprequest) = 7; 83 84 void 85 YPOLDPROC_PULL(yprequest) = 8; 86 87 void 88 YPOLDPROC_GET(yprequest) = 9; 89 } = 1; 90 } = 100004; 91 92 #ifdef RPC_HDR 93 %#define YPMATCH_REQTYPE YPREQ_KEY 94 %#define ypmatch_req_domain yprequest_u.yp_req_keytype.domain 95 %#define ypmatch_req_map yprequest_u.yp_req_keytype.map 96 %#define ypmatch_req_keydat yprequest_u.yp_req_keytype.key 97 %#define ypmatch_req_keyptr yprequest_u.yp_req_keytype.key.keydat_val 98 %#define ypmatch_req_keysize yprequest_u.yp_req_keytype.key.keydat_len 99 % 100 %#define YPMATCH_RESPTYPE YPRESP_VAL 101 %#define ypmatch_resp_status ypresponse_u.yp_resp_valtype.stat 102 %#define ypmatch_resp_val ypresponse_u.yp_resp_valtype 103 %#define ypmatch_resp_valdat ypresponse_u.yp_resp_valtype.val 104 %#define ypmatch_resp_valptr ypresponse_u.yp_resp_valtype.val.valdat_val 105 %#define ypmatch_resp_valsize ypresponse_u.yp_resp_valtype.val.valdat_len 106 % 107 %#define YPFIRST_REQTYPE YPREQ_NOKEY 108 %#define ypfirst_req_domain yprequest_u.yp_req_nokeytype.domain 109 %#define ypfirst_req_map yprequest_u.yp_req_nokeytype.map 110 % 111 %#define YPFIRST_RESPTYPE YPRESP_KEY_VAL 112 %#define ypfirst_resp_status ypresponse_u.yp_resp_key_valtype.stat 113 %#define ypfirst_resp_keydat ypresponse_u.yp_resp_key_valtype.key 114 %#define ypfirst_resp_keyptr ypresponse_u.yp_resp_key_valtype.key.keydat_val 115 %#define ypfirst_resp_keysize ypresponse_u.yp_resp_key_valtype.key.keydat_len 116 %#define ypfirst_resp_val ypresponse_u.yp_resp_key_valtype 117 %#define ypfirst_resp_valdat ypresponse_u.yp_resp_key_valtype.val 118 %#define ypfirst_resp_valptr ypresponse_u.yp_resp_key_valtype.val.valdat_val 119 %#define ypfirst_resp_valsize ypresponse_u.yp_resp_key_valtype.val.valdat_len 120 % 121 %#define YPNEXT_REQTYPE YPREQ_KEY 122 %#define ypnext_req_domain yprequest_u.yp_req_keytype.domain 123 %#define ypnext_req_map yprequest_u.yp_req_keytype.map 124 %#define ypnext_req_keydat yprequest_u.yp_req_keytype.key 125 %#define ypnext_req_keyptr yprequest_u.yp_req_keytype.key.keydat_val 126 %#define ypnext_req_keysize yprequest_u.yp_req_keytype.key.keydat_len 127 % 128 %#define YPNEXT_RESPTYPE YPRESP_KEY_VAL 129 %#define ypnext_resp_status ypresponse_u.yp_resp_key_valtype.stat 130 %#define ypnext_resp_keydat ypresponse_u.yp_resp_key_valtype.key 131 %#define ypnext_resp_keyptr ypresponse_u.yp_resp_key_valtype.key.keydat_val 132 %#define ypnext_resp_keysize ypresponse_u.yp_resp_key_valtype.key.keydat_len 133 %#define ypnext_resp_val ypresponse_u.yp_resp_key_valtype 134 %#define ypnext_resp_valdat ypresponse_u.yp_resp_key_valtype.val 135 %#define ypnext_resp_valptr ypresponse_u.yp_resp_key_valtype.val.valdat_val 136 %#define ypnext_resp_valsize ypresponse_u.yp_resp_key_valtype.val.valdat_len 137 % 138 %#define YPPUSH_REQTYPE YPREQ_NOKEY 139 %#define yppush_req_domain yprequest_u.yp_req_nokeytype.domain 140 %#define yppush_req_map yprequest_u.yp_req_nokeytype.map 141 % 142 %#define YPPULL_REQTYPE YPREQ_NOKEY 143 %#define yppull_req_domain yprequest_u.yp_req_nokeytype.domain 144 %#define yppull_req_map yprequest_u.yp_req_nokeytype.map 145 % 146 %#define YPPOLL_REQTYPE YPREQ_NOKEY 147 %#define yppoll_req_domain yprequest_u.yp_req_nokeytype.domain 148 %#define yppoll_req_map yprequest_u.yp_req_nokeytype.map 149 % 150 %#define YPPOLL_RESPTYPE YPRESP_MAP_PARMS 151 %#define yppoll_resp_domain ypresponse_u.yp_resp_map_parmstype.domain 152 %#define yppoll_resp_map ypresponse_u.yp_resp_map_parmstype.map 153 %#define yppoll_resp_ordernum ypresponse_u.yp_resp_map_parmstype.ordernum 154 %#define yppoll_resp_owner ypresponse_u.yp_resp_map_parmstype.peer 155 % 156 %#define YPGET_REQTYPE YPREQ_MAP_PARMS 157 %#define ypget_req_domain yprequest_u.yp_req_map_parmstype.domain 158 %#define ypget_req_map yprequest_u.yp_req_map_parmstype.map 159 %#define ypget_req_ordernum yprequest_u.yp_req_map_parmstype.ordernum 160 %#define ypget_req_owner yprequest_u.yp_req_map_parmstype.peer 161 #endif 162