mycdrom.h
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:3k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)mycdrom.h 1.2 99/12/19 Copyright 1998,1999 Heiko Eissfeldt */
  2. #if defined(__linux__)
  3. # include <linux/cdrom.h>
  4. #else
  5. # if defined HAVE_SYS_CDIO_H
  6. #  include <sys/cdio.h>
  7. #  if (defined (__sun) && defined (SVR4))
  8. #   if 0
  9. /* just for info */
  10. /* Sun has this cdda reading ioctl: CDROMCDDA */
  11. /*
  12.  * Definition of CD-DA structure
  13.  */
  14. struct cdrom_cdda {
  15.  unsigned int cdda_addr;
  16.  unsigned int cdda_length;
  17.  caddr_t  cdda_data;
  18.  unsigned char cdda_subcode;
  19. };
  20. /*
  21. To get the subcode information related to CD-DA data, the following values are
  22.  appropriate for the cdda_subcode field:
  23. CDROM_DA_NO_SUBCODE
  24. CD-DA data with no subcode.
  25. CDROM_DA_SUBQ
  26. CD-DA data with sub Q code.
  27. CDROM_DA_ALL_SUBCODE
  28. CD-DA data with all subcode.
  29. CDROM_DA_SUBCODE_ONLY
  30. All subcode only.
  31. To allocate the memory related to CD-DA and/or subcode data, the following
  32.  values are appropriate for each data block transferred:
  33. CD-DA data with no subcode
  34. 2352 bytes
  35. CD-DA data with sub Q code
  36. 2368 bytes
  37. CD-DA data with all subcode
  38. 2448 bytes
  39. All subcode only
  40. 96 bytes
  41. */
  42. #   endif
  43. #  endif
  44. #  if defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
  45. #   if !defined CDIOCREADAUDIO
  46. #    undef HAVE_IOCTL_INTERFACE
  47. #   else
  48. #define CDROM_LBA CD_LBA_FORMAT
  49. #define CDROM_MSF CD_MSF_FORMAT
  50. #define CDROM_DATA_TRACK 0x04
  51. #define CDROM_LEADOUT 0xAA
  52. #define CDROMSTOP CDIOCSTOP
  53. #define CDROMSTART CDIOCSTART
  54. #define CDROMREADTOCHDR CDIOREADTOCHEADER
  55. #define CDROMREADTOCENTRY CDIOREADTOCENTRY
  56. #define CDROMPLAYMSF CDIOCPLAYMSF
  57. #define CDROMREADAUDIO CDIOCREADAUDIO
  58. #define CDROM_GET_MCN CDIOCREADSUBCHANNEL
  59. #define CDROMSUBCHNL CDIOCREADSUBCHANNEL
  60. #ifndef CDIOREADTOCENTRY
  61. #define CDIOREADTOCENTRY CDIOREADTOCENTRYS
  62. #endif
  63. #define cdrom_tochdr ioc_toc_header
  64. #define cdth_trk0 starting_track
  65. #define cdth_trk1 ending_track
  66. #define cdrom_tocentry ioc_read_toc_single_entry
  67. #define cdte_track track
  68. #define cdte_format address_format
  69. #define cdte_adr entry.addr_type
  70. #define cdte_ctrl entry.control
  71. #define cdte_addr entry.addr
  72. #define cdrom_read_audio ioc_read_audio
  73. #define addr_format address_format
  74. #define buff buffer
  75. #define cdrom_msf ioc_play_msf
  76. #define cdmsf_min0 start_m
  77. #define cdmsf_sec0 start_s
  78. #define cdmsf_frame0 start_f
  79. #define cdmsf_min1 end_m
  80. #define cdmsf_sec1 end_s
  81. #define cdmsf_frame1 end_f
  82. #define cdrom_subchnl ioc_read_subchannel
  83. #define cdsc_audiostatus data->header.audio_status
  84. #define cdsc_format data->what.position.data_format
  85. #define cdsc_adr data->what.position.addr_type
  86. #define cdsc_ctrl data->what.position.control
  87. #define cdsc_trk data->what.position.track_number
  88. #define cdsc_ind data->what.position.index_number
  89. #define cdsc_absaddr data->what.position.absaddr
  90. #define cdsc_reladdr data->what.position.reladdr
  91. #   endif
  92. #  endif
  93. # else
  94. #  if defined HAVE_SUNDEV_SRREG_H
  95. #   include <sundev/srreg.h>
  96. #   if !defined CDROMCDDA
  97. #    undef HAVE_IOCTL_INTERFACE
  98. #   endif
  99. #  endif
  100. # endif /* not HAVE_SYS_CDIO_H */
  101. #endif /* not linux */