Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      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  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _SYSDEV_H_
     13 #define _SYSDEV_H_
     14 
     15 #include <linux/kobject.h>
     16 #include <linux/pm.h>
     17 
     18 struct sys_device;
     19 
     20 struct sysdev_class {
     21  struct list_head drivers;
     22 
     23  int (*shutdown)(struct sys_device *);
     24  int (*suspend)(struct sys_device *, pm_message_t state);
     25  int (*resume)(struct sys_device *);
     26  struct kset kset;
     27 };
     28 
     29 struct sysdev_class_attribute {
     30  struct attribute attr;
     31  ssize_t (*show)(struct sysdev_class *, char *);
     32  ssize_t (*store)(struct sysdev_class *, const char *, size_t);
     33 };
     34 
     35 #define SYSDEV_CLASS_ATTR(_name,_mode,_show,_store)  struct sysdev_class_attribute attr_##_name = {   .attr = {.name = __stringify(_name), .mode = _mode },   .show = _show,   .store = _store,  };
     36 
     37 struct sysdev_driver {
     38  struct list_head entry;
     39  int (*add)(struct sys_device *);
     40  int (*remove)(struct sys_device *);
     41  int (*shutdown)(struct sys_device *);
     42  int (*suspend)(struct sys_device *, pm_message_t state);
     43  int (*resume)(struct sys_device *);
     44 };
     45 
     46 struct sys_device {
     47  u32 id;
     48  struct sysdev_class * cls;
     49  struct kobject kobj;
     50 };
     51 
     52 struct sysdev_attribute {
     53  struct attribute attr;
     54  ssize_t (*show)(struct sys_device *, char *);
     55  ssize_t (*store)(struct sys_device *, const char *, size_t);
     56 };
     57 
     58 #define SYSDEV_ATTR(_name,_mode,_show,_store)  struct sysdev_attribute attr_##_name = {   .attr = {.name = __stringify(_name), .mode = _mode },   .show = _show,   .store = _store,  };
     59 
     60 #endif
     61