1 /***************************************************************************
3 * cdutils.h : definitions for CD/DVD utilities
5 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
6 * Use is subject to license terms.
8 * Licensed under the Academic Free License version 2.1
10 **************************************************************************/
12 #pragma ident "%Z%%M% %I% %E% SMI"
17 #include <sys/types.h>
20 #include <sys/scsi/impl/uscsi.h>
27 typedef struct intlist
{
32 typedef struct disc_info
{
38 #define min(a, b) ((a) < (b) ? (a) : (b))
39 #define max(a, b) ((a) > (b) ? (a) : (b))
41 void uscsi_cmd_init(struct uscsi_cmd
*scmd
, char *cdb
, int cdblen
);
42 int uscsi(int fd
, struct uscsi_cmd
*scmd
);
43 int mode_sense(int fd
, uchar_t pc
, int dbd
, int page_len
,
45 int get_mode_page(int fd
, int page_no
, int pc
, int buf_len
,
46 uchar_t
*buffer
, int *plen
);
47 int get_configuration(int fd
, uint16_t feature
, int bufsize
,
49 boolean_t
get_current_profile(int fd
, int *profile
);
50 void walk_profiles(int fd
, int (*f
)(void *, int, boolean_t
), void *);
51 void get_read_write_speeds(int fd
, int *read_speed
, int *write_speed
,
52 intlist_t
**wspeeds
, int *n_wspeeds
, intlist_t
**wspeeds_mem
);
53 boolean_t
get_disc_info(int fd
, disc_info_t
*);
54 boolean_t
read_format_capacity(int fd
, uint64_t *capacity
);
55 boolean_t
get_media_info(int fd
, struct dk_minfo
*minfop
);
56 boolean_t
get_disc_capacity_for_profile(int fd
, int profile
,
58 boolean_t
read_toc(int fd
, int format
, int trackno
, int buflen
,
61 #endif /* CDUTILS_H */