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 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23 /* All Rights Reserved */ 24 25 26 #ifndef _DEVMGMT_H 27 #define _DEVMGMT_H 28 29 #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.12 */ 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /* 36 * devmgmt.h 37 * 38 * Contents: 39 * - Device Management definitions, 40 * - getvol() definitions 41 */ 42 43 /* 44 * Device management definitions 45 * - Default pathnames (relative to installation point) 46 * - Environment variable namess 47 * - Standard field names in the device table 48 * - Flags 49 * - Miscellaneous definitions 50 */ 51 52 53 /* 54 * Default pathnames (relative to the package installation 55 * point) to the files used by Device Management: 56 * 57 * DTAB_PATH Device table 58 * DGRP_PATH Device group table 59 * DVLK_PATH Device reservation table 60 */ 61 62 #define DTAB_PATH "/etc/device.tab" 63 #define DGRP_PATH "/etc/dgroup.tab" 64 #define DVLK_PATH "/etc/devlkfile" 65 66 67 /* 68 * Names of environment variables 69 * 70 * OAM_DEVTAB Name of variable that defines the pathname to 71 * the device-table file 72 * OAM_DGROUP Name of variable that defines the pathname to 73 * the device-group table file 74 * OAM_DEVLKTAB Name of variable that defines the pathname to 75 * the device-reservation table file 76 */ 77 78 #define OAM_DEVTAB "OAM_DEVTAB" 79 #define OAM_DGROUP "OAM_DGROUP" 80 #define OAM_DEVLKTAB "OAM_DEVLKTAB" 81 82 83 /* 84 * Standard field names in the device table 85 */ 86 87 #define DTAB_ALIAS "alias" 88 #define DTAB_CDEVICE "cdevice" 89 #define DTAB_BDEVICE "bdevice" 90 #define DTAB_PATHNAME "pathname" 91 92 93 /* 94 * Flags: 95 * For getdev() and getdgrp(): 96 * DTAB_ANDCRITERIA Devices must meet all criteria 97 * instead of any of the criteria 98 * DTAB_EXCLUDEFLAG The list of devices or device groups 99 * is the list that is to be excluded, 100 * not those to select from. 101 * DTAB_LISTALL List all device groups, even those that 102 * have no valid members (getdgrp() only). 103 */ 104 105 #define DTAB_ANDCRITERIA 0x01 106 #define DTAB_EXCLUDEFLAG 0x02 107 #define DTAB_LISTALL 0x04 108 109 110 /* 111 * Miscellaneous Definitions 112 * 113 * DTAB_MXALIASLN Maximum alias length 114 */ 115 116 #define DTAB_MXALIASLN 14 117 118 /* 119 * Device Management Structure definitions 120 * reservdev Reserved device description 121 */ 122 123 /* 124 * struct reservdev 125 * 126 * Structure describes a reserved device. 127 * 128 * Elements: 129 * char *devname Alias of the reserved device 130 * pid_t key Key used to reserve the device 131 */ 132 133 struct reservdev { 134 char *devname; 135 pid_t key; 136 }; 137 138 /* 139 * Device Management Functions: 140 * 141 * devattr() Returns a device's attribute 142 * devreserv() Reserves a device 143 * devfree() Frees a reserved device 144 * reservdev() Return list of reserved devices 145 * getdev() Get devices that match criteria 146 * getdgrp() Get device-groups containing devices 147 * that match criteria 148 * listdev() List attributes defined for a device 149 * listdgrp() List members of a device-group 150 */ 151 152 char *devattr(char *, char *); 153 int devfree(int, char *); 154 char **devreserv(int, char ***); 155 char **getdev(char **, char **, int); 156 char **getdgrp(char **, char **, int); 157 char **listdev(char *); 158 char **listdgrp(char *); 159 struct reservdev **reservdev(void); 160 161 /* 162 * getvol() definitions 163 */ 164 165 #define DM_BATCH 0x0001 166 #define DM_ELABEL 0x0002 167 #define DM_FORMAT 0x0004 168 #define DM_FORMFS 0x0008 169 #define DM_WLABEL 0x0010 170 #define DM_OLABEL 0x0020 171 172 int getvol(char *, char *, int, char *); 173 174 #ifdef __cplusplus 175 } 176 #endif 177 178 #endif /* _DEVMGMT_H */ 179