?? cdrecord.h
字號(hào):
*/#define SS_EMPTY 0 /* Empty session */#define SS_APPENDABLE 1 /* Incomplete session */#define SS_RESERVED 2 /* Reserved */#define SS_COMPLETE 3 /* Complete session (needs DS_COMPLETE) *//* * 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_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;struct 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((cdr_t *, struct scsi_inquiry *)); /* identify drive */#else cdr_t *(*cdr_identify) __PR((cdr_t *, void *)); /* identify drive */#endif int (*cdr_attach) __PR((cdr_t *)); /* init error decoding etc*/ int (*cdr_getdisktype) __PR((cdr_t *, dstat_t *)); /* get disk type */ int (*cdr_load) __PR((void)); /* load disk */ int (*cdr_unload) __PR((void)); /* unload disk */ int (*cdr_check_recovery) __PR((void)); /* check if recover is needed */ int (*cdr_recover) __PR((int track)); /* do recover */ int (*cdr_set_speed_dummy) __PR((int speed, int dummy)); /* set recording speed & dummy write */ int (*cdr_set_secsize) __PR((int secsize)); /* set sector size */ int (*cdr_next_wr_address) __PR((int track, track_t *trackp, long *ap)); /* get next writable addr. */ int (*cdr_reserve_track) __PR((unsigned long len)); /* reserve a track for future use */ int (*cdr_write_trackdata) __PR((caddr_t buf, long daddr, long bytecnt, int seccnt, BOOL islast)); int (*cdr_open_track) __PR((cdr_t *, int track, track_t *trackp)); /* open new track */ int (*cdr_close_track) __PR((int track, track_t *trackp)); /* close written track */ int (*cdr_open_session) __PR((int tracks, track_t *trackp, int toctype, int multi)); /* open new session */ int (*cdr_close_session) __PR((void)); /* really needed ??? */ int (*cdr_session_offset) __PR((long *soff)); /* read session offset*/ int (*cdr_fixate) __PR((int onp, int dummy, int toctype, int tracks, track_t *trackp)); /* write toc on disk */ int (*cdr_blank) __PR((long addr, int blanktype)); /* blank something */};/* * 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 */#if HAVE_MMAP || HAVE_SHMAT# define FIFO 1#endif/* * cdrecord.c */extern int read_buf __PR((int f, char *bp, int size));extern int get_buf __PR((int f, char **bpp, int size));extern int pad_track __PR((cdr_t *dp, int track, track_t *trackp, long startsec, long amt, BOOL dolast, long *bytesp));extern void load_media __PR((cdr_t *));extern void unload_media __PR((cdr_t *, int));extern void raisepri __PR((int));extern int getnum __PR((char* arg, long* valp));/* * 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));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 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 */extern int write_packet_data __PR((cdr_t *dp, int track, track_t *trackp));/* * modes.c */extern BOOL get_mode_params __PR((int page, char *pagename, Uchar *modep, Uchar *cmodep, Uchar *dmodep, Uchar *smodep, int *lenp));extern BOOL set_mode_params __PR((char *pagename, Uchar *modep, int len, int save, int secsize));/* * misc.c */#ifdef timerclearextern void timevaldiff __PR((struct timeval *start, struct timeval *stop));#endif/* * scsi_cdr.c */extern int open_scsi __PR((char *, int, int));extern void scsi_settimeout __PR((int));extern BOOL unit_ready __PR((void));extern BOOL wait_unit_ready __PR((int secs));extern int test_unit_ready __PR((void));extern int rezero_unit __PR((void));extern int request_sense __PR((void));extern int inquiry __PR((caddr_t, int));extern int read_capacity __PR((void));extern int scsi_load_unload __PR((int));extern int load_unload_philips __PR((int));extern int scsi_prevent_removal __PR((int));extern int scsi_start_stop_unit __PR((int, int));extern int scsi_set_speed __PR((int readspeed, int writespeed));extern int qic02 __PR((int));extern int write_xg0 __PR((caddr_t, long, long, int));extern int write_xg1 __PR((caddr_t, long, long, int));extern int write_xg5 __PR((caddr_t, long, long, int));extern int write_track __PR((long, int));extern int scsi_flush_cache __PR((void));extern int read_toc __PR((caddr_t, int, int, int, int));extern int read_toc_philips __PR((caddr_t, int, int, int, int));extern int read_header __PR((caddr_t, long, int, int));extern int read_disk_info __PR((caddr_t, int));extern int read_track_info __PR((caddr_t, int, int));extern int close_track_philips __PR((int track, track_t *trackp));extern int fixation __PR((int, int, int, int tracks, track_t *trackp));extern int scsi_close_tr_session __PR((int type, int track));extern int scsi_blank __PR((long addr, int blanktype));extern int recover __PR((int));extern int first_writable_addr __PR((long *, int, int, int, int));extern int reserve_track __PR((unsigned long));extern BOOL allow_atapi __PR((BOOL new));extern int mode_select __PR((Uchar *, int, int, int));extern int mode_sense __PR((Uchar *dp, int cnt, int page, int pcf));extern int mode_select_sg0 __PR((Uchar *, int, int, int));extern int mode_sense_sg0 __PR((Uchar *dp, int cnt, int page, int pcf));extern int mode_select_g0 __PR((Uchar *, int, int, int));extern int mode_select_g1 __PR((Uchar *, int, int, int));extern int mode_sense_g0 __PR((Uchar *dp, int cnt, int page, int pcf));extern int mode_sense_g1 __PR((Uchar *dp, int cnt, int page, int pcf));extern int speed_select_yamaha __PR((int speed, int dummy));extern int speed_select_philips __PR((int speed, int dummy));extern int write_track_info __PR((int));extern int read_tochdr __PR((cdr_t *, int *, int *));extern int read_trackinfo __PR((int, long *, struct msf *, int *, int *, int *));extern int read_B0 __PR((BOOL isbcd, long *b0p, long *lop));extern int read_session_offset __PR((long *));extern int read_session_offset_philips __PR((long *));extern int sense_secsize __PR((int current));extern int select_secsize __PR((int));extern BOOL is_cddrive __PR((void));extern BOOL is_unknown_dev __PR((void));extern int read_scsi __PR((caddr_t, long, int));extern int read_g0 __PR((caddr_t, long, int));extern int read_g1 __PR((caddr_t, long, int));extern BOOL getdev __PR((BOOL));extern void printdev __PR((void));extern BOOL do_inquiry __PR((BOOL));extern BOOL recovery_needed __PR((void));extern int scsi_load __PR((void));extern int scsi_unload __PR((void));extern int scsi_cdr_write __PR((caddr_t bp, long sectaddr, long size, int blocks, BOOL islast));extern struct cd_mode_page_2A * mmc_cap __PR((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((BOOL *dvdp));extern BOOL mmc_check __PR((BOOL *cdrrp, BOOL *cdwrp, BOOL *cdrrwp, BOOL *cdwrwp, BOOL *dvdp));extern void print_capabilities __PR((void));/* * cdr_drv.c */#ifdef _SCSIREG_Hextern cdr_t *drive_identify __PR((cdr_t *, struct scsi_inquiry *ip));#elseextern cdr_t *drive_identify __PR((cdr_t *, void *ip));#endifextern int drive_attach __PR((cdr_t *));extern int attach_unknown __PR((void));extern int blank_dummy __PR((long addr, int blanktype));extern int drive_getdisktype __PR((cdr_t *dp, dstat_t *dsp));extern int cmd_dummy __PR((void));extern void set_cdrcmds __PR((char *name, cdr_t **dpp));extern cdr_t *get_cdrcmds __PR((void));/* * 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));/* * diskid.c */extern void pr_manufacturer __PR((msf_t *mp));extern long disk_rcap __PR((msf_t *mp, long maxblock));
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -