lbaif.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:2k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __LBAIF_H
  2. #define __LBAIF_H
  3. //
  4. // SEARCH: PCI/DSI
  5. //
  6. #define LBA_ST_IDLE 0
  7. #define LBA_ST_FIND_NAV 3
  8. #define LBA_ST_FREE 1
  9. #define LBA_ST_DVD  2
  10. //
  11. //
  12. //
  13. typedef struct  {
  14.   UINT32    rlba_s;
  15.   UINT32        lba;        // Current LBA (absolute)
  16.   UINT32    lba_start;  // LBA start point (absolute)
  17.   UINT32        len;        // Playback block numbers
  18.   int           batch;
  19. } t_lba_st;
  20. EXTERN  t_lba_st      lba_st;
  21. //
  22. //
  23. //
  24. EXTERN  UINT32      LBA_CELL;   // absolute LBA of CELL
  25. EXTERN  UINT32      LBA_VOBU;   // absolute LBA of VOBU
  26. EXTERN  UINT16      cd_data_ready;
  27. EXTERN  UINT16      host_req;
  28. static  inline
  29. int drv_accessible(void)
  30. {
  31. #if DISC_SYSTEM==DISC_SYSTEM_ATAPI
  32.   return cd_data_ready;
  33. #else
  34.   return cd_data_ready>=8;
  35. #endif  
  36. }
  37. static  inline
  38. void    drv_access_batch(void)
  39. {
  40. #if DISC_SYSTEM==DISC_SYSTEM_ATAPI
  41.   cd_data_ready=1;
  42. #else
  43.   cd_data_ready++;
  44. #endif  
  45. }
  46. static  inline
  47. void    drv_access_again(void)
  48. {
  49. #if DISC_SYSTEM==DISC_SYSTEM_ATAPI
  50.   cd_data_ready=1;
  51. #else
  52.   cd_data_ready=9;
  53. #endif  
  54. }
  55. static  inline
  56. void    drv_access_begin(void)
  57. {
  58.   cd_data_ready=0;
  59.   host_req=1;
  60. }
  61. static  inline
  62. int    is_drv_access_begin(void)
  63. {
  64.   return cd_data_ready==0;
  65. }
  66. static inline
  67. int is_host_request_data(void)
  68. {
  69.   return host_req==1;
  70. }
  71. static inline 
  72. void set_host_request(void)
  73. {
  74.   host_req=1;
  75. }
  76. static inline 
  77. void clr_host_request(void)
  78. {
  79.   host_req=0;
  80. }
  81. void    flush_atapi(void);
  82. void    reset_atapi_intr(void);
  83. void    start_atapi_intr(UINT32, int, int);
  84. int lba_read_next(void);
  85. void    intr_device_atapi(void);
  86. #endif/*__LBAIF_H*/