summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/mcdreg.h
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-09-03 16:48:13 +0000
committerache <ache@FreeBSD.org>1994-09-03 16:48:13 +0000
commit5f18a711b20afb84f9dc943624914312fa441b13 (patch)
treec2035afca3f15c94ef54097dc4cf884056220826 /sys/i386/isa/mcdreg.h
parent570c3ecb109c0097f96e904aa674bf1a00bb9575 (diff)
downloadFreeBSD-src-5f18a711b20afb84f9dc943624914312fa441b13.zip
FreeBSD-src-5f18a711b20afb84f9dc943624914312fa441b13.tar.gz
Newly implemented ioctls list:
DIOCGDINFO, DIOCGPART, DIOCWDINFO, DIOCSDINFO, CDIOCPLAYMSF, CDIOCRESET, CDIOCEJECT. CDIOCPLAYBLOCKS removed (old implementation completely wrong and I don't know how to implement it correctly). All routines now detects media change correctly. DELAY_GETREPLAY increased for long time access from first track to last. mcd_waitrdy() now use MIN_DELAY=15 as minimal delay which independs of machine speed. mcd_doread() now uses real status (old code uses obsoleted soft copy of it). clear XBSY on error in mcd_doread() mcd_statrt(): add missing splx(s), cause dead hang with unmatched slpbio() optimize mcd_doread(), don't set CD mode each time, keep soft copy of mode. call getdisklabel() _after_ mcdsize() for proper sizes mcdopen(): old code forget to set MCDREADRAW in flags when open RAW partition, doread check it for setting RAW CD mode. Do nothing on stray interrupt (which sometimes occurse, because driver read data block too slow, DOS driver use 'insb' here). Old stray code cause timeouts. Read toc entries code rewritten to return many requested entries (as supposed) instead of one entry with incorrect structure. CMDREAD2 requests covered with disable_intr()/enable_intr() (from DOS driver) Read junk code added after read block code in doread (from DOS driver) mcd_read_toc() code fixed to read all needed entries, old code cause some audio tracks is not played. mcd_playtracks() code fixed to proper check valid track range. New binary read modes implemented (from DOS driver).
Diffstat (limited to 'sys/i386/isa/mcdreg.h')
-rw-r--r--sys/i386/isa/mcdreg.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/i386/isa/mcdreg.h b/sys/i386/isa/mcdreg.h
index 0ce5de7..ce6fb41 100644
--- a/sys/i386/isa/mcdreg.h
+++ b/sys/i386/isa/mcdreg.h
@@ -41,7 +41,7 @@
* the manufacturer or anyone else might provide better documentation,
* so this file (and the driver) will then have a better quality.
*
- * $Id: mcdreg.h,v 1.2 1994/01/16 23:34:17 jkh Exp $
+ * $Id: mcdreg.h,v 1.3 1994/02/22 08:44:31 rgrimes Exp $
*/
#ifndef MCD_H
@@ -107,10 +107,14 @@ typedef unsigned char bcd_t;
#define MCD_CMDGETVOLINFO 0x10 /* gets mcd_volinfo */
#define MCD_CMDGETQCHN 0x20 /* gets mcd_qchninfo */
#define MCD_CMDGETSTAT 0x40 /* gets a byte of status */
+
#define MCD_CMDSETMODE 0x50 /* set transmission mode, needs byte */
#define MCD_MD_RAW 0x60
+#define MCD_MD_BIN_RAW 0x61
#define MCD_MD_COOKED 0x01
+#define MCD_MD_BIN_COOKED 0x81
#define MCD_MD_TOC 0x05
+
#define MCD_CMDSTOPAUDIO 0x70
#define MCD_CMDGETVOLUME 0x8E /* gets mcd_volume */
#define MCD_CMDSETVOLUME 0xAE /* sets mcd_volume */
@@ -119,6 +123,7 @@ typedef unsigned char bcd_t;
#define MCD_CMDCONTINFO 0xDC /* Get controller info */
#define MCD_CMDEJECTDISK 0xF6
#define MCD_CMDCLOSETRAY 0xF8
+
#define MCD_CMDLOCKDRV 0xFE /* needs byte */
#define MCD_LK_UNLOCK 0x00
#define MCD_LK_LOCK 0x01
OpenPOWER on IntegriCloud