17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * Openvision retains the copyright to derivative works of 57c478bd9Sstevel@tonic-gate * this source code. Do *NOT* create a derivative of this 67c478bd9Sstevel@tonic-gate * source code before consulting with your legal department. 77c478bd9Sstevel@tonic-gate * Do *NOT* integrate *ANY* of this source code into another 87c478bd9Sstevel@tonic-gate * product before consulting with your legal department. 97c478bd9Sstevel@tonic-gate * 107c478bd9Sstevel@tonic-gate * For further information, read the top-level Openvision 117c478bd9Sstevel@tonic-gate * copyright which is contained in the top-level MIT Kerberos 127c478bd9Sstevel@tonic-gate * copyright. 137c478bd9Sstevel@tonic-gate * 147c478bd9Sstevel@tonic-gate * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 157c478bd9Sstevel@tonic-gate * 167c478bd9Sstevel@tonic-gate */ 177c478bd9Sstevel@tonic-gate 1856a424ccSmp153739 #ifndef __KADM_RPC_H__ 1956a424ccSmp153739 #define __KADM_RPC_H__ 207c478bd9Sstevel@tonic-gate 217c478bd9Sstevel@tonic-gate #include <rpc/types.h> 227c478bd9Sstevel@tonic-gate 237c478bd9Sstevel@tonic-gate #include <kadm5/admin.h> 24*159d09a2SMark Phalan #include <krb5.h> 257c478bd9Sstevel@tonic-gate 267c478bd9Sstevel@tonic-gate struct cprinc_arg { 277c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 287c478bd9Sstevel@tonic-gate kadm5_principal_ent_rec rec; 297c478bd9Sstevel@tonic-gate long mask; 307c478bd9Sstevel@tonic-gate char *passwd; 317c478bd9Sstevel@tonic-gate }; 327c478bd9Sstevel@tonic-gate typedef struct cprinc_arg cprinc_arg; 337c478bd9Sstevel@tonic-gate 347c478bd9Sstevel@tonic-gate struct cprinc3_arg { 357c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 367c478bd9Sstevel@tonic-gate kadm5_principal_ent_rec rec; 377c478bd9Sstevel@tonic-gate long mask; 387c478bd9Sstevel@tonic-gate int n_ks_tuple; 397c478bd9Sstevel@tonic-gate krb5_key_salt_tuple *ks_tuple; 407c478bd9Sstevel@tonic-gate char *passwd; 417c478bd9Sstevel@tonic-gate }; 427c478bd9Sstevel@tonic-gate typedef struct cprinc3_arg cprinc3_arg; 437c478bd9Sstevel@tonic-gate 447c478bd9Sstevel@tonic-gate struct generic_ret { 457c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 467c478bd9Sstevel@tonic-gate kadm5_ret_t code; 477c478bd9Sstevel@tonic-gate }; 487c478bd9Sstevel@tonic-gate typedef struct generic_ret generic_ret; 497c478bd9Sstevel@tonic-gate 507c478bd9Sstevel@tonic-gate struct dprinc_arg { 517c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 527c478bd9Sstevel@tonic-gate krb5_principal princ; 537c478bd9Sstevel@tonic-gate }; 547c478bd9Sstevel@tonic-gate typedef struct dprinc_arg dprinc_arg; 557c478bd9Sstevel@tonic-gate 567c478bd9Sstevel@tonic-gate struct mprinc_arg { 577c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 587c478bd9Sstevel@tonic-gate kadm5_principal_ent_rec rec; 597c478bd9Sstevel@tonic-gate long mask; 607c478bd9Sstevel@tonic-gate }; 617c478bd9Sstevel@tonic-gate typedef struct mprinc_arg mprinc_arg; 627c478bd9Sstevel@tonic-gate 637c478bd9Sstevel@tonic-gate struct rprinc_arg { 647c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 657c478bd9Sstevel@tonic-gate krb5_principal src; 667c478bd9Sstevel@tonic-gate krb5_principal dest; 677c478bd9Sstevel@tonic-gate }; 687c478bd9Sstevel@tonic-gate typedef struct rprinc_arg rprinc_arg; 697c478bd9Sstevel@tonic-gate 707c478bd9Sstevel@tonic-gate struct gprincs_arg { 717c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 727c478bd9Sstevel@tonic-gate char *exp; 737c478bd9Sstevel@tonic-gate }; 747c478bd9Sstevel@tonic-gate typedef struct gprincs_arg gprincs_arg; 757c478bd9Sstevel@tonic-gate 767c478bd9Sstevel@tonic-gate struct gprincs_ret { 777c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 787c478bd9Sstevel@tonic-gate kadm5_ret_t code; 797c478bd9Sstevel@tonic-gate char **princs; 807c478bd9Sstevel@tonic-gate int count; 817c478bd9Sstevel@tonic-gate }; 827c478bd9Sstevel@tonic-gate typedef struct gprincs_ret gprincs_ret; 837c478bd9Sstevel@tonic-gate 847c478bd9Sstevel@tonic-gate struct chpass_arg { 857c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 867c478bd9Sstevel@tonic-gate krb5_principal princ; 877c478bd9Sstevel@tonic-gate char *pass; 887c478bd9Sstevel@tonic-gate }; 897c478bd9Sstevel@tonic-gate typedef struct chpass_arg chpass_arg; 907c478bd9Sstevel@tonic-gate 917c478bd9Sstevel@tonic-gate struct chpass3_arg { 927c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 937c478bd9Sstevel@tonic-gate krb5_principal princ; 947c478bd9Sstevel@tonic-gate krb5_boolean keepold; 957c478bd9Sstevel@tonic-gate int n_ks_tuple; 967c478bd9Sstevel@tonic-gate krb5_key_salt_tuple *ks_tuple; 977c478bd9Sstevel@tonic-gate char *pass; 987c478bd9Sstevel@tonic-gate }; 997c478bd9Sstevel@tonic-gate typedef struct chpass3_arg chpass3_arg; 1007c478bd9Sstevel@tonic-gate 1017c478bd9Sstevel@tonic-gate struct setv4key_arg { 1027c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1037c478bd9Sstevel@tonic-gate krb5_principal princ; 1047c478bd9Sstevel@tonic-gate krb5_keyblock *keyblock; 1057c478bd9Sstevel@tonic-gate }; 1067c478bd9Sstevel@tonic-gate typedef struct setv4key_arg setv4key_arg; 1077c478bd9Sstevel@tonic-gate 1087c478bd9Sstevel@tonic-gate struct setkey_arg { 1097c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1107c478bd9Sstevel@tonic-gate krb5_principal princ; 1117c478bd9Sstevel@tonic-gate krb5_keyblock *keyblocks; 1127c478bd9Sstevel@tonic-gate int n_keys; 1137c478bd9Sstevel@tonic-gate }; 1147c478bd9Sstevel@tonic-gate typedef struct setkey_arg setkey_arg; 1157c478bd9Sstevel@tonic-gate 1167c478bd9Sstevel@tonic-gate struct setkey3_arg { 1177c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1187c478bd9Sstevel@tonic-gate krb5_principal princ; 1197c478bd9Sstevel@tonic-gate krb5_boolean keepold; 1207c478bd9Sstevel@tonic-gate int n_ks_tuple; 1217c478bd9Sstevel@tonic-gate krb5_key_salt_tuple *ks_tuple; 1227c478bd9Sstevel@tonic-gate krb5_keyblock *keyblocks; 1237c478bd9Sstevel@tonic-gate int n_keys; 1247c478bd9Sstevel@tonic-gate }; 1257c478bd9Sstevel@tonic-gate typedef struct setkey3_arg setkey3_arg; 1267c478bd9Sstevel@tonic-gate 1277c478bd9Sstevel@tonic-gate struct chrand_arg { 1287c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1297c478bd9Sstevel@tonic-gate krb5_principal princ; 1307c478bd9Sstevel@tonic-gate }; 1317c478bd9Sstevel@tonic-gate typedef struct chrand_arg chrand_arg; 1327c478bd9Sstevel@tonic-gate 1337c478bd9Sstevel@tonic-gate struct chrand3_arg { 1347c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1357c478bd9Sstevel@tonic-gate krb5_principal princ; 1367c478bd9Sstevel@tonic-gate krb5_boolean keepold; 1377c478bd9Sstevel@tonic-gate int n_ks_tuple; 1387c478bd9Sstevel@tonic-gate krb5_key_salt_tuple *ks_tuple; 1397c478bd9Sstevel@tonic-gate }; 1407c478bd9Sstevel@tonic-gate typedef struct chrand3_arg chrand3_arg; 1417c478bd9Sstevel@tonic-gate 1427c478bd9Sstevel@tonic-gate struct chrand_ret { 1437c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1447c478bd9Sstevel@tonic-gate kadm5_ret_t code; 1457c478bd9Sstevel@tonic-gate krb5_keyblock key; 1467c478bd9Sstevel@tonic-gate krb5_keyblock *keys; 1477c478bd9Sstevel@tonic-gate int n_keys; 1487c478bd9Sstevel@tonic-gate }; 1497c478bd9Sstevel@tonic-gate typedef struct chrand_ret chrand_ret; 1507c478bd9Sstevel@tonic-gate 1517c478bd9Sstevel@tonic-gate struct gprinc_arg { 1527c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1537c478bd9Sstevel@tonic-gate krb5_principal princ; 1547c478bd9Sstevel@tonic-gate long mask; 1557c478bd9Sstevel@tonic-gate }; 1567c478bd9Sstevel@tonic-gate typedef struct gprinc_arg gprinc_arg; 1577c478bd9Sstevel@tonic-gate 1587c478bd9Sstevel@tonic-gate struct gprinc_ret { 1597c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1607c478bd9Sstevel@tonic-gate kadm5_ret_t code; 1617c478bd9Sstevel@tonic-gate kadm5_principal_ent_rec rec; 1627c478bd9Sstevel@tonic-gate }; 1637c478bd9Sstevel@tonic-gate typedef struct gprinc_ret gprinc_ret; 1647c478bd9Sstevel@tonic-gate 1657c478bd9Sstevel@tonic-gate struct cpol_arg { 1667c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1677c478bd9Sstevel@tonic-gate kadm5_policy_ent_rec rec; 1687c478bd9Sstevel@tonic-gate long mask; 1697c478bd9Sstevel@tonic-gate }; 1707c478bd9Sstevel@tonic-gate typedef struct cpol_arg cpol_arg; 1717c478bd9Sstevel@tonic-gate 1727c478bd9Sstevel@tonic-gate struct dpol_arg { 1737c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1747c478bd9Sstevel@tonic-gate char *name; 1757c478bd9Sstevel@tonic-gate }; 1767c478bd9Sstevel@tonic-gate typedef struct dpol_arg dpol_arg; 1777c478bd9Sstevel@tonic-gate 1787c478bd9Sstevel@tonic-gate struct mpol_arg { 1797c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1807c478bd9Sstevel@tonic-gate kadm5_policy_ent_rec rec; 1817c478bd9Sstevel@tonic-gate long mask; 1827c478bd9Sstevel@tonic-gate }; 1837c478bd9Sstevel@tonic-gate typedef struct mpol_arg mpol_arg; 1847c478bd9Sstevel@tonic-gate 1857c478bd9Sstevel@tonic-gate struct gpol_arg { 1867c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1877c478bd9Sstevel@tonic-gate char *name; 1887c478bd9Sstevel@tonic-gate }; 1897c478bd9Sstevel@tonic-gate typedef struct gpol_arg gpol_arg; 1907c478bd9Sstevel@tonic-gate 1917c478bd9Sstevel@tonic-gate struct gpol_ret { 1927c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 1937c478bd9Sstevel@tonic-gate kadm5_ret_t code; 1947c478bd9Sstevel@tonic-gate kadm5_policy_ent_rec rec; 1957c478bd9Sstevel@tonic-gate }; 1967c478bd9Sstevel@tonic-gate typedef struct gpol_ret gpol_ret; 1977c478bd9Sstevel@tonic-gate 1987c478bd9Sstevel@tonic-gate struct gpols_arg { 1997c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 2007c478bd9Sstevel@tonic-gate char *exp; 2017c478bd9Sstevel@tonic-gate }; 2027c478bd9Sstevel@tonic-gate typedef struct gpols_arg gpols_arg; 2037c478bd9Sstevel@tonic-gate 2047c478bd9Sstevel@tonic-gate struct gpols_ret { 2057c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 2067c478bd9Sstevel@tonic-gate kadm5_ret_t code; 2077c478bd9Sstevel@tonic-gate char **pols; 2087c478bd9Sstevel@tonic-gate int count; 2097c478bd9Sstevel@tonic-gate }; 2107c478bd9Sstevel@tonic-gate typedef struct gpols_ret gpols_ret; 2117c478bd9Sstevel@tonic-gate 2127c478bd9Sstevel@tonic-gate struct getprivs_ret { 2137c478bd9Sstevel@tonic-gate krb5_ui_4 api_version; 2147c478bd9Sstevel@tonic-gate kadm5_ret_t code; 2157c478bd9Sstevel@tonic-gate long privs; 2167c478bd9Sstevel@tonic-gate }; 2177c478bd9Sstevel@tonic-gate typedef struct getprivs_ret getprivs_ret; 2187c478bd9Sstevel@tonic-gate 219*159d09a2SMark Phalan #define KADM 2112 220*159d09a2SMark Phalan #define KADMVERS 2 221*159d09a2SMark Phalan #define CREATE_PRINCIPAL 1 222*159d09a2SMark Phalan extern generic_ret * create_principal_2(cprinc_arg *, CLIENT *); 223*159d09a2SMark Phalan extern generic_ret * create_principal_2_svc(cprinc_arg *, struct svc_req *); 224*159d09a2SMark Phalan #define DELETE_PRINCIPAL 2 225*159d09a2SMark Phalan extern generic_ret * delete_principal_2(dprinc_arg *, CLIENT *); 226*159d09a2SMark Phalan extern generic_ret * delete_principal_2_svc(dprinc_arg *, struct svc_req *); 227*159d09a2SMark Phalan #define MODIFY_PRINCIPAL 3 228*159d09a2SMark Phalan extern generic_ret * modify_principal_2(mprinc_arg *, CLIENT *); 229*159d09a2SMark Phalan extern generic_ret * modify_principal_2_svc(mprinc_arg *, struct svc_req *); 230*159d09a2SMark Phalan #define RENAME_PRINCIPAL 4 231*159d09a2SMark Phalan extern generic_ret * rename_principal_2(rprinc_arg *, CLIENT *); 232*159d09a2SMark Phalan extern generic_ret * rename_principal_2_svc(rprinc_arg *, struct svc_req *); 233*159d09a2SMark Phalan #define GET_PRINCIPAL 5 234*159d09a2SMark Phalan extern gprinc_ret * get_principal_2(gprinc_arg *, CLIENT *); 235*159d09a2SMark Phalan extern gprinc_ret * get_principal_2_svc(gprinc_arg *, struct svc_req *); 236*159d09a2SMark Phalan #define CHPASS_PRINCIPAL 6 237*159d09a2SMark Phalan extern generic_ret * chpass_principal_2(chpass_arg *, CLIENT *); 238*159d09a2SMark Phalan extern generic_ret * chpass_principal_2_svc(chpass_arg *, struct svc_req *); 239*159d09a2SMark Phalan #define CHRAND_PRINCIPAL 7 240*159d09a2SMark Phalan extern chrand_ret * chrand_principal_2(chrand_arg *, CLIENT *); 241*159d09a2SMark Phalan extern chrand_ret * chrand_principal_2_svc(chrand_arg *, struct svc_req *); 242*159d09a2SMark Phalan #define CREATE_POLICY 8 243*159d09a2SMark Phalan extern generic_ret * create_policy_2(cpol_arg *, CLIENT *); 244*159d09a2SMark Phalan extern generic_ret * create_policy_2_svc(cpol_arg *, struct svc_req *); 245*159d09a2SMark Phalan #define DELETE_POLICY 9 246*159d09a2SMark Phalan extern generic_ret * delete_policy_2(dpol_arg *, CLIENT *); 247*159d09a2SMark Phalan extern generic_ret * delete_policy_2_svc(dpol_arg *, struct svc_req *); 248*159d09a2SMark Phalan #define MODIFY_POLICY 10 249*159d09a2SMark Phalan extern generic_ret * modify_policy_2(mpol_arg *, CLIENT *); 250*159d09a2SMark Phalan extern generic_ret * modify_policy_2_svc(mpol_arg *, struct svc_req *); 251*159d09a2SMark Phalan #define GET_POLICY 11 252*159d09a2SMark Phalan extern gpol_ret * get_policy_2(gpol_arg *, CLIENT *); 253*159d09a2SMark Phalan extern gpol_ret * get_policy_2_svc(gpol_arg *, struct svc_req *); 254*159d09a2SMark Phalan #define GET_PRIVS 12 255*159d09a2SMark Phalan extern getprivs_ret * get_privs_2(void *, CLIENT *); 256*159d09a2SMark Phalan extern getprivs_ret * get_privs_2_svc(krb5_ui_4 *, struct svc_req *); 257*159d09a2SMark Phalan #define INIT 13 258*159d09a2SMark Phalan extern generic_ret * init_2(void *, CLIENT *); 259*159d09a2SMark Phalan extern generic_ret * init_2_svc(krb5_ui_4 *, struct svc_req *); 260*159d09a2SMark Phalan #define GET_PRINCS 14 261*159d09a2SMark Phalan extern gprincs_ret * get_princs_2(gprincs_arg *, CLIENT *); 262*159d09a2SMark Phalan extern gprincs_ret * get_princs_2_svc(gprincs_arg *, struct svc_req *); 263*159d09a2SMark Phalan #define GET_POLS 15 264*159d09a2SMark Phalan extern gpols_ret * get_pols_2(gpols_arg *, CLIENT *); 265*159d09a2SMark Phalan extern gpols_ret * get_pols_2_svc(gpols_arg *, struct svc_req *); 266*159d09a2SMark Phalan #define SETKEY_PRINCIPAL 16 267*159d09a2SMark Phalan extern generic_ret * setkey_principal_2(setkey_arg *, CLIENT *); 268*159d09a2SMark Phalan extern generic_ret * setkey_principal_2_svc(setkey_arg *, struct svc_req *); 269*159d09a2SMark Phalan #define SETV4KEY_PRINCIPAL 17 270*159d09a2SMark Phalan extern generic_ret * setv4key_principal_2(setv4key_arg *, CLIENT *); 271*159d09a2SMark Phalan extern generic_ret * setv4key_principal_2_svc(setv4key_arg *, struct svc_req *); 272*159d09a2SMark Phalan #define CREATE_PRINCIPAL3 18 273*159d09a2SMark Phalan extern generic_ret * create_principal3_2(cprinc3_arg *, CLIENT *); 274*159d09a2SMark Phalan extern generic_ret * create_principal3_2_svc(cprinc3_arg *, struct svc_req *); 275*159d09a2SMark Phalan #define CHPASS_PRINCIPAL3 19 276*159d09a2SMark Phalan extern generic_ret * chpass_principal3_2(chpass3_arg *, CLIENT *); 277*159d09a2SMark Phalan extern generic_ret * chpass_principal3_2_svc(chpass3_arg *, struct svc_req *); 278*159d09a2SMark Phalan #define CHRAND_PRINCIPAL3 20 279*159d09a2SMark Phalan extern chrand_ret * chrand_principal3_2(chrand3_arg *, CLIENT *); 280*159d09a2SMark Phalan extern chrand_ret * chrand_principal3_2_svc(chrand3_arg *, struct svc_req *); 281*159d09a2SMark Phalan #define SETKEY_PRINCIPAL3 21 282*159d09a2SMark Phalan extern generic_ret * setkey_principal3_2(setkey3_arg *, CLIENT *); 283*159d09a2SMark Phalan extern generic_ret * setkey_principal3_2_svc(setkey3_arg *, struct svc_req *); 28456a424ccSmp153739 285*159d09a2SMark Phalan extern bool_t xdr_cprinc_arg (); 286*159d09a2SMark Phalan extern bool_t xdr_cprinc3_arg (); 287*159d09a2SMark Phalan extern bool_t xdr_generic_ret (); 288*159d09a2SMark Phalan extern bool_t xdr_dprinc_arg (); 289*159d09a2SMark Phalan extern bool_t xdr_mprinc_arg (); 290*159d09a2SMark Phalan extern bool_t xdr_rprinc_arg (); 291*159d09a2SMark Phalan extern bool_t xdr_gprincs_arg (); 292*159d09a2SMark Phalan extern bool_t xdr_gprincs_ret (); 293*159d09a2SMark Phalan extern bool_t xdr_chpass_arg (); 294*159d09a2SMark Phalan extern bool_t xdr_chpass3_arg (); 295*159d09a2SMark Phalan extern bool_t xdr_setv4key_arg (); 296*159d09a2SMark Phalan extern bool_t xdr_setkey_arg (); 297*159d09a2SMark Phalan extern bool_t xdr_setkey3_arg (); 298*159d09a2SMark Phalan extern bool_t xdr_chrand_arg (); 299*159d09a2SMark Phalan extern bool_t xdr_chrand3_arg (); 300*159d09a2SMark Phalan extern bool_t xdr_chrand_ret (); 301*159d09a2SMark Phalan extern bool_t xdr_gprinc_arg (); 302*159d09a2SMark Phalan extern bool_t xdr_gprinc_ret (); 303*159d09a2SMark Phalan extern bool_t xdr_kadm5_ret_t (); 304*159d09a2SMark Phalan extern bool_t xdr_kadm5_principal_ent_rec (); 305*159d09a2SMark Phalan extern bool_t xdr_kadm5_policy_ent_rec (); 306*159d09a2SMark Phalan extern bool_t xdr_krb5_keyblock (); 307*159d09a2SMark Phalan extern bool_t xdr_krb5_principal (); 308*159d09a2SMark Phalan extern bool_t xdr_krb5_enctype (); 309*159d09a2SMark Phalan extern bool_t xdr_krb5_octet (); 310*159d09a2SMark Phalan extern bool_t xdr_krb5_int32 (); 311*159d09a2SMark Phalan extern bool_t xdr_u_int32 (); 312*159d09a2SMark Phalan extern bool_t xdr_cpol_arg (); 313*159d09a2SMark Phalan extern bool_t xdr_dpol_arg (); 314*159d09a2SMark Phalan extern bool_t xdr_mpol_arg (); 315*159d09a2SMark Phalan extern bool_t xdr_gpol_arg (); 316*159d09a2SMark Phalan extern bool_t xdr_gpol_ret (); 317*159d09a2SMark Phalan extern bool_t xdr_gpols_arg (); 318*159d09a2SMark Phalan extern bool_t xdr_gpols_ret (); 319*159d09a2SMark Phalan extern bool_t xdr_getprivs_ret (); 32056a424ccSmp153739 32156a424ccSmp153739 32256a424ccSmp153739 #endif /* __KADM_RPC_H__ */ 323