From: Thadeu Lima de Souza Cascardo Date: Sat, 22 May 2010 12:22:27 +0000 (-0400) Subject: Classes and devices API. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fkernel%2Fslides%2F.git;a=commitdiff_plain;h=c4c47cfe4a5334a5ca426aa41afadb341cdde951 Classes and devices API. --- diff --git a/12dd/dd b/12dd/dd index fcc69f5..dde2641 100644 --- a/12dd/dd +++ b/12dd/dd @@ -48,3 +48,68 @@ * An object representing a device in the bus or a class device * Establishes an hierarchy through the parent link * A class device usually has a device in the bus as its parent + +# API + +# Classes + +* linux/device.h +* struct class + - name + - owner + - dev_release +* class\\_create(owner, name) +* class\\_destroy(class) +* class\\_register(class) +* class\\_unregister(class) + +# Devices + +* struct device + - parent + - devt + - class + - release + +# Devices API + +* device\\_initialize(dev) +* get\\_device(dev) +* put\\_device(dev) +* dev\\_set\\_name(dev, fmt, ...) +* dev\\_set\\_drvdata(dev, drvdata) +* dev\\_get\\_drvdata(dev) + +# Devices API (cont...) + +* device\\_add(dev) +* device\\_del(dev) +* device\\_register(dev) +* device\\_unregister(dev) +* device\\_create(class, parent, devt, drvdata, fmt, ...) +* device\\_destroy(class, devt) + +# Attributes + +* struct device\\_attribute + - attr + * name + * mode + - show + - store +* ssize\\_t show(dev, attr, char *buf) +* ssize\\_t store(dev, attr, char *buf, size\\_t count) +* sprintf +* strict\\_strtol +* strnlen + +# Adding attributes + +* class.dev\\_attrs +* device\\_create\\_file(dev, attr) +* device\\_remove\\_file(dev, attr) + +# devtmpfs + +* class.devnode +* char *devnode(dev, mode_t *)