db_entry_c.x revision 702:9495c7c1ed3a
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 2005 Sun Microsystems, Inc.  All rights reserved.
26 * Use is subject to license terms.
27 */
28
29%#pragma ident	"%Z%%M%	%I%	%E% SMI"
30
31/*
32 * Some manifest constants, chosen to maximize flexibility without
33 * plugging the wire full of data.
34 */
35
36#if RPC_HDR
37%#ifndef _DB_NIS_H
38%#define _DB_NIS_H
39
40%#include <rpcsvc/nis.h>
41#endif /* RPC_HDR */
42
43#ifdef USINGC
44enum db_status {DB_SUCCESS, DB_NOTFOUND, DB_NOTUNIQUE,
45		DB_BADTABLE, DB_BADQUERY, DB_BADOBJECT,
46		DB_MEMORY_LIMIT, DB_STORAGE_LIMIT, DB_INTERNAL_ERROR};
47
48enum db_action {DB_LOOKUP, DB_REMOVE, DB_ADD, DB_FIRST, DB_NEXT,
49			DB_ALL, DB_RESET_NEXT, DB_ADD_NOLOG,
50			DB_ADD_NOSYNC, DB_REMOVE_NOSYNC };
51#endif /* USINGC */
52
53/* Make alias to NIS definition */
54
55typedef entry_obj entry_object;
56typedef entry_object * entry_object_p;
57
58typedef nis_name db_stringname;
59typedef nis_attr db_attrname;          /* What the database knows it as */
60
61
62/*  nis_dba.x ----------------------------- */
63
64/*
65 * Structure definitions for the parameters and results of the actual
66 * NIS DBA calls
67 *
68 * This is the standard result (in the protocol) of most of the nis
69 * requests.
70 */
71
72/*typedef long db_next_desc;*/
73
74typedef opaque db_next_desc<>;            /* opaque string */
75
76struct db_result {
77	db_status 	status;		/* The status itself 	 */
78	db_next_desc    nextinfo;       /* for first/next sequence */
79	entry_object_p	objects<>;	/* And the objects found */
80	long		ticks;		/* for statistics	 */
81};
82
83struct db_request {
84  db_stringname table_name;
85  db_attrname  attrs<NIS_MAXCOLUMNS>;
86  entry_object * obj;      /* only used for addition */
87};
88
89#ifndef USINGC
90%#ifdef __cplusplus
91%extern "C"  entry_object * new_entry( entry_object*);
92%extern "C"  bool_t copy_entry ( entry_object*, entry_object*);
93%extern "C"  void free_entry (entry_object*);
94%extern "C"  bool_t sameEntry(entry_object *, entry_object *);
95%#elif __STDC__
96%extern entry_object * new_entry( entry_object*);
97%extern bool_t copy_entry ( entry_object*, entry_object*);
98%extern void free_entry (entry_object*);
99%extern bool_t sameEntry(entry_object *, entry_object *);
100%#endif
101#else
102#if RPC_HDR
103%extern void print_entry();
104%extern char copy_entry();
105%extern void free_entry();
106%extern void new_entry();
107#endif /* RPC_HDR */
108#endif /* USINGC */
109
110#if RPC_HDR
111%#endif /* _DB_NIS_H */
112#endif /* RPC_HDR */
113