diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/keys.txt | 39 | ||||
-rw-r--r-- | Documentation/pci.txt | 14 | ||||
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 19 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 50 | ||||
-rw-r--r-- | Documentation/w1/masters/ds2490 | 18 | ||||
-rw-r--r-- | Documentation/w1/w1.generic | 18 | ||||
-rw-r--r-- | Documentation/w1/w1.netlink | 98 |
7 files changed, 218 insertions, 38 deletions
diff --git a/Documentation/keys.txt b/Documentation/keys.txt index aaa01b0e3ee9..3bbe157b45e4 100644 --- a/Documentation/keys.txt +++ b/Documentation/keys.txt | |||
@@ -19,6 +19,7 @@ This document has the following sections: | |||
19 | - Key overview | 19 | - Key overview |
20 | - Key service overview | 20 | - Key service overview |
21 | - Key access permissions | 21 | - Key access permissions |
22 | - SELinux support | ||
22 | - New procfs files | 23 | - New procfs files |
23 | - Userspace system call interface | 24 | - Userspace system call interface |
24 | - Kernel services | 25 | - Kernel services |
@@ -232,6 +233,34 @@ For changing the ownership, group ID or permissions mask, being the owner of | |||
232 | the key or having the sysadmin capability is sufficient. | 233 | the key or having the sysadmin capability is sufficient. |
233 | 234 | ||
234 | 235 | ||
236 | =============== | ||
237 | SELINUX SUPPORT | ||
238 | =============== | ||
239 | |||
240 | The security class "key" has been added to SELinux so that mandatory access | ||
241 | controls can be applied to keys created within various contexts. This support | ||
242 | is preliminary, and is likely to change quite significantly in the near future. | ||
243 | Currently, all of the basic permissions explained above are provided in SELinux | ||
244 | as well; SE Linux is simply invoked after all basic permission checks have been | ||
245 | performed. | ||
246 | |||
247 | Each key is labeled with the same context as the task to which it belongs. | ||
248 | Typically, this is the same task that was running when the key was created. | ||
249 | The default keyrings are handled differently, but in a way that is very | ||
250 | intuitive: | ||
251 | |||
252 | (*) The user and user session keyrings that are created when the user logs in | ||
253 | are currently labeled with the context of the login manager. | ||
254 | |||
255 | (*) The keyrings associated with new threads are each labeled with the context | ||
256 | of their associated thread, and both session and process keyrings are | ||
257 | handled similarly. | ||
258 | |||
259 | Note, however, that the default keyrings associated with the root user are | ||
260 | labeled with the default kernel context, since they are created early in the | ||
261 | boot process, before root has a chance to log in. | ||
262 | |||
263 | |||
235 | ================ | 264 | ================ |
236 | NEW PROCFS FILES | 265 | NEW PROCFS FILES |
237 | ================ | 266 | ================ |
@@ -935,6 +964,16 @@ The structure has a number of fields, some of which are mandatory: | |||
935 | It is not safe to sleep in this method; the caller may hold spinlocks. | 964 | It is not safe to sleep in this method; the caller may hold spinlocks. |
936 | 965 | ||
937 | 966 | ||
967 | (*) void (*revoke)(struct key *key); | ||
968 | |||
969 | This method is optional. It is called to discard part of the payload | ||
970 | data upon a key being revoked. The caller will have the key semaphore | ||
971 | write-locked. | ||
972 | |||
973 | It is safe to sleep in this method, though care should be taken to avoid | ||
974 | a deadlock against the key semaphore. | ||
975 | |||
976 | |||
938 | (*) void (*destroy)(struct key *key); | 977 | (*) void (*destroy)(struct key *key); |
939 | 978 | ||
940 | This method is optional. It is called to discard the payload data on a key | 979 | This method is optional. It is called to discard the payload data on a key |
diff --git a/Documentation/pci.txt b/Documentation/pci.txt index 66bbbf1d1ef6..3242e5c1ee9c 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -213,9 +213,17 @@ have been remapped by the kernel. | |||
213 | 213 | ||
214 | See Documentation/IO-mapping.txt for how to access device memory. | 214 | See Documentation/IO-mapping.txt for how to access device memory. |
215 | 215 | ||
216 | You still need to call request_region() for I/O regions and | 216 | The device driver needs to call pci_request_region() to make sure |
217 | request_mem_region() for memory regions to make sure nobody else is using the | 217 | no other device is already using the same resource. The driver is expected |
218 | same device. | 218 | to determine MMIO and IO Port resource availability _before_ calling |
219 | pci_enable_device(). Conversely, drivers should call pci_release_region() | ||
220 | _after_ calling pci_disable_device(). The idea is to prevent two devices | ||
221 | colliding on the same address range. | ||
222 | |||
223 | Generic flavors of pci_request_region() are request_mem_region() | ||
224 | (for MMIO ranges) and request_region() (for IO Port ranges). | ||
225 | Use these for address resources that are not described by "normal" PCI | ||
226 | interfaces (e.g. BAR). | ||
219 | 227 | ||
220 | All interrupt handlers should be registered with SA_SHIRQ and use the devid | 228 | All interrupt handlers should be registered with SA_SHIRQ and use the devid |
221 | to map IRQs to devices (remember that all PCI interrupts are shared). | 229 | to map IRQs to devices (remember that all PCI interrupts are shared). |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 0ee2c7dfc482..87d76a5c73d0 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -366,7 +366,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
366 | 366 | ||
367 | Module for C-Media CMI8338 and 8738 PCI sound cards. | 367 | Module for C-Media CMI8338 and 8738 PCI sound cards. |
368 | 368 | ||
369 | mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default) | 369 | mpu_port - 0x300,0x310,0x320,0x330 = legacy port, |
370 | 1 = integrated PCI port, | ||
371 | 0 = disable (default) | ||
370 | fm_port - 0x388 (default), 0 = disable (default) | 372 | fm_port - 0x388 (default), 0 = disable (default) |
371 | soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only) | 373 | soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only) |
372 | (default = 1) | 374 | (default = 1) |
@@ -468,7 +470,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
468 | 470 | ||
469 | Module for multifunction CS5535 companion PCI device | 471 | Module for multifunction CS5535 companion PCI device |
470 | 472 | ||
471 | This module supports multiple cards. | 473 | The power-management is supported. |
472 | 474 | ||
473 | Module snd-dt019x | 475 | Module snd-dt019x |
474 | ----------------- | 476 | ----------------- |
@@ -707,8 +709,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
707 | Module snd-hda-intel | 709 | Module snd-hda-intel |
708 | -------------------- | 710 | -------------------- |
709 | 711 | ||
710 | Module for Intel HD Audio (ICH6, ICH6M, ICH7), ATI SB450, | 712 | Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8), |
711 | VIA VT8251/VT8237A | 713 | ATI SB450, SB600, RS600, |
714 | VIA VT8251/VT8237A, | ||
715 | SIS966, ULI M5461 | ||
712 | 716 | ||
713 | model - force the model name | 717 | model - force the model name |
714 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 718 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
@@ -778,6 +782,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
778 | AD1981 | 782 | AD1981 |
779 | basic 3-jack (default) | 783 | basic 3-jack (default) |
780 | hp HP nx6320 | 784 | hp HP nx6320 |
785 | thinkpad Lenovo Thinkpad T60/X60/Z60 | ||
781 | 786 | ||
782 | AD1986A | 787 | AD1986A |
783 | 6stack 6-jack, separate surrounds (default) | 788 | 6stack 6-jack, separate surrounds (default) |
@@ -1633,9 +1638,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1633 | 1638 | ||
1634 | About capture IBL, see the description of snd-vx222 module. | 1639 | About capture IBL, see the description of snd-vx222 module. |
1635 | 1640 | ||
1636 | Note: the driver is build only when CONFIG_ISA is set. | 1641 | Note: snd-vxp440 driver is merged to snd-vxpocket driver since |
1637 | |||
1638 | Note2: snd-vxp440 driver is merged to snd-vxpocket driver since | ||
1639 | ALSA 1.0.10. | 1642 | ALSA 1.0.10. |
1640 | 1643 | ||
1641 | The power-management is supported. | 1644 | The power-management is supported. |
@@ -1662,8 +1665,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1662 | 1665 | ||
1663 | Module for Sound Core PDAudioCF sound card. | 1666 | Module for Sound Core PDAudioCF sound card. |
1664 | 1667 | ||
1665 | Note: the driver is build only when CONFIG_ISA is set. | ||
1666 | |||
1667 | The power-management is supported. | 1668 | The power-management is supported. |
1668 | 1669 | ||
1669 | 1670 | ||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 1faf76383bab..635cbb94357c 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -4215,7 +4215,7 @@ struct _snd_pcm_runtime { | |||
4215 | <programlisting> | 4215 | <programlisting> |
4216 | <![CDATA[ | 4216 | <![CDATA[ |
4217 | struct snd_rawmidi *rmidi; | 4217 | struct snd_rawmidi *rmidi; |
4218 | snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, integrated, | 4218 | snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, port, info_flags, |
4219 | irq, irq_flags, &rmidi); | 4219 | irq, irq_flags, &rmidi); |
4220 | ]]> | 4220 | ]]> |
4221 | </programlisting> | 4221 | </programlisting> |
@@ -4242,15 +4242,36 @@ struct _snd_pcm_runtime { | |||
4242 | </para> | 4242 | </para> |
4243 | 4243 | ||
4244 | <para> | 4244 | <para> |
4245 | The 5th argument is bitflags for additional information. | ||
4245 | When the i/o port address above is a part of the PCI i/o | 4246 | When the i/o port address above is a part of the PCI i/o |
4246 | region, the MPU401 i/o port might have been already allocated | 4247 | region, the MPU401 i/o port might have been already allocated |
4247 | (reserved) by the driver itself. In such a case, pass non-zero | 4248 | (reserved) by the driver itself. In such a case, pass a bit flag |
4248 | to the 5th argument | 4249 | <constant>MPU401_INFO_INTEGRATED</constant>, |
4249 | (<parameter>integrated</parameter>). Otherwise, pass 0 to it, | ||
4250 | and | 4250 | and |
4251 | the mpu401-uart layer will allocate the i/o ports by itself. | 4251 | the mpu401-uart layer will allocate the i/o ports by itself. |
4252 | </para> | 4252 | </para> |
4253 | 4253 | ||
4254 | <para> | ||
4255 | When the controller supports only the input or output MIDI stream, | ||
4256 | pass <constant>MPU401_INFO_INPUT</constant> or | ||
4257 | <constant>MPU401_INFO_OUTPUT</constant> bitflag, respectively. | ||
4258 | Then the rawmidi instance is created as a single stream. | ||
4259 | </para> | ||
4260 | |||
4261 | <para> | ||
4262 | <constant>MPU401_INFO_MMIO</constant> bitflag is used to change | ||
4263 | the access method to MMIO (via readb and writeb) instead of | ||
4264 | iob and outb. In this case, you have to pass the iomapped address | ||
4265 | to <function>snd_mpu401_uart_new()</function>. | ||
4266 | </para> | ||
4267 | |||
4268 | <para> | ||
4269 | When <constant>MPU401_INFO_TX_IRQ</constant> is set, the output | ||
4270 | stream isn't checked in the default interrupt handler. The driver | ||
4271 | needs to call <function>snd_mpu401_uart_interrupt_tx()</function> | ||
4272 | by itself to start processing the output stream in irq handler. | ||
4273 | </para> | ||
4274 | |||
4254 | <para> | 4275 | <para> |
4255 | Usually, the port address corresponds to the command port and | 4276 | Usually, the port address corresponds to the command port and |
4256 | port + 1 corresponds to the data port. If not, you may change | 4277 | port + 1 corresponds to the data port. If not, you may change |
@@ -5333,7 +5354,7 @@ struct _snd_pcm_runtime { | |||
5333 | <informalexample> | 5354 | <informalexample> |
5334 | <programlisting> | 5355 | <programlisting> |
5335 | <![CDATA[ | 5356 | <![CDATA[ |
5336 | snd_info_set_text_ops(entry, chip, read_size, my_proc_read); | 5357 | snd_info_set_text_ops(entry, chip, my_proc_read); |
5337 | ]]> | 5358 | ]]> |
5338 | </programlisting> | 5359 | </programlisting> |
5339 | </informalexample> | 5360 | </informalexample> |
@@ -5394,7 +5415,6 @@ struct _snd_pcm_runtime { | |||
5394 | <informalexample> | 5415 | <informalexample> |
5395 | <programlisting> | 5416 | <programlisting> |
5396 | <![CDATA[ | 5417 | <![CDATA[ |
5397 | entry->c.text.write_size = 256; | ||
5398 | entry->c.text.write = my_proc_write; | 5418 | entry->c.text.write = my_proc_write; |
5399 | ]]> | 5419 | ]]> |
5400 | </programlisting> | 5420 | </programlisting> |
@@ -5402,22 +5422,6 @@ struct _snd_pcm_runtime { | |||
5402 | </para> | 5422 | </para> |
5403 | 5423 | ||
5404 | <para> | 5424 | <para> |
5405 | The buffer size for read is set to 1024 implicitly by | ||
5406 | <function>snd_info_set_text_ops()</function>. It should suffice | ||
5407 | in most cases (the size will be aligned to | ||
5408 | <constant>PAGE_SIZE</constant> anyway), but if you need to handle | ||
5409 | very large text files, you can set it explicitly, too. | ||
5410 | |||
5411 | <informalexample> | ||
5412 | <programlisting> | ||
5413 | <![CDATA[ | ||
5414 | entry->c.text.read_size = 65536; | ||
5415 | ]]> | ||
5416 | </programlisting> | ||
5417 | </informalexample> | ||
5418 | </para> | ||
5419 | |||
5420 | <para> | ||
5421 | For the write callback, you can use | 5425 | For the write callback, you can use |
5422 | <function>snd_info_get_line()</function> to get a text line, and | 5426 | <function>snd_info_get_line()</function> to get a text line, and |
5423 | <function>snd_info_get_str()</function> to retrieve a string from | 5427 | <function>snd_info_get_str()</function> to retrieve a string from |
@@ -5562,7 +5566,7 @@ struct _snd_pcm_runtime { | |||
5562 | power status.</para></listitem> | 5566 | power status.</para></listitem> |
5563 | <listitem><para>Call <function>snd_pcm_suspend_all()</function> to suspend the running PCM streams.</para></listitem> | 5567 | <listitem><para>Call <function>snd_pcm_suspend_all()</function> to suspend the running PCM streams.</para></listitem> |
5564 | <listitem><para>If AC97 codecs are used, call | 5568 | <listitem><para>If AC97 codecs are used, call |
5565 | <function>snd_ac97_resume()</function> for each codec.</para></listitem> | 5569 | <function>snd_ac97_suspend()</function> for each codec.</para></listitem> |
5566 | <listitem><para>Save the register values if necessary.</para></listitem> | 5570 | <listitem><para>Save the register values if necessary.</para></listitem> |
5567 | <listitem><para>Stop the hardware if necessary.</para></listitem> | 5571 | <listitem><para>Stop the hardware if necessary.</para></listitem> |
5568 | <listitem><para>Disable the PCI device by calling | 5572 | <listitem><para>Disable the PCI device by calling |
diff --git a/Documentation/w1/masters/ds2490 b/Documentation/w1/masters/ds2490 new file mode 100644 index 000000000000..44a4918bd7f2 --- /dev/null +++ b/Documentation/w1/masters/ds2490 | |||
@@ -0,0 +1,18 @@ | |||
1 | Kernel driver ds2490 | ||
2 | ==================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Maxim DS2490 based | ||
6 | |||
7 | Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru> | ||
8 | |||
9 | |||
10 | Description | ||
11 | ----------- | ||
12 | |||
13 | The Maixm/Dallas Semiconductor DS2490 is a chip | ||
14 | which allows to build USB <-> W1 bridges. | ||
15 | |||
16 | DS9490(R) is a USB <-> W1 bus master device | ||
17 | which has 0x81 family ID integrated chip and DS2490 | ||
18 | low-level operational chip. | ||
diff --git a/Documentation/w1/w1.generic b/Documentation/w1/w1.generic index f937fbe1cacb..4c6509dd4789 100644 --- a/Documentation/w1/w1.generic +++ b/Documentation/w1/w1.generic | |||
@@ -27,8 +27,19 @@ When a w1 master driver registers with the w1 subsystem, the following occurs: | |||
27 | 27 | ||
28 | When a device is found on the bus, w1 core checks if driver for it's family is | 28 | When a device is found on the bus, w1 core checks if driver for it's family is |
29 | loaded. If so, the family driver is attached to the slave. | 29 | loaded. If so, the family driver is attached to the slave. |
30 | If there is no driver for the family, a simple sysfs entry is created | 30 | If there is no driver for the family, default one is assigned, which allows to perform |
31 | for the slave device. | 31 | almost any kind of operations. Each logical operation is a transaction |
32 | in nature, which can contain several (two or one) low-level operations. | ||
33 | Let's see how one can read EEPROM context: | ||
34 | 1. one must write control buffer, i.e. buffer containing command byte | ||
35 | and two byte address. At this step bus is reset and appropriate device | ||
36 | is selected using either W1_SKIP_ROM or W1_MATCH_ROM command. | ||
37 | Then provided control buffer is being written to the wire. | ||
38 | 2. reading. This will issue reading eeprom response. | ||
39 | |||
40 | It is possible that between 1. and 2. w1 master thread will reset bus for searching | ||
41 | and slave device will be even removed, but in this case 0xff will | ||
42 | be read, since no device was selected. | ||
32 | 43 | ||
33 | 44 | ||
34 | W1 device families | 45 | W1 device families |
@@ -89,4 +100,5 @@ driver - (standard) symlink to the w1 driver | |||
89 | name - the device name, usually the same as the directory name | 100 | name - the device name, usually the same as the directory name |
90 | w1_slave - (optional) a binary file whose meaning depends on the | 101 | w1_slave - (optional) a binary file whose meaning depends on the |
91 | family driver | 102 | family driver |
92 | 103 | rw - (optional) created for slave devices which do not have | |
104 | appropriate family driver. Allows to read/write binary data. | ||
diff --git a/Documentation/w1/w1.netlink b/Documentation/w1/w1.netlink new file mode 100644 index 000000000000..3640c7c87d45 --- /dev/null +++ b/Documentation/w1/w1.netlink | |||
@@ -0,0 +1,98 @@ | |||
1 | Userspace communication protocol over connector [1]. | ||
2 | |||
3 | |||
4 | Message types. | ||
5 | ============= | ||
6 | |||
7 | There are three types of messages between w1 core and userspace: | ||
8 | 1. Events. They are generated each time new master or slave device found | ||
9 | either due to automatic or requested search. | ||
10 | 2. Userspace commands. Includes read/write and search/alarm search comamnds. | ||
11 | 3. Replies to userspace commands. | ||
12 | |||
13 | |||
14 | Protocol. | ||
15 | ======== | ||
16 | |||
17 | [struct cn_msg] - connector header. It's length field is equal to size of the attached data. | ||
18 | [struct w1_netlink_msg] - w1 netlink header. | ||
19 | __u8 type - message type. | ||
20 | W1_SLAVE_ADD/W1_SLAVE_REMOVE - slave add/remove events. | ||
21 | W1_MASTER_ADD/W1_MASTER_REMOVE - master add/remove events. | ||
22 | W1_MASTER_CMD - userspace command for bus master device (search/alarm search). | ||
23 | W1_SLAVE_CMD - userspace command for slave device (read/write/ search/alarm search | ||
24 | for bus master device where given slave device found). | ||
25 | __u8 res - reserved | ||
26 | __u16 len - size of attached to this header data. | ||
27 | union { | ||
28 | __u8 id; - slave unique device id | ||
29 | struct w1_mst { | ||
30 | __u32 id; - master's id. | ||
31 | __u32 res; - reserved | ||
32 | } mst; | ||
33 | } id; | ||
34 | |||
35 | [strucrt w1_netlink_cmd] - command for gived master or slave device. | ||
36 | __u8 cmd - command opcode. | ||
37 | W1_CMD_READ - read command. | ||
38 | W1_CMD_WRITE - write command. | ||
39 | W1_CMD_SEARCH - search command. | ||
40 | W1_CMD_ALARM_SEARCH - alarm search command. | ||
41 | __u8 res - reserved | ||
42 | __u16 len - length of data for this command. | ||
43 | For read command data must be allocated like for write command. | ||
44 | __u8 data[0] - data for this command. | ||
45 | |||
46 | |||
47 | Each connector message can include one or more w1_netlink_msg with zero of more attached w1_netlink_cmd messages. | ||
48 | |||
49 | For event messages there are no w1_netlink_cmd embedded structures, only connector header | ||
50 | and w1_netlink_msg strucutre with "len" field being zero and filled type (one of event types) | ||
51 | and id - either 8 bytes of slave unique id in host order, or master's id, which is assigned | ||
52 | to bus master device when it is added to w1 core. | ||
53 | |||
54 | Currently replies to userspace commands are only generated for read command request. | ||
55 | One reply is generated exactly for one w1_netlink_cmd read request. | ||
56 | Replies are not combined when sent - i.e. typical reply messages looks like the following: | ||
57 | [cn_msg][w1_netlink_msg][w1_netlink_cmd] | ||
58 | cn_msg.len = sizeof(struct w1_netlink_msg) + sizeof(struct w1_netlink_cmd) + cmd->len; | ||
59 | w1_netlink_msg.len = sizeof(struct w1_netlink_cmd) + cmd->len; | ||
60 | w1_netlink_cmd.len = cmd->len; | ||
61 | |||
62 | |||
63 | Operation steps in w1 core when new command is received. | ||
64 | ======================================================= | ||
65 | |||
66 | When new message (w1_netlink_msg) is received w1 core detects if it is master of slave request, | ||
67 | according to w1_netlink_msg.type field. | ||
68 | Then master or slave device is searched for. | ||
69 | When found, master device (requested or those one on where slave device is found) is locked. | ||
70 | If slave command is requested, then reset/select procedure is started to select given device. | ||
71 | |||
72 | Then all requested in w1_netlink_msg operations are performed one by one. | ||
73 | If command requires reply (like read command) it is sent on command completion. | ||
74 | |||
75 | When all commands (w1_netlink_cmd) are processed muster device is unlocked | ||
76 | and next w1_netlink_msg header processing started. | ||
77 | |||
78 | |||
79 | Connector [1] specific documentation. | ||
80 | ==================================== | ||
81 | |||
82 | Each connector message includes two u32 fields as "address". | ||
83 | w1 uses CN_W1_IDX and CN_W1_VAL defined in include/linux/connector.h header. | ||
84 | Each message also includes sequence and acknowledge numbers. | ||
85 | Sequence number for event messages is appropriate bus master sequence number increased with | ||
86 | each event message sent "through" this master. | ||
87 | Sequence number for userspace requests is set by userspace application. | ||
88 | Sequence number for reply is the same as was in request, and | ||
89 | acknowledge number is set to seq+1. | ||
90 | |||
91 | |||
92 | Additional documantion, source code examples. | ||
93 | ============================================ | ||
94 | |||
95 | 1. Documentation/connector | ||
96 | 2. http://tservice.net.ru/~s0mbre/archive/w1 | ||
97 | This archive includes userspace application w1d.c which | ||
98 | uses read/write/search commands for all master/slave devices found on the bus. | ||