cmd: remove locator
[unleashed/lotheac.git] / usr / src / cmd / picl / plugins / lib / picld_pluginutil / picld_pluginutil_impl.h
blob8bd476f1d13c4dabf42c86ddbad1b56ba9d774bb
1 /*
2 * CDDL HEADER START
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.
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.
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]
20 * CDDL HEADER END
23 * Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 #ifndef _PICLD_PLUGINUTIL_IMPL_H
28 #define _PICLD_PLUGINUTIL_IMPL_H
30 #pragma ident "%Z%%M% %I% %E% SMI"
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
36 #define PER_ALLOC_COUNT 256
37 #define RECORD_SIZE_MAX 1024
38 #define STARTING_INDEX 0
39 #define SUPPORTED_VERSION_NUM 1.1
41 /* reserved keyword (case insensitive) */
42 #define KEYWORD_INT_TYPE "int"
43 #define KEYWORD_UINT_TYPE "uint"
44 #define KEYWORD_FLOAT_TYPE "float"
45 #define KEYWORD_STRING_TYPE "string"
46 #define KEYWORD_VOID_TYPE "void"
47 #define KEYWORD_READ_MODE "r"
48 #define KEYWORD_WRITE_MODE "w"
49 #define KEYWORD_READWRITE_MODE "rw"
50 #define KEYWORD_WITH_STR "with"
52 #define WHITESPACE " \t\n"
53 #define RECORD_WHITESPACE ": \t\n"
54 #define DOUBLE_QUOTE "\""
56 typedef struct {
57 char *path;
58 } path_cmd_t;
60 typedef struct {
61 picl_nodehdl_t nodeh;
62 char *nodename;
63 char *classname;
64 } node_cmd_t;
66 typedef struct {
67 picl_prophdl_t proph;
68 size_t size;
69 int type;
70 int accessmode;
71 char *pname;
72 void *valbuf;
73 } prop_cmd_t;
75 typedef struct {
76 picl_prophdl_t proph;
77 char *pname;
78 char *dstnode;
79 } refprop_cmd_t;
81 typedef struct {
82 picl_nodehdl_t nodeh;
83 char *newnodename;
84 char *newnodeclass;
85 char *dstnode;
86 } refnode_cmd_t;
88 typedef struct {
89 picl_prophdl_t tblh;
90 int newtbl;
91 char *tname;
92 } table_cmd_t;
94 typedef struct {
95 int index;
96 int nproph;
97 picl_prophdl_t *prophs;
98 } row_cmd_t;
100 typedef struct {
101 int32_t level;
102 } verbose_cmd_t;
104 typedef struct {
105 int type;
106 union {
107 path_cmd_t path;
108 node_cmd_t node;
109 prop_cmd_t prop;
110 refprop_cmd_t refprop;
111 refnode_cmd_t refnode;
112 table_cmd_t table;
113 row_cmd_t row;
114 verbose_cmd_t verbose;
115 } u;
116 } command_t;
118 typedef struct {
119 int count;
120 int allocated;
121 float version_no;
122 int inside_node_block;
123 int verbose;
124 const char *fname;
125 int inside_table_block;
126 int current_tbl;
127 int inside_row_block;
128 int current_row;
129 command_t *commands;
130 } cmdbuf_t;
132 #define pathcmd_name u.path.path
133 #define nodecmd_nodeh u.node.nodeh
134 #define nodecmd_nodename u.node.nodename
135 #define nodecmd_classname u.node.classname
136 #define nodecmd_classname u.node.classname
137 #define propcmd_proph u.prop.proph
138 #define propcmd_pname u.prop.pname
139 #define propcmd_type u.prop.type
140 #define propcmd_accessmode u.prop.accessmode
141 #define propcmd_size u.prop.size
142 #define propcmd_valbuf u.prop.valbuf
143 #define refpropcmd_proph u.refprop.proph
144 #define refpropcmd_pname u.refprop.pname
145 #define refpropcmd_dstnode u.refprop.dstnode
146 #define refnodecmd_nodeh u.refnode.nodeh
147 #define refnodecmd_name u.refnode.newnodename
148 #define refnodecmd_class u.refnode.newnodeclass
149 #define refnodecmd_dstnode u.refnode.dstnode
150 #define tablecmd_tblh u.table.tblh
151 #define tablecmd_newtbl u.table.newtbl
152 #define tablecmd_tname u.table.tname
153 #define rowcmd_index u.row.index
154 #define rowcmd_nproph u.row.nproph
155 #define rowcmd_prophs u.row.prophs
156 #define verbosecmd_level u.verbose.level
158 #ifdef __cplusplus
160 #endif
162 #endif /* _PICLD_PLUGINUTIL_IMPL_H */