diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DMA-API.txt | 79 | ||||
-rw-r--r-- | Documentation/DocBook/kernel-api.tmpl | 6 | ||||
-rw-r--r-- | Documentation/dontdiff | 3 | ||||
-rw-r--r-- | Documentation/filesystems/hfsplus.txt | 59 | ||||
-rw-r--r-- | Documentation/hpet.txt | 2 | ||||
-rw-r--r-- | Documentation/ja_JP/HOWTO | 66 | ||||
-rw-r--r-- | Documentation/ja_JP/stable_api_nonsense.txt | 20 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 138 | ||||
-rw-r--r-- | Documentation/keys.txt | 5 | ||||
-rw-r--r-- | Documentation/kobject.txt | 178 | ||||
-rw-r--r-- | Documentation/spi/spidev_test.c | 202 | ||||
-rw-r--r-- | Documentation/stable_api_nonsense.txt | 2 | ||||
-rw-r--r-- | Documentation/sysfs-rules.txt | 72 |
13 files changed, 511 insertions, 321 deletions
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index 805db4b2cba6..cc7a8c39fb6f 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
@@ -26,7 +26,7 @@ Part Ia - Using large dma-coherent buffers | |||
26 | 26 | ||
27 | void * | 27 | void * |
28 | dma_alloc_coherent(struct device *dev, size_t size, | 28 | dma_alloc_coherent(struct device *dev, size_t size, |
29 | dma_addr_t *dma_handle, int flag) | 29 | dma_addr_t *dma_handle, gfp_t flag) |
30 | void * | 30 | void * |
31 | pci_alloc_consistent(struct pci_dev *dev, size_t size, | 31 | pci_alloc_consistent(struct pci_dev *dev, size_t size, |
32 | dma_addr_t *dma_handle) | 32 | dma_addr_t *dma_handle) |
@@ -38,7 +38,7 @@ to make sure to flush the processor's write buffers before telling | |||
38 | devices to read that memory.) | 38 | devices to read that memory.) |
39 | 39 | ||
40 | This routine allocates a region of <size> bytes of consistent memory. | 40 | This routine allocates a region of <size> bytes of consistent memory. |
41 | it also returns a <dma_handle> which may be cast to an unsigned | 41 | It also returns a <dma_handle> which may be cast to an unsigned |
42 | integer the same width as the bus and used as the physical address | 42 | integer the same width as the bus and used as the physical address |
43 | base of the region. | 43 | base of the region. |
44 | 44 | ||
@@ -52,21 +52,21 @@ The simplest way to do that is to use the dma_pool calls (see below). | |||
52 | 52 | ||
53 | The flag parameter (dma_alloc_coherent only) allows the caller to | 53 | The flag parameter (dma_alloc_coherent only) allows the caller to |
54 | specify the GFP_ flags (see kmalloc) for the allocation (the | 54 | specify the GFP_ flags (see kmalloc) for the allocation (the |
55 | implementation may chose to ignore flags that affect the location of | 55 | implementation may choose to ignore flags that affect the location of |
56 | the returned memory, like GFP_DMA). For pci_alloc_consistent, you | 56 | the returned memory, like GFP_DMA). For pci_alloc_consistent, you |
57 | must assume GFP_ATOMIC behaviour. | 57 | must assume GFP_ATOMIC behaviour. |
58 | 58 | ||
59 | void | 59 | void |
60 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr | 60 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, |
61 | dma_addr_t dma_handle) | 61 | dma_addr_t dma_handle) |
62 | void | 62 | void |
63 | pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr | 63 | pci_free_consistent(struct pci_dev *dev, size_t size, void *cpu_addr, |
64 | dma_addr_t dma_handle) | 64 | dma_addr_t dma_handle) |
65 | 65 | ||
66 | Free the region of consistent memory you previously allocated. dev, | 66 | Free the region of consistent memory you previously allocated. dev, |
67 | size and dma_handle must all be the same as those passed into the | 67 | size and dma_handle must all be the same as those passed into the |
68 | consistent allocate. cpu_addr must be the virtual address returned by | 68 | consistent allocate. cpu_addr must be the virtual address returned by |
69 | the consistent allocate | 69 | the consistent allocate. |
70 | 70 | ||
71 | 71 | ||
72 | Part Ib - Using small dma-coherent buffers | 72 | Part Ib - Using small dma-coherent buffers |
@@ -77,9 +77,9 @@ To get this part of the dma_ API, you must #include <linux/dmapool.h> | |||
77 | Many drivers need lots of small dma-coherent memory regions for DMA | 77 | Many drivers need lots of small dma-coherent memory regions for DMA |
78 | descriptors or I/O buffers. Rather than allocating in units of a page | 78 | descriptors or I/O buffers. Rather than allocating in units of a page |
79 | or more using dma_alloc_coherent(), you can use DMA pools. These work | 79 | or more using dma_alloc_coherent(), you can use DMA pools. These work |
80 | much like a struct kmem_cache, except that they use the dma-coherent allocator | 80 | much like a struct kmem_cache, except that they use the dma-coherent allocator, |
81 | not __get_free_pages(). Also, they understand common hardware constraints | 81 | not __get_free_pages(). Also, they understand common hardware constraints |
82 | for alignment, like queue heads needing to be aligned on N byte boundaries. | 82 | for alignment, like queue heads needing to be aligned on N-byte boundaries. |
83 | 83 | ||
84 | 84 | ||
85 | struct dma_pool * | 85 | struct dma_pool * |
@@ -102,15 +102,15 @@ crossing restrictions, pass 0 for alloc; passing 4096 says memory allocated | |||
102 | from this pool must not cross 4KByte boundaries. | 102 | from this pool must not cross 4KByte boundaries. |
103 | 103 | ||
104 | 104 | ||
105 | void *dma_pool_alloc(struct dma_pool *pool, int gfp_flags, | 105 | void *dma_pool_alloc(struct dma_pool *pool, gfp_t gfp_flags, |
106 | dma_addr_t *dma_handle); | 106 | dma_addr_t *dma_handle); |
107 | 107 | ||
108 | void *pci_pool_alloc(struct pci_pool *pool, int gfp_flags, | 108 | void *pci_pool_alloc(struct pci_pool *pool, gfp_t gfp_flags, |
109 | dma_addr_t *dma_handle); | 109 | dma_addr_t *dma_handle); |
110 | 110 | ||
111 | This allocates memory from the pool; the returned memory will meet the size | 111 | This allocates memory from the pool; the returned memory will meet the size |
112 | and alignment requirements specified at creation time. Pass GFP_ATOMIC to | 112 | and alignment requirements specified at creation time. Pass GFP_ATOMIC to |
113 | prevent blocking, or if it's permitted (not in_interrupt, not holding SMP locks) | 113 | prevent blocking, or if it's permitted (not in_interrupt, not holding SMP locks), |
114 | pass GFP_KERNEL to allow blocking. Like dma_alloc_coherent(), this returns | 114 | pass GFP_KERNEL to allow blocking. Like dma_alloc_coherent(), this returns |
115 | two values: an address usable by the cpu, and the dma address usable by the | 115 | two values: an address usable by the cpu, and the dma address usable by the |
116 | pool's device. | 116 | pool's device. |
@@ -123,7 +123,7 @@ pool's device. | |||
123 | dma_addr_t addr); | 123 | dma_addr_t addr); |
124 | 124 | ||
125 | This puts memory back into the pool. The pool is what was passed to | 125 | This puts memory back into the pool. The pool is what was passed to |
126 | the pool allocation routine; the cpu and dma addresses are what | 126 | the pool allocation routine; the cpu (vaddr) and dma addresses are what |
127 | were returned when that routine allocated the memory being freed. | 127 | were returned when that routine allocated the memory being freed. |
128 | 128 | ||
129 | 129 | ||
@@ -209,18 +209,18 @@ Notes: Not all memory regions in a machine can be mapped by this | |||
209 | API. Further, regions that appear to be physically contiguous in | 209 | API. Further, regions that appear to be physically contiguous in |
210 | kernel virtual space may not be contiguous as physical memory. Since | 210 | kernel virtual space may not be contiguous as physical memory. Since |
211 | this API does not provide any scatter/gather capability, it will fail | 211 | this API does not provide any scatter/gather capability, it will fail |
212 | if the user tries to map a non physically contiguous piece of memory. | 212 | if the user tries to map a non-physically contiguous piece of memory. |
213 | For this reason, it is recommended that memory mapped by this API be | 213 | For this reason, it is recommended that memory mapped by this API be |
214 | obtained only from sources which guarantee to be physically contiguous | 214 | obtained only from sources which guarantee it to be physically contiguous |
215 | (like kmalloc). | 215 | (like kmalloc). |
216 | 216 | ||
217 | Further, the physical address of the memory must be within the | 217 | Further, the physical address of the memory must be within the |
218 | dma_mask of the device (the dma_mask represents a bit mask of the | 218 | dma_mask of the device (the dma_mask represents a bit mask of the |
219 | addressable region for the device. i.e. if the physical address of | 219 | addressable region for the device. I.e., if the physical address of |
220 | the memory anded with the dma_mask is still equal to the physical | 220 | the memory anded with the dma_mask is still equal to the physical |
221 | address, then the device can perform DMA to the memory). In order to | 221 | address, then the device can perform DMA to the memory). In order to |
222 | ensure that the memory allocated by kmalloc is within the dma_mask, | 222 | ensure that the memory allocated by kmalloc is within the dma_mask, |
223 | the driver may specify various platform dependent flags to restrict | 223 | the driver may specify various platform-dependent flags to restrict |
224 | the physical memory range of the allocation (e.g. on x86, GFP_DMA | 224 | the physical memory range of the allocation (e.g. on x86, GFP_DMA |
225 | guarantees to be within the first 16Mb of available physical memory, | 225 | guarantees to be within the first 16Mb of available physical memory, |
226 | as required by ISA devices). | 226 | as required by ISA devices). |
@@ -244,14 +244,14 @@ are guaranteed also to be cache line boundaries). | |||
244 | 244 | ||
245 | DMA_TO_DEVICE synchronisation must be done after the last modification | 245 | DMA_TO_DEVICE synchronisation must be done after the last modification |
246 | of the memory region by the software and before it is handed off to | 246 | of the memory region by the software and before it is handed off to |
247 | the driver. Once this primitive is used. Memory covered by this | 247 | the driver. Once this primitive is used, memory covered by this |
248 | primitive should be treated as read only by the device. If the device | 248 | primitive should be treated as read-only by the device. If the device |
249 | may write to it at any point, it should be DMA_BIDIRECTIONAL (see | 249 | may write to it at any point, it should be DMA_BIDIRECTIONAL (see |
250 | below). | 250 | below). |
251 | 251 | ||
252 | DMA_FROM_DEVICE synchronisation must be done before the driver | 252 | DMA_FROM_DEVICE synchronisation must be done before the driver |
253 | accesses data that may be changed by the device. This memory should | 253 | accesses data that may be changed by the device. This memory should |
254 | be treated as read only by the driver. If the driver needs to write | 254 | be treated as read-only by the driver. If the driver needs to write |
255 | to it at any point, it should be DMA_BIDIRECTIONAL (see below). | 255 | to it at any point, it should be DMA_BIDIRECTIONAL (see below). |
256 | 256 | ||
257 | DMA_BIDIRECTIONAL requires special handling: it means that the driver | 257 | DMA_BIDIRECTIONAL requires special handling: it means that the driver |
@@ -261,7 +261,7 @@ you must always sync bidirectional memory twice: once before the | |||
261 | memory is handed off to the device (to make sure all memory changes | 261 | memory is handed off to the device (to make sure all memory changes |
262 | are flushed from the processor) and once before the data may be | 262 | are flushed from the processor) and once before the data may be |
263 | accessed after being used by the device (to make sure any processor | 263 | accessed after being used by the device (to make sure any processor |
264 | cache lines are updated with data that the device may have changed. | 264 | cache lines are updated with data that the device may have changed). |
265 | 265 | ||
266 | void | 266 | void |
267 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | 267 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, |
@@ -302,8 +302,8 @@ pci_dma_mapping_error(dma_addr_t dma_addr) | |||
302 | 302 | ||
303 | In some circumstances dma_map_single and dma_map_page will fail to create | 303 | In some circumstances dma_map_single and dma_map_page will fail to create |
304 | a mapping. A driver can check for these errors by testing the returned | 304 | a mapping. A driver can check for these errors by testing the returned |
305 | dma address with dma_mapping_error(). A non zero return value means the mapping | 305 | dma address with dma_mapping_error(). A non-zero return value means the mapping |
306 | could not be created and the driver should take appropriate action (eg | 306 | could not be created and the driver should take appropriate action (e.g. |
307 | reduce current DMA mapping usage or delay and try again later). | 307 | reduce current DMA mapping usage or delay and try again later). |
308 | 308 | ||
309 | int | 309 | int |
@@ -315,7 +315,7 @@ reduce current DMA mapping usage or delay and try again later). | |||
315 | 315 | ||
316 | Maps a scatter gather list from the block layer. | 316 | Maps a scatter gather list from the block layer. |
317 | 317 | ||
318 | Returns: the number of physical segments mapped (this may be shorted | 318 | Returns: the number of physical segments mapped (this may be shorter |
319 | than <nents> passed in if the block layer determines that some | 319 | than <nents> passed in if the block layer determines that some |
320 | elements of the scatter/gather list are physically adjacent and thus | 320 | elements of the scatter/gather list are physically adjacent and thus |
321 | may be mapped with a single entry). | 321 | may be mapped with a single entry). |
@@ -357,7 +357,7 @@ accessed sg->address and sg->length as shown above. | |||
357 | pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, | 357 | pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, |
358 | int nents, int direction) | 358 | int nents, int direction) |
359 | 359 | ||
360 | unmap the previously mapped scatter/gather list. All the parameters | 360 | Unmap the previously mapped scatter/gather list. All the parameters |
361 | must be the same as those and passed in to the scatter/gather mapping | 361 | must be the same as those and passed in to the scatter/gather mapping |
362 | API. | 362 | API. |
363 | 363 | ||
@@ -377,7 +377,7 @@ void | |||
377 | pci_dma_sync_sg(struct pci_dev *hwdev, struct scatterlist *sg, | 377 | pci_dma_sync_sg(struct pci_dev *hwdev, struct scatterlist *sg, |
378 | int nelems, int direction) | 378 | int nelems, int direction) |
379 | 379 | ||
380 | synchronise a single contiguous or scatter/gather mapping. All the | 380 | Synchronise a single contiguous or scatter/gather mapping. All the |
381 | parameters must be the same as those passed into the single mapping | 381 | parameters must be the same as those passed into the single mapping |
382 | API. | 382 | API. |
383 | 383 | ||
@@ -406,7 +406,7 @@ API at all. | |||
406 | 406 | ||
407 | void * | 407 | void * |
408 | dma_alloc_noncoherent(struct device *dev, size_t size, | 408 | dma_alloc_noncoherent(struct device *dev, size_t size, |
409 | dma_addr_t *dma_handle, int flag) | 409 | dma_addr_t *dma_handle, gfp_t flag) |
410 | 410 | ||
411 | Identical to dma_alloc_coherent() except that the platform will | 411 | Identical to dma_alloc_coherent() except that the platform will |
412 | choose to return either consistent or non-consistent memory as it sees | 412 | choose to return either consistent or non-consistent memory as it sees |
@@ -426,34 +426,34 @@ void | |||
426 | dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, | 426 | dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, |
427 | dma_addr_t dma_handle) | 427 | dma_addr_t dma_handle) |
428 | 428 | ||
429 | free memory allocated by the nonconsistent API. All parameters must | 429 | Free memory allocated by the nonconsistent API. All parameters must |
430 | be identical to those passed in (and returned by | 430 | be identical to those passed in (and returned by |
431 | dma_alloc_noncoherent()). | 431 | dma_alloc_noncoherent()). |
432 | 432 | ||
433 | int | 433 | int |
434 | dma_is_consistent(struct device *dev, dma_addr_t dma_handle) | 434 | dma_is_consistent(struct device *dev, dma_addr_t dma_handle) |
435 | 435 | ||
436 | returns true if the device dev is performing consistent DMA on the memory | 436 | Returns true if the device dev is performing consistent DMA on the memory |
437 | area pointed to by the dma_handle. | 437 | area pointed to by the dma_handle. |
438 | 438 | ||
439 | int | 439 | int |
440 | dma_get_cache_alignment(void) | 440 | dma_get_cache_alignment(void) |
441 | 441 | ||
442 | returns the processor cache alignment. This is the absolute minimum | 442 | Returns the processor cache alignment. This is the absolute minimum |
443 | alignment *and* width that you must observe when either mapping | 443 | alignment *and* width that you must observe when either mapping |
444 | memory or doing partial flushes. | 444 | memory or doing partial flushes. |
445 | 445 | ||
446 | Notes: This API may return a number *larger* than the actual cache | 446 | Notes: This API may return a number *larger* than the actual cache |
447 | line, but it will guarantee that one or more cache lines fit exactly | 447 | line, but it will guarantee that one or more cache lines fit exactly |
448 | into the width returned by this call. It will also always be a power | 448 | into the width returned by this call. It will also always be a power |
449 | of two for easy alignment | 449 | of two for easy alignment. |
450 | 450 | ||
451 | void | 451 | void |
452 | dma_sync_single_range(struct device *dev, dma_addr_t dma_handle, | 452 | dma_sync_single_range(struct device *dev, dma_addr_t dma_handle, |
453 | unsigned long offset, size_t size, | 453 | unsigned long offset, size_t size, |
454 | enum dma_data_direction direction) | 454 | enum dma_data_direction direction) |
455 | 455 | ||
456 | does a partial sync. starting at offset and continuing for size. You | 456 | Does a partial sync, starting at offset and continuing for size. You |
457 | must be careful to observe the cache alignment and width when doing | 457 | must be careful to observe the cache alignment and width when doing |
458 | anything like this. You must also be extra careful about accessing | 458 | anything like this. You must also be extra careful about accessing |
459 | memory you intend to sync partially. | 459 | memory you intend to sync partially. |
@@ -472,21 +472,20 @@ dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr, | |||
472 | dma_addr_t device_addr, size_t size, int | 472 | dma_addr_t device_addr, size_t size, int |
473 | flags) | 473 | flags) |
474 | 474 | ||
475 | |||
476 | Declare region of memory to be handed out by dma_alloc_coherent when | 475 | Declare region of memory to be handed out by dma_alloc_coherent when |
477 | it's asked for coherent memory for this device. | 476 | it's asked for coherent memory for this device. |
478 | 477 | ||
479 | bus_addr is the physical address to which the memory is currently | 478 | bus_addr is the physical address to which the memory is currently |
480 | assigned in the bus responding region (this will be used by the | 479 | assigned in the bus responding region (this will be used by the |
481 | platform to perform the mapping) | 480 | platform to perform the mapping). |
482 | 481 | ||
483 | device_addr is the physical address the device needs to be programmed | 482 | device_addr is the physical address the device needs to be programmed |
484 | with actually to address this memory (this will be handed out as the | 483 | with actually to address this memory (this will be handed out as the |
485 | dma_addr_t in dma_alloc_coherent()) | 484 | dma_addr_t in dma_alloc_coherent()). |
486 | 485 | ||
487 | size is the size of the area (must be multiples of PAGE_SIZE). | 486 | size is the size of the area (must be multiples of PAGE_SIZE). |
488 | 487 | ||
489 | flags can be or'd together and are | 488 | flags can be or'd together and are: |
490 | 489 | ||
491 | DMA_MEMORY_MAP - request that the memory returned from | 490 | DMA_MEMORY_MAP - request that the memory returned from |
492 | dma_alloc_coherent() be directly writable. | 491 | dma_alloc_coherent() be directly writable. |
@@ -494,7 +493,7 @@ dma_alloc_coherent() be directly writable. | |||
494 | DMA_MEMORY_IO - request that the memory returned from | 493 | DMA_MEMORY_IO - request that the memory returned from |
495 | dma_alloc_coherent() be addressable using read/write/memcpy_toio etc. | 494 | dma_alloc_coherent() be addressable using read/write/memcpy_toio etc. |
496 | 495 | ||
497 | One or both of these flags must be present | 496 | One or both of these flags must be present. |
498 | 497 | ||
499 | DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by | 498 | DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by |
500 | dma_alloc_coherent of any child devices of this one (for memory residing | 499 | dma_alloc_coherent of any child devices of this one (for memory residing |
@@ -528,7 +527,7 @@ dma_release_declared_memory(struct device *dev) | |||
528 | Remove the memory region previously declared from the system. This | 527 | Remove the memory region previously declared from the system. This |
529 | API performs *no* in-use checking for this region and will return | 528 | API performs *no* in-use checking for this region and will return |
530 | unconditionally having removed all the required structures. It is the | 529 | unconditionally having removed all the required structures. It is the |
531 | drivers job to ensure that no parts of this memory region are | 530 | driver's job to ensure that no parts of this memory region are |
532 | currently in use. | 531 | currently in use. |
533 | 532 | ||
534 | void * | 533 | void * |
@@ -538,12 +537,10 @@ dma_mark_declared_memory_occupied(struct device *dev, | |||
538 | This is used to occupy specific regions of the declared space | 537 | This is used to occupy specific regions of the declared space |
539 | (dma_alloc_coherent() will hand out the first free region it finds). | 538 | (dma_alloc_coherent() will hand out the first free region it finds). |
540 | 539 | ||
541 | device_addr is the *device* address of the region requested | 540 | device_addr is the *device* address of the region requested. |
542 | 541 | ||
543 | size is the size (and should be a page sized multiple). | 542 | size is the size (and should be a page-sized multiple). |
544 | 543 | ||
545 | The return value will be either a pointer to the processor virtual | 544 | The return value will be either a pointer to the processor virtual |
546 | address of the memory, or an error (via PTR_ERR()) if any part of the | 545 | address of the memory, or an error (via PTR_ERR()) if any part of the |
547 | region is occupied. | 546 | region is occupied. |
548 | |||
549 | |||
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index ec7c498b69fc..b886f52a9aac 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl | |||
@@ -380,7 +380,6 @@ X!Edrivers/base/interface.c | |||
380 | !Edrivers/base/bus.c | 380 | !Edrivers/base/bus.c |
381 | </sect1> | 381 | </sect1> |
382 | <sect1><title>Device Drivers Power Management</title> | 382 | <sect1><title>Device Drivers Power Management</title> |
383 | !Edrivers/base/power/main.c | ||
384 | !Edrivers/base/power/resume.c | 383 | !Edrivers/base/power/resume.c |
385 | !Edrivers/base/power/suspend.c | 384 | !Edrivers/base/power/suspend.c |
386 | </sect1> | 385 | </sect1> |
@@ -398,12 +397,12 @@ X!Edrivers/acpi/pci_bind.c | |||
398 | --> | 397 | --> |
399 | </sect1> | 398 | </sect1> |
400 | <sect1><title>Device drivers PnP support</title> | 399 | <sect1><title>Device drivers PnP support</title> |
401 | !Edrivers/pnp/core.c | 400 | !Idrivers/pnp/core.c |
402 | <!-- No correct structured comments | 401 | <!-- No correct structured comments |
403 | X!Edrivers/pnp/system.c | 402 | X!Edrivers/pnp/system.c |
404 | --> | 403 | --> |
405 | !Edrivers/pnp/card.c | 404 | !Edrivers/pnp/card.c |
406 | !Edrivers/pnp/driver.c | 405 | !Idrivers/pnp/driver.c |
407 | !Edrivers/pnp/manager.c | 406 | !Edrivers/pnp/manager.c |
408 | !Edrivers/pnp/support.c | 407 | !Edrivers/pnp/support.c |
409 | </sect1> | 408 | </sect1> |
@@ -709,7 +708,6 @@ X!Idrivers/video/console/fonts.c | |||
709 | kernel, without continually transferring them between the kernel | 708 | kernel, without continually transferring them between the kernel |
710 | and user space. | 709 | and user space. |
711 | </para> | 710 | </para> |
712 | !Iinclude/linux/splice.h | ||
713 | !Ffs/splice.c | 711 | !Ffs/splice.c |
714 | </chapter> | 712 | </chapter> |
715 | 713 | ||
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index 595a5ea4c690..7b9551fc6fe3 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
@@ -18,6 +18,7 @@ | |||
18 | *.moc | 18 | *.moc |
19 | *.mod.c | 19 | *.mod.c |
20 | *.o | 20 | *.o |
21 | *.o.* | ||
21 | *.orig | 22 | *.orig |
22 | *.out | 23 | *.out |
23 | 24 | ||
@@ -163,6 +164,8 @@ raid6tables.c | |||
163 | relocs | 164 | relocs |
164 | series | 165 | series |
165 | setup | 166 | setup |
167 | setup.bin | ||
168 | setup.elf | ||
166 | sim710_d.h* | 169 | sim710_d.h* |
167 | sImage | 170 | sImage |
168 | sm_tbl* | 171 | sm_tbl* |
diff --git a/Documentation/filesystems/hfsplus.txt b/Documentation/filesystems/hfsplus.txt new file mode 100644 index 000000000000..af1628a1061c --- /dev/null +++ b/Documentation/filesystems/hfsplus.txt | |||
@@ -0,0 +1,59 @@ | |||
1 | |||
2 | Macintosh HFSPlus Filesystem for Linux | ||
3 | ====================================== | ||
4 | |||
5 | HFSPlus is a filesystem first introduced in MacOS 8.1. | ||
6 | HFSPlus has several extensions to HFS, including 32-bit allocation | ||
7 | blocks, 255-character unicode filenames, and file sizes of 2^63 bytes. | ||
8 | |||
9 | |||
10 | Mount options | ||
11 | ============= | ||
12 | |||
13 | When mounting an HFSPlus filesystem, the following options are accepted: | ||
14 | |||
15 | creator=cccc, type=cccc | ||
16 | Specifies the creator/type values as shown by the MacOS finder | ||
17 | used for creating new files. Default values: '????'. | ||
18 | |||
19 | uid=n, gid=n | ||
20 | Specifies the user/group that owns all files on the filesystem | ||
21 | that have uninitialized permissions structures. | ||
22 | Default: user/group id of the mounting process. | ||
23 | |||
24 | umask=n | ||
25 | Specifies the umask (in octal) used for files and directories | ||
26 | that have uninitialized permissions structures. | ||
27 | Default: umask of the mounting process. | ||
28 | |||
29 | session=n | ||
30 | Select the CDROM session to mount as HFSPlus filesystem. Defaults to | ||
31 | leaving that decision to the CDROM driver. This option will fail | ||
32 | with anything but a CDROM as underlying devices. | ||
33 | |||
34 | part=n | ||
35 | Select partition number n from the devices. This option only makes | ||
36 | sense for CDROMs because they can't be partitioned under Linux. | ||
37 | For disk devices the generic partition parsing code does this | ||
38 | for us. Defaults to not parsing the partition table at all. | ||
39 | |||
40 | decompose | ||
41 | Decompose file name characters. | ||
42 | |||
43 | nodecompose | ||
44 | Do not decompose file name characters. | ||
45 | |||
46 | force | ||
47 | Used to force write access to volumes that are marked as journalled | ||
48 | or locked. Use at your own risk. | ||
49 | |||
50 | nls=cccc | ||
51 | Encoding to use when presenting file names. | ||
52 | |||
53 | |||
54 | References | ||
55 | ========== | ||
56 | |||
57 | kernel source: <file:fs/hfsplus> | ||
58 | |||
59 | Apple Technote 1150 http://developer.apple.com/technotes/tn/tn1150.html | ||
diff --git a/Documentation/hpet.txt b/Documentation/hpet.txt index b7a3dc38dd52..6ad52d9dad6c 100644 --- a/Documentation/hpet.txt +++ b/Documentation/hpet.txt | |||
@@ -5,7 +5,7 @@ for the 8254 and Real Time Clock (RTC) periodic timer functionality. | |||
5 | Each HPET can have up to 32 timers. It is possible to configure the | 5 | Each HPET can have up to 32 timers. It is possible to configure the |
6 | first two timers as legacy replacements for 8254 and RTC periodic timers. | 6 | first two timers as legacy replacements for 8254 and RTC periodic timers. |
7 | A specification done by Intel and Microsoft can be found at | 7 | A specification done by Intel and Microsoft can be found at |
8 | <http://www.intel.com/hardwaredesign/hpetspec.htm>. | 8 | <http://www.intel.com/technology/architecture/hpetspec.htm>. |
9 | 9 | ||
10 | The driver supports detection of HPET driver allocation and initialization | 10 | The driver supports detection of HPET driver allocation and initialization |
11 | of the HPET before the driver module_init routine is called. This enables | 11 | of the HPET before the driver module_init routine is called. This enables |
diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO index b2446a090870..9f08dab1e75b 100644 --- a/Documentation/ja_JP/HOWTO +++ b/Documentation/ja_JP/HOWTO | |||
@@ -1,23 +1,24 @@ | |||
1 | NOTE: | 1 | NOTE: |
2 | This is Japanese translated version of "Documentation/HOWTO". | 2 | This is a version of Documentation/HOWTO translated into Japanese. |
3 | This one is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> | 3 | This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> |
4 | and JF Project team <www.linux.or.jp/JF>. | 4 | and the JF Project team <www.linux.or.jp/JF>. |
5 | If you find difference with original file or problem in translation, | 5 | If you find any difference between this document and the original file |
6 | please contact maintainer of this file or JF project. | 6 | or a problem with the translation, |
7 | 7 | please contact the maintainer of this file or JF project. | |
8 | Please also note that purpose of this file is easier to read for non | 8 | |
9 | English natives and not to be intended to fork. So, if you have any | 9 | Please also note that the purpose of this file is to be easier to read |
10 | comments or updates of this file, please try to update Original(English) | 10 | for non English (read: Japanese) speakers and is not intended as a |
11 | file at first. | 11 | fork. So if you have any comments or updates for this file, please try |
12 | 12 | to update the original English file first. | |
13 | Last Updated: 2007/06/04 | 13 | |
14 | Last Updated: 2007/07/18 | ||
14 | ================================== | 15 | ================================== |
15 | ã“ã‚Œã¯ã€ | 16 | ã“ã‚Œã¯ã€ |
16 | linux-2.6.21/Documentation/HOWTO | 17 | linux-2.6.22/Documentation/HOWTO |
17 | ã®å’Œè¨³ã§ã™ã€‚ | 18 | ã®å’Œè¨³ã§ã™ã€‚ |
18 | 19 | ||
19 | 翻訳団体: JF プãƒã‚¸ã‚§ã‚¯ãƒˆ < http://www.linux.or.jp/JF/ > | 20 | 翻訳団体: JF プãƒã‚¸ã‚§ã‚¯ãƒˆ < http://www.linux.or.jp/JF/ > |
20 | 翻訳日: 2007/06/04 | 21 | 翻訳日: 2007/07/16 |
21 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> | 22 | 翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> |
22 | æ ¡æ£è€…: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com> | 23 | æ ¡æ£è€…: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com> |
23 | å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> | 24 | å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> |
@@ -52,6 +53,7 @@ Linux カーãƒãƒ«é–‹ç™ºã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨å…±ã«æ´»å‹•ã™ã‚‹ã‚„り方をå¦ã | |||
52 | ã¾ãŸã€ã“ã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒãªãœä»Šã†ã¾ãã¾ã‚ã£ã¦ã„ã‚‹ã®ã‹ã¨ã„ã†ç†ç”±ã®ä¸€éƒ¨ã‚‚ | 53 | ã¾ãŸã€ã“ã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒãªãœä»Šã†ã¾ãã¾ã‚ã£ã¦ã„ã‚‹ã®ã‹ã¨ã„ã†ç†ç”±ã®ä¸€éƒ¨ã‚‚ |
53 | 説明ã—よã†ã¨è©¦ã¿ã¦ã„ã¾ã™ã€‚ | 54 | 説明ã—よã†ã¨è©¦ã¿ã¦ã„ã¾ã™ã€‚ |
54 | 55 | ||
56 | |||
55 | カーãƒãƒ«ã¯ å°‘é‡ã®ã‚¢ãƒ¼ã‚テクãƒãƒ£ä¾å˜éƒ¨åˆ†ãŒã‚¢ã‚»ãƒ³ãƒ–リ言語ã§æ›¸ã‹ã‚Œã¦ã„ã‚‹ | 57 | カーãƒãƒ«ã¯ å°‘é‡ã®ã‚¢ãƒ¼ã‚テクãƒãƒ£ä¾å˜éƒ¨åˆ†ãŒã‚¢ã‚»ãƒ³ãƒ–リ言語ã§æ›¸ã‹ã‚Œã¦ã„ã‚‹ |
56 | 以外ã¯å¤§éƒ¨åˆ†ã¯ C 言語ã§æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚C言語をよãç†è§£ã—ã¦ã„ã‚‹ã“ã¨ã¯ã‚«ãƒ¼ | 58 | 以外ã¯å¤§éƒ¨åˆ†ã¯ C 言語ã§æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚C言語をよãç†è§£ã—ã¦ã„ã‚‹ã“ã¨ã¯ã‚«ãƒ¼ |
57 | ãƒãƒ«é–‹ç™ºè€…ã«ã¯å¿…è¦ã§ã™ã€‚アーã‚テクãƒãƒ£å‘ã‘ã®ä½Žãƒ¬ãƒ™ãƒ«éƒ¨åˆ†ã®é–‹ç™ºã‚’ã™ã‚‹ã® | 59 | ãƒãƒ«é–‹ç™ºè€…ã«ã¯å¿…è¦ã§ã™ã€‚アーã‚テクãƒãƒ£å‘ã‘ã®ä½Žãƒ¬ãƒ™ãƒ«éƒ¨åˆ†ã®é–‹ç™ºã‚’ã™ã‚‹ã® |
@@ -141,6 +143,7 @@ Linux カーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ„リーã¯å¹…広ã„範囲ã®ãƒ‰ã‚ュメントをå | |||
141 | ã“れらã®ãƒ«ãƒ¼ãƒ«ã«å¾“ãˆã°ã†ã¾ãã„ãã“ã¨ã‚’ä¿è¨¼ã™ã‚‹ã“ã¨ã§ã¯ã‚ã‚Šã¾ã›ã‚“ | 143 | ã“れらã®ãƒ«ãƒ¼ãƒ«ã«å¾“ãˆã°ã†ã¾ãã„ãã“ã¨ã‚’ä¿è¨¼ã™ã‚‹ã“ã¨ã§ã¯ã‚ã‚Šã¾ã›ã‚“ |
142 | ㌠(ã™ã¹ã¦ã®ãƒ‘ッãƒã¯å†…容ã¨ã‚¹ã‚¿ã‚¤ãƒ«ã«ã¤ã„ã¦ç²¾æŸ»ã‚’å—ã‘ã‚‹ã®ã§)〠| 144 | ㌠(ã™ã¹ã¦ã®ãƒ‘ッãƒã¯å†…容ã¨ã‚¹ã‚¿ã‚¤ãƒ«ã«ã¤ã„ã¦ç²¾æŸ»ã‚’å—ã‘ã‚‹ã®ã§)〠|
143 | ルールã«å¾“ã‚ãªã‘ã‚Œã°é–“é•ã„ãªãã†ã¾ãã„ã‹ãªã„ã§ã—ょã†ã€‚ | 145 | ルールã«å¾“ã‚ãªã‘ã‚Œã°é–“é•ã„ãªãã†ã¾ãã„ã‹ãªã„ã§ã—ょã†ã€‚ |
146 | |||
144 | ã“ã®ä»–ã«ãƒ‘ッãƒã‚’作る方法ã«ã¤ã„ã¦ã®ã‚ˆãã§ããŸè¨˜è¿°ã¯- | 147 | ã“ã®ä»–ã«ãƒ‘ッãƒã‚’作る方法ã«ã¤ã„ã¦ã®ã‚ˆãã§ããŸè¨˜è¿°ã¯- |
145 | 148 | ||
146 | "The Perfect Patch" | 149 | "The Perfect Patch" |
@@ -360,44 +363,42 @@ linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ | |||
360 | 363 | ||
361 | git ツリー- | 364 | git ツリー- |
362 | - Kbuild ã®é–‹ç™ºãƒ„リーã€Sam Ravnborg <sam@ravnborg.org> | 365 | - Kbuild ã®é–‹ç™ºãƒ„リーã€Sam Ravnborg <sam@ravnborg.org> |
363 | kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git | 366 | git.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git |
364 | 367 | ||
365 | - ACPI ã®é–‹ç™ºãƒ„リー〠Len Brown <len.brown@intel.com> | 368 | - ACPI ã®é–‹ç™ºãƒ„リー〠Len Brown <len.brown@intel.com> |
366 | kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git | 369 | git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git |
367 | 370 | ||
368 | - Block ã®é–‹ç™ºãƒ„リーã€Jens Axboe <axboe@suse.de> | 371 | - Block ã®é–‹ç™ºãƒ„リーã€Jens Axboe <axboe@suse.de> |
369 | kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git | 372 | git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git |
370 | 373 | ||
371 | - DRM ã®é–‹ç™ºãƒ„リーã€Dave Airlie <airlied@linux.ie> | 374 | - DRM ã®é–‹ç™ºãƒ„リーã€Dave Airlie <airlied@linux.ie> |
372 | kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git | 375 | git.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git |
373 | 376 | ||
374 | - ia64 ã®é–‹ç™ºãƒ„リーã€Tony Luck <tony.luck@intel.com> | 377 | - ia64 ã®é–‹ç™ºãƒ„リーã€Tony Luck <tony.luck@intel.com> |
375 | kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git | 378 | git.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git |
376 | |||
377 | - ieee1394 ã®é–‹ç™ºãƒ„リーã€Jody McIntyre <scjody@modernduck.com> | ||
378 | kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394.git | ||
379 | 379 | ||
380 | - infiniband, Roland Dreier <rolandd@cisco.com> | 380 | - infiniband, Roland Dreier <rolandd@cisco.com> |
381 | kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git | 381 | git.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git |
382 | 382 | ||
383 | - libata, Jeff Garzik <jgarzik@pobox.com> | 383 | - libata, Jeff Garzik <jgarzik@pobox.com> |
384 | kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git | 384 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git |
385 | 385 | ||
386 | - ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ‰ãƒ©ã‚¤ãƒ, Jeff Garzik <jgarzik@pobox.com> | 386 | - ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ‰ãƒ©ã‚¤ãƒ, Jeff Garzik <jgarzik@pobox.com> |
387 | kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git | 387 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git |
388 | 388 | ||
389 | - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net> | 389 | - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net> |
390 | kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git | 390 | git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git |
391 | 391 | ||
392 | - SCSI, James Bottomley <James.Bottomley@SteelEye.com> | 392 | - SCSI, James Bottomley <James.Bottomley@SteelEye.com> |
393 | kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git | 393 | git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git |
394 | |||
395 | ãã®ä»–ã® git カーãƒãƒ«ãƒ„リー㯠http://kernel.org/git ã«ä¸€è¦§è¡¨ãŒã‚ã‚Šã¾ | ||
396 | ã™ã€‚ | ||
397 | 394 | ||
398 | quilt ツリー- | 395 | quilt ツリー- |
399 | - USB, PCI ドライãƒã‚³ã‚¢ã¨ I2C, Greg Kroah-Hartman <gregkh@suse.de> | 396 | - USB, PCI ドライãƒã‚³ã‚¢ã¨ I2C, Greg Kroah-Hartman <gregkh@suse.de> |
400 | kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ | 397 | kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ |
398 | - x86-64 㨠i386 ã®ä»²é–“ Andi Kleen <ak@suse.de> | ||
399 | |||
400 | ãã®ä»–ã®ã‚«ãƒ¼ãƒãƒ«ãƒ„リー㯠http://git.kernel.org/ 㨠MAINTAINERS ファ | ||
401 | イルã«ä¸€è¦§è¡¨ãŒã‚ã‚Šã¾ã™ã€‚ | ||
401 | 402 | ||
402 | ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆ | 403 | ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆ |
403 | ------------- | 404 | ------------- |
@@ -508,6 +509,7 @@ MAINTAINERS ファイルã«ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ã®ã§å‚ç…§ã—ã¦ãã ã•ã | |||
508 | ã›ã‚“*。å˜ã«è‡ªåˆ†ã®ãƒ‘ッãƒã«å¯¾ã—ã¦æŒ‡æ‘˜ã•ã‚ŒãŸå•é¡Œã‚’å…¨ã¦ä¿®æ£ã—ã¦å†é€ã™ã‚Œã° | 509 | ã›ã‚“*。å˜ã«è‡ªåˆ†ã®ãƒ‘ッãƒã«å¯¾ã—ã¦æŒ‡æ‘˜ã•ã‚ŒãŸå•é¡Œã‚’å…¨ã¦ä¿®æ£ã—ã¦å†é€ã™ã‚Œã° |
509 | ã„ã„ã®ã§ã™ã€‚ | 510 | ã„ã„ã®ã§ã™ã€‚ |
510 | 511 | ||
512 | |||
511 | カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¼æ¥çµ„ç¹”ã®ã¡ãŒã„ | 513 | カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¨ä¼æ¥çµ„ç¹”ã®ã¡ãŒã„ |
512 | ----------------------------------------------------------------- | 514 | ----------------------------------------------------------------- |
513 | 515 | ||
@@ -577,6 +579,7 @@ Linux カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å– | |||
577 | ã‹ã—ã€500è¡Œã®ãƒ‘ッãƒã¯ã€æ£ã—ã„ã“ã¨ã‚’レビューã™ã‚‹ã®ã«æ•°æ™‚é–“ã‹ã‹ã‚‹ã‹ã‚‚ | 579 | ã‹ã—ã€500è¡Œã®ãƒ‘ッãƒã¯ã€æ£ã—ã„ã“ã¨ã‚’レビューã™ã‚‹ã®ã«æ•°æ™‚é–“ã‹ã‹ã‚‹ã‹ã‚‚ |
578 | ã—ã‚Œã¾ã›ã‚“(時間ã¯ãƒ‘ッãƒã®ã‚µã‚¤ã‚ºãªã©ã«ã‚ˆã‚ŠæŒ‡æ•°é–¢æ•°ã«æ¯”例ã—ã¦ã‹ã‹ã‚Šã¾ | 580 | ã—ã‚Œã¾ã›ã‚“(時間ã¯ãƒ‘ッãƒã®ã‚µã‚¤ã‚ºãªã©ã«ã‚ˆã‚ŠæŒ‡æ•°é–¢æ•°ã«æ¯”例ã—ã¦ã‹ã‹ã‚Šã¾ |
579 | ã™) | 581 | ã™) |
582 | |||
580 | å°ã•ã„パッãƒã¯ä½•ã‹ã‚ã£ãŸã¨ãã«ãƒ‡ãƒãƒƒã‚°ã‚‚ã¨ã¦ã‚‚ç°¡å˜ã«ãªã‚Šã¾ã™ã€‚パッ | 583 | å°ã•ã„パッãƒã¯ä½•ã‹ã‚ã£ãŸã¨ãã«ãƒ‡ãƒãƒƒã‚°ã‚‚ã¨ã¦ã‚‚ç°¡å˜ã«ãªã‚Šã¾ã™ã€‚パッ |
581 | ãƒã‚’1個1個å–り除ãã®ã¯ã€ã¨ã¦ã‚‚大ããªãƒ‘ッãƒã‚’当ã¦ãŸå¾Œã«(ã‹ã¤ã€ä½•ã‹ãŠ | 584 | ãƒã‚’1個1個å–り除ãã®ã¯ã€ã¨ã¦ã‚‚大ããªãƒ‘ッãƒã‚’当ã¦ãŸå¾Œã«(ã‹ã¤ã€ä½•ã‹ãŠ |
582 | ã‹ã—ããªã£ãŸå¾Œã§)解剖ã™ã‚‹ã®ã«æ¯”ã¹ã‚Œã°ã¨ã¦ã‚‚ç°¡å˜ã§ã™ã€‚ | 585 | ã‹ã—ããªã£ãŸå¾Œã§)解剖ã™ã‚‹ã®ã«æ¯”ã¹ã‚Œã°ã¨ã¦ã‚‚ç°¡å˜ã§ã™ã€‚ |
@@ -591,6 +594,7 @@ Linux カーãƒãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã¯ã€ä¸€åº¦ã«å¤§é‡ã®ã‚³ãƒ¼ãƒ‰ã®å¡Šã‚’å– | |||
591 | ã†ã€‚先生ã¯ç°¡æ½”ãªæœ€é«˜ã®è§£ã‚’ã¿ãŸã„ã®ã§ã™ã€‚良ã„生徒ã¯ã“れを知ã£ã¦ | 594 | ã†ã€‚先生ã¯ç°¡æ½”ãªæœ€é«˜ã®è§£ã‚’ã¿ãŸã„ã®ã§ã™ã€‚良ã„生徒ã¯ã“れを知ã£ã¦ |
592 | ãŠã‚Šã€ãã—ã¦æœ€çµ‚解ã®å‰ã®ä¸é–“作æ¥ã‚’æ出ã™ã‚‹ã“ã¨ã¯æ±ºã—ã¦ãªã„ã®ã§ | 595 | ãŠã‚Šã€ãã—ã¦æœ€çµ‚解ã®å‰ã®ä¸é–“作æ¥ã‚’æ出ã™ã‚‹ã“ã¨ã¯æ±ºã—ã¦ãªã„ã®ã§ |
593 | ã™" | 596 | ã™" |
597 | |||
594 | カーãƒãƒ«é–‹ç™ºã§ã‚‚ã“ã‚Œã¯åŒã˜ã§ã™ã€‚メンテナーé”ã¨ãƒ¬ãƒ“ューアé”ã¯ã€ | 598 | カーãƒãƒ«é–‹ç™ºã§ã‚‚ã“ã‚Œã¯åŒã˜ã§ã™ã€‚メンテナーé”ã¨ãƒ¬ãƒ“ューアé”ã¯ã€ |
595 | å•é¡Œã‚’解決ã™ã‚‹è§£ã®èƒŒå¾Œã«ãªã‚‹æ€è€ƒãƒ—ãƒã‚»ã‚¹ã‚’ã¿ãŸã„ã¨ã¯æ€ã„ã¾ã›ã‚“。 | 599 | å•é¡Œã‚’解決ã™ã‚‹è§£ã®èƒŒå¾Œã«ãªã‚‹æ€è€ƒãƒ—ãƒã‚»ã‚¹ã‚’ã¿ãŸã„ã¨ã¯æ€ã„ã¾ã›ã‚“。 |
596 | 彼らã¯å˜ç´”ã§ã‚ã–ã‚„ã‹ãªè§£æ±ºæ–¹æ³•ã‚’ã¿ãŸã„ã®ã§ã™ã€‚ | 600 | 彼らã¯å˜ç´”ã§ã‚ã–ã‚„ã‹ãªè§£æ±ºæ–¹æ³•ã‚’ã¿ãŸã„ã®ã§ã™ã€‚ |
diff --git a/Documentation/ja_JP/stable_api_nonsense.txt b/Documentation/ja_JP/stable_api_nonsense.txt index b3f2b27f0881..7653b5cbfed2 100644 --- a/Documentation/ja_JP/stable_api_nonsense.txt +++ b/Documentation/ja_JP/stable_api_nonsense.txt | |||
@@ -1,17 +1,17 @@ | |||
1 | NOTE: | 1 | NOTE: |
2 | This is a Japanese translated version of | 2 | This is a version of Documentation/stable_api_nonsense.txt into Japanese. |
3 | "Documentation/stable_api_nonsense.txt". | 3 | This document is maintained by IKEDA, Munehiro <m-ikeda@ds.jp.nec.com> |
4 | This one is maintained by | 4 | and the JF Project team <http://www.linux.or.jp/JF/>. |
5 | IKEDA, Munehiro <m-ikeda@ds.jp.nec.com> | 5 | If you find any difference between this document and the original file |
6 | and JF Project team <http://www.linux.or.jp/JF/>. | 6 | or a problem with the translation, |
7 | If you find difference with original file or problem in translation, | ||
8 | please contact the maintainer of this file or JF project. | 7 | please contact the maintainer of this file or JF project. |
9 | 8 | ||
10 | Please also note that purpose of this file is easier to read for non | 9 | Please also note that the purpose of this file is to be easier to read |
11 | English natives and not to be intended to fork. So, if you have any | 10 | for non English (read: Japanese) speakers and is not intended as a |
12 | comments or updates of this file, please try to update | 11 | fork. So if you have any comments or updates of this file, please try |
13 | Original(English) file at first. | 12 | to update the original English file first. |
14 | 13 | ||
14 | Last Updated: 2007/07/18 | ||
15 | ================================== | 15 | ================================== |
16 | ã“ã‚Œã¯ã€ | 16 | ã“ã‚Œã¯ã€ |
17 | linux-2.6.22-rc4/Documentation/stable_api_nonsense.txt ã®å’Œè¨³ | 17 | linux-2.6.22-rc4/Documentation/stable_api_nonsense.txt ã®å’Œè¨³ |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 1156653338fe..efdb42fd3fb8 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -41,7 +41,6 @@ parameter is applicable: | |||
41 | EIDE EIDE/ATAPI support is enabled. | 41 | EIDE EIDE/ATAPI support is enabled. |
42 | FB The frame buffer device is enabled. | 42 | FB The frame buffer device is enabled. |
43 | HW Appropriate hardware is enabled. | 43 | HW Appropriate hardware is enabled. |
44 | IA-32 IA-32 aka i386 architecture is enabled. | ||
45 | IA-64 IA-64 architecture is enabled. | 44 | IA-64 IA-64 architecture is enabled. |
46 | IOSCHED More than one I/O scheduler is enabled. | 45 | IOSCHED More than one I/O scheduler is enabled. |
47 | IP_PNP IP DHCP, BOOTP, or RARP is enabled. | 46 | IP_PNP IP DHCP, BOOTP, or RARP is enabled. |
@@ -58,14 +57,14 @@ parameter is applicable: | |||
58 | MDA MDA console support is enabled. | 57 | MDA MDA console support is enabled. |
59 | MOUSE Appropriate mouse support is enabled. | 58 | MOUSE Appropriate mouse support is enabled. |
60 | MSI Message Signaled Interrupts (PCI). | 59 | MSI Message Signaled Interrupts (PCI). |
61 | MTD MTD support is enabled. | 60 | MTD MTD (Memory Technology Device) support is enabled. |
62 | NET Appropriate network support is enabled. | 61 | NET Appropriate network support is enabled. |
63 | NUMA NUMA support is enabled. | 62 | NUMA NUMA support is enabled. |
64 | GENERIC_TIME The generic timeofday code is enabled. | 63 | GENERIC_TIME The generic timeofday code is enabled. |
65 | NFS Appropriate NFS support is enabled. | 64 | NFS Appropriate NFS support is enabled. |
66 | OSS OSS sound support is enabled. | 65 | OSS OSS sound support is enabled. |
67 | PV_OPS A paravirtualized kernel | 66 | PV_OPS A paravirtualized kernel is enabled. |
68 | PARIDE The ParIDE subsystem is enabled. | 67 | PARIDE The ParIDE (parallel port IDE) subsystem is enabled. |
69 | PARISC The PA-RISC architecture is enabled. | 68 | PARISC The PA-RISC architecture is enabled. |
70 | PCI PCI bus support is enabled. | 69 | PCI PCI bus support is enabled. |
71 | PCMCIA The PCMCIA subsystem is enabled. | 70 | PCMCIA The PCMCIA subsystem is enabled. |
@@ -92,6 +91,7 @@ parameter is applicable: | |||
92 | VT Virtual terminal support is enabled. | 91 | VT Virtual terminal support is enabled. |
93 | WDT Watchdog support is enabled. | 92 | WDT Watchdog support is enabled. |
94 | XT IBM PC/XT MFM hard disk support is enabled. | 93 | XT IBM PC/XT MFM hard disk support is enabled. |
94 | X86-32 X86-32, aka i386 architecture is enabled. | ||
95 | X86-64 X86-64 architecture is enabled. | 95 | X86-64 X86-64 architecture is enabled. |
96 | More X86-64 boot options can be found in | 96 | More X86-64 boot options can be found in |
97 | Documentation/x86_64/boot-options.txt . | 97 | Documentation/x86_64/boot-options.txt . |
@@ -123,10 +123,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
123 | ./include/asm/setup.h as COMMAND_LINE_SIZE. | 123 | ./include/asm/setup.h as COMMAND_LINE_SIZE. |
124 | 124 | ||
125 | 125 | ||
126 | 53c7xx= [HW,SCSI] Amiga SCSI controllers | ||
127 | See header of drivers/scsi/53c7xx.c. | ||
128 | See also Documentation/scsi/ncr53c7xx.txt. | ||
129 | |||
130 | acpi= [HW,ACPI,X86-64,i386] | 126 | acpi= [HW,ACPI,X86-64,i386] |
131 | Advanced Configuration and Power Interface | 127 | Advanced Configuration and Power Interface |
132 | Format: { force | off | ht | strict | noirq } | 128 | Format: { force | off | ht | strict | noirq } |
@@ -223,7 +219,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
223 | 219 | ||
224 | acpi_fake_ecdt [HW,ACPI] Workaround failure due to BIOS lacking ECDT | 220 | acpi_fake_ecdt [HW,ACPI] Workaround failure due to BIOS lacking ECDT |
225 | 221 | ||
226 | acpi_pm_good [IA-32,X86-64] | 222 | acpi_pm_good [X86-32,X86-64] |
227 | Override the pmtimer bug detection: force the kernel | 223 | Override the pmtimer bug detection: force the kernel |
228 | to assume that this machine's pmtimer latches its value | 224 | to assume that this machine's pmtimer latches its value |
229 | and always returns good values. | 225 | and always returns good values. |
@@ -286,7 +282,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
286 | not play well with APC CPU idle - disable it if you have | 282 | not play well with APC CPU idle - disable it if you have |
287 | APC and your system crashes randomly. | 283 | APC and your system crashes randomly. |
288 | 284 | ||
289 | apic= [APIC,i386] Change the output verbosity whilst booting | 285 | apic= [APIC,i386] Advanced Programmable Interrupt Controller |
286 | Change the output verbosity whilst booting | ||
290 | Format: { quiet (default) | verbose | debug } | 287 | Format: { quiet (default) | verbose | debug } |
291 | Change the amount of debugging information output | 288 | Change the amount of debugging information output |
292 | when initialising the APIC and IO-APIC components. | 289 | when initialising the APIC and IO-APIC components. |
@@ -360,7 +357,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
360 | 357 | ||
361 | c101= [NET] Moxa C101 synchronous serial card | 358 | c101= [NET] Moxa C101 synchronous serial card |
362 | 359 | ||
363 | cachesize= [BUGS=IA-32] Override level 2 CPU cache size detection. | 360 | cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection. |
364 | Sometimes CPU hardware bugs make them report the cache | 361 | Sometimes CPU hardware bugs make them report the cache |
365 | size incorrectly. The kernel will attempt work arounds | 362 | size incorrectly. The kernel will attempt work arounds |
366 | to fix known problems, but for some CPUs it is not | 363 | to fix known problems, but for some CPUs it is not |
@@ -379,7 +376,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
379 | Value can be changed at runtime via | 376 | Value can be changed at runtime via |
380 | /selinux/checkreqprot. | 377 | /selinux/checkreqprot. |
381 | 378 | ||
382 | clock= [BUGS=IA-32, HW] gettimeofday clocksource override. | 379 | clock= [BUGS=X86-32, HW] gettimeofday clocksource override. |
383 | [Deprecated] | 380 | [Deprecated] |
384 | Forces specified clocksource (if available) to be used | 381 | Forces specified clocksource (if available) to be used |
385 | when calculating gettimeofday(). If specified | 382 | when calculating gettimeofday(). If specified |
@@ -397,7 +394,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
397 | [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, | 394 | [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2, |
398 | pxa_timer,timer3,32k_counter,timer0_1 | 395 | pxa_timer,timer3,32k_counter,timer0_1 |
399 | [AVR32] avr32 | 396 | [AVR32] avr32 |
400 | [IA-32] pit,hpet,tsc,vmi-timer; | 397 | [X86-32] pit,hpet,tsc,vmi-timer; |
401 | scx200_hrt on Geode; cyclone on IBM x440 | 398 | scx200_hrt on Geode; cyclone on IBM x440 |
402 | [MIPS] MIPS | 399 | [MIPS] MIPS |
403 | [PARISC] cr16 | 400 | [PARISC] cr16 |
@@ -417,7 +414,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
417 | over the 8254 in addition to over the IO-APIC. The | 414 | over the 8254 in addition to over the IO-APIC. The |
418 | kernel tries to set a sensible default. | 415 | kernel tries to set a sensible default. |
419 | 416 | ||
420 | hpet= [IA-32,HPET] option to disable HPET and use PIT. | 417 | hpet= [X86-32,HPET] option to disable HPET and use PIT. |
421 | Format: disable | 418 | Format: disable |
422 | 419 | ||
423 | com20020= [HW,NET] ARCnet - COM20020 chipset | 420 | com20020= [HW,NET] ARCnet - COM20020 chipset |
@@ -554,7 +551,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
554 | 551 | ||
555 | dtc3181e= [HW,SCSI] | 552 | dtc3181e= [HW,SCSI] |
556 | 553 | ||
557 | earlyprintk= [IA-32,X86-64,SH] | 554 | earlyprintk= [X86-32,X86-64,SH] |
558 | earlyprintk=vga | 555 | earlyprintk=vga |
559 | earlyprintk=serial[,ttySn[,baudrate]] | 556 | earlyprintk=serial[,ttySn[,baudrate]] |
560 | 557 | ||
@@ -592,7 +589,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
592 | eisa_irq_edge= [PARISC,HW] | 589 | eisa_irq_edge= [PARISC,HW] |
593 | See header of drivers/parisc/eisa.c. | 590 | See header of drivers/parisc/eisa.c. |
594 | 591 | ||
595 | elanfreq= [IA-32] | 592 | elanfreq= [X86-32] |
596 | See comment before function elanfreq_setup() in | 593 | See comment before function elanfreq_setup() in |
597 | arch/i386/kernel/cpu/cpufreq/elanfreq.c. | 594 | arch/i386/kernel/cpu/cpufreq/elanfreq.c. |
598 | 595 | ||
@@ -601,7 +598,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
601 | See Documentation/block/as-iosched.txt and | 598 | See Documentation/block/as-iosched.txt and |
602 | Documentation/block/deadline-iosched.txt for details. | 599 | Documentation/block/deadline-iosched.txt for details. |
603 | 600 | ||
604 | elfcorehdr= [IA-32, X86_64] | 601 | elfcorehdr= [X86-32, X86_64] |
605 | Specifies physical address of start of kernel core | 602 | Specifies physical address of start of kernel core |
606 | image elf header. Generally kexec loader will | 603 | image elf header. Generally kexec loader will |
607 | pass this option to capture kernel. | 604 | pass this option to capture kernel. |
@@ -683,7 +680,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
683 | hisax= [HW,ISDN] | 680 | hisax= [HW,ISDN] |
684 | See Documentation/isdn/README.HiSax. | 681 | See Documentation/isdn/README.HiSax. |
685 | 682 | ||
686 | hugepages= [HW,IA-32,IA-64] Maximal number of HugeTLB pages. | 683 | hugepages= [HW,X86-32,IA-64] Maximal number of HugeTLB pages. |
687 | 684 | ||
688 | i8042.direct [HW] Put keyboard port into non-translated mode | 685 | i8042.direct [HW] Put keyboard port into non-translated mode |
689 | i8042.dumbkbd [HW] Pretend that controller can only read data from | 686 | i8042.dumbkbd [HW] Pretend that controller can only read data from |
@@ -775,7 +772,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
775 | See Documentation/nfsroot.txt. | 772 | See Documentation/nfsroot.txt. |
776 | 773 | ||
777 | ip2= [HW] Set IO/IRQ pairs for up to 4 IntelliPort boards | 774 | ip2= [HW] Set IO/IRQ pairs for up to 4 IntelliPort boards |
778 | See comment before ip2_setup() in drivers/char/ip2.c. | 775 | See comment before ip2_setup() in |
776 | drivers/char/ip2/ip2base.c. | ||
779 | 777 | ||
780 | ips= [HW,SCSI] Adaptec / IBM ServeRAID controller | 778 | ips= [HW,SCSI] Adaptec / IBM ServeRAID controller |
781 | See header of drivers/scsi/ips.c. | 779 | See header of drivers/scsi/ips.c. |
@@ -824,7 +822,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
824 | js= [HW,JOY] Analog joystick | 822 | js= [HW,JOY] Analog joystick |
825 | See Documentation/input/joystick.txt. | 823 | See Documentation/input/joystick.txt. |
826 | 824 | ||
827 | kernelcore=nn[KMG] [KNL,IA-32,IA-64,PPC,X86-64] This parameter | 825 | kernelcore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter |
828 | specifies the amount of memory usable by the kernel | 826 | specifies the amount of memory usable by the kernel |
829 | for non-movable allocations. The requested amount is | 827 | for non-movable allocations. The requested amount is |
830 | spread evenly throughout all nodes in the system. The | 828 | spread evenly throughout all nodes in the system. The |
@@ -840,7 +838,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
840 | use the HighMem zone if it exists, and the Normal | 838 | use the HighMem zone if it exists, and the Normal |
841 | zone if it does not. | 839 | zone if it does not. |
842 | 840 | ||
843 | movablecore=nn[KMG] [KNL,IA-32,IA-64,PPC,X86-64] This parameter | 841 | movablecore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter |
844 | is similar to kernelcore except it specifies the | 842 | is similar to kernelcore except it specifies the |
845 | amount of memory used for migratable allocations. | 843 | amount of memory used for migratable allocations. |
846 | If both kernelcore and movablecore is specified, | 844 | If both kernelcore and movablecore is specified, |
@@ -852,28 +850,20 @@ and is between 256 and 4096 characters. It is defined in the file | |||
852 | 850 | ||
853 | keepinitrd [HW,ARM] | 851 | keepinitrd [HW,ARM] |
854 | 852 | ||
855 | kstack=N [IA-32,X86-64] Print N words from the kernel stack | 853 | kstack=N [X86-32,X86-64] Print N words from the kernel stack |
856 | in oops dumps. | 854 | in oops dumps. |
857 | 855 | ||
858 | l2cr= [PPC] | 856 | l2cr= [PPC] |
859 | 857 | ||
860 | lapic [IA-32,APIC] Enable the local APIC even if BIOS | 858 | lapic [X86-32,APIC] Enable the local APIC even if BIOS |
861 | disabled it. | 859 | disabled it. |
862 | 860 | ||
863 | lapic_timer_c2_ok [IA-32,x86-64,APIC] trust the local apic timer in | 861 | lapic_timer_c2_ok [X86-32,x86-64,APIC] trust the local apic timer in |
864 | C2 power state. | 862 | C2 power state. |
865 | 863 | ||
866 | lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip | 864 | lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip |
867 | Format: addr:<io>,irq:<irq> | 865 | Format: addr:<io>,irq:<irq> |
868 | 866 | ||
869 | legacy_serial.force [HW,IA-32,X86-64] | ||
870 | Probe for COM ports at legacy addresses even | ||
871 | if PNPBIOS or ACPI should describe them. This | ||
872 | is for working around firmware defects. | ||
873 | |||
874 | llsc*= [IA64] See function print_params() in | ||
875 | arch/ia64/sn/kernel/llsc4.c. | ||
876 | |||
877 | load_ramdisk= [RAM] List of ramdisks to load from floppy | 867 | load_ramdisk= [RAM] List of ramdisks to load from floppy |
878 | See Documentation/ramdisk.txt. | 868 | See Documentation/ramdisk.txt. |
879 | 869 | ||
@@ -979,11 +969,11 @@ and is between 256 and 4096 characters. It is defined in the file | |||
979 | [SCSI] Maximum number of LUNs received. | 969 | [SCSI] Maximum number of LUNs received. |
980 | Should be between 1 and 16384. | 970 | Should be between 1 and 16384. |
981 | 971 | ||
982 | mca-pentium [BUGS=IA-32] | 972 | mca-pentium [BUGS=X86-32] |
983 | 973 | ||
984 | mcatest= [IA-64] | 974 | mcatest= [IA-64] |
985 | 975 | ||
986 | mce [IA-32] Machine Check Exception | 976 | mce [X86-32] Machine Check Exception |
987 | 977 | ||
988 | md= [HW] RAID subsystems devices and level | 978 | md= [HW] RAID subsystems devices and level |
989 | See Documentation/md.txt. | 979 | See Documentation/md.txt. |
@@ -995,14 +985,14 @@ and is between 256 and 4096 characters. It is defined in the file | |||
995 | mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory | 985 | mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory |
996 | Amount of memory to be used when the kernel is not able | 986 | Amount of memory to be used when the kernel is not able |
997 | to see the whole system memory or for test. | 987 | to see the whole system memory or for test. |
998 | [IA-32] Use together with memmap= to avoid physical | 988 | [X86-32] Use together with memmap= to avoid physical |
999 | address space collisions. Without memmap= PCI devices | 989 | address space collisions. Without memmap= PCI devices |
1000 | could be placed at addresses belonging to unused RAM. | 990 | could be placed at addresses belonging to unused RAM. |
1001 | 991 | ||
1002 | mem=nopentium [BUGS=IA-32] Disable usage of 4MB pages for kernel | 992 | mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel |
1003 | memory. | 993 | memory. |
1004 | 994 | ||
1005 | memmap=exactmap [KNL,IA-32,X86_64] Enable setting of an exact | 995 | memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact |
1006 | E820 memory map, as specified by the user. | 996 | E820 memory map, as specified by the user. |
1007 | Such memmap=exactmap lines can be constructed based on | 997 | Such memmap=exactmap lines can be constructed based on |
1008 | BIOS output or other requirements. See the memmap=nn@ss | 998 | BIOS output or other requirements. See the memmap=nn@ss |
@@ -1046,7 +1036,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1046 | <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] | 1036 | <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] |
1047 | 1037 | ||
1048 | mtdparts= [MTD] | 1038 | mtdparts= [MTD] |
1049 | See drivers/mtd/cmdline.c. | 1039 | See drivers/mtd/cmdlinepart.c. |
1050 | 1040 | ||
1051 | mtouchusb.raw_coordinates= | 1041 | mtouchusb.raw_coordinates= |
1052 | [HW] Make the MicroTouch USB driver use raw coordinates | 1042 | [HW] Make the MicroTouch USB driver use raw coordinates |
@@ -1088,9 +1078,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1088 | [NFS] set the maximum lifetime for idmapper cache | 1078 | [NFS] set the maximum lifetime for idmapper cache |
1089 | entries. | 1079 | entries. |
1090 | 1080 | ||
1091 | nmi_watchdog= [KNL,BUGS=IA-32] Debugging features for SMP kernels | 1081 | nmi_watchdog= [KNL,BUGS=X86-32] Debugging features for SMP kernels |
1092 | 1082 | ||
1093 | no387 [BUGS=IA-32] Tells the kernel to use the 387 maths | 1083 | no387 [BUGS=X86-32] Tells the kernel to use the 387 maths |
1094 | emulation library even if a 387 maths coprocessor | 1084 | emulation library even if a 387 maths coprocessor |
1095 | is present. | 1085 | is present. |
1096 | 1086 | ||
@@ -1121,17 +1111,17 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1121 | 1111 | ||
1122 | noexec [IA-64] | 1112 | noexec [IA-64] |
1123 | 1113 | ||
1124 | noexec [IA-32,X86-64] | 1114 | noexec [X86-32,X86-64] |
1125 | noexec=on: enable non-executable mappings (default) | 1115 | noexec=on: enable non-executable mappings (default) |
1126 | noexec=off: disable nn-executable mappings | 1116 | noexec=off: disable nn-executable mappings |
1127 | 1117 | ||
1128 | nofxsr [BUGS=IA-32] Disables x86 floating point extended | 1118 | nofxsr [BUGS=X86-32] Disables x86 floating point extended |
1129 | register save and restore. The kernel will only save | 1119 | register save and restore. The kernel will only save |
1130 | legacy floating-point registers on task switch. | 1120 | legacy floating-point registers on task switch. |
1131 | 1121 | ||
1132 | nohlt [BUGS=ARM] | 1122 | nohlt [BUGS=ARM] |
1133 | 1123 | ||
1134 | no-hlt [BUGS=IA-32] Tells the kernel that the hlt | 1124 | no-hlt [BUGS=X86-32] Tells the kernel that the hlt |
1135 | instruction doesn't work correctly and not to | 1125 | instruction doesn't work correctly and not to |
1136 | use it. | 1126 | use it. |
1137 | 1127 | ||
@@ -1146,12 +1136,12 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1146 | Valid arguments: on, off | 1136 | Valid arguments: on, off |
1147 | Default: on | 1137 | Default: on |
1148 | 1138 | ||
1149 | noirqbalance [IA-32,SMP,KNL] Disable kernel irq balancing | 1139 | noirqbalance [X86-32,SMP,KNL] Disable kernel irq balancing |
1150 | 1140 | ||
1151 | noirqdebug [IA-32] Disables the code which attempts to detect and | 1141 | noirqdebug [X86-32] Disables the code which attempts to detect and |
1152 | disable unhandled interrupt sources. | 1142 | disable unhandled interrupt sources. |
1153 | 1143 | ||
1154 | no_timer_check [IA-32,X86_64,APIC] Disables the code which tests for | 1144 | no_timer_check [X86-32,X86_64,APIC] Disables the code which tests for |
1155 | broken timer IRQ sources. | 1145 | broken timer IRQ sources. |
1156 | 1146 | ||
1157 | noisapnp [ISAPNP] Disables ISA PnP code. | 1147 | noisapnp [ISAPNP] Disables ISA PnP code. |
@@ -1163,20 +1153,20 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1163 | 1153 | ||
1164 | nojitter [IA64] Disables jitter checking for ITC timers. | 1154 | nojitter [IA64] Disables jitter checking for ITC timers. |
1165 | 1155 | ||
1166 | nolapic [IA-32,APIC] Do not enable or use the local APIC. | 1156 | nolapic [X86-32,APIC] Do not enable or use the local APIC. |
1167 | 1157 | ||
1168 | nolapic_timer [IA-32,APIC] Do not use the local APIC timer. | 1158 | nolapic_timer [X86-32,APIC] Do not use the local APIC timer. |
1169 | 1159 | ||
1170 | noltlbs [PPC] Do not use large page/tlb entries for kernel | 1160 | noltlbs [PPC] Do not use large page/tlb entries for kernel |
1171 | lowmem mapping on PPC40x. | 1161 | lowmem mapping on PPC40x. |
1172 | 1162 | ||
1173 | nomca [IA-64] Disable machine check abort handling | 1163 | nomca [IA-64] Disable machine check abort handling |
1174 | 1164 | ||
1175 | nomce [IA-32] Machine Check Exception | 1165 | nomce [X86-32] Machine Check Exception |
1176 | 1166 | ||
1177 | noreplace-paravirt [IA-32,PV_OPS] Don't patch paravirt_ops | 1167 | noreplace-paravirt [X86-32,PV_OPS] Don't patch paravirt_ops |
1178 | 1168 | ||
1179 | noreplace-smp [IA-32,SMP] Don't replace SMP instructions | 1169 | noreplace-smp [X86-32,SMP] Don't replace SMP instructions |
1180 | with UP alternatives | 1170 | with UP alternatives |
1181 | 1171 | ||
1182 | noresidual [PPC] Don't use residual data on PReP machines. | 1172 | noresidual [PPC] Don't use residual data on PReP machines. |
@@ -1190,7 +1180,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1190 | 1180 | ||
1191 | nosbagart [IA-64] | 1181 | nosbagart [IA-64] |
1192 | 1182 | ||
1193 | nosep [BUGS=IA-32] Disables x86 SYSENTER/SYSEXIT support. | 1183 | nosep [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support. |
1194 | 1184 | ||
1195 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel. | 1185 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel. |
1196 | 1186 | ||
@@ -1198,7 +1188,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1198 | 1188 | ||
1199 | nosync [HW,M68K] Disables sync negotiation for all devices. | 1189 | nosync [HW,M68K] Disables sync negotiation for all devices. |
1200 | 1190 | ||
1201 | notsc [BUGS=IA-32] Disable Time Stamp Counter | 1191 | notsc [BUGS=X86-32] Disable Time Stamp Counter |
1202 | 1192 | ||
1203 | nousb [USB] Disable the USB subsystem | 1193 | nousb [USB] Disable the USB subsystem |
1204 | 1194 | ||
@@ -1271,28 +1261,28 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1271 | See also Documentation/paride.txt. | 1261 | See also Documentation/paride.txt. |
1272 | 1262 | ||
1273 | pci=option[,option...] [PCI] various PCI subsystem options: | 1263 | pci=option[,option...] [PCI] various PCI subsystem options: |
1274 | off [IA-32] don't probe for the PCI bus | 1264 | off [X86-32] don't probe for the PCI bus |
1275 | bios [IA-32] force use of PCI BIOS, don't access | 1265 | bios [X86-32] force use of PCI BIOS, don't access |
1276 | the hardware directly. Use this if your machine | 1266 | the hardware directly. Use this if your machine |
1277 | has a non-standard PCI host bridge. | 1267 | has a non-standard PCI host bridge. |
1278 | nobios [IA-32] disallow use of PCI BIOS, only direct | 1268 | nobios [X86-32] disallow use of PCI BIOS, only direct |
1279 | hardware access methods are allowed. Use this | 1269 | hardware access methods are allowed. Use this |
1280 | if you experience crashes upon bootup and you | 1270 | if you experience crashes upon bootup and you |
1281 | suspect they are caused by the BIOS. | 1271 | suspect they are caused by the BIOS. |
1282 | conf1 [IA-32] Force use of PCI Configuration | 1272 | conf1 [X86-32] Force use of PCI Configuration |
1283 | Mechanism 1. | 1273 | Mechanism 1. |
1284 | conf2 [IA-32] Force use of PCI Configuration | 1274 | conf2 [X86-32] Force use of PCI Configuration |
1285 | Mechanism 2. | 1275 | Mechanism 2. |
1286 | nommconf [IA-32,X86_64] Disable use of MMCONFIG for PCI | 1276 | nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI |
1287 | Configuration | 1277 | Configuration |
1288 | nomsi [MSI] If the PCI_MSI kernel config parameter is | 1278 | nomsi [MSI] If the PCI_MSI kernel config parameter is |
1289 | enabled, this kernel boot option can be used to | 1279 | enabled, this kernel boot option can be used to |
1290 | disable the use of MSI interrupts system-wide. | 1280 | disable the use of MSI interrupts system-wide. |
1291 | nosort [IA-32] Don't sort PCI devices according to | 1281 | nosort [X86-32] Don't sort PCI devices according to |
1292 | order given by the PCI BIOS. This sorting is | 1282 | order given by the PCI BIOS. This sorting is |
1293 | done to get a device order compatible with | 1283 | done to get a device order compatible with |
1294 | older kernels. | 1284 | older kernels. |
1295 | biosirq [IA-32] Use PCI BIOS calls to get the interrupt | 1285 | biosirq [X86-32] Use PCI BIOS calls to get the interrupt |
1296 | routing table. These calls are known to be buggy | 1286 | routing table. These calls are known to be buggy |
1297 | on several machines and they hang the machine | 1287 | on several machines and they hang the machine |
1298 | when used, but on other computers it's the only | 1288 | when used, but on other computers it's the only |
@@ -1300,32 +1290,32 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1300 | this option if the kernel is unable to allocate | 1290 | this option if the kernel is unable to allocate |
1301 | IRQs or discover secondary PCI buses on your | 1291 | IRQs or discover secondary PCI buses on your |
1302 | motherboard. | 1292 | motherboard. |
1303 | rom [IA-32] Assign address space to expansion ROMs. | 1293 | rom [X86-32] Assign address space to expansion ROMs. |
1304 | Use with caution as certain devices share | 1294 | Use with caution as certain devices share |
1305 | address decoders between ROMs and other | 1295 | address decoders between ROMs and other |
1306 | resources. | 1296 | resources. |
1307 | irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be | 1297 | irqmask=0xMMMM [X86-32] Set a bit mask of IRQs allowed to be |
1308 | assigned automatically to PCI devices. You can | 1298 | assigned automatically to PCI devices. You can |
1309 | make the kernel exclude IRQs of your ISA cards | 1299 | make the kernel exclude IRQs of your ISA cards |
1310 | this way. | 1300 | this way. |
1311 | pirqaddr=0xAAAAA [IA-32] Specify the physical address | 1301 | pirqaddr=0xAAAAA [X86-32] Specify the physical address |
1312 | of the PIRQ table (normally generated | 1302 | of the PIRQ table (normally generated |
1313 | by the BIOS) if it is outside the | 1303 | by the BIOS) if it is outside the |
1314 | F0000h-100000h range. | 1304 | F0000h-100000h range. |
1315 | lastbus=N [IA-32] Scan all buses thru bus #N. Can be | 1305 | lastbus=N [X86-32] Scan all buses thru bus #N. Can be |
1316 | useful if the kernel is unable to find your | 1306 | useful if the kernel is unable to find your |
1317 | secondary buses and you want to tell it | 1307 | secondary buses and you want to tell it |
1318 | explicitly which ones they are. | 1308 | explicitly which ones they are. |
1319 | assign-busses [IA-32] Always assign all PCI bus | 1309 | assign-busses [X86-32] Always assign all PCI bus |
1320 | numbers ourselves, overriding | 1310 | numbers ourselves, overriding |
1321 | whatever the firmware may have done. | 1311 | whatever the firmware may have done. |
1322 | usepirqmask [IA-32] Honor the possible IRQ mask stored | 1312 | usepirqmask [X86-32] Honor the possible IRQ mask stored |
1323 | in the BIOS $PIR table. This is needed on | 1313 | in the BIOS $PIR table. This is needed on |
1324 | some systems with broken BIOSes, notably | 1314 | some systems with broken BIOSes, notably |
1325 | some HP Pavilion N5400 and Omnibook XE3 | 1315 | some HP Pavilion N5400 and Omnibook XE3 |
1326 | notebooks. This will have no effect if ACPI | 1316 | notebooks. This will have no effect if ACPI |
1327 | IRQ routing is enabled. | 1317 | IRQ routing is enabled. |
1328 | noacpi [IA-32] Do not use ACPI for IRQ routing | 1318 | noacpi [X86-32] Do not use ACPI for IRQ routing |
1329 | or for PCI scanning. | 1319 | or for PCI scanning. |
1330 | routeirq Do IRQ routing for all PCI devices. | 1320 | routeirq Do IRQ routing for all PCI devices. |
1331 | This is normally done in pci_enable_device(), | 1321 | This is normally done in pci_enable_device(), |
@@ -1474,13 +1464,13 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1474 | Run specified binary instead of /init from the ramdisk, | 1464 | Run specified binary instead of /init from the ramdisk, |
1475 | used for early userspace startup. See initrd. | 1465 | used for early userspace startup. See initrd. |
1476 | 1466 | ||
1477 | reboot= [BUGS=IA-32,BUGS=ARM,BUGS=IA-64] Rebooting mode | 1467 | reboot= [BUGS=X86-32,BUGS=ARM,BUGS=IA-64] Rebooting mode |
1478 | Format: <reboot_mode>[,<reboot_mode2>[,...]] | 1468 | Format: <reboot_mode>[,<reboot_mode2>[,...]] |
1479 | See arch/*/kernel/reboot.c or arch/*/kernel/process.c | 1469 | See arch/*/kernel/reboot.c or arch/*/kernel/process.c |
1480 | 1470 | ||
1481 | reserve= [KNL,BUGS] Force the kernel to ignore some iomem area | 1471 | reserve= [KNL,BUGS] Force the kernel to ignore some iomem area |
1482 | 1472 | ||
1483 | reservetop= [IA-32] | 1473 | reservetop= [X86-32] |
1484 | Format: nn[KMG] | 1474 | Format: nn[KMG] |
1485 | Reserves a hole at the top of the kernel virtual | 1475 | Reserves a hole at the top of the kernel virtual |
1486 | address space. | 1476 | address space. |
@@ -1571,7 +1561,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1571 | Value can be changed at runtime via | 1561 | Value can be changed at runtime via |
1572 | /selinux/compat_net. | 1562 | /selinux/compat_net. |
1573 | 1563 | ||
1574 | serialnumber [BUGS=IA-32] | 1564 | serialnumber [BUGS=X86-32] |
1575 | 1565 | ||
1576 | sg_def_reserved_size= [SCSI] | 1566 | sg_def_reserved_size= [SCSI] |
1577 | 1567 | ||
@@ -1624,7 +1614,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1624 | smart2= [HW] | 1614 | smart2= [HW] |
1625 | Format: <io1>[,<io2>[,...,<io8>]] | 1615 | Format: <io1>[,<io2>[,...,<io8>]] |
1626 | 1616 | ||
1627 | smp-alt-once [IA-32,SMP] On a hotplug CPU system, only | 1617 | smp-alt-once [X86-32,SMP] On a hotplug CPU system, only |
1628 | attempt to substitute SMP alternatives once at boot. | 1618 | attempt to substitute SMP alternatives once at boot. |
1629 | 1619 | ||
1630 | smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices | 1620 | smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices |
@@ -1889,7 +1879,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1889 | usbhid.mousepoll= | 1879 | usbhid.mousepoll= |
1890 | [USBHID] The interval which mice are to be polled at. | 1880 | [USBHID] The interval which mice are to be polled at. |
1891 | 1881 | ||
1892 | vdso= [IA-32,SH,x86-64] | 1882 | vdso= [X86-32,SH,x86-64] |
1893 | vdso=2: enable compat VDSO (default with COMPAT_VDSO) | 1883 | vdso=2: enable compat VDSO (default with COMPAT_VDSO) |
1894 | vdso=1: enable VDSO (default) | 1884 | vdso=1: enable VDSO (default) |
1895 | vdso=0: disable VDSO mapping | 1885 | vdso=0: disable VDSO mapping |
@@ -1900,7 +1890,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1900 | video= [FB] Frame buffer configuration | 1890 | video= [FB] Frame buffer configuration |
1901 | See Documentation/fb/modedb.txt. | 1891 | See Documentation/fb/modedb.txt. |
1902 | 1892 | ||
1903 | vga= [BOOT,IA-32] Select a particular video mode | 1893 | vga= [BOOT,X86-32] Select a particular video mode |
1904 | See Documentation/i386/boot.txt and | 1894 | See Documentation/i386/boot.txt and |
1905 | Documentation/svga.txt. | 1895 | Documentation/svga.txt. |
1906 | Use vga=ask for menu. | 1896 | Use vga=ask for menu. |
diff --git a/Documentation/keys.txt b/Documentation/keys.txt index 81d9aa097298..947d57d53453 100644 --- a/Documentation/keys.txt +++ b/Documentation/keys.txt | |||
@@ -859,9 +859,8 @@ payload contents" for more information. | |||
859 | void unregister_key_type(struct key_type *type); | 859 | void unregister_key_type(struct key_type *type); |
860 | 860 | ||
861 | 861 | ||
862 | Under some circumstances, it may be desirable to desirable to deal with a | 862 | Under some circumstances, it may be desirable to deal with a bundle of keys. |
863 | bundle of keys. The facility provides access to the keyring type for managing | 863 | The facility provides access to the keyring type for managing such a bundle: |
864 | such a bundle: | ||
865 | 864 | ||
866 | struct key_type key_type_keyring; | 865 | struct key_type key_type_keyring; |
867 | 866 | ||
diff --git a/Documentation/kobject.txt b/Documentation/kobject.txt index e44855513b3d..8ee49ee7c963 100644 --- a/Documentation/kobject.txt +++ b/Documentation/kobject.txt | |||
@@ -27,7 +27,6 @@ in detail, and briefly here: | |||
27 | - kobjects a simple object. | 27 | - kobjects a simple object. |
28 | - kset a set of objects of a certain type. | 28 | - kset a set of objects of a certain type. |
29 | - ktype a set of helpers for objects of a common type. | 29 | - ktype a set of helpers for objects of a common type. |
30 | - subsystem a controlling object for a number of ksets. | ||
31 | 30 | ||
32 | 31 | ||
33 | The kobject infrastructure maintains a close relationship with the | 32 | The kobject infrastructure maintains a close relationship with the |
@@ -54,13 +53,15 @@ embedded in larger data structures and replace fields they duplicate. | |||
54 | 1.2 Definition | 53 | 1.2 Definition |
55 | 54 | ||
56 | struct kobject { | 55 | struct kobject { |
56 | const char * k_name; | ||
57 | char name[KOBJ_NAME_LEN]; | 57 | char name[KOBJ_NAME_LEN]; |
58 | atomic_t refcount; | 58 | struct kref kref; |
59 | struct list_head entry; | 59 | struct list_head entry; |
60 | struct kobject * parent; | 60 | struct kobject * parent; |
61 | struct kset * kset; | 61 | struct kset * kset; |
62 | struct kobj_type * ktype; | 62 | struct kobj_type * ktype; |
63 | struct dentry * dentry; | 63 | struct sysfs_dirent * sd; |
64 | wait_queue_head_t poll; | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | void kobject_init(struct kobject *); | 67 | void kobject_init(struct kobject *); |
@@ -137,8 +138,7 @@ If a kobject does not have a parent when it is registered, its parent | |||
137 | becomes its dominant kset. | 138 | becomes its dominant kset. |
138 | 139 | ||
139 | If a kobject does not have a parent nor a dominant kset, its directory | 140 | If a kobject does not have a parent nor a dominant kset, its directory |
140 | is created at the top-level of the sysfs partition. This should only | 141 | is created at the top-level of the sysfs partition. |
141 | happen for kobjects that are embedded in a struct subsystem. | ||
142 | 142 | ||
143 | 143 | ||
144 | 144 | ||
@@ -150,10 +150,10 @@ A kset is a set of kobjects that are embedded in the same type. | |||
150 | 150 | ||
151 | 151 | ||
152 | struct kset { | 152 | struct kset { |
153 | struct subsystem * subsys; | ||
154 | struct kobj_type * ktype; | 153 | struct kobj_type * ktype; |
155 | struct list_head list; | 154 | struct list_head list; |
156 | struct kobject kobj; | 155 | struct kobject kobj; |
156 | struct kset_uevent_ops * uevent_ops; | ||
157 | }; | 157 | }; |
158 | 158 | ||
159 | 159 | ||
@@ -169,8 +169,7 @@ struct kobject * kset_find_obj(struct kset *, char *); | |||
169 | 169 | ||
170 | 170 | ||
171 | The type that the kobjects are embedded in is described by the ktype | 171 | The type that the kobjects are embedded in is described by the ktype |
172 | pointer. The subsystem that the kobject belongs to is pointed to by the | 172 | pointer. |
173 | subsys pointer. | ||
174 | 173 | ||
175 | A kset contains a kobject itself, meaning that it may be registered in | 174 | A kset contains a kobject itself, meaning that it may be registered in |
176 | the kobject hierarchy and exported via sysfs. More importantly, the | 175 | the kobject hierarchy and exported via sysfs. More importantly, the |
@@ -209,6 +208,58 @@ the hierarchy. | |||
209 | kset_find_obj() may be used to locate a kobject with a particular | 208 | kset_find_obj() may be used to locate a kobject with a particular |
210 | name. The kobject, if found, is returned. | 209 | name. The kobject, if found, is returned. |
211 | 210 | ||
211 | There are also some helper functions which names point to the formerly | ||
212 | existing "struct subsystem", whose functions have been taken over by | ||
213 | ksets. | ||
214 | |||
215 | |||
216 | decl_subsys(name,type,uevent_ops) | ||
217 | |||
218 | Declares a kset named '<name>_subsys' of type <type> with | ||
219 | uevent_ops <uevent_ops>. For example, | ||
220 | |||
221 | decl_subsys(devices, &ktype_device, &device_uevent_ops); | ||
222 | |||
223 | is equivalent to doing: | ||
224 | |||
225 | struct kset devices_subsys = { | ||
226 | .kobj = { | ||
227 | .name = "devices", | ||
228 | }, | ||
229 | .ktype = &ktype_devices, | ||
230 | .uevent_ops = &device_uevent_ops, | ||
231 | }; | ||
232 | |||
233 | |||
234 | The objects that are registered with a subsystem that use the | ||
235 | subsystem's default list must have their kset ptr set properly. These | ||
236 | objects may have embedded kobjects or ksets. The | ||
237 | following helpers make setting the kset easier: | ||
238 | |||
239 | |||
240 | kobj_set_kset_s(obj,subsys) | ||
241 | |||
242 | - Assumes that obj->kobj exists, and is a struct kobject. | ||
243 | - Sets the kset of that kobject to the kset <subsys>. | ||
244 | |||
245 | |||
246 | kset_set_kset_s(obj,subsys) | ||
247 | |||
248 | - Assumes that obj->kset exists, and is a struct kset. | ||
249 | - Sets the kset of the embedded kobject to the kset <subsys>. | ||
250 | |||
251 | subsys_set_kset(obj,subsys) | ||
252 | |||
253 | - Assumes obj->subsys exists, and is a struct subsystem. | ||
254 | - Sets obj->subsys.kset.kobj.kset to the subsystem's embedded kset. | ||
255 | |||
256 | void subsystem_init(struct kset *s); | ||
257 | int subsystem_register(struct kset *s); | ||
258 | void subsystem_unregister(struct kset *s); | ||
259 | struct kset *subsys_get(struct kset *s); | ||
260 | void kset_put(struct kset *s); | ||
261 | |||
262 | These are just wrappers around the respective kset_* functions. | ||
212 | 263 | ||
213 | 2.3 sysfs | 264 | 2.3 sysfs |
214 | 265 | ||
@@ -254,114 +305,3 @@ Instances of struct kobj_type are not registered; only referenced by | |||
254 | the kset. A kobj_type may be referenced by an arbitrary number of | 305 | the kset. A kobj_type may be referenced by an arbitrary number of |
255 | ksets, as there may be disparate sets of identical objects. | 306 | ksets, as there may be disparate sets of identical objects. |
256 | 307 | ||
257 | |||
258 | |||
259 | 4. subsystems | ||
260 | |||
261 | 4.1 Description | ||
262 | |||
263 | A subsystem represents a significant entity of code that maintains an | ||
264 | arbitrary number of sets of objects of various types. Since the number | ||
265 | of ksets and the type of objects they contain are variable, a | ||
266 | generic representation of a subsystem is minimal. | ||
267 | |||
268 | |||
269 | struct subsystem { | ||
270 | struct kset kset; | ||
271 | struct rw_semaphore rwsem; | ||
272 | }; | ||
273 | |||
274 | int subsystem_register(struct subsystem *); | ||
275 | void subsystem_unregister(struct subsystem *); | ||
276 | |||
277 | struct subsystem * subsys_get(struct subsystem * s); | ||
278 | void subsys_put(struct subsystem * s); | ||
279 | |||
280 | |||
281 | A subsystem contains an embedded kset so: | ||
282 | |||
283 | - It can be represented in the object hierarchy via the kset's | ||
284 | embedded kobject. | ||
285 | |||
286 | - It can maintain a default list of objects of one type. | ||
287 | |||
288 | Additional ksets may attach to the subsystem simply by referencing the | ||
289 | subsystem before they are registered. (This one-way reference means | ||
290 | that there is no way to determine the ksets that are attached to the | ||
291 | subsystem.) | ||
292 | |||
293 | All ksets that are attached to a subsystem share the subsystem's R/W | ||
294 | semaphore. | ||
295 | |||
296 | |||
297 | 4.2 subsystem Programming Interface. | ||
298 | |||
299 | The subsystem programming interface is simple and does not offer the | ||
300 | flexibility that the kset and kobject programming interfaces do. They | ||
301 | may be registered and unregistered, as well as reference counted. Each | ||
302 | call forwards the calls to their embedded ksets (which forward the | ||
303 | calls to their embedded kobjects). | ||
304 | |||
305 | |||
306 | 4.3 Helpers | ||
307 | |||
308 | A number of macros are available to make dealing with subsystems and | ||
309 | their embedded objects easier. | ||
310 | |||
311 | |||
312 | decl_subsys(name,type) | ||
313 | |||
314 | Declares a subsystem named '<name>_subsys', with an embedded kset of | ||
315 | type <type>. For example, | ||
316 | |||
317 | decl_subsys(devices,&ktype_devices); | ||
318 | |||
319 | is equivalent to doing: | ||
320 | |||
321 | struct subsystem device_subsys = { | ||
322 | .kset = { | ||
323 | .kobj = { | ||
324 | .name = "devices", | ||
325 | }, | ||
326 | .ktype = &ktype_devices, | ||
327 | } | ||
328 | }; | ||
329 | |||
330 | |||
331 | The objects that are registered with a subsystem that use the | ||
332 | subsystem's default list must have their kset ptr set properly. These | ||
333 | objects may have embedded kobjects, ksets, or other subsystems. The | ||
334 | following helpers make setting the kset easier: | ||
335 | |||
336 | |||
337 | kobj_set_kset_s(obj,subsys) | ||
338 | |||
339 | - Assumes that obj->kobj exists, and is a struct kobject. | ||
340 | - Sets the kset of that kobject to the subsystem's embedded kset. | ||
341 | |||
342 | |||
343 | kset_set_kset_s(obj,subsys) | ||
344 | |||
345 | - Assumes that obj->kset exists, and is a struct kset. | ||
346 | - Sets the kset of the embedded kobject to the subsystem's | ||
347 | embedded kset. | ||
348 | |||
349 | subsys_set_kset(obj,subsys) | ||
350 | |||
351 | - Assumes obj->subsys exists, and is a struct subsystem. | ||
352 | - Sets obj->subsys.kset.kobj.kset to the subsystem's embedded kset. | ||
353 | |||
354 | |||
355 | 4.4 sysfs | ||
356 | |||
357 | subsystems are represented in sysfs via their embedded kobjects. They | ||
358 | follow the same rules as previously mentioned with no exceptions. They | ||
359 | typically receive a top-level directory in sysfs, except when their | ||
360 | embedded kobject is part of another kset, or the parent of the | ||
361 | embedded kobject is explicitly set. | ||
362 | |||
363 | Note that the subsystem's embedded kset must be 'attached' to the | ||
364 | subsystem itself in order to use its rwsem. This is done after | ||
365 | kset_add() has been called. (Not before, because kset_add() uses its | ||
366 | subsystem for a default parent if it doesn't already have one). | ||
367 | |||
diff --git a/Documentation/spi/spidev_test.c b/Documentation/spi/spidev_test.c new file mode 100644 index 000000000000..218e86215297 --- /dev/null +++ b/Documentation/spi/spidev_test.c | |||
@@ -0,0 +1,202 @@ | |||
1 | /* | ||
2 | * SPI testing utility (using spidev driver) | ||
3 | * | ||
4 | * Copyright (c) 2007 MontaVista Software, Inc. | ||
5 | * Copyright (c) 2007 Anton Vorontsov <avorontsov@ru.mvista.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License. | ||
10 | * | ||
11 | * Cross-compile with cross-gcc -I/path/to/cross-kernel/include | ||
12 | */ | ||
13 | |||
14 | #include <stdint.h> | ||
15 | #include <unistd.h> | ||
16 | #include <stdio.h> | ||
17 | #include <stdlib.h> | ||
18 | #include <getopt.h> | ||
19 | #include <fcntl.h> | ||
20 | #include <sys/ioctl.h> | ||
21 | #include <linux/types.h> | ||
22 | #include <linux/spi/spidev.h> | ||
23 | |||
24 | #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) | ||
25 | |||
26 | static void pabort(const char *s) | ||
27 | { | ||
28 | perror(s); | ||
29 | abort(); | ||
30 | } | ||
31 | |||
32 | static char *device = "/dev/spidev1.1"; | ||
33 | static uint8_t mode; | ||
34 | static uint8_t bits = 8; | ||
35 | static uint32_t speed = 500000; | ||
36 | static uint16_t delay; | ||
37 | |||
38 | static void transfer(int fd) | ||
39 | { | ||
40 | int ret; | ||
41 | uint8_t tx[] = { | ||
42 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||
43 | 0x40, 0x00, 0x00, 0x00, 0x00, 0x95, | ||
44 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||
45 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||
46 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||
47 | 0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD, | ||
48 | 0xF0, 0x0D, | ||
49 | }; | ||
50 | uint8_t rx[ARRAY_SIZE(tx)] = {0, }; | ||
51 | struct spi_ioc_transfer tr = { | ||
52 | .tx_buf = (unsigned long)tx, | ||
53 | .rx_buf = (unsigned long)rx, | ||
54 | .len = ARRAY_SIZE(tx), | ||
55 | .delay_usecs = delay, | ||
56 | .speed_hz = speed, | ||
57 | .bits_per_word = bits, | ||
58 | }; | ||
59 | |||
60 | ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); | ||
61 | if (ret == 1) | ||
62 | pabort("can't send spi message"); | ||
63 | |||
64 | for (ret = 0; ret < ARRAY_SIZE(tx); ret++) { | ||
65 | if (!(ret % 6)) | ||
66 | puts(""); | ||
67 | printf("%.2X ", rx[ret]); | ||
68 | } | ||
69 | puts(""); | ||
70 | } | ||
71 | |||
72 | void print_usage(char *prog) | ||
73 | { | ||
74 | printf("Usage: %s [-DsbdlHOLC3]\n", prog); | ||
75 | puts(" -D --device device to use (default /dev/spidev1.1)\n" | ||
76 | " -s --speed max speed (Hz)\n" | ||
77 | " -d --delay delay (usec)\n" | ||
78 | " -b --bpw bits per word \n" | ||
79 | " -l --loop loopback\n" | ||
80 | " -H --cpha clock phase\n" | ||
81 | " -O --cpol clock polarity\n" | ||
82 | " -L --lsb least significant bit first\n" | ||
83 | " -C --cs-high chip select active high\n" | ||
84 | " -3 --3wire SI/SO signals shared\n"); | ||
85 | exit(1); | ||
86 | } | ||
87 | |||
88 | void parse_opts(int argc, char *argv[]) | ||
89 | { | ||
90 | while (1) { | ||
91 | static struct option lopts[] = { | ||
92 | { "device", 1, 0, 'D' }, | ||
93 | { "speed", 1, 0, 's' }, | ||
94 | { "delay", 1, 0, 'd' }, | ||
95 | { "bpw", 1, 0, 'b' }, | ||
96 | { "loop", 0, 0, 'l' }, | ||
97 | { "cpha", 0, 0, 'H' }, | ||
98 | { "cpol", 0, 0, 'O' }, | ||
99 | { "lsb", 0, 0, 'L' }, | ||
100 | { "cs-high", 0, 0, 'C' }, | ||
101 | { "3wire", 0, 0, '3' }, | ||
102 | { NULL, 0, 0, 0 }, | ||
103 | }; | ||
104 | int c; | ||
105 | |||
106 | c = getopt_long(argc, argv, "D:s:d:b:lHOLC3", lopts, NULL); | ||
107 | |||
108 | if (c == -1) | ||
109 | break; | ||
110 | |||
111 | switch (c) { | ||
112 | case 'D': | ||
113 | device = optarg; | ||
114 | break; | ||
115 | case 's': | ||
116 | speed = atoi(optarg); | ||
117 | break; | ||
118 | case 'd': | ||
119 | delay = atoi(optarg); | ||
120 | break; | ||
121 | case 'b': | ||
122 | bits = atoi(optarg); | ||
123 | break; | ||
124 | case 'l': | ||
125 | mode |= SPI_LOOP; | ||
126 | break; | ||
127 | case 'H': | ||
128 | mode |= SPI_CPHA; | ||
129 | break; | ||
130 | case 'O': | ||
131 | mode |= SPI_CPOL; | ||
132 | break; | ||
133 | case 'L': | ||
134 | mode |= SPI_LSB_FIRST; | ||
135 | break; | ||
136 | case 'C': | ||
137 | mode |= SPI_CS_HIGH; | ||
138 | break; | ||
139 | case '3': | ||
140 | mode |= SPI_3WIRE; | ||
141 | break; | ||
142 | default: | ||
143 | print_usage(argv[0]); | ||
144 | break; | ||
145 | } | ||
146 | } | ||
147 | } | ||
148 | |||
149 | int main(int argc, char *argv[]) | ||
150 | { | ||
151 | int ret = 0; | ||
152 | int fd; | ||
153 | |||
154 | parse_opts(argc, argv); | ||
155 | |||
156 | fd = open(device, O_RDWR); | ||
157 | if (fd < 0) | ||
158 | pabort("can't open device"); | ||
159 | |||
160 | /* | ||
161 | * spi mode | ||
162 | */ | ||
163 | ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); | ||
164 | if (ret == -1) | ||
165 | pabort("can't set spi mode"); | ||
166 | |||
167 | ret = ioctl(fd, SPI_IOC_RD_MODE, &mode); | ||
168 | if (ret == -1) | ||
169 | pabort("can't get spi mode"); | ||
170 | |||
171 | /* | ||
172 | * bits per word | ||
173 | */ | ||
174 | ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); | ||
175 | if (ret == -1) | ||
176 | pabort("can't set bits per word"); | ||
177 | |||
178 | ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); | ||
179 | if (ret == -1) | ||
180 | pabort("can't get bits per word"); | ||
181 | |||
182 | /* | ||
183 | * max speed hz | ||
184 | */ | ||
185 | ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); | ||
186 | if (ret == -1) | ||
187 | pabort("can't set max speed hz"); | ||
188 | |||
189 | ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); | ||
190 | if (ret == -1) | ||
191 | pabort("can't get max speed hz"); | ||
192 | |||
193 | printf("spi mode: %d\n", mode); | ||
194 | printf("bits per word: %d\n", bits); | ||
195 | printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000); | ||
196 | |||
197 | transfer(fd); | ||
198 | |||
199 | close(fd); | ||
200 | |||
201 | return ret; | ||
202 | } | ||
diff --git a/Documentation/stable_api_nonsense.txt b/Documentation/stable_api_nonsense.txt index a2afca3b2bab..847b342b7b20 100644 --- a/Documentation/stable_api_nonsense.txt +++ b/Documentation/stable_api_nonsense.txt | |||
@@ -10,7 +10,7 @@ kernel to userspace interfaces. The kernel to userspace interface is | |||
10 | the one that application programs use, the syscall interface. That | 10 | the one that application programs use, the syscall interface. That |
11 | interface is _very_ stable over time, and will not break. I have old | 11 | interface is _very_ stable over time, and will not break. I have old |
12 | programs that were built on a pre 0.9something kernel that still work | 12 | programs that were built on a pre 0.9something kernel that still work |
13 | just fine on the latest 2.6 kernel release. This interface is the one | 13 | just fine on the latest 2.6 kernel release. That interface is the one |
14 | that users and application programmers can count on being stable. | 14 | that users and application programmers can count on being stable. |
15 | 15 | ||
16 | 16 | ||
diff --git a/Documentation/sysfs-rules.txt b/Documentation/sysfs-rules.txt index 42861bb0bc9b..80ef562160bb 100644 --- a/Documentation/sysfs-rules.txt +++ b/Documentation/sysfs-rules.txt | |||
@@ -1,19 +1,18 @@ | |||
1 | Rules on how to access information in the Linux kernel sysfs | 1 | Rules on how to access information in the Linux kernel sysfs |
2 | 2 | ||
3 | The kernel exported sysfs exports internal kernel implementation-details | 3 | The kernel-exported sysfs exports internal kernel implementation details |
4 | and depends on internal kernel structures and layout. It is agreed upon | 4 | and depends on internal kernel structures and layout. It is agreed upon |
5 | by the kernel developers that the Linux kernel does not provide a stable | 5 | by the kernel developers that the Linux kernel does not provide a stable |
6 | internal API. As sysfs is a direct export of kernel internal | 6 | internal API. As sysfs is a direct export of kernel internal |
7 | structures, the sysfs interface can not provide a stable interface eighter, | 7 | structures, the sysfs interface cannot provide a stable interface either; |
8 | it may always change along with internal kernel changes. | 8 | it may always change along with internal kernel changes. |
9 | 9 | ||
10 | To minimize the risk of breaking users of sysfs, which are in most cases | 10 | To minimize the risk of breaking users of sysfs, which are in most cases |
11 | low-level userspace applications, with a new kernel release, the users | 11 | low-level userspace applications, with a new kernel release, the users |
12 | of sysfs must follow some rules to use an as abstract-as-possible way to | 12 | of sysfs must follow some rules to use an as-abstract-as-possible way to |
13 | access this filesystem. The current udev and HAL programs already | 13 | access this filesystem. The current udev and HAL programs already |
14 | implement this and users are encouraged to plug, if possible, into the | 14 | implement this and users are encouraged to plug, if possible, into the |
15 | abstractions these programs provide instead of accessing sysfs | 15 | abstractions these programs provide instead of accessing sysfs directly. |
16 | directly. | ||
17 | 16 | ||
18 | But if you really do want or need to access sysfs directly, please follow | 17 | But if you really do want or need to access sysfs directly, please follow |
19 | the following rules and then your programs should work with future | 18 | the following rules and then your programs should work with future |
@@ -25,22 +24,22 @@ versions of the sysfs interface. | |||
25 | implementation details in its own API. Therefore it is not better than | 24 | implementation details in its own API. Therefore it is not better than |
26 | reading directories and opening the files yourself. | 25 | reading directories and opening the files yourself. |
27 | Also, it is not actively maintained, in the sense of reflecting the | 26 | Also, it is not actively maintained, in the sense of reflecting the |
28 | current kernel-development. The goal of providing a stable interface | 27 | current kernel development. The goal of providing a stable interface |
29 | to sysfs has failed, it causes more problems, than it solves. It | 28 | to sysfs has failed; it causes more problems than it solves. It |
30 | violates many of the rules in this document. | 29 | violates many of the rules in this document. |
31 | 30 | ||
32 | - sysfs is always at /sys | 31 | - sysfs is always at /sys |
33 | Parsing /proc/mounts is a waste of time. Other mount points are a | 32 | Parsing /proc/mounts is a waste of time. Other mount points are a |
34 | system configuration bug you should not try to solve. For test cases, | 33 | system configuration bug you should not try to solve. For test cases, |
35 | possibly support a SYSFS_PATH environment variable to overwrite the | 34 | possibly support a SYSFS_PATH environment variable to overwrite the |
36 | applications behavior, but never try to search for sysfs. Never try | 35 | application's behavior, but never try to search for sysfs. Never try |
37 | to mount it, if you are not an early boot script. | 36 | to mount it, if you are not an early boot script. |
38 | 37 | ||
39 | - devices are only "devices" | 38 | - devices are only "devices" |
40 | There is no such thing like class-, bus-, physical devices, | 39 | There is no such thing like class-, bus-, physical devices, |
41 | interfaces, and such that you can rely on in userspace. Everything is | 40 | interfaces, and such that you can rely on in userspace. Everything is |
42 | just simply a "device". Class-, bus-, physical, ... types are just | 41 | just simply a "device". Class-, bus-, physical, ... types are just |
43 | kernel implementation details, which should not be expected by | 42 | kernel implementation details which should not be expected by |
44 | applications that look for devices in sysfs. | 43 | applications that look for devices in sysfs. |
45 | 44 | ||
46 | The properties of a device are: | 45 | The properties of a device are: |
@@ -48,11 +47,11 @@ versions of the sysfs interface. | |||
48 | - identical to the DEVPATH value in the event sent from the kernel | 47 | - identical to the DEVPATH value in the event sent from the kernel |
49 | at device creation and removal | 48 | at device creation and removal |
50 | - the unique key to the device at that point in time | 49 | - the unique key to the device at that point in time |
51 | - the kernels path to the device-directory without the leading | 50 | - the kernel's path to the device directory without the leading |
52 | /sys, and always starting with with a slash | 51 | /sys, and always starting with with a slash |
53 | - all elements of a devpath must be real directories. Symlinks | 52 | - all elements of a devpath must be real directories. Symlinks |
54 | pointing to /sys/devices must always be resolved to their real | 53 | pointing to /sys/devices must always be resolved to their real |
55 | target, and the target path must be used to access the device. | 54 | target and the target path must be used to access the device. |
56 | That way the devpath to the device matches the devpath of the | 55 | That way the devpath to the device matches the devpath of the |
57 | kernel used at event time. | 56 | kernel used at event time. |
58 | - using or exposing symlink values as elements in a devpath string | 57 | - using or exposing symlink values as elements in a devpath string |
@@ -73,17 +72,17 @@ versions of the sysfs interface. | |||
73 | link | 72 | link |
74 | - it is retrieved by reading the "driver"-link and using only the | 73 | - it is retrieved by reading the "driver"-link and using only the |
75 | last element of the target path | 74 | last element of the target path |
76 | - devices which do not have "driver"-link, just do not have a | 75 | - devices which do not have "driver"-link just do not have a |
77 | driver; copying the driver value in a child device context, is a | 76 | driver; copying the driver value in a child device context is a |
78 | bug in the application | 77 | bug in the application |
79 | 78 | ||
80 | o attributes | 79 | o attributes |
81 | - the files in the device directory or files below a subdirectories | 80 | - the files in the device directory or files below subdirectories |
82 | of the same device directory | 81 | of the same device directory |
83 | - accessing attributes reached by a symlink pointing to another device, | 82 | - accessing attributes reached by a symlink pointing to another device, |
84 | like the "device"-link, is a bug in the application | 83 | like the "device"-link, is a bug in the application |
85 | 84 | ||
86 | Everything else is just a kernel driver-core implementation detail, | 85 | Everything else is just a kernel driver-core implementation detail |
87 | that should not be assumed to be stable across kernel releases. | 86 | that should not be assumed to be stable across kernel releases. |
88 | 87 | ||
89 | - Properties of parent devices never belong into a child device. | 88 | - Properties of parent devices never belong into a child device. |
@@ -91,25 +90,25 @@ versions of the sysfs interface. | |||
91 | context properties. If the device 'eth0' or 'sda' does not have a | 90 | context properties. If the device 'eth0' or 'sda' does not have a |
92 | "driver"-link, then this device does not have a driver. Its value is empty. | 91 | "driver"-link, then this device does not have a driver. Its value is empty. |
93 | Never copy any property of the parent-device into a child-device. Parent | 92 | Never copy any property of the parent-device into a child-device. Parent |
94 | device-properties may change dynamically without any notice to the | 93 | device properties may change dynamically without any notice to the |
95 | child device. | 94 | child device. |
96 | 95 | ||
97 | - Hierarchy in a single device-tree | 96 | - Hierarchy in a single device tree |
98 | There is only one valid place in sysfs where hierarchy can be examined | 97 | There is only one valid place in sysfs where hierarchy can be examined |
99 | and this is below: /sys/devices. | 98 | and this is below: /sys/devices. |
100 | It is planned, that all device directories will end up in the tree | 99 | It is planned that all device directories will end up in the tree |
101 | below this directory. | 100 | below this directory. |
102 | 101 | ||
103 | - Classification by subsystem | 102 | - Classification by subsystem |
104 | There are currently three places for classification of devices: | 103 | There are currently three places for classification of devices: |
105 | /sys/block, /sys/class and /sys/bus. It is planned that these will | 104 | /sys/block, /sys/class and /sys/bus. It is planned that these will |
106 | not contain any device-directories themselves, but only flat lists of | 105 | not contain any device directories themselves, but only flat lists of |
107 | symlinks pointing to the unified /sys/devices tree. | 106 | symlinks pointing to the unified /sys/devices tree. |
108 | All three places have completely different rules on how to access | 107 | All three places have completely different rules on how to access |
109 | device information. It is planned to merge all three | 108 | device information. It is planned to merge all three |
110 | classification-directories into one place at /sys/subsystem, | 109 | classification directories into one place at /sys/subsystem, |
111 | following the layout of the bus-directories. All buses and | 110 | following the layout of the bus directories. All buses and |
112 | classes, including the converted block-subsystem, will show up | 111 | classes, including the converted block subsystem, will show up |
113 | there. | 112 | there. |
114 | The devices belonging to a subsystem will create a symlink in the | 113 | The devices belonging to a subsystem will create a symlink in the |
115 | "devices" directory at /sys/subsystem/<name>/devices. | 114 | "devices" directory at /sys/subsystem/<name>/devices. |
@@ -121,38 +120,38 @@ versions of the sysfs interface. | |||
121 | subsystem name. | 120 | subsystem name. |
122 | 121 | ||
123 | Assuming /sys/class/<subsystem> and /sys/bus/<subsystem>, or | 122 | Assuming /sys/class/<subsystem> and /sys/bus/<subsystem>, or |
124 | /sys/block and /sys/class/block are not interchangeable, is a bug in | 123 | /sys/block and /sys/class/block are not interchangeable is a bug in |
125 | the application. | 124 | the application. |
126 | 125 | ||
127 | - Block | 126 | - Block |
128 | The converted block-subsystem at /sys/class/block, or | 127 | The converted block subsystem at /sys/class/block or |
129 | /sys/subsystem/block will contain the links for disks and partitions | 128 | /sys/subsystem/block will contain the links for disks and partitions |
130 | at the same level, never in a hierarchy. Assuming the block-subsytem to | 129 | at the same level, never in a hierarchy. Assuming the block subsytem to |
131 | contain only disks and not partition-devices in the same flat list is | 130 | contain only disks and not partition devices in the same flat list is |
132 | a bug in the application. | 131 | a bug in the application. |
133 | 132 | ||
134 | - "device"-link and <subsystem>:<kernel name>-links | 133 | - "device"-link and <subsystem>:<kernel name>-links |
135 | Never depend on the "device"-link. The "device"-link is a workaround | 134 | Never depend on the "device"-link. The "device"-link is a workaround |
136 | for the old layout, where class-devices are not created in | 135 | for the old layout, where class devices are not created in |
137 | /sys/devices/ like the bus-devices. If the link-resolving of a | 136 | /sys/devices/ like the bus devices. If the link-resolving of a |
138 | device-directory does not end in /sys/devices/, you can use the | 137 | device directory does not end in /sys/devices/, you can use the |
139 | "device"-link to find the parent devices in /sys/devices/. That is the | 138 | "device"-link to find the parent devices in /sys/devices/. That is the |
140 | single valid use of the "device"-link, it must never appear in any | 139 | single valid use of the "device"-link; it must never appear in any |
141 | path as an element. Assuming the existence of the "device"-link for | 140 | path as an element. Assuming the existence of the "device"-link for |
142 | a device in /sys/devices/ is a bug in the application. | 141 | a device in /sys/devices/ is a bug in the application. |
143 | Accessing /sys/class/net/eth0/device is a bug in the application. | 142 | Accessing /sys/class/net/eth0/device is a bug in the application. |
144 | 143 | ||
145 | Never depend on the class-specific links back to the /sys/class | 144 | Never depend on the class-specific links back to the /sys/class |
146 | directory. These links are also a workaround for the design mistake | 145 | directory. These links are also a workaround for the design mistake |
147 | that class-devices are not created in /sys/devices. If a device | 146 | that class devices are not created in /sys/devices. If a device |
148 | directory does not contain directories for child devices, these links | 147 | directory does not contain directories for child devices, these links |
149 | may be used to find the child devices in /sys/class. That is the single | 148 | may be used to find the child devices in /sys/class. That is the single |
150 | valid use of these links, they must never appear in any path as an | 149 | valid use of these links; they must never appear in any path as an |
151 | element. Assuming the existence of these links for devices which are | 150 | element. Assuming the existence of these links for devices which are |
152 | real child device directories in the /sys/devices tree, is a bug in | 151 | real child device directories in the /sys/devices tree is a bug in |
153 | the application. | 152 | the application. |
154 | 153 | ||
155 | It is planned to remove all these links when when all class-device | 154 | It is planned to remove all these links when all class device |
156 | directories live in /sys/devices. | 155 | directories live in /sys/devices. |
157 | 156 | ||
158 | - Position of devices along device chain can change. | 157 | - Position of devices along device chain can change. |
@@ -161,6 +160,5 @@ versions of the sysfs interface. | |||
161 | the chain. You must always request the parent device you are looking for | 160 | the chain. You must always request the parent device you are looking for |
162 | by its subsystem value. You need to walk up the chain until you find | 161 | by its subsystem value. You need to walk up the chain until you find |
163 | the device that matches the expected subsystem. Depending on a specific | 162 | the device that matches the expected subsystem. Depending on a specific |
164 | position of a parent device, or exposing relative paths, using "../" to | 163 | position of a parent device or exposing relative paths using "../" to |
165 | access the chain of parents, is a bug in the application. | 164 | access the chain of parents is a bug in the application. |
166 | |||