Classes and devices API.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sat, 22 May 2010 12:22:27 +0000 (08:22 -0400)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Sat, 22 May 2010 12:24:37 +0000 (08:24 -0400)
12dd/dd

diff --git a/12dd/dd b/12dd/dd
index fcc69f5..dde2641 100644 (file)
--- a/12dd/dd
+++ b/12dd/dd
 * 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 *)