1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
#ifndef _DEVMGMT_H
#define _DEVMGMT_H
#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.12 */
#ifdef __cplusplus
extern "C" {
#endif
/*
* devmgmt.h
*
* Contents:
* - Device Management definitions,
* - getvol() definitions
*/
/*
* Device management definitions
* - Default pathnames (relative to installation point)
* - Environment variable namess
* - Standard field names in the device table
* - Flags
* - Miscellaneous definitions
*/
/*
* Default pathnames (relative to the package installation
* point) to the files used by Device Management:
*
* DTAB_PATH Device table
* DGRP_PATH Device group table
* DVLK_PATH Device reservation table
*/
#define DTAB_PATH "/etc/device.tab"
#define DGRP_PATH "/etc/dgroup.tab"
#define DVLK_PATH "/etc/devlkfile"
/*
* Names of environment variables
*
* OAM_DEVTAB Name of variable that defines the pathname to
* the device-table file
* OAM_DGROUP Name of variable that defines the pathname to
* the device-group table file
* OAM_DEVLKTAB Name of variable that defines the pathname to
* the device-reservation table file
*/
#define OAM_DEVTAB "OAM_DEVTAB"
#define OAM_DGROUP "OAM_DGROUP"
#define OAM_DEVLKTAB "OAM_DEVLKTAB"
/*
* Standard field names in the device table
*/
#define DTAB_ALIAS "alias"
#define DTAB_CDEVICE "cdevice"
#define DTAB_BDEVICE "bdevice"
#define DTAB_PATHNAME "pathname"
/*
* Flags:
* For getdev() and getdgrp():
* DTAB_ANDCRITERIA Devices must meet all criteria
* instead of any of the criteria
* DTAB_EXCLUDEFLAG The list of devices or device groups
* is the list that is to be excluded,
* not those to select from.
* DTAB_LISTALL List all device groups, even those that
* have no valid members (getdgrp() only).
*/
#define DTAB_ANDCRITERIA 0x01
#define DTAB_EXCLUDEFLAG 0x02
#define DTAB_LISTALL 0x04
/*
* Miscellaneous Definitions
*
* DTAB_MXALIASLN Maximum alias length
*/
#define DTAB_MXALIASLN 14
/*
* Device Management Structure definitions
* reservdev Reserved device description
*/
/*
* struct reservdev
*
* Structure describes a reserved device.
*
* Elements:
* char *devname Alias of the reserved device
* pid_t key Key used to reserve the device
*/
struct reservdev {
char *devname;
pid_t key;
};
/*
* Device Management Functions:
*
* devattr() Returns a device's attribute
* devreserv() Reserves a device
* devfree() Frees a reserved device
* reservdev() Return list of reserved devices
* getdev() Get devices that match criteria
* getdgrp() Get device-groups containing devices
* that match criteria
* listdev() List attributes defined for a device
* listdgrp() List members of a device-group
*/
char *devattr(char *, char *);
int devfree(int, char *);
char **devreserv(int, char ***);
char **getdev(char **, char **, int);
char **getdgrp(char **, char **, int);
char **listdev(char *);
char **listdgrp(char *);
struct reservdev **reservdev(void);
/*
* getvol() definitions
*/
#define DM_BATCH 0x0001
#define DM_ELABEL 0x0002
#define DM_FORMAT 0x0004
#define DM_FORMFS 0x0008
#define DM_WLABEL 0x0010
#define DM_OLABEL 0x0020
int getvol(char *, char *, int, char *);
#ifdef __cplusplus
}
#endif
#endif /* _DEVMGMT_H */
|