1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * db_entry_c.x 24 * 25 * Copyright 2015 Gary Mills 26 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 27 * Use is subject to license terms. 28 */ 29 30 /* 31 * Some manifest constants, chosen to maximize flexibility without 32 * plugging the wire full of data. 33 */ 34 35 #if RPC_HDR 36 %#ifndef _DB_NIS_H 37 %#define _DB_NIS_H 38 39 %#include <rpcsvc/nis.h> 40 #endif /* RPC_HDR */ 41 42 #if RPC_XDR 43 %#include "nis_clnt.h" 44 #endif /* RPC_XDR */ 45 46 #ifdef USINGC 47 enum db_status {DB_SUCCESS, DB_NOTFOUND, DB_NOTUNIQUE, 48 DB_BADTABLE, DB_BADQUERY, DB_BADOBJECT, 49 DB_MEMORY_LIMIT, DB_STORAGE_LIMIT, DB_INTERNAL_ERROR}; 50 51 enum db_action {DB_LOOKUP, DB_REMOVE, DB_ADD, DB_FIRST, DB_NEXT, 52 DB_ALL, DB_RESET_NEXT, DB_ADD_NOLOG, 53 DB_ADD_NOSYNC, DB_REMOVE_NOSYNC }; 54 #endif /* USINGC */ 55 56 /* Make alias to NIS definition */ 57 58 typedef entry_obj entry_object; 59 typedef entry_object * entry_object_p; 60 61 typedef nis_name db_stringname; 62 typedef nis_attr db_attrname; /* What the database knows it as */ 63 64 65 /* nis_dba.x ----------------------------- */ 66 67 /* 68 * Structure definitions for the parameters and results of the actual 69 * NIS DBA calls 70 * 71 * This is the standard result (in the protocol) of most of the nis 72 * requests. 73 */ 74 75 /*typedef long db_next_desc;*/ 76 77 typedef opaque db_next_desc<>; /* opaque string */ 78 79 struct db_result { 80 db_status status; /* The status itself */ 81 db_next_desc nextinfo; /* for first/next sequence */ 82 entry_object_p objects<>; /* And the objects found */ 83 long ticks; /* for statistics */ 84 }; 85 86 struct db_request { 87 db_stringname table_name; 88 db_attrname attrs<NIS_MAXCOLUMNS>; 89 entry_object * obj; /* only used for addition */ 90 }; 91 92 #ifndef USINGC 93 %#ifdef __cplusplus 94 %extern "C" entry_object * new_entry( entry_object*); 95 %extern "C" bool_t copy_entry ( entry_object*, entry_object*); 96 %extern "C" void free_entry (entry_object*); 97 %extern "C" bool_t sameEntry(entry_object *, entry_object *); 98 %#elif __STDC__ 99 %extern entry_object * new_entry( entry_object*); 100 %extern bool_t copy_entry ( entry_object*, entry_object*); 101 %extern void free_entry (entry_object*); 102 %extern bool_t sameEntry(entry_object *, entry_object *); 103 %#endif 104 #else 105 #if RPC_HDR 106 %extern void print_entry(); 107 %extern char copy_entry(); 108 %extern void free_entry(); 109 %extern void new_entry(); 110 #endif /* RPC_HDR */ 111 #endif /* USINGC */ 112 113 #if RPC_HDR 114 %#endif /* _DB_NIS_H */ 115 #endif /* RPC_HDR */