264 int spec_type, minor_t minor_num);
265
266 /*
267 * Global buffer and mutex for debug logging
268 */
269 static char cmlb_log_buffer[1024];
270 static kmutex_t cmlb_log_mutex;
271
272
273 struct cmlb_lun *cmlb_debug_cl = NULL;
274 uint_t cmlb_level_mask = 0x0;
275
276 int cmlb_rot_delay = 4; /* default rotational delay */
277
278 static struct modlmisc modlmisc = {
279 &mod_miscops, /* Type of module */
280 "Common Labeling module"
281 };
282
283 static struct modlinkage modlinkage = {
284 MODREV_1, (void *)&modlmisc, NULL
285 };
286
287 /* Local function prototypes */
288 static dev_t cmlb_make_device(struct cmlb_lun *cl);
289 static int cmlb_validate_geometry(struct cmlb_lun *cl, boolean_t forcerevalid,
290 int flags, void *tg_cookie);
291 static void cmlb_resync_geom_caches(struct cmlb_lun *cl, diskaddr_t capacity,
292 void *tg_cookie);
293 static int cmlb_read_fdisk(struct cmlb_lun *cl, diskaddr_t capacity,
294 void *tg_cookie);
295 static void cmlb_swap_efi_gpt(efi_gpt_t *e);
296 static void cmlb_swap_efi_gpe(int nparts, efi_gpe_t *p);
297 static int cmlb_validate_efi(efi_gpt_t *labp);
298 static int cmlb_use_efi(struct cmlb_lun *cl, diskaddr_t capacity, int flags,
299 void *tg_cookie);
300 static void cmlb_build_default_label(struct cmlb_lun *cl, void *tg_cookie);
301 static int cmlb_uselabel(struct cmlb_lun *cl, struct dk_label *l, int flags);
302 #if defined(_SUNOS_VTOC_8)
303 static void cmlb_build_user_vtoc(struct cmlb_lun *cl, struct vtoc *user_vtoc);
304 #endif
|
264 int spec_type, minor_t minor_num);
265
266 /*
267 * Global buffer and mutex for debug logging
268 */
269 static char cmlb_log_buffer[1024];
270 static kmutex_t cmlb_log_mutex;
271
272
273 struct cmlb_lun *cmlb_debug_cl = NULL;
274 uint_t cmlb_level_mask = 0x0;
275
276 int cmlb_rot_delay = 4; /* default rotational delay */
277
278 static struct modlmisc modlmisc = {
279 &mod_miscops, /* Type of module */
280 "Common Labeling module"
281 };
282
283 static struct modlinkage modlinkage = {
284 MODREV_1, { (void *)&modlmisc, NULL }
285 };
286
287 /* Local function prototypes */
288 static dev_t cmlb_make_device(struct cmlb_lun *cl);
289 static int cmlb_validate_geometry(struct cmlb_lun *cl, boolean_t forcerevalid,
290 int flags, void *tg_cookie);
291 static void cmlb_resync_geom_caches(struct cmlb_lun *cl, diskaddr_t capacity,
292 void *tg_cookie);
293 static int cmlb_read_fdisk(struct cmlb_lun *cl, diskaddr_t capacity,
294 void *tg_cookie);
295 static void cmlb_swap_efi_gpt(efi_gpt_t *e);
296 static void cmlb_swap_efi_gpe(int nparts, efi_gpe_t *p);
297 static int cmlb_validate_efi(efi_gpt_t *labp);
298 static int cmlb_use_efi(struct cmlb_lun *cl, diskaddr_t capacity, int flags,
299 void *tg_cookie);
300 static void cmlb_build_default_label(struct cmlb_lun *cl, void *tg_cookie);
301 static int cmlb_uselabel(struct cmlb_lun *cl, struct dk_label *l, int flags);
302 #if defined(_SUNOS_VTOC_8)
303 static void cmlb_build_user_vtoc(struct cmlb_lun *cl, struct vtoc *user_vtoc);
304 #endif
|