blob: 025b88e4026cca84e80c8b0b3c875f4b02e96648 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
Ben Cheng94a85f62012-03-06 15:45:52 -080010 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017 ****************************************************************************
18 ****************************************************************************/
19#ifndef _DEVICE_H_
20#define _DEVICE_H_
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021#include <linux/ioport.h>
22#include <linux/kobject.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024#include <linux/klist.h>
25#include <linux/list.h>
26#include <linux/types.h>
27#include <linux/module.h>
Ben Cheng94a85f62012-03-06 15:45:52 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#include <linux/pm.h>
30#include <asm/semaphore.h>
31#include <asm/atomic.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080032#define DEVICE_NAME_SIZE 50
Ben Cheng94a85f62012-03-06 15:45:52 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034#define DEVICE_NAME_HALF __stringify(20)
35#define DEVICE_ID_SIZE 32
36#define BUS_ID_SIZE KOBJ_NAME_LEN
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080037struct device;
Ben Cheng94a85f62012-03-06 15:45:52 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080039struct device_driver;
40struct class;
41struct class_device;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080042struct bus_type {
Ben Cheng94a85f62012-03-06 15:45:52 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044 const char * name;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080045 struct subsystem subsys;
46 struct kset drivers;
47 struct kset devices;
Ben Cheng94a85f62012-03-06 15:45:52 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080049 struct klist klist_devices;
50 struct klist klist_drivers;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080051 struct bus_attribute * bus_attrs;
52 struct device_attribute * dev_attrs;
Ben Cheng94a85f62012-03-06 15:45:52 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080054 struct driver_attribute * drv_attrs;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080055 int (*match)(struct device * dev, struct device_driver * drv);
56 int (*uevent)(struct device *dev, char **envp,
57 int num_envp, char *buffer, int buffer_size);
Ben Cheng94a85f62012-03-06 15:45:52 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059 int (*probe)(struct device * dev);
60 int (*remove)(struct device * dev);
61 void (*shutdown)(struct device * dev);
62 int (*suspend)(struct device * dev, pm_message_t state);
Ben Cheng94a85f62012-03-06 15:45:52 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080064 int (*resume)(struct device * dev);
65};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080066struct device * bus_find_device(struct bus_type *bus, struct device *start,
67 void *data, int (*match)(struct device *, void *));
Ben Cheng94a85f62012-03-06 15:45:52 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080069struct bus_attribute {
70 struct attribute attr;
71 ssize_t (*show)(struct bus_type *, char * buf);
72 ssize_t (*store)(struct bus_type *, const char * buf, size_t count);
Ben Cheng94a85f62012-03-06 15:45:52 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080074};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080075#define BUS_ATTR(_name,_mode,_show,_store) struct bus_attribute bus_attr_##_name = __ATTR(_name,_mode,_show,_store)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080076struct device_driver {
77 const char * name;
Ben Cheng94a85f62012-03-06 15:45:52 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080079 struct bus_type * bus;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080080 struct completion unloaded;
81 struct kobject kobj;
82 struct klist klist_devices;
Ben Cheng94a85f62012-03-06 15:45:52 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080084 struct klist_node knode_bus;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080085 struct module * owner;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080086 int (*probe) (struct device * dev);
87 int (*remove) (struct device * dev);
Ben Cheng94a85f62012-03-06 15:45:52 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080089 void (*shutdown) (struct device * dev);
90 int (*suspend) (struct device * dev, pm_message_t state);
91 int (*resume) (struct device * dev);
92};
Ben Cheng94a85f62012-03-06 15:45:52 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080094struct driver_attribute {
95 struct attribute attr;
96 ssize_t (*show)(struct device_driver *, char * buf);
97 ssize_t (*store)(struct device_driver *, const char * buf, size_t count);
Ben Cheng94a85f62012-03-06 15:45:52 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080099};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800100#define DRIVER_ATTR(_name,_mode,_show,_store) struct driver_attribute driver_attr_##_name = __ATTR(_name,_mode,_show,_store)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800101struct device * driver_find_device(struct device_driver *drv,
102 struct device *start, void *data,
Ben Cheng94a85f62012-03-06 15:45:52 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800104 int (*match)(struct device *, void *));
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800105struct class {
106 const char * name;
107 struct module * owner;
Ben Cheng94a85f62012-03-06 15:45:52 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800109 struct subsystem subsys;
110 struct list_head children;
111 struct list_head devices;
112 struct list_head interfaces;
Ben Cheng94a85f62012-03-06 15:45:52 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800114 struct semaphore sem;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800115 struct class_attribute * class_attrs;
116 struct class_device_attribute * class_dev_attrs;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800117 int (*uevent)(struct class_device *dev, char **envp,
Ben Cheng94a85f62012-03-06 15:45:52 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800119 int num_envp, char *buffer, int buffer_size);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800120 void (*release)(struct class_device *dev);
121 void (*class_release)(struct class *class);
122};
Ben Cheng94a85f62012-03-06 15:45:52 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800124struct class_attribute {
125 struct attribute attr;
126 ssize_t (*show)(struct class *, char * buf);
127 ssize_t (*store)(struct class *, const char * buf, size_t count);
Ben Cheng94a85f62012-03-06 15:45:52 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800129};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800130#define CLASS_ATTR(_name,_mode,_show,_store) struct class_attribute class_attr_##_name = __ATTR(_name,_mode,_show,_store)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800131struct class_device_attribute {
132 struct attribute attr;
Ben Cheng94a85f62012-03-06 15:45:52 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800134 ssize_t (*show)(struct class_device *, char * buf);
135 ssize_t (*store)(struct class_device *, const char * buf, size_t count);
136};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800137#define CLASS_DEVICE_ATTR(_name,_mode,_show,_store) struct class_device_attribute class_device_attr_##_name = __ATTR(_name,_mode,_show,_store)
Ben Cheng94a85f62012-03-06 15:45:52 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800139struct class_device {
140 struct list_head node;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800141 struct kobject kobj;
142 struct class * class;
Ben Cheng94a85f62012-03-06 15:45:52 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800144 dev_t devt;
145 struct class_device_attribute *devt_attr;
146 struct class_device_attribute uevent_attr;
147 struct device * dev;
Ben Cheng94a85f62012-03-06 15:45:52 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800149 void * class_data;
150 struct class_device *parent;
151 struct attribute_group ** groups;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800152 void (*release)(struct class_device *dev);
Ben Cheng94a85f62012-03-06 15:45:52 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800154 int (*uevent)(struct class_device *dev, char **envp,
155 int num_envp, char *buffer, int buffer_size);
156 char class_id[BUS_ID_SIZE];
157};
Ben Cheng94a85f62012-03-06 15:45:52 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800159struct class_interface {
160 struct list_head node;
161 struct class *class;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800162 int (*add) (struct class_device *, struct class_interface *);
Ben Cheng94a85f62012-03-06 15:45:52 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800164 void (*remove) (struct class_device *, struct class_interface *);
165};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800166struct device_attribute {
167 struct attribute attr;
Ben Cheng94a85f62012-03-06 15:45:52 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800169 ssize_t (*show)(struct device *dev, struct device_attribute *attr,
170 char *buf);
171 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
172 const char *buf, size_t count);
Ben Cheng94a85f62012-03-06 15:45:52 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800174};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800175#define DEVICE_ATTR(_name,_mode,_show,_store) struct device_attribute dev_attr_##_name = __ATTR(_name,_mode,_show,_store)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800176struct device {
177 struct klist klist_children;
Ben Cheng94a85f62012-03-06 15:45:52 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800179 struct klist_node knode_parent;
180 struct klist_node knode_driver;
181 struct klist_node knode_bus;
182 struct device * parent;
Ben Cheng94a85f62012-03-06 15:45:52 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800184 struct kobject kobj;
185 char bus_id[BUS_ID_SIZE];
186 struct device_attribute uevent_attr;
187 struct device_attribute *devt_attr;
Ben Cheng94a85f62012-03-06 15:45:52 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800189 struct semaphore sem;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800190 struct bus_type * bus;
191 struct device_driver *driver;
192 void *driver_data;
Ben Cheng94a85f62012-03-06 15:45:52 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800194 void *platform_data;
195 void *firmware_data;
196 struct dev_pm_info power;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800197 u64 *dma_mask;
Ben Cheng94a85f62012-03-06 15:45:52 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800199 u64 coherent_dma_mask;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800200 struct list_head dma_pools;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800201 struct dma_coherent_mem *dma_mem;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800202 struct list_head node;
Ben Cheng94a85f62012-03-06 15:45:52 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800204 struct class *class;
205 dev_t devt;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800206 void (*release)(struct device * dev);
207};
Ben Cheng94a85f62012-03-06 15:45:52 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800209#define dev_printk(level, dev, format, arg...) printk(level "%s %s: " format , dev_driver_string(dev) , (dev)->bus_id , ## arg)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800210#ifdef DEBUG
211#define dev_dbg(dev, format, arg...) dev_printk(KERN_DEBUG , dev , format , ## arg)
212#else
Ben Cheng94a85f62012-03-06 15:45:52 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800214#define dev_dbg(dev, format, arg...) do { (void)(dev); } while (0)
215#endif
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800216#define dev_err(dev, format, arg...) dev_printk(KERN_ERR , dev , format , ## arg)
217#define dev_info(dev, format, arg...) dev_printk(KERN_INFO , dev , format , ## arg)
Ben Cheng94a85f62012-03-06 15:45:52 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800219#define dev_warn(dev, format, arg...) dev_printk(KERN_WARNING , dev , format , ## arg)
220#define dev_notice(dev, format, arg...) dev_printk(KERN_NOTICE , dev , format , ## arg)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800221#define MODULE_ALIAS_CHARDEV(major,minor) MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor))
222#define MODULE_ALIAS_CHARDEV_MAJOR(major) MODULE_ALIAS("char-major-" __stringify(major) "-*")
Ben Cheng94a85f62012-03-06 15:45:52 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800224#endif