diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-07-13 23:09:23 +0100 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-07-13 23:09:23 +0100 |
commit | c514720716c7b109ff980f8b3cb93f9af872c91c (patch) | |
tree | 490a9578995705de69712893a190b67651bddc56 /Documentation | |
parent | 07929dcb963786512c760dd3ecd148d89295e7e5 (diff) | |
parent | 1e279dd855d15b72364b4103f872d67d8592647e (diff) |
Automatic merge with /usr/src/ntfs-2.6.git.
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/acpi-hotkey.txt | 35 | ||||
-rw-r--r-- | Documentation/dvb/README.dvb-usb | 132 | ||||
-rw-r--r-- | Documentation/dvb/bt8xx.txt | 79 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 16 | ||||
-rw-r--r-- | Documentation/filesystems/inotify.txt | 138 | ||||
-rw-r--r-- | Documentation/hwmon/adm1021 (renamed from Documentation/i2c/chips/adm1021) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/adm1025 (renamed from Documentation/i2c/chips/adm1025) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/adm1026 (renamed from Documentation/i2c/chips/adm1026) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/adm1031 (renamed from Documentation/i2c/chips/adm1031) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/adm9240 (renamed from Documentation/i2c/chips/adm9240) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/asb100 (renamed from Documentation/i2c/chips/asb100) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/ds1621 (renamed from Documentation/i2c/chips/ds1621) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/fscher (renamed from Documentation/i2c/chips/fscher) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/gl518sm (renamed from Documentation/i2c/chips/gl518sm) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/it87 (renamed from Documentation/i2c/chips/it87) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm63 (renamed from Documentation/i2c/chips/lm63) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm75 (renamed from Documentation/i2c/chips/lm75) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm77 (renamed from Documentation/i2c/chips/lm77) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm78 (renamed from Documentation/i2c/chips/lm78) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm80 (renamed from Documentation/i2c/chips/lm80) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm83 (renamed from Documentation/i2c/chips/lm83) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm85 (renamed from Documentation/i2c/chips/lm85) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm87 (renamed from Documentation/i2c/chips/lm87) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm90 (renamed from Documentation/i2c/chips/lm90) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/lm92 (renamed from Documentation/i2c/chips/lm92) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/max1619 (renamed from Documentation/i2c/chips/max1619) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/pc87360 (renamed from Documentation/i2c/chips/pc87360) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/sis5595 (renamed from Documentation/i2c/chips/sis5595) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/smsc47b397 (renamed from Documentation/i2c/chips/smsc47b397) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/smsc47m1 (renamed from Documentation/i2c/chips/smsc47m1) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/sysfs-interface (renamed from Documentation/i2c/sysfs-interface) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/userspace-tools (renamed from Documentation/i2c/userspace-tools) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/via686a (renamed from Documentation/i2c/chips/via686a) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/w83627hf (renamed from Documentation/i2c/chips/w83627hf) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/w83781d (renamed from Documentation/i2c/chips/w83781d) | 0 | ||||
-rw-r--r-- | Documentation/hwmon/w83l785ts (renamed from Documentation/i2c/chips/w83l785ts) | 0 | ||||
-rw-r--r-- | Documentation/i2c/chips/max6875 | 22 | ||||
-rw-r--r-- | Documentation/i2c/dev-interface | 15 | ||||
-rw-r--r-- | Documentation/i2c/writing-clients | 7 | ||||
-rw-r--r-- | Documentation/infiniband/user_verbs.txt | 69 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 5 | ||||
-rw-r--r-- | Documentation/networking/fib_trie.txt | 145 | ||||
-rw-r--r-- | Documentation/pcmcia/driver-changes.txt | 9 | ||||
-rw-r--r-- | Documentation/power/video.txt | 1 | ||||
-rw-r--r-- | Documentation/usb/sn9c102.txt | 4 | ||||
-rw-r--r-- | Documentation/usb/usbmon.txt | 29 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.bttv | 2 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 2 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 14 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.tuner | 4 | ||||
-rw-r--r-- | Documentation/video4linux/bttv/Cards | 74 | ||||
-rw-r--r-- | Documentation/video4linux/not-in-cx2388x-datasheet.txt | 4 |
52 files changed, 583 insertions, 223 deletions
diff --git a/Documentation/acpi-hotkey.txt b/Documentation/acpi-hotkey.txt new file mode 100644 index 000000000000..4c115a7bb826 --- /dev/null +++ b/Documentation/acpi-hotkey.txt @@ -0,0 +1,35 @@ +driver/acpi/hotkey.c implement: +1. /proc/acpi/hotkey/event_config +(event based hotkey or event config interface): +a. add a event based hotkey(event) : +echo "0:bus::action:method:num:num" > event_config + +b. delete a event based hotkey(event): +echo "1:::::num:num" > event_config + +c. modify a event based hotkey(event): +echo "2:bus::action:method:num:num" > event_config + +2. /proc/acpi/hotkey/poll_config +(polling based hotkey or event config interface): +a.add a polling based hotkey(event) : +echo "0:bus:method:action:method:num" > poll_config +this adding command will create a proc file +/proc/acpi/hotkey/method, which is used to get +result of polling. + +b.delete a polling based hotkey(event): +echo "1:::::num" > event_config + +c.modify a polling based hotkey(event): +echo "2:bus:method:action:method:num" > poll_config + +3./proc/acpi/hotkey/action +(interface to call aml method associated with a +specific hotkey(event)) +echo "event_num:event_type:event_argument" > + /proc/acpi/hotkey/action. +The result of the execution of this aml method is +attached to /proc/acpi/hotkey/poll_method, which is dnyamically +created. Please use command "cat /proc/acpi/hotkey/polling_method" +to retrieve it. diff --git a/Documentation/dvb/README.dvb-usb b/Documentation/dvb/README.dvb-usb index c7ed01b9f8f4..ac0797ea646c 100644 --- a/Documentation/dvb/README.dvb-usb +++ b/Documentation/dvb/README.dvb-usb @@ -13,14 +13,17 @@ different way: With the help of a dvb-usb-framework. The framework provides generic functions (mostly kernel API calls), such as: - Transport Stream URB handling in conjunction with dvb-demux-feed-control - (bulk and isoc (TODO) are supported) + (bulk and isoc are supported) - registering the device for the DVB-API - registering an I2C-adapter if applicable - remote-control/input-device handling - firmware requesting and loading (currently just for the Cypress USB - controller) + controllers) - other functions/methods which can be shared by several drivers (such as functions for bulk-control-commands) +- TODO: a I2C-chunker. It creates device-specific chunks of register-accesses + depending on length of a register and the number of values that can be + multi-written and multi-read. The source code of the particular DVB USB devices does just the communication with the device via the bus. The connection between the DVB-API-functionality @@ -36,93 +39,18 @@ the dvb-usb-lib. TODO: dynamic enabling and disabling of the pid-filter in regard to number of feeds requested. -Supported devices USB1.1 +Supported devices ======================== -Produced and reselled by Twinhan: ---------------------------------- -- TwinhanDTV USB-Ter DVB-T Device (VP7041) - http://www.twinhan.com/product_terrestrial_3.asp +See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of +cards/drivers/firmwares: -- TwinhanDTV Magic Box (VP7041e) - http://www.twinhan.com/product_terrestrial_4.asp - -- HAMA DVB-T USB device - http://www.hama.de/portal/articleId*110620/action*2598 - -- CTS Portable (Chinese Television System) (2) - http://www.2cts.tv/ctsportable/ - -- Unknown USB DVB-T device with vendor ID Hyper-Paltek - - -Produced and reselled by KWorld: --------------------------------- -- KWorld V-Stream XPERT DTV DVB-T USB - http://www.kworld.com.tw/en/product/DVBT-USB/DVBT-USB.html - -- JetWay DTV DVB-T USB - http://www.jetway.com.tw/evisn/product/lcd-tv/DVT-USB/dtv-usb.htm - -- ADSTech Instant TV DVB-T USB - http://www.adstech.com/products/PTV-333/intro/PTV-333_intro.asp?pid=PTV-333 - - -Others: -------- -- Ultima Electronic/Artec T1 USB TVBOX (AN2135, AN2235, AN2235 with Panasonic Tuner) - http://82.161.246.249/products-tvbox.html - -- Compro Videomate DVB-U2000 - DVB-T USB (2) - http://www.comprousa.com/products/vmu2000.htm - -- Grandtec USB DVB-T - http://www.grand.com.tw/ - -- AVerMedia AverTV DVBT USB - http://www.avermedia.com/ - -- DiBcom USB DVB-T reference device (non-public) - - -Supported devices USB2.0-only -============================= -- Twinhan MagicBox II - http://www.twinhan.com/product_terrestrial_7.asp - -- TwinhanDTV Alpha - http://www.twinhan.com/product_terrestrial_8.asp - -- DigitalNow TinyUSB 2 DVB-t Receiver - http://www.digitalnow.com.au/DigitalNow%20tinyUSB2%20Specifications.html - -- Hanftek UMT-010 - http://www.globalsources.com/si/6008819757082/ProductDetail/Digital-TV/product_id-100046529 - - -Supported devices USB2.0 and USB1.1 -============================= -- Typhoon/Yakumo/HAMA/Yuan DVB-T mobile USB2.0 - http://www.yakumo.de/produkte/index.php?pid=1&ag=DVB-T - http://www.yuan.com.tw/en/products/vdo_ub300.html - http://www.hama.de/portal/articleId*114663/action*2563 - http://www.anubisline.com/english/articlec.asp?id=50502&catid=002 - -- Artec T1 USB TVBOX (FX2) (2) - -- Hauppauge WinTV NOVA-T USB2 - http://www.hauppauge.com/ - -- KWorld/ADSTech Instant DVB-T USB2.0 (DiB3000M-B) - -- DiBcom USB2.0 DVB-T reference device (non-public) - -- AVerMedia AverTV A800 DVB-T USB2.0 - -1) It is working almost - work-in-progress. -2) No test reports received yet. +http://www.linuxtv.org/wiki/index.php/DVB_USB 0. History & News: + 2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang) + 2005-05-30 - added basic isochronous support to the dvb-usb-framework + added support for Conexant Hybrid reference design and Nebula DigiTV USB 2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework 2005-04-02 - re-enabled and improved remote control code. 2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb. @@ -137,7 +65,7 @@ Supported devices USB2.0 and USB1.1 2005-01-31 - distorted streaming is gone for USB1.1 devices 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb - first almost working version for HanfTek UMT-010 - - found out, that Yakumo/HAMA/Typhoon are predessors of the HanfTek UMT-010 + - found out, that Yakumo/HAMA/Typhoon are predecessors of the HanfTek UMT-010 2005-01-10 - refactoring completed, now everything is very delightful - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich. @@ -187,25 +115,13 @@ Supported devices USB2.0 and USB1.1 1. How to use? 1.1. Firmware -Most of the USB drivers need to download a firmware to start working. - -for USB1.1 (AN2135) you need: dvb-usb-dibusb-5.0.0.11.fw -for USB2.0 HanfTek: dvb-usb-umt-010-02.fw -for USB2.0 DiBcom: dvb-usb-dibusb-6.0.0.8.fw -for USB2.0 AVerMedia AverTV DVB-T USB2: dvb-usb-avertv-a800-01.fw -for USB2.0 TwinhanDTV Alpha/MagicBox II: dvb-usb-vp7045-01.fw - -The files can be found on http://www.linuxtv.org/download/firmware/ . +Most of the USB drivers need to download a firmware to the device before start +working. -We do not have the permission (yet) to publish the following firmware-files. -You'll need to extract them from the windows drivers. +Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware +you need for your device: -You should be able to use "get_dvb_firmware dvb-usb" to get the firmware: - -for USB1.1 (AN2235) (a few Artec T1 devices): dvb-usb-dibusb-an2235-01.fw -for USB2.0 Hauppauge: dvb-usb-nova-t-usb2-01.fw -for USB2.0 ADSTech/Kworld USB2.0: dvb-usb-adstech-usb2-01.fw -for USB2.0 Yakumo/Typhoon/Hama: dvb-usb-dtt200u-01.fw +http://www.linuxtv.org/wiki/index.php/DVB_USB 1.2. Compiling @@ -289,6 +205,9 @@ Patches, comments and suggestions are very very welcome. Gunnar Wittich and Joachim von Caron for their trust for providing root-shells on their machines to implement support for new devices. + Allan Third and Michael Hutchinson for their help to write the Nebula + digitv-driver. + Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei Jung from AVerMedia who kindly provided a special firmware to get the device up and running in Linux. @@ -296,7 +215,12 @@ Patches, comments and suggestions are very very welcome. Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by writing the vp7045-driver. - Some guys on the linux-dvb mailing list for encouraging me + Steve Chang from WideView for providing information for new devices and + firmware files. + + Michael Paxton for submitting remote control keymaps. + + Some guys on the linux-dvb mailing list for encouraging me. Peter Schildmann >peter.schildmann-nospam-at-web.de< for his user-level firmware loader, which saves a lot of time @@ -305,4 +229,4 @@ Patches, comments and suggestions are very very welcome. Ulf Hermenau for helping me out with traditional chinese. André Smoktun and Christian Frömmel for supporting me with - hardware and listening to my problems very patient. + hardware and listening to my problems very patiently. diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt index 3a3260794758..e6b8d05bc08d 100644 --- a/Documentation/dvb/bt8xx.txt +++ b/Documentation/dvb/bt8xx.txt @@ -1,66 +1,55 @@ -How to get the Nebula, PCTV and Twinhan DST cards working -========================================================= +How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working +========================================================================================= -This class of cards has a bt878a as the PCI interface, and -require the bttv driver. +1) General information +====================== -Please pay close attention to the warning about the bttv module -options below for the DST card. +This class of cards has a bt878a chip as the PCI interface. +The different card drivers require the bttv driver to provide the means +to access the i2c bus and the gpio pins of the bt8xx chipset. -1) General informations -======================= +2) Compilation rules for Kernel >= 2.6.12 +========================================= -These drivers require the bttv driver to provide the means to access -the i2c bus and the gpio pins of the bt8xx chipset. +Enable the following options: -Because of this, you need to enable "Device drivers" => "Multimedia devices" - => "Video For Linux" => "BT848 Video For Linux" - -Furthermore you need to enable + => "Video For Linux" => "BT848 Video For Linux" "Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" - => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" + => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" -2) Loading Modules -================== +3) Loading Modules, described by two approaches +=============================================== In general you need to load the bttv driver, which will handle the gpio and -i2c communication for us, plus the common dvb-bt8xx device driver. -The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and -TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver. +i2c communication for us, plus the common dvb-bt8xx device driver, +which is called the backend. +The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110), +TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend. +For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt. -3a) Nebula / Pinnacle PCTV --------------------------- +3a) The manual approach +----------------------- - $ modprobe bttv (normally bttv is being loaded automatically by kmod) - $ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading) +Loading modules: +modprobe bttv +modprobe dvb-bt8xx +Unloading modules: +modprobe -r dvb-bt8xx +modprobe -r bttv -3b) TwinHan and Clones +3b) The automatic approach -------------------------- - $ modprobe bttv i2c_hw=1 card=0x71 - $ modprobe dvb-bt8xx - $ modprobe dst - -The value 0x71 will override the PCI type detection for dvb-bt8xx, -which is necessary for TwinHan cards. - -If you're having an older card (blue color circuit) and card=0x71 locks -your machine, try using 0x68, too. If that does not work, ask on the -mailing list. - -The DST module takes a couple of useful parameters: +If not already done by installation, place a line either in +/etc/modules.conf or in /etc/modprobe.conf containing this text: +alias char-major-81 bttv -a. verbose takes values 0 to 5. These values control the verbosity level. -b. debug takes values 0 and 1. You can either disable or enable debugging. -c. dst_addons takes values 0 and 0x20: -- A value of 0 means it is a FTA card. -- A value of 0x20 means it has a Conditional Access slot. +Then place a line in /etc/modules containing this text: +dvb-bt8xx -The autodetected values are determined by the "response string" -of the card, which you can see in your logs: -e.g.: dst_get_device_id: Recognize [DSTMCI] +Reboot your system and have fun! -- Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 1d227ee3792a..12dde43fe657 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt @@ -119,3 +119,19 @@ Why: Match the other drivers' name for the same function, duplicate names will be available until removal of old names. Who: Grant Coady <gcoady@gmail.com> +--------------------------- + +What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) +When: November 2005 +Files: drivers/pcmcia/: pcmcia_ioctl.c +Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a + normal hotpluggable bus, and with it using the default kernel + infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA + control ioctl needed by cardmgr and cardctl from pcmcia-cs is + unnecessary, and makes further cleanups and integration of the + PCMCIA subsystem into the Linux kernel device driver model more + difficult. The features provided by cardmgr and cardctl are either + handled by the kernel itself now or are available in the new + pcmciautils package available at + http://kernel.org/pub/linux/utils/kernel/pcmcia/ +Who: Dominik Brodowski <linux@brodo.de> diff --git a/Documentation/filesystems/inotify.txt b/Documentation/filesystems/inotify.txt new file mode 100644 index 000000000000..2c716041f578 --- /dev/null +++ b/Documentation/filesystems/inotify.txt @@ -0,0 +1,138 @@ + inotify + a powerful yet simple file change notification system + + + +Document started 15 Mar 2005 by Robert Love <rml@novell.com> + +(i) User Interface + +Inotify is controlled by a set of three sys calls + +First step in using inotify is to initialise an inotify instance + + int fd = inotify_init (); + +Change events are managed by "watches". A watch is an (object,mask) pair where +the object is a file or directory and the mask is a bit mask of one or more +inotify events that the application wishes to receive. See <linux/inotify.h> +for valid events. A watch is referenced by a watch descriptor, or wd. + +Watches are added via a path to the file. + +Watches on a directory will return events on any files inside of the directory. + +Adding a watch is simple, + + int wd = inotify_add_watch (fd, path, mask); + +You can add a large number of files via something like + + for each file to watch { + int wd = inotify_add_watch (fd, file, mask); + } + +You can update an existing watch in the same manner, by passing in a new mask. + +An existing watch is removed via the INOTIFY_IGNORE ioctl, for example + + inotify_rm_watch (fd, wd); + +Events are provided in the form of an inotify_event structure that is read(2) +from a inotify instance fd. The filename is of dynamic length and follows the +struct. It is of size len. The filename is padded with null bytes to ensure +proper alignment. This padding is reflected in len. + +You can slurp multiple events by passing a large buffer, for example + + size_t len = read (fd, buf, BUF_LEN); + +Will return as many events as are available and fit in BUF_LEN. + +each inotify instance fd is also select()- and poll()-able. + +You can find the size of the current event queue via the FIONREAD ioctl. + +All watches are destroyed and cleaned up on close. + + +(ii) Internal Kernel Implementation + +Each open inotify instance is associated with an inotify_device structure. + +Each watch is associated with an inotify_watch structure. Watches are chained +off of each associated device and each associated inode. + +See fs/inotify.c for the locking and lifetime rules. + + +(iii) Rationale + +Q: What is the design decision behind not tying the watch to the open fd of + the watched object? + +A: Watches are associated with an open inotify device, not an open file. + This solves the primary problem with dnotify: keeping the file open pins + the file and thus, worse, pins the mount. Dnotify is therefore infeasible + for use on a desktop system with removable media as the media cannot be + unmounted. + +Q: What is the design decision behind using an-fd-per-device as opposed to + an fd-per-watch? + +A: An fd-per-watch quickly consumes more file descriptors than are allowed, + more fd's than are feasible to manage, and more fd's than are optimally + select()-able. Yes, root can bump the per-process fd limit and yes, users + can use epoll, but requiring both is a silly and extraneous requirement. + A watch consumes less memory than an open file, separating the number + spaces is thus sensible. The current design is what user-space developers + want: Users initialize inotify, once, and add n watches, requiring but one fd + and no twiddling with fd limits. Initializing an inotify instance two + thousand times is silly. If we can implement user-space's preferences + cleanly--and we can, the idr layer makes stuff like this trivial--then we + should. + + There are other good arguments. With a single fd, there is a single + item to block on, which is mapped to a single queue of events. The single + fd returns all watch events and also any potential out-of-band data. If + every fd was a separate watch, + + - There would be no way to get event ordering. Events on file foo and + file bar would pop poll() on both fd's, but there would be no way to tell + which happened first. A single queue trivially gives you ordering. Such + ordering is crucial to existing applications such as Beagle. Imagine + "mv a b ; mv b a" events without ordering. + + - We'd have to maintain n fd's and n internal queues with state, + versus just one. It is a lot messier in the kernel. A single, linear + queue is the data structure that makes sense. + + - User-space developers prefer the current API. The Beagle guys, for + example, love it. Trust me, I asked. It is not a surprise: Who'd want + to manage and block on 1000 fd's via select? + + - You'd have to manage the fd's, as an example: Call close() when you + received a delete event. + + - No way to get out of band data. + + - 1024 is still too low. ;-) + + When you talk about designing a file change notification system that + scales to 1000s of directories, juggling 1000s of fd's just does not seem + the right interface. It is too heavy. + +Q: Why the system call approach? + +A: The poor user-space interface is the second biggest problem with dnotify. + Signals are a terrible, terrible interface for file notification. Or for + anything, for that matter. The ideal solution, from all perspectives, is a + file descriptor-based one that allows basic file I/O and poll/select. + Obtaining the fd and managing the watches could have been done either via a + device file or a family of new system calls. We decided to implement a + family of system calls because that is the preffered approach for new kernel + features and it means our user interface requirements. + + Additionally, it _is_ possible to more than one instance and + juggle more than one queue and thus more than one associated fd. + diff --git a/Documentation/i2c/chips/adm1021 b/Documentation/hwmon/adm1021 index 03d02bfb3df1..03d02bfb3df1 100644 --- a/Documentation/i2c/chips/adm1021 +++ b/Documentation/hwmon/adm1021 diff --git a/Documentation/i2c/chips/adm1025 b/Documentation/hwmon/adm1025 index 39d2b781b5d6..39d2b781b5d6 100644 --- a/Documentation/i2c/chips/adm1025 +++ b/Documentation/hwmon/adm1025 diff --git a/Documentation/i2c/chips/adm1026 b/Documentation/hwmon/adm1026 index 473c689d7924..473c689d7924 100644 --- a/Documentation/i2c/chips/adm1026 +++ b/Documentation/hwmon/adm1026 diff --git a/Documentation/i2c/chips/adm1031 b/Documentation/hwmon/adm1031 index 130a38382b98..130a38382b98 100644 --- a/Documentation/i2c/chips/adm1031 +++ b/Documentation/hwmon/adm1031 diff --git a/Documentation/i2c/chips/adm9240 b/Documentation/hwmon/adm9240 index 35f618f32896..35f618f32896 100644 --- a/Documentation/i2c/chips/adm9240 +++ b/Documentation/hwmon/adm9240 diff --git a/Documentation/i2c/chips/asb100 b/Documentation/hwmon/asb100 index ab7365e139be..ab7365e139be 100644 --- a/Documentation/i2c/chips/asb100 +++ b/Documentation/hwmon/asb100 diff --git a/Documentation/i2c/chips/ds1621 b/Documentation/hwmon/ds1621 index 1fee6f1e6bc5..1fee6f1e6bc5 100644 --- a/Documentation/i2c/chips/ds1621 +++ b/Documentation/hwmon/ds1621 diff --git a/Documentation/i2c/chips/fscher b/Documentation/hwmon/fscher index 64031659aff3..64031659aff3 100644 --- a/Documentation/i2c/chips/fscher +++ b/Documentation/hwmon/fscher diff --git a/Documentation/i2c/chips/gl518sm b/Documentation/hwmon/gl518sm index ce0881883bca..ce0881883bca 100644 --- a/Documentation/i2c/chips/gl518sm +++ b/Documentation/hwmon/gl518sm diff --git a/Documentation/i2c/chips/it87 b/Documen |