/* Shared between kernel & process */ /* $FreeBSD: src/sys/sys/wormio.h,v 1.6 1999/10/01 14:10:50 peter Exp $ */ /* $DragonFly: src/sys/sys/Attic/wormio.h,v 1.2 2003/06/17 04:28:59 dillon Exp $ */ #ifndef _SYS_WORMIO_H_ #define _SYS_WORMIO_H_ #include /***************************************************************\ * Ioctls for the WORM drive * \***************************************************************/ /* * Prepare disk-wide parameters. */ struct wormio_prepare_disk { int dummy; /* use dummy writes, laser turned off */ int speed; /* drive speed selection */ }; #define WORMIOCPREPDISK _IOW('W', 20, struct wormio_prepare_disk) /* * Prepare track-specific parameters. */ struct wormio_prepare_track { int audio; /* audio track (data track if 0) */ int preemp; /* audio with preemphasis */ #define BLOCK_RAW 0 /* 2352 bytes, raw data */ #define BLOCK_RAWPQ 1 /* 2368 bytes, raw data with P and Q subchannels */ #define BLOCK_RAWPW 2 /* 2448 bytes, raw data with P-W subchannel appended */ #define BLOCK_MODE_1 8 /* 2048 bytes, mode 1 (ISO/IEC 10149) */ #define BLOCK_MODE_2 9 /* 2336 bytes, mode 2 (ISO/IEC 10149) */ #define BLOCK_MODE_2_FORM_1 10 /* 2048 bytes, CD-ROM XA form 1 */ #define BLOCK_MODE_2_FORM_1b 11 /* 2056 bytes, CD-ROM XA form 1 */ #define BLOCK_MODE_2_FORM_2 12 /* 2324 bytes, CD-ROM XA form 2 */ #define BLOCK_MODE_2_FORM_2b 13 /* 2332 bytes, CD-ROM XA form 2 */ int track_type; /* defines the number of bytes in a block */ #define COPY_INHIBIT 0 /* no copy allowed */ #define COPY_PERMITTED 1 /* track can be copied */ #define COPY_SCMS 2 /* alternate copy */ int copy_bits; /* define the possibilities for copying */ int track_number; char ISRC_country[2]; /* country code (2 chars) */ char ISRC_owner[3]; /* owner code (3 chars) */ int ISRC_year; /* year of recording */ char ISRC_serial[5]; /* serial number */ }; #define WORMIOCPREPTRACK _IOW('W', 21, struct wormio_prepare_track) /* * Fixation: write leadins and leadouts. Select table-of-contents * type for this session. If onp is != 0, another session will be * opened. */ struct wormio_fixation { int toc_type; /* TOC type */ int onp; /* open next program area */ }; #define WORMIOCFIXATION _IOW('W', 22, struct wormio_fixation) /* * Finalize track */ #define WORMIOCFINISHTRACK _IO('W', 23) struct wormio_session_info { u_short lead_in; u_short lead_out; }; #define WORMIOCREADSESSIONINFO _IOR('W', 31, struct wormio_session_info) struct wormio_write_session { int toc_type; int onp; int lofp; int length; char catalog[13]; u_char *track_desc; }; #define WORMIOCWRITESESSION _IOW('W', 32, struct wormio_write_session) struct wormio_first_writable_addr { int track; int mode; int raw; int audio; int *addr; }; #define WORMIOCFIRSTWRITABLEADDR _IOWR('W', 33, struct wormio_first_writable_addr) #define CDRIOCBLANK _IO('c', 100) #define CDRIOCNEXTWRITEABLEADDR _IOR('c', 101, int) /* Errors/warnings */ #define WORM_SEQUENCE_ERROR 1 #define WORM_DUMMY_BLOCKS_ADDED 2 #define WORM_CALIBRATION_AREA_ALMOST_FULL 3 #define WORM_CALIBRATION_AREA_FULL 4 #define WORM_BUFFER_UNDERRUN 5 #define WORM_ABSORPTION_CONTROL_ERROR 6 #define WORM_END_OF_MEDIUM 7 #define WORM_OPTIMUM_POWER_CALIBRATION_ERROR 8 #define WORMIOERROR _IOR('W', 24, int) #endif /* !_SYS_WORMIO_H_ */