home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / maple.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.2 KB  |  86 lines

  1. #ifndef __LINUX_MAPLE_H
  2. #define __LINUX_MAPLE_H
  3.  
  4. #include <linux/device.h>
  5. #include <mach/maple.h>
  6.  
  7. extern struct bus_type maple_bus_type;
  8.  
  9. /* Maple Bus command and response codes */
  10. enum maple_code {
  11.     MAPLE_RESPONSE_FILEERR = -5,
  12.     MAPLE_RESPONSE_AGAIN = -4,    /* request should be retransmitted */
  13.     MAPLE_RESPONSE_BADCMD = -3,
  14.     MAPLE_RESPONSE_BADFUNC = -2,
  15.     MAPLE_RESPONSE_NONE = -1,    /* unit didn't respond at all */
  16.     MAPLE_COMMAND_DEVINFO = 1,
  17.     MAPLE_COMMAND_ALLINFO = 2,
  18.     MAPLE_COMMAND_RESET = 3,
  19.     MAPLE_COMMAND_KILL = 4,
  20.     MAPLE_RESPONSE_DEVINFO = 5,
  21.     MAPLE_RESPONSE_ALLINFO = 6,
  22.     MAPLE_RESPONSE_OK = 7,
  23.     MAPLE_RESPONSE_DATATRF = 8,
  24.     MAPLE_COMMAND_GETCOND = 9,
  25.     MAPLE_COMMAND_GETMINFO = 10,
  26.     MAPLE_COMMAND_BREAD = 11,
  27.     MAPLE_COMMAND_BWRITE = 12,
  28.     MAPLE_COMMAND_SETCOND = 14
  29. };
  30.  
  31. struct mapleq {
  32.     struct list_head list;
  33.     struct maple_device *dev;
  34.     void *sendbuf, *recvbuf, *recvbufdcsp;
  35.     unsigned char length;
  36.     enum maple_code command;
  37.     struct mutex mutex;
  38. };
  39.  
  40. struct maple_devinfo {
  41.     unsigned long function;
  42.     unsigned long function_data[3];
  43.     unsigned char area_code;
  44.     unsigned char connector_direction;
  45.     char product_name[31];
  46.     char product_licence[61];
  47.     unsigned short standby_power;
  48.     unsigned short max_power;
  49. };
  50.  
  51. struct maple_device {
  52.     struct maple_driver *driver;
  53.     struct mapleq *mq;
  54.     void (*callback) (struct mapleq * mq);
  55.     unsigned long when, interval, function;
  56.     struct maple_devinfo devinfo;
  57.     unsigned char port, unit;
  58.     char product_name[32];
  59.     char product_licence[64];
  60.     struct device dev;
  61. };
  62.  
  63. struct maple_driver {
  64.     unsigned long function;
  65.     struct device_driver drv;
  66. };
  67.  
  68. void maple_getcond_callback(struct maple_device *dev,
  69.                 void (*callback) (struct mapleq * mq),
  70.                 unsigned long interval,
  71.                 unsigned long function);
  72. int maple_driver_register(struct maple_driver *);
  73. void maple_driver_unregister(struct maple_driver *);
  74.  
  75. int maple_add_packet_sleeps(struct maple_device *mdev, u32 function,
  76.     u32 command, u32 length, void *data);
  77. void maple_clear_dev(struct maple_device *mdev);
  78.  
  79. #define to_maple_dev(n) container_of(n, struct maple_device, dev)
  80. #define to_maple_driver(n) container_of(n, struct maple_driver, drv)
  81.  
  82. #define maple_get_drvdata(d)        dev_get_drvdata(&(d)->dev)
  83. #define maple_set_drvdata(d,p)        dev_set_drvdata(&(d)->dev, (p))
  84.  
  85. #endif                /* __LINUX_MAPLE_H */
  86.