~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/maple.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef __LINUX_MAPLE_H
  3 #define __LINUX_MAPLE_H
  4 
  5 #include <mach/maple.h>
  6 
  7 struct device;
  8 
  9 /* Maple Bus command and response codes */
 10 enum maple_code {
 11         MAPLE_RESPONSE_FILEERR =        -5,
 12         MAPLE_RESPONSE_AGAIN,   /* retransmit */
 13         MAPLE_RESPONSE_BADCMD,
 14         MAPLE_RESPONSE_BADFUNC,
 15         MAPLE_RESPONSE_NONE,    /* unit didn't respond*/
 16         MAPLE_COMMAND_DEVINFO =         1,
 17         MAPLE_COMMAND_ALLINFO,
 18         MAPLE_COMMAND_RESET,
 19         MAPLE_COMMAND_KILL,
 20         MAPLE_RESPONSE_DEVINFO,
 21         MAPLE_RESPONSE_ALLINFO,
 22         MAPLE_RESPONSE_OK,
 23         MAPLE_RESPONSE_DATATRF,
 24         MAPLE_COMMAND_GETCOND,
 25         MAPLE_COMMAND_GETMINFO,
 26         MAPLE_COMMAND_BREAD,
 27         MAPLE_COMMAND_BWRITE,
 28         MAPLE_COMMAND_BSYNC,
 29         MAPLE_COMMAND_SETCOND,
 30         MAPLE_COMMAND_MICCONTROL
 31 };
 32 
 33 enum maple_file_errors {
 34         MAPLE_FILEERR_INVALID_PARTITION =       0x01000000,
 35         MAPLE_FILEERR_PHASE_ERROR =             0x02000000,
 36         MAPLE_FILEERR_INVALID_BLOCK =           0x04000000,
 37         MAPLE_FILEERR_WRITE_ERROR =             0x08000000,
 38         MAPLE_FILEERR_INVALID_WRITE_LENGTH =    0x10000000,
 39         MAPLE_FILEERR_BAD_CRC =                 0x20000000
 40 };
 41 
 42 struct maple_buffer {
 43         char bufx[0x400];
 44         void *buf;
 45 };
 46 
 47 struct mapleq {
 48         struct list_head list;
 49         struct maple_device *dev;
 50         struct maple_buffer *recvbuf;
 51         void *sendbuf, *recvbuf_p2;
 52         unsigned char length;
 53         enum maple_code command;
 54 };
 55 
 56 struct maple_devinfo {
 57         unsigned long function;
 58         unsigned long function_data[3];
 59         unsigned char area_code;
 60         unsigned char connector_direction;
 61         char product_name[31];
 62         char product_licence[61];
 63         unsigned short standby_power;
 64         unsigned short max_power;
 65 };
 66 
 67 struct maple_device {
 68         struct maple_driver *driver;
 69         struct mapleq *mq;
 70         void (*callback) (struct mapleq * mq);
 71         void (*fileerr_handler)(struct maple_device *mdev, void *recvbuf);
 72         int (*can_unload)(struct maple_device *mdev);
 73         unsigned long when, interval, function;
 74         struct maple_devinfo devinfo;
 75         unsigned char port, unit;
 76         char product_name[32];
 77         char product_licence[64];
 78         atomic_t busy;
 79         wait_queue_head_t maple_wait;
 80         struct device dev;
 81 };
 82 
 83 struct maple_driver {
 84         unsigned long function;
 85         struct device_driver drv;
 86 };
 87 
 88 void maple_getcond_callback(struct maple_device *dev,
 89                             void (*callback) (struct mapleq * mq),
 90                             unsigned long interval,
 91                             unsigned long function);
 92 int maple_driver_register(struct maple_driver *);
 93 void maple_driver_unregister(struct maple_driver *);
 94 
 95 int maple_add_packet(struct maple_device *mdev, u32 function,
 96         u32 command, u32 length, void *data);
 97 void maple_clear_dev(struct maple_device *mdev);
 98 
 99 #define to_maple_dev(n) container_of(n, struct maple_device, dev)
100 #define to_maple_driver(n) container_of_const(n, struct maple_driver, drv)
101 
102 #define maple_get_drvdata(d)            dev_get_drvdata(&(d)->dev)
103 #define maple_set_drvdata(d,p)          dev_set_drvdata(&(d)->dev, (p))
104 
105 #endif                          /* __LINUX_MAPLE_H */
106 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php