1#ifndef __LINUX_DEVICE_H__
2#define __LINUX_DEVICE_H__
12#include <linux/kernel.h>
47 unsigned int devt,
void* drvdata,
48 const char*
fmt, ...);
79 const char* buf,
size_t count);
82#define __DEVICE_ATTR_RW_MODE(_name, _mode) \
83 __ATTR(_name, _mode, _name##_show, _name##_store)
84#define __DEVICE_ATTR_RW(_name) __DEVICE_ATTR_RW_MODE(_name, 0644)
97#define DEVICE_ATTR_RW(_name) \
98 struct device_attribute dev_attr_##_name = __DEVICE_ATTR_RW(_name)
110static inline void* dev_get_drvdata(
const struct device*
dev)
115static inline void dev_set_drvdata(
struct device*
dev,
void*
data)
121#define DEVICE_ATTR_RO(_name) \
122 struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
139#define DEVICE_ATTR(_name, _mode, _show, _store) \
140 struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, \
143#define DEVICE_ATTR_WO(_name) \
144 struct device_attribute dev_attr_##_name = __ATTR_WO(_name)
191static inline const char* dev_name(
const struct device*
dev)
214static inline struct device* device_find_child(
246static inline int device_is_registered(
struct device*
dev)
259static inline int dev_to_node(
struct device*
dev)
301#define dev_warn_once(dev, fmt, ...) \
303 static int __dcl_warned_once; \
304 if (!__dcl_warned_once) { \
305 __dcl_warned_once = 1; \
306 dev_warn((dev), fmt, ##__VA_ARGS__); \
326struct platform_device;
339struct dmem_cgroup_region;
341 const char* name_fmt,
int64_t ssize_t
Definition stddef.h:38
#define NULL
Definition actypes.h:561
void class_unregister(const void *cls)
void platform_device_unregister(struct platform_device *pdev)
void * get_device(const void *dev)
const char * dev_driver_string(const struct device *dev)
void put_device(const void *dev)
int device_add(struct device *dev)
struct device * device_create(const void *class, const void *parent, unsigned int devt, void *drvdata, const char *fmt,...)
void device_destroy(const void *class, unsigned int devt)
void dmem_cgroup_unregister_region(struct dmem_cgroup_region *region)
int dev_set_name(struct device *dev, const char *fmt,...)
struct dmem_cgroup_region * dmem_cgroup_register_region(u64 size, const char *name_fmt,...)
void device_initialize(struct device *dev)
int class_register(const void *cls)
void device_del(struct device *dev)
void check_move_unevictable_folios(struct folio_batch *fbatch)
int dev_printk(const char *level, const struct device *dev, const char *fmt,...)
size_t size
Definition drm_bridge.h:1299
const char * fmt
Definition drm_file.h:466
const struct device * dev
Definition drm_print.h:519
const char * level
Definition drm_print.h:515
struct kobject * parent
Definition kobject.h:91
void * data
Definition kthread.h:30
uint64_t u64
Definition kernel.h:17
unsigned int umode_t
Definition kernel.h:58
const char * name
Definition device.h:39
struct attribute attr
Definition device.h:75
ssize_t(* show)(struct device *dev, struct device_attribute *attr, char *buf)
Definition device.h:76
ssize_t(* store)(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
Definition device.h:78
const struct dev_pm_ops * pm
Definition device.h:35
const char * name
Definition device.h:30
int(* uevent)(const struct device *dev, struct kobj_uevent_env *env)
Definition device.h:32
const struct attribute_group *const * groups
Definition device.h:31
void(* release)(struct device *dev)
Definition device.h:34
unsigned int devt
Definition fs.h:269
const char * kobj_name
Definition fs.h:257
void * driver_data
Definition fs.h:263
Definition folio_batch.h:28