Backed out changeset e05f5705283d (wrong name)
[unleashed.git] / usr / src / cmd / hal / utils / cdutils.h
blob91389e6d54cdbfca6e364153daee3cef604e8e9f
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"
14 #ifndef CDUTILS_H
15 #define CDUTILS_H
17 #include <sys/types.h>
18 #include <sys/dkio.h>
19 #include <sys/cdio.h>
20 #include <sys/scsi/impl/uscsi.h>
22 enum {
23 CDUTIL_WALK_CONTINUE,
24 CDUTIL_WALK_STOP
27 typedef struct intlist {
28 int val;
29 struct intlist *next;
30 } intlist_t;
32 typedef struct disc_info {
33 int disc_status;
34 int erasable;
35 uint_t capacity;
36 } disc_info_t;
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,
44 uchar_t *buffer);
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,
48 uchar_t *buf);
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,
57 uint64_t *capacity);
58 boolean_t read_toc(int fd, int format, int trackno, int buflen,
59 uchar_t *buf);
61 #endif /* CDUTILS_H */