DEVICE_CREATE_VARGS(9) Device drivers infrastructure DEVICE_CREATE_VARGS(9)NAME
device_create_vargs - creates a device and registers it with sysfs
SYNOPSIS
struct device * device_create_vargs(struct class * class, struct device * parent, dev_t devt, void * drvdata, const char * fmt,
va_list args);
ARGUMENTS
class
pointer to the struct class that this device should be registered to
parent
pointer to the parent struct device of this new device, if any
devt
the dev_t for the char device to be added
drvdata
the data to be added to the device for callbacks
fmt
string for the device's name
args
va_list for the device's name
DESCRIPTION
This function can be used by char device classes. A struct device will be created in sysfs, registered to the specified class.
A "dev" file will be created, showing the dev_t for the device, if the dev_t is not 0,0. If a pointer to a parent struct device is passed
in, the newly created struct device will be a child of that device in sysfs. The pointer to the struct device will be returned from the
call. Any further sysfs files that might be required can be created using this pointer.
Returns struct device pointer on success, or ERR_PTR on error.
NOTE
the struct class passed to this function must have previously been created with a call to class_create.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 DEVICE_CREATE_VARGS(9)
Check Out this Related Man Page
DEVICE_SCHEDULE_CALL(9) Device drivers infrastructure DEVICE_SCHEDULE_CALL(9)NAME
device_schedule_callback_owner - helper to schedule a callback for a device
SYNOPSIS
int device_schedule_callback_owner(struct device * dev, void (*func) (struct device *), struct module * owner);
ARGUMENTS
dev
device.
func
callback function to invoke later.
owner
module owning the callback routine
DESCRIPTION
Attribute methods must not unregister themselves or their parent device (which would amount to the same thing). Attempts to do so will
deadlock, since unregistration is mutually exclusive with driver callbacks.
Instead methods can call this routine, which will attempt to allocate and schedule a workqueue request to call back func with dev as its
argument in the workqueue's process context. dev will be pinned until func returns.
This routine is usually called via the inline device_schedule_callback, which automatically sets owner to THIS_MODULE.
Returns 0 if the request was submitted, -ENOMEM if storage could not be allocated, -ENODEV if a reference to owner isn't available.
NOTE
This routine won't work if CONFIG_SYSFS isn't set! It uses an underlying sysfs routine (since it is intended for use by attribute methods),
and if sysfs isn't available you'll get nothing but -ENOSYS.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 DEVICE_SCHEDULE_CALL(9)
hello friends,
While in the process of writing device drivers,
i am facing problem in reading and writing device registers.I got base address of those mapped device registers. Can i add offset of those registers to that Base address to get access of those... (1 Reply)
I am trying copy all files ,i was getting below error .Please any idea
#find . -name "*bat" -exec cp -p {} /devt/jobs
find: incomplete statement
Thanks,
Akil (9 Replies)
Hi all,
Currently i am involved in developing a device driver for a custom hardware.
My linux stack already has the sysfs directory structure
/sys/class/hwmon/
My need is that, while loading my device driver i need to create a "xyz" sysfs directory inside hwmon sysfs directory as... (0 Replies)
Hi all!
I am trying to register a device in an existing device class, but I am
having trouble getting the pointer to an existing class.
I can create a class in a module, get the pointer to it and then use
it to register the device with:
*cl = class_create(THIS_MODULE, className);... (0 Replies)
I have a text file that shows the output of my solar inverters. I want to separate this into sections. overview , device 1 , device 2 , device 3. Each device has different number of lines. but they all have unique starting points. Overview starts with 6 #'s, Devices have 4#'s and their data starts... (6 Replies)