home *** CD-ROM | disk | FTP | other *** search
/ Geek 6 / Geek-006.iso / linux / video / xmovie-1.5.3.tar.gz / xmovie-1.5.3.tar / xmovie-1.5.3 / quicktime / libraw1394.2217 / kernel-raw1394.h < prev    next >
C/C++ Source or Header  |  2000-11-29  |  3KB  |  118 lines

  1. #ifndef IEEE1394_RAW1394_H
  2. #define IEEE1394_RAW1394_H
  3.  
  4. #define RAW1394_DEVICE_MAJOR      171
  5. #define RAW1394_DEVICE_NAME       "raw1394"
  6.  
  7. #define RAW1394_KERNELAPI_VERSION 3
  8.  
  9. /* state: opened */
  10. #define RAW1394_REQ_INITIALIZE    1
  11.  
  12. /* state: initialized */
  13. #define RAW1394_REQ_LIST_CARDS    2
  14. #define RAW1394_REQ_SET_CARD      3
  15.  
  16. /* state: connected */
  17. #define RAW1394_REQ_ASYNC_READ    100
  18. #define RAW1394_REQ_ASYNC_WRITE   101
  19. #define RAW1394_REQ_LOCK          102
  20. #define RAW1394_REQ_LOCK64        103
  21.  
  22. #define RAW1394_REQ_ISO_LISTEN    200
  23. #define RAW1394_REQ_FCP_LISTEN    201
  24.  
  25. /* kernel to user */
  26. #define RAW1394_REQ_BUS_RESET     10000
  27. #define RAW1394_REQ_ISO_RECEIVE   10001
  28. #define RAW1394_REQ_FCP_REQUEST   10002
  29.  
  30. /* error codes */
  31. #define RAW1394_ERROR_NONE        0
  32. #define RAW1394_ERROR_COMPAT      (-1001)
  33. #define RAW1394_ERROR_STATE_ORDER (-1002)
  34. #define RAW1394_ERROR_GENERATION  (-1003)
  35. #define RAW1394_ERROR_INVALID_ARG (-1004)
  36. #define RAW1394_ERROR_MEMFAULT    (-1005)
  37. #define RAW1394_ERROR_ALREADY     (-1006)
  38.  
  39. #define RAW1394_ERROR_EXCESSIVE   (-1020)
  40. #define RAW1394_ERROR_UNTIDY_LEN  (-1021)
  41.  
  42. #define RAW1394_ERROR_SEND_ERROR  (-1100)
  43. #define RAW1394_ERROR_ABORTED     (-1101)
  44. #define RAW1394_ERROR_TIMEOUT     (-1102)
  45.  
  46.  
  47. #include <asm/types.h>
  48.  
  49. struct raw1394_request {
  50.         __u32 type;
  51.         __s32 error;
  52.         __u32 misc;
  53.  
  54.         __u32 generation;
  55.         __u32 length;
  56.  
  57.         __u64 address;
  58.  
  59.         __u64 tag;
  60.  
  61.         __u64 sendb;
  62.         __u64 recvb;
  63. };
  64.  
  65. struct raw1394_khost_list {
  66.         __u32 nodes;
  67.         __u8 name[32];
  68. };
  69.  
  70. #ifdef __KERNEL__
  71.  
  72. struct iso_block_store {
  73.         atomic_t refcount;
  74.         size_t data_size;
  75.         quadlet_t data[0];
  76. };
  77.  
  78. struct file_info {
  79.         struct list_head list;
  80.  
  81.         enum { opened, initialized, connected } state;
  82.  
  83.         struct hpsb_host *host;
  84.  
  85.         struct list_head req_pending;
  86.         struct list_head req_complete;
  87.         struct semaphore complete_sem;
  88.         spinlock_t reqlists_lock;
  89.         wait_queue_head_t poll_wait_complete;
  90.  
  91.         u8 *fcp_buffer;
  92.  
  93.         u64 listen_channels;
  94.         quadlet_t *iso_buffer;
  95.         size_t iso_buffer_length;
  96. };
  97.  
  98. struct pending_request {
  99.         struct list_head list;
  100.         struct file_info *file_info;
  101.         struct hpsb_packet *packet;
  102.         struct tq_struct tq;
  103.         struct iso_block_store *ibs;
  104.         quadlet_t *data;
  105.         int free_data;
  106.         struct raw1394_request req;
  107. };
  108.  
  109. struct host_info {
  110.         struct list_head list;
  111.         struct hpsb_host *host;
  112.         struct list_head file_info_list;
  113. };
  114.  
  115. #endif /* __KERNEL__ */
  116.  
  117. #endif /* IEEE1394_RAW1394_H */
  118.