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 * Copyright (c) 1991,1997-1998 by Sun Microsystems, Inc.
24 * All rights reserved.
25 */
26
27 /*
28 * This header file defines the interface to the NIS database. All
29 * implementations of the database must export at least these routines.
30 * They must also follow the conventions set herein. See the implementors
31 * guide for specific semantics that are required.
32 */
33
34 #ifndef _RPCSVC_NIS_DB_H
35 #define _RPCSVC_NIS_DB_H
36
37 #pragma ident "%Z%%M% %I% %E% SMI"
38
39 #include <rpc/rpc.h>
40 #include <rpcsvc/nis.h>
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 enum db_status {
47 DB_SUCCESS = 0,
48 DB_NOTFOUND = 1,
49 DB_NOTUNIQUE = 2,
50 DB_BADTABLE = 3,
51 DB_BADQUERY = 4,
52 DB_BADOBJECT = 5,
53 DB_MEMORY_LIMIT = 6,
54 DB_STORAGE_LIMIT = 7,
55 DB_INTERNAL_ERROR = 8
56 };
57 typedef enum db_status db_status;
58
72 typedef struct {
73 uint_t db_next_desc_len;
74 char *db_next_desc_val;
75 } db_next_desc;
76
77 struct db_result {
78 db_status status;
79 db_next_desc nextinfo;
80 struct {
81 uint_t objects_len;
82 entry_object_p *objects_val;
83 } objects;
84 long ticks;
85 };
86 typedef struct db_result db_result;
87
88 /*
89 * Prototypes for the database functions.
90 */
91
92 #if defined(__STDC__) || defined(__cplusplus)
93
94 extern bool_t db_initialize(char *);
95 extern db_status db_create_table(char *, table_obj *);
96 extern db_status db_destroy_table(char *);
97 extern db_result *db_first_entry(char *, int, nis_attr *);
98 extern db_result *db_next_entry(char *, db_next_desc *);
99 extern db_result *db_reset_next_entry(char *, db_next_desc *);
100 extern db_result *db_list_entries(char *, int, nis_attr *);
101 extern db_result *db_add_entry(char *, int, nis_attr *, entry_obj *);
102 extern db_result *db_remove_entry(char *, int, nis_attr *);
103 extern db_status db_checkpoint(char *);
104 extern db_status db_standby(char *);
105 extern db_status db_table_exists(char *);
106 extern db_status db_unload_table(char *);
107 extern void db_free_result(db_result *);
108
109 #else /* Non-prototype definitions */
110
111 extern bool_t db_initialize();
112 extern db_status db_create_table();
113 extern db_status db_destroy_table();
114 extern db_result *db_first_entry();
115 extern db_result *db_next_entry();
116 extern db_result *db_reset_next_entry();
117 extern db_result *db_list_entries();
118 extern db_result *db_add_entry();
119 extern db_result *db_remove_entry();
120 extern db_status db_checkpoint();
121 extern db_status db_standby();
122 extern db_status db_table_exists();
123 extern db_status db_unload_table();
124 extern void db_free_result();
125
126 #endif /* defined(__STDC__) || defined(__cplusplus) */
127
128 #ifdef __cplusplus
129 }
130 #endif
131
132 #endif /* _RPCSVC_NIS_DB_H */
|
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 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
24 *
25 * Copyright (c) 1991,1997-1998 by Sun Microsystems, Inc.
26 * All rights reserved.
27 */
28
29 /*
30 * This header file defines the interface to the NIS database. All
31 * implementations of the database must export at least these routines.
32 * They must also follow the conventions set herein. See the implementors
33 * guide for specific semantics that are required.
34 */
35
36 #ifndef _RPCSVC_NIS_DB_H
37 #define _RPCSVC_NIS_DB_H
38
39 #include <rpc/rpc.h>
40 #include <rpcsvc/nis.h>
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 enum db_status {
47 DB_SUCCESS = 0,
48 DB_NOTFOUND = 1,
49 DB_NOTUNIQUE = 2,
50 DB_BADTABLE = 3,
51 DB_BADQUERY = 4,
52 DB_BADOBJECT = 5,
53 DB_MEMORY_LIMIT = 6,
54 DB_STORAGE_LIMIT = 7,
55 DB_INTERNAL_ERROR = 8
56 };
57 typedef enum db_status db_status;
58
72 typedef struct {
73 uint_t db_next_desc_len;
74 char *db_next_desc_val;
75 } db_next_desc;
76
77 struct db_result {
78 db_status status;
79 db_next_desc nextinfo;
80 struct {
81 uint_t objects_len;
82 entry_object_p *objects_val;
83 } objects;
84 long ticks;
85 };
86 typedef struct db_result db_result;
87
88 /*
89 * Prototypes for the database functions.
90 */
91
92 extern bool_t db_initialize(char *);
93 extern db_status db_create_table(char *, table_obj *);
94 extern db_status db_destroy_table(char *);
95 extern db_result *db_first_entry(char *, int, nis_attr *);
96 extern db_result *db_next_entry(char *, db_next_desc *);
97 extern db_result *db_reset_next_entry(char *, db_next_desc *);
98 extern db_result *db_list_entries(char *, int, nis_attr *);
99 extern db_result *db_add_entry(char *, int, nis_attr *, entry_obj *);
100 extern db_result *db_remove_entry(char *, int, nis_attr *);
101 extern db_status db_checkpoint(char *);
102 extern db_status db_standby(char *);
103 extern db_status db_table_exists(char *);
104 extern db_status db_unload_table(char *);
105 extern void db_free_result(db_result *);
106
107 #ifdef __cplusplus
108 }
109 #endif
110
111 #endif /* _RPCSVC_NIS_DB_H */
|