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 1995 Sun Microsystems Inc.
24 * All rights reserved.
25 */
26
27
28 #ifndef __TABLE_H
29 #define __TABLE_H
30
31 #pragma ident "%Z%%M% %I% %E% SMI" /* SMI4.1 1.4 */
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #define NUMLETTERS 27 /* 26 letters + 1 for anything else */
38 #define TABLESIZE (NUMLETTERS*NUMLETTERS)
39
40 typedef struct tablenode *tablelist;
41 struct tablenode {
42 char *key;
43 char *datum;
44 tablelist next;
45 };
46 typedef struct tablenode tablenode;
47
48 typedef tablelist stringtable[TABLESIZE];
49
50 int tablekey();
51 char *lookup();
52 void store();
53
54 #ifdef __cplusplus
55 }
56 #endif
57
58 #endif /* __TABLE_H */
|
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 1995 Sun Microsystems Inc.
24 * All rights reserved.
25 *
26 * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
27 */
28
29 #ifndef __TABLE_H
30 #define __TABLE_H
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 #include <sys/types.h>
37
38 #define NUMLETTERS 27 /* 26 letters + 1 for anything else */
39 #define TABLESIZE (NUMLETTERS*NUMLETTERS)
40
41 typedef struct tablenode *tablelist;
42 typedef struct tablenode {
43 char *key;
44 char *datum;
45 tablelist next;
46 } tablenode;
47
48 /* Stores a list of strings */
49 typedef struct stringnode {
50 char *str;
51 struct stringnode *s_next;
52 } stringnode;
53
54 /* Stores a list of (name,list-of-groups) */
55 typedef struct groupentrynode *groupentrylist;
56
57 typedef struct groupentrynode {
58 char *name;
59 stringnode *groups;
60 groupentrylist next;
61 } groupentrynode;
62
63 typedef struct revhandle {
64 tablelist ngtable[TABLESIZE];
65 groupentrylist grouptable[TABLESIZE];
66 struct grouplist *grouplist; /* stores a list of users in a group */
67 uint_t rh_index;
68 boolean_t rh_byuser;
69 } revhandle_t;
70
71 int tablekey();
72 char *lookup();
73 void store();
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79 #endif /* __TABLE_H */
|