⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdrecord.h

📁 创建一个符合iso-9660标准的iso文件系统
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Definitions for disk_status flags */#define	DSF_DID_V	0x0001	/* Disk id valid			*/#define	DSF_DBC_V	0x0002	/* Disk bar code valid			*/#define	DSF_URU		0x0004	/* Disk is for unrestricted use		*/#define	DSF_ERA		0x0008	/* Disk is erasable			*/typedef	struct disk_status	dstat_t;struct disk_status {	long	ds_cdrflags;		/* Recording flags from cdrecord*/	long	ds_diskid;		/* Disk identification		*/	int	ds_flags;		/* Disk_status flags		*/	int	ds_type;		/* Abstract disk type		*/	Uchar	ds_disktype;		/* Disk type (from TOC/PMA)	*/	Uchar	ds_diskstat;		/* Disk status (MMC)		*/	Uchar	ds_sessstat;		/* Status of last sesion (MMC)	*/	Uchar	ds_trfirst;		/* first track #		*/	Uchar	ds_trlast;		/* last track #			*/	Uchar	ds_trfirst_ls;		/* first track # in last session*/	Uchar	ds_barcode[8];		/* Disk bar code		*/	long	ds_first_leadin;	/* Start of first lead in (ATIP)*/	long	ds_last_leadout;	/* Start of last lead out (ATIP)*/	long	ds_curr_leadin;		/* Start of next lead in	*/	long	ds_curr_leadout;	/* Start of next lead out	*/	long	ds_maxblocks;		/* # of official blocks on disk	*/	long	ds_maxrblocks;		/* # real blocks on disk	*/	long	ds_fwa;			/* first writable addr		*/};/* * First approach of a CDR device abstraction layer. * This interface will change as long as I did not find the * optimum that fits for all devices. *//*--------------------------------------------------------------------------*/typedef	struct cdr_cmd	cdr_t;#ifdef	_SCSITRANSP_Hstruct cdr_cmd {	int	cdr_dev;	int	cdr_flags;	char	*cdr_drname;					/* Driver ID string */	char	*cdr_drtext;					/* Driver ID text */	struct cd_mode_page_2A *cdr_cdcap;/*	dstat_t	*cdr_dstat;*/#ifdef	_SCSIREG_H	cdr_t	*(*cdr_identify)	__PR((SCSI *scgp, cdr_t *, struct scsi_inquiry *));	/* identify drive */#else	cdr_t	*(*cdr_identify)	__PR((SCSI *scgp, cdr_t *, void *));		/* identify drive */#endif	int	(*cdr_attach)		__PR((SCSI *scgp, cdr_t *));		/* init error decoding etc*/	int	(*cdr_getdisktype)	__PR((SCSI *scgp, cdr_t *, dstat_t *));	/* get disk type */	int	(*cdr_load)		__PR((SCSI *scgp));		/* load disk */	int	(*cdr_unload)		__PR((SCSI *scgp));		/* unload disk */	int	(*cdr_buffer_cap)	__PR((SCSI *scgp, long *sizep, long *freep));	/* read buffer capacity */	int	(*cdr_check_recovery)	__PR((SCSI *scgp));		/* check if recover is needed */	int	(*cdr_recover)		__PR((SCSI *scgp, int track));	/* do recover */	int	(*cdr_set_speed_dummy)	__PR((SCSI *scgp, int *speedp, int dummy));	/* set recording speed & dummy write */	int	(*cdr_set_secsize)	__PR((SCSI *scgp, int secsize));	/* set sector size */	int	(*cdr_next_wr_address)	__PR((SCSI *scgp, int track, track_t *trackp, long *ap));	/* get next writable addr. */	int	(*cdr_reserve_track)	__PR((SCSI *scgp, unsigned long len));	/* reserve a track for future use */	int	(*cdr_write_trackdata)	__PR((SCSI *scgp, caddr_t buf, long daddr, long bytecnt, int seccnt, BOOL islast));	int	(*cdr_send_cue)		__PR((SCSI *scgp, int track, track_t *trackp));			/* send cue sheet */	int	(*cdr_open_track)	__PR((SCSI *scgp, cdr_t *, int track, track_t *trackp));	/* open new track */	int	(*cdr_close_track)	__PR((SCSI *scgp, int track, track_t *trackp));		/* close written track */	int	(*cdr_open_session)	__PR((SCSI *scgp, cdr_t *, int tracks, track_t *trackp, int toctype, int multi));		/* open new session */	int	(*cdr_close_session)	__PR((SCSI *scgp));		/* really needed ??? */	int	(*cdr_session_offset)	__PR((SCSI *scgp, long *soff));		/* read session offset*/	int	(*cdr_fixate)		__PR((SCSI *scgp, int onp, int dummy, int toctype, int tracks, track_t *trackp));	/* write toc on disk */	int	(*cdr_blank)		__PR((SCSI *scgp, long addr, int blanktype));	/* blank something */	int	(*cdr_opc)		__PR((SCSI *scgp, caddr_t bp, int cnt, int doopc));	/* Do OPC */};#endif/* * Definitions for cdr_flags */#define	CDR_TAO		0x01		/* Drive supports Track at once	*/#define	CDR_DAO		0x02		/* Drive supports Disk at once	*/#define	CDR_PACKET	0x04		/* Drive supports packet writing*/#define	CDR_SWABAUDIO	0x08		/* Drive swabs audio data	*/#define	CDR_ISREADER	0x10		/* Drive is s CD-ROM reader	*/#define	CDR_TRAYLOAD	0x20		/* Drive loads CD with tray	*/#define	CDR_CADDYLOAD	0x40		/* Drive loads CD with caddy	*/#define	CDR_NO_LOLIMIT	0x80		/* Drive ignores lead-out limit	*/#define	CDR_DVD		0x100		/* Drive is a DVD drive		*/#define	CDR_ALLOC	0x1000		/* structure is allocated	*//* * cdrecord.c */extern	int	read_buf	__PR((int f, char *bp, int size));extern	int	get_buf		__PR((int f, char **bpp, int size));#ifdef	_SCSITRANSP_Hextern	int	pad_track	__PR((SCSI *scgp, cdr_t *dp, int track, track_t *trackp,				     long startsec, long amt,				     BOOL dolast, long *bytesp));extern	void	load_media	__PR((SCSI *scgp, cdr_t *, BOOL));extern	void	unload_media	__PR((SCSI *scgp, cdr_t *, int));#endifextern	void	raisepri	__PR((int));extern	int	getnum		__PR((char* arg, long* valp));/* * defaults.c */extern	void	cdr_defaults	__PR((char **devp, int *speedp, long *fsp));/* * cd_misc.c */extern	int	from_bcd	__PR((int b));extern	int	to_bcd		__PR((int i));extern	long	msf_to_lba	__PR((int m, int s, int f, BOOL force_positive));extern	BOOL	lba_to_msf	__PR((long lba, msf_t *mp));extern	void	print_min_atip	__PR((long li, long lo));/* * fifo.c */extern	void	init_fifo	__PR((long));extern	BOOL	init_faio	__PR((int tracks, track_t *track, int));extern	BOOL	await_faio	__PR((void));extern	void	kill_faio	__PR((void));extern	int	wait_faio	__PR((void));extern	int	faio_read_buf	__PR((int f, char *bp, int size));extern	int	faio_get_buf	__PR((int f, char **bpp, int size));extern	void	fifo_stats	__PR((void));extern	int	fifo_percent	__PR((BOOL addone));/* * wm_session.c */extern	int	write_session_data __PR((cdr_t *dp, int track, track_t *trackp));/* * wm_track.c *//*extern	int	write_track_data __PR((cdr_t *dp, int track, track_t *trackp));*//* * wm_packet.c */#ifdef	_SCSITRANSP_Hextern	int	write_packet_data __PR((SCSI *scgp, cdr_t *dp, int track, track_t *trackp));#endif/* * modes.c */#ifdef	_SCSITRANSP_Hextern	BOOL	get_mode_params	__PR((SCSI *scgp, int page, char *pagename,					Uchar *modep, Uchar *cmodep,					Uchar *dmodep, Uchar *smodep,					int *lenp));extern	BOOL	set_mode_params	__PR((SCSI *scgp, char *pagename, Uchar *modep,					int len, int save, int secsize));#endif/* * misc.c */#ifdef	timerclearextern	void	timevaldiff	__PR((struct timeval *start, struct timeval *stop));#endif/* * scsi_cdr.c */#ifdef	_SCSITRANSP_Hextern	BOOL	unit_ready	__PR((SCSI *scgp));extern	BOOL	wait_unit_ready	__PR((SCSI *scgp, int secs));extern	BOOL	scsi_in_progress __PR((SCSI *scgp));extern	int	test_unit_ready	__PR((SCSI *scgp));extern	int	rezero_unit	__PR((SCSI *scgp));extern	int	request_sense	__PR((SCSI *scgp));extern	int	inquiry		__PR((SCSI *scgp, caddr_t, int));extern	int	read_capacity	__PR((SCSI *scgp));extern	int	scsi_load_unload __PR((SCSI *scgp, int));extern	int	scsi_prevent_removal __PR((SCSI *scgp, int));extern	int	scsi_start_stop_unit __PR((SCSI *scgp, int, int));extern	int	scsi_set_speed	__PR((SCSI *scgp, int readspeed, int writespeed));extern	int	scsi_get_speed	__PR((SCSI *scgp, int *readspeedp, int *writespeedp));extern	int	qic02		__PR((SCSI *scgp, int));extern	int	write_xg0	__PR((SCSI *scgp, caddr_t, long, long, int));extern	int	write_xg1	__PR((SCSI *scgp, caddr_t, long, long, int));extern	int	write_xg5	__PR((SCSI *scgp, caddr_t, long, long, int));extern	int	scsi_flush_cache __PR((SCSI *scgp));extern	int	read_buffer	__PR((SCSI *scgp, caddr_t bp, int cnt, int mode));extern	int	read_subchannel	__PR((SCSI *scgp, caddr_t bp, int track,					int cnt,int msf, int subq, int fmt));extern	int	read_toc	__PR((SCSI *scgp, caddr_t, int, int, int, int));extern	int	read_toc_philips __PR((SCSI *scgp, caddr_t, int, int, int, int));extern	int	read_header	__PR((SCSI *scgp, caddr_t, long, int, int));extern	int	read_disk_info	__PR((SCSI *scgp, caddr_t, int));extern	int	read_track_info	__PR((SCSI *scgp, caddr_t, int, int));extern	int	send_opc	__PR((SCSI *scgp, caddr_t, int cnt, int doopc));extern	int	scsi_close_tr_session __PR((SCSI *scgp, int type, int track, BOOL immed));extern	int	read_master_cue	__PR((SCSI *scgp, caddr_t bp, int sheet, int cnt));extern	int	send_cue_sheet	__PR((SCSI *scgp, caddr_t bp, long size));extern	int	read_buff_cap	__PR((SCSI *scgp, long *, long *));extern	int	scsi_blank	__PR((SCSI *scgp, long addr, int blanktype, BOOL immed));extern	BOOL	allow_atapi	__PR((SCSI *scgp, BOOL new));extern	int	mode_select	__PR((SCSI *scgp, Uchar *, int, int, int));extern	int	mode_sense	__PR((SCSI *scgp, Uchar *dp, int cnt, int page, int pcf));extern	int	mode_select_sg0	__PR((SCSI *scgp, Uchar *, int, int, int));extern	int	mode_sense_sg0	__PR((SCSI *scgp, Uchar *dp, int cnt, int page, int pcf));extern	int	mode_select_g0	__PR((SCSI *scgp, Uchar *, int, int, int));extern	int	mode_select_g1	__PR((SCSI *scgp, Uchar *, int, int, int));extern	int	mode_sense_g0	__PR((SCSI *scgp, Uchar *dp, int cnt, int page, int pcf));extern	int	mode_sense_g1	__PR((SCSI *scgp, Uchar *dp, int cnt, int page, int pcf));extern	int	read_tochdr	__PR((SCSI *scgp, cdr_t *, int *, int *));extern	int	read_cdtext	__PR((SCSI *scgp));extern	int	read_trackinfo	__PR((SCSI *scgp, int, long *, struct msf *, int *, int *, int *));extern	int	read_B0		__PR((SCSI *scgp, BOOL isbcd, long *b0p, long *lop));extern	int	read_session_offset __PR((SCSI *scgp, long *));extern	int	read_session_offset_philips __PR((SCSI *scgp, long *));extern	int	sense_secsize	__PR((SCSI *scgp, int current));extern	int	select_secsize	__PR((SCSI *scgp, int));extern	BOOL	is_cddrive	__PR((SCSI *scgp));extern	BOOL	is_unknown_dev	__PR((SCSI *scgp));extern	int	read_scsi	__PR((SCSI *scgp, caddr_t, long, int));extern	int	read_g0		__PR((SCSI *scgp, caddr_t, long, int));extern	int	read_g1		__PR((SCSI *scgp, caddr_t, long, int));extern	BOOL	getdev		__PR((SCSI *scgp, BOOL));extern	void	printdev	__PR((SCSI *scgp));extern	BOOL	do_inquiry	__PR((SCSI *scgp, BOOL));extern	BOOL	recovery_needed	__PR((SCSI *scgp));extern	int	scsi_load	__PR((SCSI *scgp));extern	int	scsi_unload	__PR((SCSI *scgp));extern	int	scsi_cdr_write	__PR((SCSI *scgp, caddr_t bp, long sectaddr, long size, int blocks, BOOL islast));extern	struct cd_mode_page_2A * mmc_cap __PR((SCSI *scgp, Uchar *modep));extern	void	mmc_getval	__PR((struct cd_mode_page_2A *mp,					BOOL *cdrrp, BOOL *cdwrp,					BOOL *cdrrwp, BOOL *cdwrwp,					BOOL *dvdp));extern	BOOL	is_mmc		__PR((SCSI *scgp, BOOL *dvdp));extern	BOOL	mmc_check	__PR((SCSI *scgp, BOOL *cdrrp, BOOL *cdwrp,					BOOL *cdrrwp, BOOL *cdwrwp,					BOOL *dvdp));extern	void	print_capabilities	__PR((SCSI *scgp));#endif/* * cdr_drv.c */#ifdef	_SCSITRANSP_H#ifdef	_SCSIREG_Hextern	cdr_t	*drive_identify		__PR((SCSI *scgp, cdr_t *, struct scsi_inquiry *ip));#elseextern	cdr_t	*drive_identify		__PR((SCSI *scgp,cdr_t *, void *ip));#endifextern	int	drive_attach		__PR((SCSI *scgp, cdr_t *));#endifextern	int	attach_unknown		__PR((void));#ifdef	_SCSITRANSP_Hextern	int	blank_dummy		__PR((SCSI *scgp, long addr, int blanktype));extern	int	drive_getdisktype	__PR((SCSI *scgp, cdr_t *dp, dstat_t *dsp));extern	int	cmd_ill			__PR((SCSI *scgp));extern	int	cmd_dummy		__PR((SCSI *scgp));extern	int	no_sendcue		__PR((SCSI *scgp, int tracks, track_t *trackp));extern	int	buf_dummy		__PR((SCSI *scgp, long *sp, long *fp));#endifextern	BOOL	set_cdrcmds		__PR((char *name, cdr_t **dpp));#ifdef	_SCSITRANSP_Hextern	cdr_t	*get_cdrcmds		__PR((SCSI *scgp));#endif/* * isosize.c */extern	long	isosize		__PR((int f));/* * audiosize.c */extern	BOOL	is_auname	__PR((const char *name));extern	long	ausize		__PR((int f));extern	BOOL	is_wavname	__PR((const char *name));extern	long	wavsize		__PR((int f));/* * auinfo.c */extern	void	auinfo		__PR((char *name, int track, track_t *trackp));extern	void	setmcn		__PR((char *mcn, track_t *trackp));extern	void	setisrc		__PR((char *isrc, track_t *trackp));extern	void	setindex	__PR((char *tindex, track_t *trackp));/* * diskid.c */extern	void	pr_manufacturer		__PR((msf_t *mp, BOOL rw, BOOL audio));extern	int	manufacturer_id		__PR((msf_t *mp));extern	long	disk_rcap		__PR((msf_t *mp, long maxblock, BOOL rw, BOOL audio));/*--------------------------------------------------------------------------*//* Test only								    *//*--------------------------------------------------------------------------*//*extern	int	do_cue		__PR((int tracks, track_t *trackp, struct mmc_cue **cuep));*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -