Lines Matching refs:scmd
44 uscsi_cmd_init(struct uscsi_cmd *scmd, char *cdb, int cdblen) in uscsi_cmd_init() argument
46 bzero(scmd, sizeof (*scmd)); in uscsi_cmd_init()
48 scmd->uscsi_cdb = cdb; in uscsi_cmd_init()
52 uscsi(int fd, struct uscsi_cmd *scmd) in uscsi() argument
59 f = scmd->uscsi_flags; in uscsi()
60 scmd->uscsi_flags |= USCSI_RQENABLE; in uscsi()
61 scmd->uscsi_rqlen = RQLEN; in uscsi()
62 scmd->uscsi_rqbuf = rqbuf; in uscsi()
65 scmd->uscsi_status = 0; in uscsi()
68 ret = ioctl(fd, USCSICMD, scmd); in uscsi()
70 if ((ret == 0) && (scmd->uscsi_status == 2)) { in uscsi()
74 if ((ret < 0) && (scmd->uscsi_status == 2)) { in uscsi()
118 (uchar_t)scmd->uscsi_cdb[0], ret, in uscsi()
119 scmd->uscsi_status, in uscsi()
132 scmd->uscsi_rqbuf = NULL; in uscsi()
133 scmd->uscsi_flags = f; in uscsi()
134 scmd->uscsi_rqlen = 0; in uscsi()
141 struct uscsi_cmd scmd; in mode_sense() local
144 uscsi_cmd_init(&scmd, cdb, sizeof (cdb)); in mode_sense()
145 scmd.uscsi_flags = USCSI_READ|USCSI_SILENT; in mode_sense()
146 scmd.uscsi_buflen = page_len; in mode_sense()
147 scmd.uscsi_bufaddr = (char *)buffer; in mode_sense()
148 scmd.uscsi_timeout = CD_USCSI_TIMEOUT; in mode_sense()
149 scmd.uscsi_cdblen = 0xa; in mode_sense()
150 scmd.uscsi_cdb[0] = 0x5a; /* MODE SENSE 10 */ in mode_sense()
152 scmd.uscsi_cdb[1] = 0x8; /* no block descriptors */ in mode_sense()
154 scmd.uscsi_cdb[2] = pc; in mode_sense()
155 scmd.uscsi_cdb[7] = (page_len >> 8) & 0xff; in mode_sense()
156 scmd.uscsi_cdb[8] = page_len & 0xff; in mode_sense()
158 return (uscsi(fd, &scmd) == 0); in mode_sense()
196 struct uscsi_cmd scmd; in get_configuration() local
199 uscsi_cmd_init(&scmd, cdb, sizeof (cdb)); in get_configuration()
200 scmd.uscsi_flags = USCSI_READ|USCSI_SILENT; in get_configuration()
201 scmd.uscsi_timeout = CD_USCSI_TIMEOUT; in get_configuration()
202 scmd.uscsi_cdb[0] = 0x46; /* GET CONFIGURATION */ in get_configuration()
203 scmd.uscsi_cdb[1] = 0x2; /* request type */ in get_configuration()
204 scmd.uscsi_cdb[2] = (feature >> 8) & 0xff; /* starting feature # */ in get_configuration()
205 scmd.uscsi_cdb[3] = feature & 0xff; in get_configuration()
206 scmd.uscsi_cdb[7] = (bufsize >> 8) & 0xff; /* allocation length */ in get_configuration()
207 scmd.uscsi_cdb[8] = bufsize & 0xff; in get_configuration()
208 scmd.uscsi_cdblen = 10; in get_configuration()
209 scmd.uscsi_bufaddr = (char *)buf; in get_configuration()
210 scmd.uscsi_buflen = bufsize; in get_configuration()
212 return (uscsi(fd, &scmd) == 0); in get_configuration()
371 struct uscsi_cmd scmd; in get_disc_info() local
377 uscsi_cmd_init(&scmd, cdb, sizeof (cdb)); in get_disc_info()
378 scmd.uscsi_flags = USCSI_READ|USCSI_SILENT; in get_disc_info()
379 scmd.uscsi_timeout = CD_USCSI_TIMEOUT; in get_disc_info()
380 scmd.uscsi_cdb[0] = 0x51; /* READ DISC INFORMATION */ in get_disc_info()
381 scmd.uscsi_cdb[7] = (bufsize >> 8) & 0xff; /* allocation length */ in get_disc_info()
382 scmd.uscsi_cdb[8] = bufsize & 0xff; in get_disc_info()
383 scmd.uscsi_cdblen = 10; in get_disc_info()
384 scmd.uscsi_bufaddr = (char *)buf; in get_disc_info()
385 scmd.uscsi_buflen = bufsize; in get_disc_info()
387 if ((uscsi(fd, &scmd)) != 0) { in get_disc_info()
417 struct uscsi_cmd scmd; in read_format_capacity() local
425 uscsi_cmd_init(&scmd, cdb, sizeof (cdb)); in read_format_capacity()
426 scmd.uscsi_flags = USCSI_READ|USCSI_SILENT; in read_format_capacity()
427 scmd.uscsi_timeout = CD_USCSI_TIMEOUT; in read_format_capacity()
428 scmd.uscsi_cdb[0] = 0x23; /* READ FORMAT CAPACITIRES */ in read_format_capacity()
429 scmd.uscsi_cdb[7] = (bufsize >> 8) & 0xff; /* allocation length */ in read_format_capacity()
430 scmd.uscsi_cdb[8] = bufsize & 0xff; in read_format_capacity()
431 scmd.uscsi_cdblen = 12; in read_format_capacity()
432 scmd.uscsi_bufaddr = (char *)buf; in read_format_capacity()
433 scmd.uscsi_buflen = bufsize; in read_format_capacity()
435 if ((uscsi(fd, &scmd)) != 0) { in read_format_capacity()
488 struct uscsi_cmd scmd; in read_toc() local
492 uscsi_cmd_init(&scmd, cdb, sizeof (cdb)); in read_toc()
493 scmd.uscsi_flags = USCSI_READ|USCSI_SILENT; in read_toc()
494 scmd.uscsi_timeout = CD_USCSI_TIMEOUT; in read_toc()
495 scmd.uscsi_cdb[0] = 0x43 /* READ_TOC_CMD */; in read_toc()
496 scmd.uscsi_cdb[2] = format & 0xf; in read_toc()
497 scmd.uscsi_cdb[6] = trackno; in read_toc()
498 scmd.uscsi_cdb[8] = buflen & 0xff; in read_toc()
499 scmd.uscsi_cdb[7] = (buflen >> 8) & 0xff; in read_toc()
500 scmd.uscsi_cdblen = 10; in read_toc()
501 scmd.uscsi_bufaddr = (char *)buf; in read_toc()
502 scmd.uscsi_buflen = buflen; in read_toc()
504 if ((uscsi(fd, &scmd)) != 0) { in read_toc()