forked from Minki/linux
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits) Documentation/kernel-docs.txt update. arch/cris: typo in KERN_INFO Storage class should be before const qualifier kernel/printk.c: comment fix update I/O sched Kconfig help texts - CFQ is now default, not AS. Remove duplicate listing of Cris arch from README kbuild: more doc. cleanups doc: make doc. for maxcpus= more visible drivers/net/eexpress.c: remove duplicate comment add a help text for BLK_DEV_GENERIC correct a dead URL in the IP_MULTICAST help text fix the BAYCOM_SER_HDX help text fix SCSI_SCAN_ASYNC help text trivial documentation patch for platform.txt Fix typos concerning hierarchy Fix comment typo "spin_lock_irqrestore". Fix misspellings of "agressive". drivers/scsi/a100u2w.c: trivial typo patch Correct trivial typo in log2.h. Remove useless FIND_FIRST_BIT() macro from cardbus.c. ...
This commit is contained in:
commit
874ff01bd9
@ -66,7 +66,7 @@ runtime memory footprint:
|
||||
|
||||
Device Enumeration
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
As a rule, platform specific (and often board-specific) setup code wil
|
||||
As a rule, platform specific (and often board-specific) setup code will
|
||||
register platform devices:
|
||||
|
||||
int platform_device_register(struct platform_device *pdev);
|
||||
@ -106,7 +106,7 @@ It's built from two components:
|
||||
* platform_device.id ... the device instance number, or else "-1"
|
||||
to indicate there's only one.
|
||||
|
||||
These are catenated, so name/id "serial"/0 indicates bus_id "serial.0", and
|
||||
These are concatenated, so name/id "serial"/0 indicates bus_id "serial.0", and
|
||||
"serial/3" indicates bus_id "serial.3"; both would use the platform_driver
|
||||
named "serial". While "my_rtc"/-1 would be bus_id "my_rtc" (no instance id)
|
||||
and use the platform_driver called "my_rtc".
|
||||
|
@ -65,7 +65,7 @@ Accessing legacy resources through sysfs
|
||||
----------------------------------------
|
||||
|
||||
Legacy I/O port and ISA memory resources are also provided in sysfs if the
|
||||
underlying platform supports them. They're located in the PCI class heirarchy,
|
||||
underlying platform supports them. They're located in the PCI class hierarchy,
|
||||
e.g.
|
||||
|
||||
/sys/class/pci_bus/0000:17/
|
||||
|
@ -34,7 +34,7 @@ This document describes the Linux kernel Makefiles.
|
||||
--- 6.1 Set variables to tweak the build to the architecture
|
||||
--- 6.2 Add prerequisites to archprepare:
|
||||
--- 6.3 List directories to visit when descending
|
||||
--- 6.4 Architecture specific boot images
|
||||
--- 6.4 Architecture-specific boot images
|
||||
--- 6.5 Building non-kbuild targets
|
||||
--- 6.6 Commands useful for building a boot image
|
||||
--- 6.7 Custom kbuild commands
|
||||
@ -124,7 +124,7 @@ more details, with real examples.
|
||||
Example:
|
||||
obj-y += foo.o
|
||||
|
||||
This tell kbuild that there is one object in that directory, named
|
||||
This tells kbuild that there is one object in that directory, named
|
||||
foo.o. foo.o will be built from foo.c or foo.S.
|
||||
|
||||
If foo.o shall be built as a module, the variable obj-m is used.
|
||||
@ -353,7 +353,7 @@ more details, with real examples.
|
||||
Special rules are used when the kbuild infrastructure does
|
||||
not provide the required support. A typical example is
|
||||
header files generated during the build process.
|
||||
Another example are the architecture specific Makefiles which
|
||||
Another example are the architecture-specific Makefiles which
|
||||
need special rules to prepare boot images etc.
|
||||
|
||||
Special rules are written as normal Make rules.
|
||||
@ -416,7 +416,7 @@ more details, with real examples.
|
||||
#arch/i386/kernel/Makefile
|
||||
vsyscall-flags += $(call ld-option, -Wl$(comma)--hash-style=sysv)
|
||||
|
||||
In the above example vsyscall-flags will be assigned the option
|
||||
In the above example, vsyscall-flags will be assigned the option
|
||||
-Wl$(comma)--hash-style=sysv if it is supported by $(CC).
|
||||
The second argument is optional, and if supplied will be used
|
||||
if first argument is not supported.
|
||||
@ -434,7 +434,7 @@ more details, with real examples.
|
||||
#arch/i386/Makefile
|
||||
cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
|
||||
|
||||
In the above example cflags-y will be assigned the option
|
||||
In the above example, cflags-y will be assigned the option
|
||||
-march=pentium-mmx if supported by $(CC), otherwise -march=i586.
|
||||
The second argument to cc-option is optional, and if omitted,
|
||||
cflags-y will be assigned no value if first option is not supported.
|
||||
@ -750,10 +750,10 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
located at the root of the obj tree.
|
||||
The very first objects linked are listed in head-y, assigned by
|
||||
arch/$(ARCH)/Makefile.
|
||||
7) Finally, the architecture specific part does any required post processing
|
||||
7) Finally, the architecture-specific part does any required post processing
|
||||
and builds the final bootimage.
|
||||
- This includes building boot records
|
||||
- Preparing initrd images and thelike
|
||||
- Preparing initrd images and the like
|
||||
|
||||
|
||||
--- 6.1 Set variables to tweak the build to the architecture
|
||||
@ -880,7 +880,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
|
||||
$(head-y) lists objects to be linked first in vmlinux.
|
||||
$(libs-y) lists directories where a lib.a archive can be located.
|
||||
The rest lists directories where a built-in.o object file can be
|
||||
The rest list directories where a built-in.o object file can be
|
||||
located.
|
||||
|
||||
$(init-y) objects will be located after $(head-y).
|
||||
@ -888,7 +888,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
$(core-y), $(libs-y), $(drivers-y) and $(net-y).
|
||||
|
||||
The top level Makefile defines values for all generic directories,
|
||||
and arch/$(ARCH)/Makefile only adds architecture specific directories.
|
||||
and arch/$(ARCH)/Makefile only adds architecture-specific directories.
|
||||
|
||||
Example:
|
||||
#arch/sparc64/Makefile
|
||||
@ -897,7 +897,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/
|
||||
|
||||
|
||||
--- 6.4 Architecture specific boot images
|
||||
--- 6.4 Architecture-specific boot images
|
||||
|
||||
An arch Makefile specifies goals that take the vmlinux file, compress
|
||||
it, wrap it in bootstrapping code, and copy the resulting files
|
||||
@ -924,7 +924,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
"$(Q)$(MAKE) $(build)=<dir>" is the recommended way to invoke
|
||||
make in a subdirectory.
|
||||
|
||||
There are no rules for naming architecture specific targets,
|
||||
There are no rules for naming architecture-specific targets,
|
||||
but executing "make help" will list all relevant targets.
|
||||
To support this, $(archhelp) must be defined.
|
||||
|
||||
@ -982,7 +982,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
$(call if_changed,ld/objcopy/gzip)
|
||||
|
||||
When the rule is evaluated, it is checked to see if any files
|
||||
needs an update, or the command line has changed since the last
|
||||
need an update, or the command line has changed since the last
|
||||
invocation. The latter will force a rebuild if any options
|
||||
to the executable have changed.
|
||||
Any target that utilises if_changed must be listed in $(targets),
|
||||
@ -1089,7 +1089,7 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
assignment.
|
||||
|
||||
The kbuild infrastructure for *lds file are used in several
|
||||
architecture specific files.
|
||||
architecture-specific files.
|
||||
|
||||
|
||||
=== 7 Kbuild Variables
|
||||
@ -1133,7 +1133,7 @@ The top Makefile exports the following variables:
|
||||
|
||||
This variable defines a place for the arch Makefiles to install
|
||||
the resident kernel image and System.map file.
|
||||
Use this for architecture specific install targets.
|
||||
Use this for architecture-specific install targets.
|
||||
|
||||
INSTALL_MOD_PATH, MODLIB
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
|
||||
Index of Documentation for People Interested in Writing and/or
|
||||
|
||||
Understanding the Linux Kernel.
|
||||
|
||||
Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
|
||||
|
||||
Index of Documentation for People Interested in Writing and/or
|
||||
|
||||
Understanding the Linux Kernel.
|
||||
|
||||
Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
|
||||
|
||||
/*
|
||||
* The latest version of this document may be found at:
|
||||
* http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
|
||||
@ -61,18 +61,18 @@
|
||||
13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
|
||||
Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
|
||||
General Public License, Glossary". In short: a must have.
|
||||
|
||||
* Title: "The Linux Kernel Hackers' Guide"
|
||||
Author: Michael K.Johnson and others.
|
||||
URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
|
||||
Keywords: everything!
|
||||
Description: No more Postscript book-like version. Only HTML now.
|
||||
Many people have contributed. The interface is similar to web
|
||||
available mailing lists archives. You can find some articles and
|
||||
then some mails asking questions about them and/or complementing
|
||||
previous contributions. A little bit anarchic in this aspect, but
|
||||
with some valuable information in some cases.
|
||||
|
||||
|
||||
* Title: "Linux Device Drivers, 2nd Edition"
|
||||
Author: Alessandro Rubini and Jonathan Corbet.
|
||||
URL: http://www.xml.com/ldd/chapter/book/index.html
|
||||
Keywords: device drivers, modules, debugging, memory, hardware,
|
||||
interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
|
||||
buses.
|
||||
Description: O'Reilly's popular book, now also on-line under the
|
||||
GNU Free Documentation License.
|
||||
Notes: You can also buy it in paper-form from O'Reilly. See below
|
||||
under BOOKS (Not on-line).
|
||||
|
||||
* Title: "Conceptual Architecture of the Linux Kernel"
|
||||
Author: Ivan T. Bowman.
|
||||
URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a1.html
|
||||
@ -81,17 +81,17 @@
|
||||
Description: Conceptual software arquitecture of the Linux kernel,
|
||||
automatically extracted from the source code. Very detailed. Good
|
||||
figures. Gives good overall kernel understanding.
|
||||
|
||||
|
||||
* Title: "Concrete Architecture of the Linux Kernel"
|
||||
Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
|
||||
URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a2.html
|
||||
Keywords: concrete arquitecture, extracted design, reverse
|
||||
Keywords: concrete architecture, extracted design, reverse
|
||||
engineering, system structure, dependencies.
|
||||
Description: Concrete arquitecture of the Linux kernel,
|
||||
Description: Concrete architecture of the Linux kernel,
|
||||
automatically extracted from the source code. Very detailed. Good
|
||||
figures. Gives good overall kernel understanding. This papers
|
||||
focus on lower details than its predecessor (files, variables...).
|
||||
|
||||
|
||||
* Title: "Linux as a Case Study: Its Extracted Software
|
||||
Architecture"
|
||||
Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
|
||||
@ -101,7 +101,7 @@
|
||||
Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
|
||||
1999. A mixture of the previous two documents from the same
|
||||
author.
|
||||
|
||||
|
||||
* Title: "Overview of the Virtual File System"
|
||||
Author: Richard Gooch.
|
||||
URL: http://www.atnf.csiro.au/~rgooch/linux/vfs.txt
|
||||
@ -111,20 +111,20 @@
|
||||
What is it, how it works, operations taken when opening a file or
|
||||
mounting a file system and description of important data
|
||||
structures explaining the purpose of each of their entries.
|
||||
|
||||
|
||||
* Title: "The Linux RAID-1, 4, 5 Code"
|
||||
Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue44/2391.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=2391
|
||||
Keywords: RAID, MD driver.
|
||||
Description: Linux Journal Kernel Korner article. Here is it's
|
||||
abstract: "A description of the implementation of the RAID-1,
|
||||
RAID-4 and RAID-5 personalities of the MD device driver in the
|
||||
Linux kernel, providing users with high performance and reliable,
|
||||
secondary-storage capability using software".
|
||||
|
||||
|
||||
* Title: "Dynamic Kernels: Modularized Device Drivers"
|
||||
Author: Alessandro Rubini.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue23/1219.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1219
|
||||
Keywords: device driver, module, loading/unloading modules,
|
||||
allocating resources.
|
||||
Description: Linux Journal Kernel Korner article. Here is it's
|
||||
@ -134,10 +134,10 @@
|
||||
loadable modules. This installment presents an introduction to the
|
||||
topic, preparing the reader to understand next month's
|
||||
installment".
|
||||
|
||||
|
||||
* Title: "Dynamic Kernels: Discovery"
|
||||
Author: Alessandro Rubini.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue24/1220.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1220
|
||||
Keywords: character driver, init_module, clean_up module,
|
||||
autodetection, mayor number, minor number, file operations,
|
||||
open(), close().
|
||||
@ -146,20 +146,20 @@
|
||||
the actual code to create custom module implementing a character
|
||||
device driver. It describes the code for module initialization and
|
||||
cleanup, as well as the open() and close() system calls".
|
||||
|
||||
|
||||
* Title: "The Devil's in the Details"
|
||||
Author: Georg v. Zezschwitz and Alessandro Rubini.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue25/1221.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1221
|
||||
Keywords: read(), write(), select(), ioctl(), blocking/non
|
||||
blocking mode, interrupt handler.
|
||||
Description: Linux Journal Kernel Korner article. Here is it's
|
||||
abstract: "This article, the third of four on writing character
|
||||
device drivers, introduces concepts of reading, writing, and using
|
||||
ioctl-calls".
|
||||
|
||||
|
||||
* Title: "Dissecting Interrupts and Browsing DMA"
|
||||
Author: Alessandro Rubini and Georg v. Zezschwitz.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue26/1222.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1222
|
||||
Keywords: interrupts, irqs, DMA, bottom halves, task queues.
|
||||
Description: Linux Journal Kernel Korner article. Here is it's
|
||||
abstract: "This is the fourth in a series of articles about
|
||||
@ -170,10 +170,10 @@
|
||||
writing, and several different facilities have been provided for
|
||||
different situations. We also investigate the complex topic of
|
||||
DMA".
|
||||
|
||||
|
||||
* Title: "Device Drivers Concluded"
|
||||
Author: Georg v. Zezschwitz.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue28/1287.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1287
|
||||
Keywords: address spaces, pages, pagination, page management,
|
||||
demand loading, swapping, memory protection, memory mapping, mmap,
|
||||
virtual memory areas (VMAs), vremap, PCI.
|
||||
@ -182,10 +182,10 @@
|
||||
five articles about character device drivers. In this final
|
||||
section, Georg deals with memory mapping devices, beginning with
|
||||
an overall description of the Linux memory management concepts".
|
||||
|
||||
|
||||
* Title: "Network Buffers And Memory Management"
|
||||
Author: Alan Cox.
|
||||
URL: http://www2.linuxjournal.com/lj-issues/issue30/1312.html
|
||||
URL: http://www.linuxjournal.com/article.php?sid=1312
|
||||
Keywords: sk_buffs, network devices, protocol/link layer
|
||||
variables, network devices flags, transmit, receive,
|
||||
configuration, multicast.
|
||||
@ -214,28 +214,26 @@
|
||||
of the Coda filesystem. This version document is meant to describe
|
||||
the current interface (version 1.0) as well as improvements we
|
||||
envisage".
|
||||
|
||||
|
||||
* Title: "Programming PCI-Devices under Linux"
|
||||
Author: Claus Schroeter.
|
||||
URL:
|
||||
ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps
|
||||
.gz
|
||||
ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps.gz
|
||||
Keywords: PCI, device, busmastering.
|
||||
Description: 6 pages tutorial on PCI programming under Linux.
|
||||
Gives the basic concepts on the architecture of the PCI subsystem,
|
||||
as long as basic functions and macros to read/write the devices
|
||||
and perform busmastering.
|
||||
|
||||
|
||||
* Title: "Writing Character Device Driver for Linux"
|
||||
Author: R. Baruch and C. Schroeter.
|
||||
URL:
|
||||
ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers
|
||||
.ps.gz
|
||||
ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers.ps.gz
|
||||
Keywords: character device drivers, I/O, signals, DMA, accessing
|
||||
ports in user space, kernel environment.
|
||||
Description: 68 pages paper on writing character drivers. A little
|
||||
bit old (1.993, 1.994) although still useful.
|
||||
|
||||
|
||||
* Title: "Design and Implementation of the Second Extended
|
||||
Filesystem"
|
||||
Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
|
||||
@ -249,14 +247,14 @@
|
||||
e2fsck's passes description... A must read!
|
||||
Notes: This paper was first published in the Proceedings of the
|
||||
First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
|
||||
|
||||
|
||||
* Title: "Analysis of the Ext2fs structure"
|
||||
Author: Louis-Dominique Dubeau.
|
||||
URL: http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html
|
||||
URL: http://www.nondot.org/sabre/os/files/FileSystems/ext2fs/
|
||||
Keywords: ext2, filesystem, ext2fs.
|
||||
Description: Description of ext2's blocks, directories, inodes,
|
||||
bitmaps, invariants...
|
||||
|
||||
|
||||
* Title: "Journaling the Linux ext2fs Filesystem"
|
||||
Author: Stephen C. Tweedie.
|
||||
URL:
|
||||
@ -265,7 +263,7 @@
|
||||
Description: Excellent 8-pages paper explaining the journaling
|
||||
capabilities added to ext2 by the author, showing different
|
||||
problems faced and the alternatives chosen.
|
||||
|
||||
|
||||
* Title: "Kernel API changes from 2.0 to 2.2"
|
||||
Author: Richard Gooch.
|
||||
URL:
|
||||
@ -273,7 +271,7 @@
|
||||
Keywords: 2.2, changes.
|
||||
Description: Kernel functions/structures/variables which changed
|
||||
from 2.0.x to 2.2.x.
|
||||
|
||||
|
||||
* Title: "Kernel API changes from 2.2 to 2.4"
|
||||
Author: Richard Gooch.
|
||||
URL:
|
||||
@ -345,17 +343,7 @@
|
||||
Notes: Beware: the main page states: "This document may not be
|
||||
published, printed or used in excerpts without explicit permission
|
||||
of the author". Fortunately, it may still be read...
|
||||
|
||||
* Title: "Tour Of the Linux Kernel Source"
|
||||
Author: Vijo Cherian.
|
||||
URL: http://www.geocities.com/vijoc/tolks/tolks.html
|
||||
Keywords: .
|
||||
Description: A classic of this page! Was lost for a while and is
|
||||
back again. Thanks Vijo! TOLKS: the name says it all. A tour of
|
||||
the sources, describing directories, files, variables, data
|
||||
structures... It covers general stuff, device drivers,
|
||||
filesystems, IPC and Networking Code.
|
||||
|
||||
|
||||
* Title: "Linux Kernel Mailing List Glossary"
|
||||
Author: various
|
||||
URL: http://kernelnewbies.org/glossary/
|
||||
@ -377,7 +365,17 @@
|
||||
kernels, but most of it applies to 2.2 too; 2.0 is slightly
|
||||
different". Freely redistributable under the conditions of the GNU
|
||||
General Public License.
|
||||
|
||||
|
||||
* Title: "Global spinlock list and usage"
|
||||
Author: Rick Lindsley.
|
||||
URL: http://lse.sourceforge.net/lockhier/global-spin-lock
|
||||
Keywords: spinlock.
|
||||
Description: This is an attempt to document both the existence and
|
||||
usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
|
||||
list of spinlocks showing when they are used, which functions
|
||||
access them, how each lock is acquired, under what conditions it
|
||||
is held, whether interrupts can occur or not while it is held...
|
||||
|
||||
* Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
|
||||
Features "
|
||||
Author: Alan Cox.
|
||||
@ -385,70 +383,70 @@
|
||||
Keywords: ports, porting.
|
||||
Description: Article from Linux Magazine on porting from 2.0 to
|
||||
2.2 kernels.
|
||||
|
||||
|
||||
* Title: "Porting Device Drivers To Linux 2.2: part II"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-06/gear_01.html
|
||||
Keywords: ports, porting.
|
||||
Description: Second part on porting from 2.0 to 2.2 kernels.
|
||||
|
||||
|
||||
* Title: "How To Make Sure Your Driver Will Work On The Power
|
||||
Macintosh"
|
||||
Author: Paul Mackerras.
|
||||
URL: http://www.linux-mag.com/1999-07/gear_01.html
|
||||
Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "An Introduction to SCSI Drivers"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-08/gear_01.html
|
||||
Keywords: SCSI, device, driver.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "Advanced SCSI Drivers And Other Tales"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-09/gear_01.html
|
||||
Keywords: SCSI, device, driver, advanced.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "Writing Linux Mouse Drivers"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-10/gear_01.html
|
||||
Keywords: mouse, driver, gpm.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "More on Mouse Drivers"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-11/gear_01.html
|
||||
Keywords: mouse, driver, gpm, races, asynchronous I/O.
|
||||
Description: The title still says it all.
|
||||
|
||||
|
||||
* Title: "Writing Video4linux Radio Driver"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/1999-12/gear_01.html
|
||||
Keywords: video4linux, driver, radio, radio devices.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "Video4linux Drivers, Part 1: Video-Capture Device"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/2000-01/gear_01.html
|
||||
Keywords: video4linux, driver, video capture, capture devices,
|
||||
camera driver.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "Video4linux Drivers, Part 2: Video-capture Devices"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/2000-02/gear_01.html
|
||||
Keywords: video4linux, driver, video capture, capture devices,
|
||||
camera driver, control, query capabilities, capability, facility.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "PCI Management in Linux 2.2"
|
||||
Author: Alan Cox.
|
||||
URL: http://www.linux-mag.com/2000-03/gear_01.html
|
||||
Keywords: PCI, bus, bus-mastering.
|
||||
Description: The title says it all.
|
||||
|
||||
|
||||
* Title: "Linux 2.4 Kernel Internals"
|
||||
Author: Tigran Aivazian and Christoph Hellwig.
|
||||
URL: http://www.moses.uklinux.net/patches/lki.html
|
||||
@ -456,13 +454,11 @@
|
||||
Description: A little book used for a short training course.
|
||||
Covers building the kernel image, booting (including SMP bootup),
|
||||
process management, VFS and more.
|
||||
|
||||
|
||||
* Title: "Linux IP Networking. A Guide to the Implementation and
|
||||
Modification of the Linux Protocol Stack."
|
||||
Author: Glenn Herrin.
|
||||
URL:
|
||||
http://kernelnewbies.org/documents/ipnetworking/linuxipnetworking.
|
||||
html
|
||||
URL: http://www.cs.unh.edu/cnrg/gherrin
|
||||
Keywords: network, networking, protocol, IP, UDP, TCP, connection,
|
||||
socket, receiving, transmitting, forwarding, routing, packets,
|
||||
modules, /proc, sk_buff, FIB, tags.
|
||||
@ -495,7 +491,7 @@
|
||||
drivers for the Linux PCMCIA Card Services interface. It also
|
||||
describes how to write user-mode utilities for communicating with
|
||||
Card Services.
|
||||
|
||||
|
||||
* Title: "The Linux Kernel NFSD Implementation"
|
||||
Author: Neil Brown.
|
||||
URL:
|
||||
@ -591,47 +587,22 @@
|
||||
Pages: 520.
|
||||
ISBN: 2-212-08932-5
|
||||
Notes: French.
|
||||
|
||||
* Title: "The Linux Kernel Book"
|
||||
Author: Remy Card, Eric Dumas, Franck Mevel.
|
||||
Publisher: John Wiley & Sons.
|
||||
Date: 1998.
|
||||
ISBN: 0-471-98141-9
|
||||
Notes: English translation.
|
||||
|
||||
* Title: "Linux 2.0"
|
||||
Author: Remy Card, Eric Dumas, Franck Mevel.
|
||||
Publisher: Gestión 2000.
|
||||
Date: 1997.
|
||||
Pages: 501.
|
||||
ISBN: 8-480-88208-5
|
||||
Notes: Spanish translation.
|
||||
|
||||
|
||||
* Title: "Unix internals -- the new frontiers"
|
||||
Author: Uresh Vahalia.
|
||||
Publisher: Prentice Hall.
|
||||
Date: 1996.
|
||||
Pages: 600.
|
||||
ISBN: 0-13-101908-2
|
||||
|
||||
* Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge
|
||||
on the Core Kernel of the Linux Code"
|
||||
Author: Scott Maxwell.
|
||||
Publisher: Coriolis.
|
||||
Date: 1999.
|
||||
Pages: 592.
|
||||
ISBN: 1-57610-469-9
|
||||
Notes: CD-ROM included. Line by line commentary of the kernel
|
||||
code.
|
||||
|
||||
* Title: "Linux IP Stacks Commentary"
|
||||
Author: Stephen Satchell and HBJ Clifford.
|
||||
Publisher: Coriolis.
|
||||
Date: 2000.
|
||||
Pages: ???.
|
||||
ISBN: 1-57610-470-2
|
||||
Notes: Line by line source code commentary book.
|
||||
|
||||
|
||||
* Title: "The Design and Implementation of the 4.4 BSD UNIX
|
||||
Operating System"
|
||||
Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
|
||||
John S. Quarterman.
|
||||
Publisher: Addison-Wesley.
|
||||
Date: 1996.
|
||||
ISBN: 0-201-54979-4
|
||||
|
||||
* Title: "Programming for the real world - POSIX.4"
|
||||
Author: Bill O. Gallmeister.
|
||||
Publisher: O'Reilly & Associates, Inc..
|
||||
@ -640,18 +611,32 @@
|
||||
ISBN: I-56592-074-0
|
||||
Notes: Though not being directly about Linux, Linux aims to be
|
||||
POSIX. Good reference.
|
||||
|
||||
* Title: "Understanding the Linux Kernel"
|
||||
Author: Daniel P. Bovet and Marco Cesati.
|
||||
Publisher: O'Reilly & Associates, Inc..
|
||||
Date: 2000.
|
||||
Pages: 702.
|
||||
ISBN: 0-596-00002-2
|
||||
Notes: Further information in
|
||||
http://www.oreilly.com/catalog/linuxkernel/
|
||||
|
||||
|
||||
* Title: "UNIX Systems for Modern Architectures: Symmetric
|
||||
Multiprocesssing and Caching for Kernel Programmers"
|
||||
Author: Curt Schimmel.
|
||||
Publisher: Addison Wesley.
|
||||
Date: June, 1994.
|
||||
Pages: 432.
|
||||
ISBN: 0-201-63338-8
|
||||
|
||||
* Title: "The Design and Implementation of the 4.3 BSD UNIX
|
||||
Operating System"
|
||||
Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
|
||||
Karels, John S. Quarterman.
|
||||
Publisher: Addison-Wesley.
|
||||
Date: 1989 (reprinted with corrections on October, 1990).
|
||||
ISBN: 0-201-06196-1
|
||||
|
||||
* Title: "The Design of the UNIX Operating System"
|
||||
Author: Maurice J. Bach.
|
||||
Publisher: Prentice Hall.
|
||||
Date: 1986.
|
||||
Pages: 471.
|
||||
ISBN: 0-13-201757-1
|
||||
|
||||
MISCELLANEOUS:
|
||||
|
||||
|
||||
* Name: linux/Documentation
|
||||
Author: Many.
|
||||
URL: Just look inside your kernel sources.
|
||||
@ -660,7 +645,7 @@
|
||||
inside the Documentation directory. Some pages from this document
|
||||
(including this document itself) have been moved there, and might
|
||||
be more up to date than the web version.
|
||||
|
||||
|
||||
* Name: "Linux Source Driver"
|
||||
URL: http://lsd.linux.cz
|
||||
Keywords: Browsing source code.
|
||||
@ -671,7 +656,7 @@
|
||||
you can search Linux kernel (fulltext, macros, types, functions
|
||||
and variables) and LSD can generate patches for you on the fly
|
||||
(files, directories or kernel)".
|
||||
|
||||
|
||||
* Name: "Linux Kernel Source Reference"
|
||||
Author: Thomas Graichen.
|
||||
URL: http://innominate.org/~graichen/projects/lksr/
|
||||
@ -681,27 +666,27 @@
|
||||
sources of any version starting from 1.0 up to the (daily updated)
|
||||
current version available. Also you can check the differences
|
||||
between two versions of a file".
|
||||
|
||||
|
||||
* Name: "Cross-Referencing Linux"
|
||||
URL: http://lxr.linux.no/source/
|
||||
Keywords: Browsing source code.
|
||||
Description: Another web-based Linux kernel source code browser.
|
||||
Lots of cross references to variables and functions. You can see
|
||||
where they are defined and where they are used.
|
||||
|
||||
|
||||
* Name: "Linux Weekly News"
|
||||
URL: http://lwn.net
|
||||
Keywords: latest kernel news.
|
||||
Description: The title says it all. There's a fixed kernel section
|
||||
summarizing developers' work, bug fixes, new features and versions
|
||||
produced during the week. Published every Thursday.
|
||||
|
||||
|
||||
* Name: "Kernel Traffic"
|
||||
URL: http://www.kerneltraffic.org/kernel-traffic/
|
||||
URL: http://kt.zork.net/kernel-traffic/
|
||||
Keywords: linux-kernel mailing list, weekly kernel news.
|
||||
Description: Weekly newsletter covering the most relevant
|
||||
discussions of the linux-kernel mailing list.
|
||||
|
||||
|
||||
* Name: "CuTTiNG.eDGe.LiNuX"
|
||||
URL: http://edge.kernelnotes.org
|
||||
Keywords: changelist.
|
||||
@ -709,7 +694,7 @@
|
||||
release. What's new, what's better, what's changed. Myrdraal reads
|
||||
the patches and describes them. Pointers to the patches are there,
|
||||
too.
|
||||
|
||||
|
||||
* Name: "New linux-kernel Mailing List FAQ"
|
||||
URL: http://www.tux.org/lkml/
|
||||
Keywords: linux-kernel mailing list FAQ.
|
||||
@ -719,7 +704,7 @@
|
||||
it. Read it to see how to join the mailing list. Dozens of
|
||||
interesting questions regarding the list, Linux, developers (who
|
||||
is ...?), terms (what is...?) are answered here too. Just read it.
|
||||
|
||||
|
||||
* Name: "Linux Virtual File System"
|
||||
Author: Peter J. Braam.
|
||||
URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
|
||||
@ -727,10 +712,10 @@
|
||||
Description: Set of slides, presumably from a presentation on the
|
||||
Linux VFS layer. Covers version 2.1.x, with dentries and the
|
||||
dcache.
|
||||
|
||||
|
||||
* Name: "Gary's Encyclopedia - The Linux Kernel"
|
||||
Author: Gary (I suppose...).
|
||||
URL: http://members.aa.net/~swear/pedia/kernel.html
|
||||
URL: http://www.lisoleg.net/cgi-bin/lisoleg.pl?view=kernel.htm
|
||||
Keywords: links, not found here?.
|
||||
Description: Gary's Encyclopedia exists to allow the rapid finding
|
||||
of documentation and other information of interest to GNU/Linux
|
||||
@ -738,7 +723,7 @@
|
||||
categories. This link is for kernel-specific links, documents,
|
||||
sites... Look there if you could not find here what you were
|
||||
looking for.
|
||||
|
||||
|
||||
* Name: "The home page of Linux-MM"
|
||||
Author: The Linux-MM team.
|
||||
URL: http://linux-mm.org/
|
||||
@ -747,7 +732,7 @@
|
||||
Description: Site devoted to Linux Memory Management development.
|
||||
Memory related patches, HOWTOs, links, mm developers... Don't miss
|
||||
it if you are interested in memory management development!
|
||||
|
||||
|
||||
* Name: "Kernel Newbies IRC Channel"
|
||||
URL: http://www.kernelnewbies.org
|
||||
Keywords: IRC, newbies, channel, asking doubts.
|
||||
|
@ -864,7 +864,14 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
Format: <1-256>
|
||||
|
||||
maxcpus= [SMP] Maximum number of processors that an SMP kernel
|
||||
should make use of
|
||||
should make use of.
|
||||
Using "nosmp" or "maxcpus=0" will disable SMP
|
||||
entirely (the MPS table probe still happens, though).
|
||||
A command-line option of "maxcpus=<NUM>", where <NUM>
|
||||
is an integer greater than 0, limits the maximum number
|
||||
of CPUs activated in SMP mode to <NUM>.
|
||||
Using "maxcpus=1" on an SMP kernel is the trivial
|
||||
case of an SMP kernel with only one CPU.
|
||||
|
||||
max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
|
||||
equal to this physical address is ignored.
|
||||
|
@ -17,7 +17,7 @@ of the board-specific code (with the exception of stboards) ended up
|
||||
in arch/sh/kernel/ directly, with board-specific headers ending up in
|
||||
include/asm-sh/. For the new kernel, things are broken out by board type,
|
||||
companion chip type, and CPU type. Looking at a tree view of this directory
|
||||
heirarchy looks like the following:
|
||||
hierarchy looks like the following:
|
||||
|
||||
Board-specific code:
|
||||
|
||||
@ -108,7 +108,7 @@ overloading), and you can feel free to name the directory after the family
|
||||
member itself.
|
||||
|
||||
There are a few things that each board is required to have, both in the
|
||||
arch/sh/boards and the include/asm-sh/ heirarchy. In order to better
|
||||
arch/sh/boards and the include/asm-sh/ hierarchy. In order to better
|
||||
explain this, we use some examples for adding an imaginary board. For
|
||||
setup code, we're required at the very least to provide definitions for
|
||||
get_system_type() and platform_setup(). For our imaginary board, this
|
||||
|
@ -57,7 +57,7 @@ bttv.o
|
||||
i2c_udelay= Allow reduce I2C speed. Default is 5 usecs
|
||||
(meaning 66,67 Kbps). The default is the
|
||||
maximum supported speed by kernel bitbang
|
||||
algoritm. You may use lower numbers, if I2C
|
||||
algorithm. You may use lower numbers, if I2C
|
||||
messages are lost (16 is known to work on
|
||||
all supported cards).
|
||||
|
||||
|
2
README
2
README
@ -24,7 +24,7 @@ ON WHAT HARDWARE DOES IT RUN?
|
||||
today Linux also runs on (at least) the Compaq Alpha AXP, Sun SPARC and
|
||||
UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell,
|
||||
IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS,
|
||||
Cris, Xtensa, AVR32 and Renesas M32R architectures.
|
||||
Xtensa, AVR32 and Renesas M32R architectures.
|
||||
|
||||
Linux is easily portable to most general-purpose 32- or 64-bit architectures
|
||||
as long as they have a paged memory management unit (PMMU) and a port of the
|
||||
|
@ -427,7 +427,7 @@ source arch/arm/mm/Kconfig
|
||||
|
||||
config IWMMXT
|
||||
bool "Enable iWMMXt support"
|
||||
depends CPU_XSCALE || CPU_XSC3
|
||||
depends on CPU_XSCALE || CPU_XSC3
|
||||
default y if PXA27x
|
||||
help
|
||||
Enable support for iWMMXt context switching at run time if
|
||||
|
@ -525,7 +525,7 @@ config CPU_BIG_ENDIAN
|
||||
of your chipset/board/processor.
|
||||
|
||||
config CPU_HIGH_VECTOR
|
||||
depends !MMU && CPU_CP15 && !CPU_ARM740T
|
||||
depends on !MMU && CPU_CP15 && !CPU_ARM740T
|
||||
bool "Select the High exception vector"
|
||||
default n
|
||||
help
|
||||
|
@ -311,7 +311,7 @@ pcf8563_register(void)
|
||||
{
|
||||
pcf8563_init();
|
||||
if (register_chrdev(PCF8563_MAJOR, DEVICE_NAME, &pcf8563_fops) < 0) {
|
||||
printk(KERN_INFO "%s: Unable to get major numer %d for RTC device.\n",
|
||||
printk(KERN_INFO "%s: Unable to get major number %d for RTC device.\n",
|
||||
PCF8563_NAME, PCF8563_MAJOR);
|
||||
return -1;
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ pcf8563_init(void)
|
||||
goto err;
|
||||
|
||||
if (register_chrdev(PCF8563_MAJOR, DEVICE_NAME, &pcf8563_fops) < 0) {
|
||||
printk(KERN_INFO "%s: Unable to get major numer %d for RTC device.\n",
|
||||
printk(KERN_INFO "%s: Unable to get major number %d for RTC device.\n",
|
||||
PCF8563_NAME, PCF8563_MAJOR);
|
||||
return -1;
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <endian.h>
|
||||
|
||||
#define MAX_SHDRS 100
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
static Elf32_Ehdr ehdr;
|
||||
static Elf32_Shdr shdr[MAX_SHDRS];
|
||||
static Elf32_Sym *symtab[MAX_SHDRS];
|
||||
@ -71,7 +72,7 @@ static const char *sym_type(unsigned type)
|
||||
#undef SYM_TYPE
|
||||
};
|
||||
const char *name = "unknown sym type name";
|
||||
if (type < sizeof(type_name)/sizeof(type_name[0])) {
|
||||
if (type < ARRAY_SIZE(type_name)) {
|
||||
name = type_name[type];
|
||||
}
|
||||
return name;
|
||||
@ -87,7 +88,7 @@ static const char *sym_bind(unsigned bind)
|
||||
#undef SYM_BIND
|
||||
};
|
||||
const char *name = "unknown sym bind name";
|
||||
if (bind < sizeof(bind_name)/sizeof(bind_name[0])) {
|
||||
if (bind < ARRAY_SIZE(bind_name)) {
|
||||
name = bind_name[bind];
|
||||
}
|
||||
return name;
|
||||
@ -104,7 +105,7 @@ static const char *sym_visibility(unsigned visibility)
|
||||
#undef SYM_VISIBILITY
|
||||
};
|
||||
const char *name = "unknown sym visibility name";
|
||||
if (visibility < sizeof(visibility_name)/sizeof(visibility_name[0])) {
|
||||
if (visibility < ARRAY_SIZE(visibility_name)) {
|
||||
name = visibility_name[visibility];
|
||||
}
|
||||
return name;
|
||||
@ -128,7 +129,7 @@ static const char *rel_type(unsigned type)
|
||||
#undef REL_TYPE
|
||||
};
|
||||
const char *name = "unknown type rel type name";
|
||||
if (type < sizeof(type_name)/sizeof(type_name[0])) {
|
||||
if (type < ARRAY_SIZE(type_name)) {
|
||||
name = type_name[type];
|
||||
}
|
||||
return name;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* arch/i386/kernel/topology.c - Populate driverfs with topology information
|
||||
* arch/i386/kernel/topology.c - Populate sysfs with topology information
|
||||
*
|
||||
* Written by: Matthew Dobson, IBM Corporation
|
||||
* Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL
|
||||
|
@ -63,7 +63,7 @@ static struct sys_device device_oprofile = {
|
||||
};
|
||||
|
||||
|
||||
static int __init init_driverfs(void)
|
||||
static int __init init_sysfs(void)
|
||||
{
|
||||
int error;
|
||||
if (!(error = sysdev_class_register(&oprofile_sysclass)))
|
||||
@ -72,15 +72,15 @@ static int __init init_driverfs(void)
|
||||
}
|
||||
|
||||
|
||||
static void exit_driverfs(void)
|
||||
static void exit_sysfs(void)
|
||||
{
|
||||
sysdev_unregister(&device_oprofile);
|
||||
sysdev_class_unregister(&oprofile_sysclass);
|
||||
}
|
||||
|
||||
#else
|
||||
#define init_driverfs() do { } while (0)
|
||||
#define exit_driverfs() do { } while (0)
|
||||
#define init_sysfs() do { } while (0)
|
||||
#define exit_sysfs() do { } while (0)
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
static int profile_exceptions_notify(struct notifier_block *self,
|
||||
@ -385,7 +385,7 @@ static int __init ppro_init(char ** cpu_type)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* in order to get driverfs right */
|
||||
/* in order to get sysfs right */
|
||||
static int using_nmi;
|
||||
|
||||
int __init op_nmi_init(struct oprofile_operations *ops)
|
||||
@ -440,7 +440,7 @@ int __init op_nmi_init(struct oprofile_operations *ops)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
init_driverfs();
|
||||
init_sysfs();
|
||||
using_nmi = 1;
|
||||
ops->create_files = nmi_create_files;
|
||||
ops->setup = nmi_setup;
|
||||
@ -456,5 +456,5 @@ int __init op_nmi_init(struct oprofile_operations *ops)
|
||||
void op_nmi_exit(void)
|
||||
{
|
||||
if (using_nmi)
|
||||
exit_driverfs();
|
||||
exit_sysfs();
|
||||
}
|
||||
|
@ -147,7 +147,7 @@
|
||||
* in UP:
|
||||
* - we need to protect against PMU overflow interrupts (local_irq_disable)
|
||||
*
|
||||
* spin_lock_irqsave()/spin_lock_irqrestore():
|
||||
* spin_lock_irqsave()/spin_unlock_irqrestore():
|
||||
* in SMP: local_irq_disable + spin_lock
|
||||
* in UP : local_irq_disable
|
||||
*
|
||||
|
@ -293,7 +293,7 @@ long strnlen_user(const char __user *s, long n)
|
||||
: "0" (n), "1" (s), "r" (n & 3), "r" (mask), "r"(0x01010101)
|
||||
: "r0", "r1", "cbit");
|
||||
|
||||
/* NOTE: strnlen_user() algorism:
|
||||
/* NOTE: strnlen_user() algorithm:
|
||||
* {
|
||||
* char *p;
|
||||
* for (p = s; n-- && *p != '\0'; ++p)
|
||||
@ -369,7 +369,7 @@ long strnlen_user(const char __user *s, long n)
|
||||
: "0" (n), "1" (s), "r" (n & 3), "r" (mask), "r"(0x01010101)
|
||||
: "r0", "r1", "r2", "r3", "cbit");
|
||||
|
||||
/* NOTE: strnlen_user() algorism:
|
||||
/* NOTE: strnlen_user() algorithm:
|
||||
* {
|
||||
* char *p;
|
||||
* for (p = s; n-- && *p != '\0'; ++p)
|
||||
|
@ -104,7 +104,7 @@ unsigned long coldfire_timer_offset(void)
|
||||
|
||||
/*
|
||||
* Choose a reasonably fast profile timer. Make it an odd value to
|
||||
* try and get good coverage of kernal operations.
|
||||
* try and get good coverage of kernel operations.
|
||||
*/
|
||||
#define PROFILEHZ 1013
|
||||
|
||||
|
@ -13,8 +13,8 @@
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
const extern unsigned char relocate_new_kernel[];
|
||||
const extern unsigned int relocate_new_kernel_size;
|
||||
extern const unsigned char relocate_new_kernel[];
|
||||
extern const unsigned int relocate_new_kernel_size;
|
||||
|
||||
extern unsigned long kexec_start_address;
|
||||
extern unsigned long kexec_indirection_page;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* arch/parisc/kernel/topology.c - Populate driverfs with topology information
|
||||
* arch/parisc/kernel/topology.c - Populate sysfs with topology information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -182,7 +182,7 @@ void rtas_progress(char *s, unsigned short hex)
|
||||
char *os;
|
||||
static int display_character, set_indicator;
|
||||
static int display_width, display_lines, form_feed;
|
||||
const static int *row_width;
|
||||
static const int *row_width;
|
||||
static DEFINE_SPINLOCK(progress_lock);
|
||||
static int current_line;
|
||||
static int pending_newline = 0; /* did last write end with unprinted newline? */
|
||||
|
@ -154,7 +154,7 @@ EXPORT_SYMBOL_GPL(of_node_to_nid);
|
||||
* characteristics relative to its multiple connections. We ignore
|
||||
* this for now. We also assume that all cpu and memory sets have
|
||||
* their distances represented at a common level. This won't be
|
||||
* true for heirarchical NUMA.
|
||||
* true for hierarchical NUMA.
|
||||
*
|
||||
* In any case the ibm,associativity-reference-points should give
|
||||
* the correct depth for a normal NUMA system.
|
||||
|
@ -18,8 +18,8 @@
|
||||
#include <asm/freq.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
const static int pll1rate[]={1,2};
|
||||
const static int pfc_divisors[]={1,2,0,4};
|
||||
static const int pll1rate[] = {1,2};
|
||||
static const int pfc_divisors[] = {1,2,0,4};
|
||||
|
||||
#if (CONFIG_SH_CLK_MD == 1) || (CONFIG_SH_CLK_MD == 2)
|
||||
#define PLL2 (4)
|
||||
|
@ -18,8 +18,8 @@
|
||||
#include <asm/freq.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
const static int pll1rate[]={1,2,3,4,6,8};
|
||||
const static int pfc_divisors[]={1,2,3,4,6,8,12};
|
||||
static const int pll1rate[]={1,2,3,4,6,8};
|
||||
static const int pfc_divisors[]={1,2,3,4,6,8,12};
|
||||
#define ifc_divisors pfc_divisors
|
||||
|
||||
#if (CONFIG_SH_CLK_MD == 2)
|
||||
|
@ -217,7 +217,7 @@ menu "Processor type and features"
|
||||
# Some platforms pre-zero memory, in which case the kernel doesn't need to
|
||||
config ZERO_BSS
|
||||
bool
|
||||
depends !V850E2_SIM85E2C
|
||||
depends on !V850E2_SIM85E2C
|
||||
default y
|
||||
|
||||
# The crappy-ass zone allocator requires that the start of allocatable
|
||||
|
@ -418,7 +418,7 @@ static struct sysdev_class timer_sysclass = {
|
||||
set_kset_name("timer"),
|
||||
};
|
||||
|
||||
/* XXX this driverfs stuff should probably go elsewhere later -john */
|
||||
/* XXX this sysfs stuff should probably go elsewhere later -john */
|
||||
static struct sys_device device_timer = {
|
||||
.id = 0,
|
||||
.cls = &timer_sysclass,
|
||||
|
@ -16,10 +16,10 @@ config IOSCHED_AS
|
||||
tristate "Anticipatory I/O scheduler"
|
||||
default y
|
||||
---help---
|
||||
The anticipatory I/O scheduler is the default disk scheduler. It is
|
||||
generally a good choice for most environments, but is quite large and
|
||||
complex when compared to the deadline I/O scheduler, it can also be
|
||||
slower in some cases especially some database loads.
|
||||
The anticipatory I/O scheduler is generally a good choice for most
|
||||
environments, but is quite large and complex when compared to the
|
||||
deadline I/O scheduler, it can also be slower in some cases
|
||||
especially some database loads.
|
||||
|
||||
config IOSCHED_DEADLINE
|
||||
tristate "Deadline I/O scheduler"
|
||||
@ -38,6 +38,7 @@ config IOSCHED_CFQ
|
||||
The CFQ I/O scheduler tries to distribute bandwidth equally
|
||||
among all processes in the system. It should provide a fair
|
||||
working environment, suitable for desktop systems.
|
||||
This is the default I/O scheduler.
|
||||
|
||||
choice
|
||||
prompt "Default I/O scheduler"
|
||||
|
@ -103,7 +103,7 @@ static SYSDEV_ATTR(crash_notes, 0400, show_crash_notes, NULL);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* register_cpu - Setup a driverfs device for a CPU.
|
||||
* register_cpu - Setup a sysfs device for a CPU.
|
||||
* @cpu - cpu->hotpluggable field set to 1 will generate a control file in
|
||||
* sysfs for this CPU.
|
||||
* @num - CPU number to use when creating the device.
|
||||
|
@ -133,7 +133,7 @@ static SYSDEV_ATTR(distance, S_IRUGO, node_read_distance, NULL);
|
||||
|
||||
|
||||
/*
|
||||
* register_node - Setup a driverfs device for a node.
|
||||
* register_node - Setup a sysfs device for a node.
|
||||
* @num - Node number to use when creating the device.
|
||||
*
|
||||
* Initialize and register the node device.
|
||||
|
@ -1146,7 +1146,7 @@ static int __init rio_init(void)
|
||||
rio_dprintk(RIO_DEBUG_INIT, "Enabling interrupts on rio card.\n");
|
||||
hp->Mode |= RIO_PCI_INT_ENABLE;
|
||||
} else
|
||||
hp->Mode &= !RIO_PCI_INT_ENABLE;
|
||||
hp->Mode &= ~RIO_PCI_INT_ENABLE;
|
||||
rio_dprintk(RIO_DEBUG_INIT, "New Mode: %x\n", hp->Mode);
|
||||
rio_start_card_running(hp);
|
||||
}
|
||||
|
@ -494,7 +494,7 @@ static int __devinit ali1535_probe(struct pci_dev *dev, const struct pci_device_
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
ali1535_adapter.dev.parent = &dev->dev;
|
||||
|
||||
snprintf(ali1535_adapter.name, I2C_NAME_SIZE,
|
||||
|
@ -489,7 +489,7 @@ static int __devinit ali15x3_probe(struct pci_dev *dev, const struct pci_device_
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
ali15x3_adapter.dev.parent = &dev->dev;
|
||||
|
||||
snprintf(ali15x3_adapter.name, I2C_NAME_SIZE,
|
||||
|
@ -374,7 +374,7 @@ static int __devinit amd756_probe(struct pci_dev *pdev,
|
||||
dev_dbg(&pdev->dev, "SMBREV = 0x%X\n", temp);
|
||||
dev_dbg(&pdev->dev, "AMD756_smba = 0x%X\n", amd756_ioport);
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
amd756_smbus.dev.parent = &pdev->dev;
|
||||
|
||||
sprintf(amd756_smbus.name, "SMBus %s adapter at %04x",
|
||||
|
@ -371,7 +371,7 @@ static int __devinit amd8111_probe(struct pci_dev *dev,
|
||||
smbus->adapter.algo = &smbus_algorithm;
|
||||
smbus->adapter.algo_data = smbus;
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
smbus->adapter.dev.parent = &dev->dev;
|
||||
|
||||
pci_write_config_dword(smbus->dev, AMD_PCI_MISC, 0);
|
||||
|
@ -522,7 +522,7 @@ static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id
|
||||
else
|
||||
dev_dbg(&dev->dev, "SMBus using PCI Interrupt\n");
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
i801_adapter.dev.parent = &dev->dev;
|
||||
|
||||
snprintf(i801_adapter.name, I2C_NAME_SIZE,
|
||||
|
@ -425,7 +425,7 @@ static int __devinit piix4_probe(struct pci_dev *dev,
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
piix4_adapter.dev.parent = &dev->dev;
|
||||
|
||||
snprintf(piix4_adapter.name, I2C_NAME_SIZE,
|
||||
|
@ -384,7 +384,7 @@ static int __devinit sis5595_probe(struct pci_dev *dev, const struct pci_device_
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
sis5595_adapter.dev.parent = &dev->dev;
|
||||
|
||||
sprintf(sis5595_adapter.name, "SMBus SIS5595 adapter at %04x",
|
||||
|
@ -477,7 +477,7 @@ static int __devinit sis630_probe(struct pci_dev *dev, const struct pci_device_i
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
sis630_adapter.dev.parent = &dev->dev;
|
||||
|
||||
sprintf(sis630_adapter.name, "SMBus SIS630 adapter at %04x",
|
||||
|
@ -297,7 +297,7 @@ static int __devinit sis96x_probe(struct pci_dev *dev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
sis96x_adapter.dev.parent = &dev->dev;
|
||||
|
||||
snprintf(sis96x_adapter.name, I2C_NAME_SIZE,
|
||||
|
@ -138,7 +138,7 @@ static int __devinit vt586b_probe(struct pci_dev *dev, const struct pci_device_i
|
||||
outb(inb(I2C_DIR) & ~(I2C_SDA | I2C_SCL), I2C_DIR);
|
||||
outb(inb(I2C_OUT) & ~(I2C_SDA | I2C_SCL), I2C_OUT);
|
||||
|
||||
/* set up the driverfs linkage to our parent device */
|
||||
/* set up the sysfs linkage to our parent device */
|
||||
vt586b_adapter.dev.parent = &dev->dev;
|
||||
|
||||
res = i2c_bit_add_bus(&vt586b_adapter);
|
||||
|
@ -383,6 +383,9 @@ config BLK_DEV_OFFBOARD
|
||||
config BLK_DEV_GENERIC
|
||||
tristate "Generic PCI IDE Chipset Support"
|
||||
depends on BLK_DEV_IDEPCI
|
||||
help
|
||||
This option provides generic support for various PCI IDE Chipsets
|
||||
which otherwise might not be supported.
|
||||
|
||||
config BLK_DEV_OPTI621
|
||||
tristate "OPTi 82C621 chipset enhanced support (EXPERIMENTAL)"
|
||||
|
@ -180,7 +180,7 @@ static int alloc_dma_trm_ctx(struct ti_ohci *ohci, struct dma_trm_ctx *d,
|
||||
static void ohci1394_pci_remove(struct pci_dev *pdev);
|
||||
|
||||
#ifndef __LITTLE_ENDIAN
|
||||
const static size_t hdr_sizes[] = {
|
||||
static const size_t hdr_sizes[] = {
|
||||
3, /* TCODE_WRITEQ */
|
||||
4, /* TCODE_WRITEB */
|
||||
3, /* TCODE_WRITE_RESPONSE */
|
||||
|
@ -1534,7 +1534,7 @@ static int ipath_ht_early_init(struct ipath_devdata *dd)
|
||||
* @kbase: ipath_base_info pointer
|
||||
*
|
||||
* We set the PCIE flag because the lower bandwidth on PCIe vs
|
||||
* HyperTransport can affect some user packet algorithims.
|
||||
* HyperTransport can affect some user packet algorithms.
|
||||
*/
|
||||
static int ipath_ht_get_base_info(struct ipath_portdata *pd, void *kbase)
|
||||
{
|
||||
|
@ -1293,7 +1293,7 @@ int __attribute__((weak)) ipath_unordered_wc(void)
|
||||
* @kbase: ipath_base_info pointer
|
||||
*
|
||||
* We set the PCIE flag because the lower bandwidth on PCIe vs
|
||||
* HyperTransport can affect some user packet algorithims.
|
||||
* HyperTransport can affect some user packet algorithms.
|
||||
*/
|
||||
static int ipath_pe_get_base_info(struct ipath_portdata *pd, void *kbase)
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ EXPORT_SYMBOL(ps2_drain);
|
||||
|
||||
int ps2_is_keyboard_id(char id_byte)
|
||||
{
|
||||
const static char keyboard_ids[] = {
|
||||
static const char keyboard_ids[] = {
|
||||
0xab, /* Regular keyboards */
|
||||
0xac, /* NCD Sun keyboard */
|
||||
0x2b, /* Trust keyboard, translated */
|
||||
|
@ -1680,7 +1680,7 @@ static void isdn_ppp_mp_receive(isdn_net_dev * net_dev, isdn_net_local * lp,
|
||||
* - we hit a gap in the sequence, so no reassembly/processing is
|
||||
* possible ('start' would be set to NULL)
|
||||
*
|
||||
* algorightm for this code is derived from code in the book
|
||||
* algorithm for this code is derived from code in the book
|
||||
* 'PPP Design And Debugging' by James Carlson (Addison-Wesley)
|
||||
*/
|
||||
while (start != NULL || newfrag != NULL) {
|
||||
|
@ -915,7 +915,7 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
|
||||
fetunesettings.parameters.inversion = INVERSION_AUTO;
|
||||
}
|
||||
if (fe->ops.info.type == FE_OFDM) {
|
||||
/* without hierachical coding code_rate_LP is irrelevant,
|
||||
/* without hierarchical coding code_rate_LP is irrelevant,
|
||||
* so we tolerate the otherwise invalid FEC_NONE setting */
|
||||
if (fepriv->parameters.u.ofdm.hierarchy_information == HIERARCHY_NONE &&
|
||||
fepriv->parameters.u.ofdm.code_rate_LP == FEC_NONE)
|
||||
|
@ -239,7 +239,7 @@ static int dib3000mb_set_frontend(struct dvb_frontend* fe,
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
deb_setf("hierachy: ");
|
||||
deb_setf("hierarchy: ");
|
||||
switch (ofdm->hierarchy_information) {
|
||||
case HIERARCHY_NONE:
|
||||
deb_setf("none ");
|
||||
|
@ -158,7 +158,7 @@ static unsigned int pvr2_msp3400_describe(struct pvr2_msp3400_handler *ctxt,
|
||||
}
|
||||
|
||||
|
||||
const static struct pvr2_i2c_handler_functions msp3400_funcs = {
|
||||
static const struct pvr2_i2c_handler_functions msp3400_funcs = {
|
||||
.detach = (void (*)(void *))pvr2_msp3400_detach,
|
||||
.check = (int (*)(void *))msp3400_check,
|
||||
.update = (void (*)(void *))msp3400_update,
|
||||
|
@ -226,7 +226,7 @@ static void decoder_reset(struct pvr2_v4l_cx2584x *ctxt)
|
||||
}
|
||||
|
||||
|
||||
const static struct pvr2_i2c_handler_functions hfuncs = {
|
||||
static const struct pvr2_i2c_handler_functions hfuncs = {
|
||||
.detach = (void (*)(void *))decoder_detach,
|
||||
.check = (int (*)(void *))decoder_check,
|
||||
.update = (void (*)(void *))decoder_update,
|
||||
|
@ -78,14 +78,14 @@ struct std_name {
|
||||
#define CSTD_ALL (CSTD_PAL|CSTD_NTSC|CSTD_SECAM)
|
||||
|
||||
/* Mapping of standard bits to color system */
|
||||
const static struct std_name std_groups[] = {
|
||||
static const struct std_name std_groups[] = {
|
||||
{"PAL",CSTD_PAL},
|
||||
{"NTSC",CSTD_NTSC},
|
||||
{"SECAM",CSTD_SECAM},
|
||||
};
|
||||
|
||||
/* Mapping of standard bits to modulation system */
|
||||
const static struct std_name std_items[] = {
|
||||
static const struct std_name std_items[] = {
|
||||
{"B",TSTD_B},
|
||||
{"B1",TSTD_B1},
|
||||
{"D",TSTD_D},
|
||||
|
@ -80,7 +80,7 @@ static unsigned int pvr2_tuner_describe(struct pvr2_tuner_handler *ctxt,char *bu
|
||||
}
|
||||
|
||||
|
||||
const static struct pvr2_i2c_handler_functions tuner_funcs = {
|
||||
static const struct pvr2_i2c_handler_functions tuner_funcs = {
|
||||
.detach = (void (*)(void *))pvr2_tuner_detach,
|
||||
.check = (int (*)(void *))tuner_check,
|
||||
.update = (void (*)(void *))tuner_update,
|
||||
|
@ -201,7 +201,7 @@ static unsigned int decoder_describe(struct pvr2_v4l_decoder *ctxt,char *buf,uns
|
||||
}
|
||||
|
||||
|
||||
const static struct pvr2_i2c_handler_functions hfuncs = {
|
||||
static const struct pvr2_i2c_handler_functions hfuncs = {
|
||||
.detach = (void (*)(void *))decoder_detach,
|
||||
.check = (int (*)(void *))decoder_check,
|
||||
.update = (void (*)(void *))decoder_update,
|
||||
|
@ -126,7 +126,7 @@ static void wm8775_update(struct pvr2_v4l_wm8775 *ctxt)
|
||||
}
|
||||
|
||||
|
||||
const static struct pvr2_i2c_handler_functions hfuncs = {
|
||||
static const struct pvr2_i2c_handler_functions hfuncs = {
|
||||
.detach = (void (*)(void *))wm8775_detach,
|
||||
.check = (int (*)(void *))wm8775_check,
|
||||
.update = (void (*)(void *))wm8775_update,
|
||||
|
@ -3253,7 +3253,7 @@ struct e1000_host_command_info {
|
||||
#define IFE_PMC_AUTO_MDIX 0x0080 /* 1=enable MDI/MDI-X feature, default 0=disabled */
|
||||
#define IFE_PMC_FORCE_MDIX 0x0040 /* 1=force MDIX-X, 0=force MDI */
|
||||
#define IFE_PMC_MDIX_STATUS 0x0020 /* 1=MDI-X, 0=MDI */
|
||||
#define IFE_PMC_AUTO_MDIX_COMPLETE 0x0010 /* Resolution algorthm is completed */
|
||||
#define IFE_PMC_AUTO_MDIX_COMPLETE 0x0010 /* Resolution algorithm is completed */
|
||||
#define IFE_PMC_MDIX_MODE_SHIFT 6
|
||||
#define IFE_PHC_MDIX_RESET_ALL_MASK 0x0000 /* Disable auto MDI-X */
|
||||
|
||||
|
@ -707,13 +707,6 @@ static int eexp_xmit(struct sk_buff *buf, struct net_device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle an EtherExpress interrupt
|
||||
* If we've finished initializing, start the RU and CU up.
|
||||
* If we've already started, reap tx buffers, handle any received packets,
|
||||
* check to make sure we've not become wedged.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Handle an EtherExpress interrupt
|
||||
* If we've finished initializing, start the RU and CU up.
|
||||
|
@ -138,7 +138,7 @@ config BAYCOM_SER_HDX
|
||||
---help---
|
||||
This is one of two drivers for Baycom style simple amateur radio
|
||||
modems that connect to a serial interface. The driver supports the
|
||||
ser12 design in full-duplex mode. This is the old driver. It is
|
||||
ser12 design in half-duplex mode. This is the old driver. It is
|
||||
still provided in case your serial interface chip does not work with
|
||||
the full-duplex driver. This driver is depreciated. To configure
|
||||
the driver, use the sethdlc utility available in the standard ax25
|
||||
@ -190,3 +190,4 @@ config YAM
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called yam.
|
||||
|
||||
|
||||
|
@ -1168,7 +1168,7 @@ wv_mmc_show(struct net_device * dev)
|
||||
m.mmr_unused0[6],
|
||||
m.mmr_unused0[7]);
|
||||
#endif /* DEBUG_SHOW_UNUSED */
|
||||
printk(KERN_DEBUG "Encryption algorythm: %02X - Status: %02X\n",
|
||||
printk(KERN_DEBUG "Encryption algorithm: %02X - Status: %02X\n",
|
||||
m.mmr_des_avail, m.mmr_des_status);
|
||||
#ifdef DEBUG_SHOW_UNUSED
|
||||
printk(KERN_DEBUG "mmc_unused1[]: %02X:%02X:%02X:%02X:%02X\n",
|
||||
@ -3590,9 +3590,9 @@ wv_82593_config(struct net_device * dev)
|
||||
cfblk.acloc = TRUE; /* Disable source addr insertion by i82593 */
|
||||
cfblk.preamb_len = 0; /* 2 bytes preamble (SFD) */
|
||||
cfblk.loopback = FALSE;
|
||||
cfblk.lin_prio = 0; /* conform to 802.3 backoff algoritm */
|
||||
cfblk.exp_prio = 5; /* conform to 802.3 backoff algoritm */
|
||||
cfblk.bof_met = 1; /* conform to 802.3 backoff algoritm */
|
||||
cfblk.lin_prio = 0; /* conform to 802.3 backoff algorithm */
|
||||
cfblk.exp_prio = 5; /* conform to 802.3 backoff algorithm */
|
||||
cfblk.bof_met = 1; /* conform to 802.3 backoff algorithm */
|
||||
cfblk.ifrm_spc = 0x20 >> 4; /* 32 bit times interframe spacing */
|
||||
cfblk.slottim_low = 0x20 >> 5; /* 32 bit times slot time */
|
||||
cfblk.slottim_hi = 0x0;
|
||||
|
@ -85,7 +85,7 @@ struct aer_rpc {
|
||||
struct mutex rpc_mutex; /*
|
||||
* only one thread could do
|
||||
* recovery on the same
|
||||
* root port hierachy
|
||||
* root port hierarchy
|
||||
*/
|
||||
wait_queue_head_t wait_release;
|
||||
};
|
||||
|
@ -40,8 +40,6 @@
|
||||
|
||||
/*====================================================================*/
|
||||
|
||||
#define FIND_FIRST_BIT(n) ((n) - ((n) & ((n)-1)))
|
||||
|
||||
/* Offsets in the Expansion ROM Image Header */
|
||||
#define ROM_SIGNATURE 0x0000 /* 2 bytes */
|
||||
#define ROM_DATA_PTR 0x0018 /* 2 bytes */
|
||||
|
@ -14,7 +14,7 @@
|
||||
/* NOTE: It seems to me that the documentation regarding the
|
||||
pcd8584t/pcf8584 does not show the correct way to address the i2c bus.
|
||||
Based on the information on the I2C bus itself and the remainder of
|
||||
the Phillips docs the following algorithims apper to be correct. I am
|
||||
the Phillips docs the following algorithms appear to be correct. I am
|
||||
fairly certain that the flowcharts in the phillips docs are wrong. */
|
||||
|
||||
|
||||
|
@ -230,6 +230,7 @@ config SCSI_SCAN_ASYNC
|
||||
The SCSI subsystem can probe for devices while the rest of the
|
||||
system continues booting, and even probe devices on different
|
||||
busses in parallel, leading to a significant speed-up.
|
||||
|
||||
If you have built SCSI as modules, enabling this option can
|
||||
be a problem as the devices may not have been found by the
|
||||
time your system expects them to have been. You can load the
|
||||
@ -237,8 +238,8 @@ config SCSI_SCAN_ASYNC
|
||||
If you build your SCSI drivers into the kernel, then everything
|
||||
will work fine if you say Y here.
|
||||
|
||||
You can override this choice by specifying scsi_mod.scan="sync"
|
||||
or "async" on the kernel's command line.
|
||||
You can override this choice by specifying "scsi_mod.scan=sync"
|
||||
or async on the kernel's command line.
|
||||
|
||||
menu "SCSI Transports"
|
||||
depends on SCSI
|
||||
|
@ -1067,7 +1067,7 @@ static int __devinit inia100_probe_one(struct pci_dev *pdev,
|
||||
goto out_disable_device;
|
||||
}
|
||||
|
||||
/* <02> read from base address + 0x50 offset to get the bios balue. */
|
||||
/* <02> read from base address + 0x50 offset to get the bios value. */
|
||||
bios = ORC_RDWORD(port, 0x50);
|
||||
|
||||
|
||||
|
@ -196,7 +196,7 @@ static void eesoxscsi_buffer_in(void *buf, int length, void __iomem *base)
|
||||
const void __iomem *reg_fas = base + EESOX_FAS216_OFFSET;
|
||||
const void __iomem *reg_dmastat = base + EESOX_DMASTAT;
|
||||
const void __iomem *reg_dmadata = base + EESOX_DMADATA;
|
||||
const register unsigned long mask = 0xffff;
|
||||
register const unsigned long mask = 0xffff;
|
||||
|
||||
do {
|
||||
unsigned int status;
|
||||
|
@ -5574,14 +5574,14 @@ static ssize_t osst_version_show(struct device_driver *ddd, char *buf)
|
||||
|
||||
static DRIVER_ATTR(version, S_IRUGO, osst_version_show, NULL);
|
||||
|
||||
static int osst_create_driverfs_files(struct device_driver *driverfs)
|
||||
static int osst_create_sysfs_files(struct device_driver *sysfs)
|
||||
{
|
||||
return driver_create_file(driverfs, &driver_attr_version);
|
||||
return driver_create_file(sysfs, &driver_attr_version);
|
||||
}
|
||||
|
||||
static void osst_remove_driverfs_files(struct device_driver *driverfs)
|
||||
static void osst_remove_sysfs_files(struct device_driver *sysfs)
|
||||
{
|
||||
driver_remove_file(driverfs, &driver_attr_version);
|
||||
driver_remove_file(sysfs, &driver_attr_version);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -5953,7 +5953,7 @@ static int __init init_osst(void)
|
||||
if (err)
|
||||
goto err_out_chrdev;
|
||||
|
||||
err = osst_create_driverfs_files(&osst_template.gendrv);
|
||||
err = osst_create_sysfs_files(&osst_template.gendrv);
|
||||
if (err)
|
||||
goto err_out_scsidrv;
|
||||
|
||||
@ -5973,7 +5973,7 @@ static void __exit exit_osst (void)
|
||||
int i;
|
||||
struct osst_tape * STp;
|
||||
|
||||
osst_remove_driverfs_files(&osst_template.gendrv);
|
||||
osst_remove_sysfs_files(&osst_template.gendrv);
|
||||
scsi_unregister_driver(&osst_template.gendrv);
|
||||
unregister_chrdev(OSST_MAJOR, "osst");
|
||||
osst_sysfs_cleanup();
|
||||
|
@ -54,7 +54,7 @@
|
||||
#define SCSI_TIMEOUT (2*HZ)
|
||||
|
||||
/*
|
||||
* Prefix values for the SCSI id's (stored in driverfs name field)
|
||||
* Prefix values for the SCSI id's (stored in sysfs name field)
|
||||
*/
|
||||
#define SCSI_UID_SER_NUM 'S'
|
||||
#define SCSI_UID_UNKNOWN 'Z'
|
||||
|
@ -855,7 +855,7 @@ static FC_CLASS_DEVICE_ATTR(rport, fast_io_fail_tmo, S_IRUGO | S_IWUSR,
|
||||
|
||||
/*
|
||||
* Note: in the target show function we recognize when the remote
|
||||
* port is in the heirarchy and do not allow the driver to get
|
||||
* port is in the hierarchy and do not allow the driver to get
|
||||
* involved in sysfs functions. The driver only gets involved if
|
||||
* it's the "old" style that doesn't use rports.
|
||||
*/
|
||||
|
@ -500,7 +500,7 @@ struct sas_phy *sas_phy_alloc(struct device *parent, int number)
|
||||
EXPORT_SYMBOL(sas_phy_alloc);
|
||||
|
||||
/**
|
||||
* sas_phy_add -- add a SAS PHY to the device hierachy
|
||||
* sas_phy_add -- add a SAS PHY to the device hierarchy
|
||||
* @phy: The PHY to be added
|
||||
*
|
||||
* Publishes a SAS PHY to the rest of the system.
|
||||
@ -1265,7 +1265,7 @@ struct sas_rphy *sas_expander_alloc(struct sas_port *parent,
|
||||
EXPORT_SYMBOL(sas_expander_alloc);
|
||||
|
||||
/**
|
||||
* sas_rphy_add -- add a SAS remote PHY to the device hierachy
|
||||
* sas_rphy_add -- add a SAS remote PHY to the device hierarchy
|
||||
* @rphy: The remote PHY to be added
|
||||
*
|
||||
* Publishes a SAS remote PHY to the rest of the system.
|
||||
|
@ -195,8 +195,8 @@ static int sgl_unmap_user_pages(struct scatterlist *, const unsigned int, int);
|
||||
static int st_probe(struct device *);
|
||||
static int st_remove(struct device *);
|
||||
|
||||
static int do_create_driverfs_files(void);
|
||||
static void do_remove_driverfs_files(void);
|
||||
static int do_create_sysfs_files(void);
|
||||
static void do_remove_sysfs_files(void);
|
||||
static int do_create_class_files(struct scsi_tape *, int, int);
|
||||
|
||||
static struct scsi_driver st_template = {
|
||||
@ -4193,7 +4193,7 @@ static int __init init_st(void)
|
||||
if (err)
|
||||
goto err_chrdev;
|
||||
|
||||
err = do_create_driverfs_files();
|
||||
err = do_create_sysfs_files();
|
||||
if (err)
|
||||
goto err_scsidrv;
|
||||
|
||||
@ -4211,7 +4211,7 @@ err_class:
|
||||
|
||||
static void __exit exit_st(void)
|
||||
{
|
||||
do_remove_driverfs_files();
|
||||
do_remove_sysfs_files();
|
||||
scsi_unregister_driver(&st_template.gendrv);
|
||||
unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0),
|
||||
ST_MAX_TAPE_ENTRIES);
|
||||
@ -4249,43 +4249,43 @@ static ssize_t st_version_show(struct device_driver *ddd, char *buf)
|
||||
}
|
||||
static DRIVER_ATTR(version, S_IRUGO, st_version_show, NULL);
|
||||
|
||||
static int do_create_driverfs_files(void)
|
||||
static int do_create_sysfs_files(void)
|
||||
{
|
||||
struct device_driver *driverfs = &st_template.gendrv;
|
||||
struct device_driver *sysfs = &st_template.gendrv;
|
||||
int err;
|
||||
|
||||
err = driver_create_file(driverfs, &driver_attr_try_direct_io);
|
||||
err = driver_create_file(sysfs, &driver_attr_try_direct_io);
|
||||
if (err)
|
||||
return err;
|
||||
err = driver_create_file(driverfs, &driver_attr_fixed_buffer_size);
|
||||
err = driver_create_file(sysfs, &driver_attr_fixed_buffer_size);
|
||||
if (err)
|
||||
goto err_try_direct_io;
|
||||
err = driver_create_file(driverfs, &driver_attr_max_sg_segs);
|
||||
err = driver_create_file(sysfs, &driver_attr_max_sg_segs);
|
||||
if (err)
|
||||
goto err_attr_fixed_buf;
|
||||
err = driver_create_file(driverfs, &driver_attr_version);
|
||||
err = driver_create_file(sysfs, &driver_attr_version);
|
||||
if (err)
|
||||
goto err_attr_max_sg;
|
||||
|
||||
return 0;
|
||||
|
||||
err_attr_max_sg:
|
||||
driver_remove_file(driverfs, &driver_attr_max_sg_segs);
|
||||
driver_remove_file(sysfs, &driver_attr_max_sg_segs);
|
||||
err_attr_fixed_buf:
|
||||
driver_remove_file(driverfs, &driver_attr_fixed_buffer_size);
|
||||
driver_remove_file(sysfs, &driver_attr_fixed_buffer_size);
|
||||
err_try_direct_io:
|
||||
driver_remove_file(driverfs, &driver_attr_try_direct_io);
|
||||
driver_remove_file(sysfs, &driver_attr_try_direct_io);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void do_remove_driverfs_files(void)
|
||||
static void do_remove_sysfs_files(void)
|
||||
{
|
||||
struct device_driver *driverfs = &st_template.gendrv;
|
||||
struct device_driver *sysfs = &st_template.gendrv;
|
||||
|
||||
driver_remove_file(driverfs, &driver_attr_version);
|
||||
driver_remove_file(driverfs, &driver_attr_max_sg_segs);
|
||||
driver_remove_file(driverfs, &driver_attr_fixed_buffer_size);
|
||||
driver_remove_file(driverfs, &driver_attr_try_direct_io);
|
||||
driver_remove_file(sysfs, &driver_attr_version);
|
||||
driver_remove_file(sysfs, &driver_attr_max_sg_segs);
|
||||
driver_remove_file(sysfs, &driver_attr_fixed_buffer_size);
|
||||
driver_remove_file(sysfs, &driver_attr_try_direct_io);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1020,7 +1020,7 @@ static struct SYM_FWA_SCR SYM_FWA_SCR = {
|
||||
* It shall be a tagged command.
|
||||
* Read SIMPLE+TAG.
|
||||
* The C code will deal with errors.
|
||||
* Agressive optimization, is'nt it? :)
|
||||
* Aggressive optimization, isn't it? :)
|
||||
*/
|
||||
SCR_MOVE_ABS (2) ^ SCR_MSG_IN,
|
||||
HADDR_1 (msgin),
|
||||
@ -1044,7 +1044,7 @@ static struct SYM_FWA_SCR SYM_FWA_SCR = {
|
||||
RADDR_1 (dsa),
|
||||
/*
|
||||
* The SIDL still contains the TAG value.
|
||||
* Agressive optimization, isn't it? :):)
|
||||
* Aggressive optimization, isn't it? :):)
|
||||
*/
|
||||
SCR_REG_SFBR (sidl, SCR_SHL, 0),
|
||||
0,
|
||||
|
@ -956,7 +956,7 @@ static struct SYM_FWA_SCR SYM_FWA_SCR = {
|
||||
* It shall be a tagged command.
|
||||
* Read SIMPLE+TAG.
|
||||
* The C code will deal with errors.
|
||||
* Agressive optimization, is'nt it? :)
|
||||
* Aggressive optimization, isn't it? :)
|
||||
*/
|
||||
SCR_MOVE_ABS (2) ^ SCR_MSG_IN,
|
||||
HADDR_1 (msgin),
|
||||
@ -968,7 +968,7 @@ static struct SYM_FWA_SCR SYM_FWA_SCR = {
|
||||
offsetof(struct sym_lcb, head.itlq_tbl_sa),
|
||||
/*
|
||||
* The SIDL still contains the TAG value.
|
||||
* Agressive optimization, isn't it? :):)
|
||||
* Aggressive optimization, isn't it? :):)
|
||||
*/
|
||||
SCR_REG_SFBR (sidl, SCR_SHL, 0),
|
||||
0,
|
||||
|
@ -322,7 +322,7 @@ static inline void remove_debug_files (struct ehci_hcd *bus) { }
|
||||
|
||||
#else
|
||||
|
||||
/* troubleshooting help: expose state in driverfs */
|
||||
/* troubleshooting help: expose state in sysfs */
|
||||
|
||||
#define speed_char(info1) ({ char tmp; \
|
||||
switch (info1 & (3 << 12)) { \
|
||||
|
@ -1,5 +1,5 @@
|
||||
The CIFS VFS support for Linux supports many advanced network filesystem
|
||||
features such as heirarchical dfs like namespace, hardlinks, locking and more.
|
||||
features such as hierarchical dfs like namespace, hardlinks, locking and more.
|
||||
It was designed to comply with the SNIA CIFS Technical Reference (which
|
||||
supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
|
||||
practical interoperability with Windows 2000, Windows XP, Samba and equivalent
|
||||
|
@ -2824,10 +2824,10 @@ GetExtAttrOut:
|
||||
|
||||
|
||||
/* security id for everyone */
|
||||
const static struct cifs_sid sid_everyone =
|
||||
static const struct cifs_sid sid_everyone =
|
||||
{1, 1, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0}};
|
||||
/* group users */
|
||||
const static struct cifs_sid sid_user =
|
||||
static const struct cifs_sid sid_user =
|
||||
{1, 2 , {0, 0, 0, 0, 0, 5}, {32, 545, 0, 0}};
|
||||
|
||||
/* Convert CIFS ACL to POSIX form */
|
||||
|
@ -222,7 +222,7 @@ static int ext4_ext_space_block(struct inode *inode)
|
||||
|
||||
size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
|
||||
/ sizeof(struct ext4_extent);
|
||||
#ifdef AGRESSIVE_TEST
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
if (size > 6)
|
||||
size = 6;
|
||||
#endif
|
||||
@ -235,7 +235,7 @@ static int ext4_ext_space_block_idx(struct inode *inode)
|
||||
|
||||
size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
|
||||
/ sizeof(struct ext4_extent_idx);
|
||||
#ifdef AGRESSIVE_TEST
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
if (size > 5)
|
||||
size = 5;
|
||||
#endif
|
||||
@ -249,7 +249,7 @@ static int ext4_ext_space_root(struct inode *inode)
|
||||
size = sizeof(EXT4_I(inode)->i_data);
|
||||
size -= sizeof(struct ext4_extent_header);
|
||||
size /= sizeof(struct ext4_extent);
|
||||
#ifdef AGRESSIVE_TEST
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
if (size > 3)
|
||||
size = 3;
|
||||
#endif
|
||||
@ -263,7 +263,7 @@ static int ext4_ext_space_root_idx(struct inode *inode)
|
||||
size = sizeof(EXT4_I(inode)->i_data);
|
||||
size -= sizeof(struct ext4_extent_header);
|
||||
size /= sizeof(struct ext4_extent_idx);
|
||||
#ifdef AGRESSIVE_TEST
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
if (size > 4)
|
||||
size = 4;
|
||||
#endif
|
||||
@ -1118,7 +1118,7 @@ ext4_can_extents_be_merged(struct inode *inode, struct ext4_extent *ex1,
|
||||
*/
|
||||
if (le16_to_cpu(ex1->ee_len) + le16_to_cpu(ex2->ee_len) > EXT_MAX_LEN)
|
||||
return 0;
|
||||
#ifdef AGRESSIVE_TEST
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
if (le16_to_cpu(ex1->ee_len) >= 4)
|
||||
return 0;
|
||||
#endif
|
||||
@ -1891,8 +1891,8 @@ void ext4_ext_init(struct super_block *sb)
|
||||
|
||||
if (test_opt(sb, EXTENTS)) {
|
||||
printk("EXT4-fs: file extents enabled");
|
||||
#ifdef AGRESSIVE_TEST
|
||||
printk(", agressive tests");
|
||||
#ifdef AGGRESSIVE_TEST
|
||||
printk(", aggressive tests");
|
||||
#endif
|
||||
#ifdef CHECK_BINSEARCH
|
||||
printk(", check binsearch");
|
||||
|
@ -440,7 +440,7 @@ static ctl_table nlm_sysctl_root[] = {
|
||||
};
|
||||
|
||||
/*
|
||||
* Module (and driverfs) parameters.
|
||||
* Module (and sysfs) parameters.
|
||||
*/
|
||||
|
||||
#define param_set_min_max(name, type, which_strtol, min, max) \
|
||||
|
@ -1098,7 +1098,7 @@ static int ocfs2_rename(struct inode *old_dir,
|
||||
BUG();
|
||||
}
|
||||
|
||||
/* Assume a directory heirarchy thusly:
|
||||
/* Assume a directory hierarchy thusly:
|
||||
* a/b/c
|
||||
* a/d
|
||||
* a,b,c, and d are all directories.
|
||||
|
@ -109,7 +109,7 @@ extern int __get_user_4(void *);
|
||||
|
||||
#define get_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register unsigned long __r2 asm("r2"); \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
@ -143,8 +143,8 @@ extern int __put_user_8(void *, unsigned long long);
|
||||
|
||||
#define put_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
const register typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
case 1: \
|
||||
|
@ -74,7 +74,7 @@ extern int __get_user_bad(void);
|
||||
|
||||
#define get_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register const typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register typeof(*(p)) __r1 asm("r1"); \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(p))) { \
|
||||
@ -139,8 +139,8 @@ extern int __put_user_bad(void);
|
||||
|
||||
#define put_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __r1 asm("r1") = (x); \
|
||||
const register typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register const typeof(*(p)) __r1 asm("r1") = (x); \
|
||||
register const typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
case 1: \
|
||||
@ -170,8 +170,8 @@ extern int __put_user_bad(void);
|
||||
|
||||
#define put_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __r1 asm("r1") = (x); \
|
||||
const register typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register const typeof(*(p)) __r1 asm("r1") = (x); \
|
||||
register const typeof(*(p)) *__p asm("r0") = (p); \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(p))) { \
|
||||
case 1: \
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
extern struct kimage *ia64_kimage;
|
||||
DECLARE_PER_CPU(u64, ia64_mca_pal_base);
|
||||
const extern unsigned int relocate_new_kernel_size;
|
||||
extern const unsigned int relocate_new_kernel_size;
|
||||
extern void relocate_new_kernel(unsigned long, unsigned long,
|
||||
struct ia64_boot_param *, unsigned long);
|
||||
static inline void
|
||||
|
@ -32,7 +32,7 @@
|
||||
#define PAL_CACHE_FLUSH 1 /* flush i/d cache */
|
||||
#define PAL_CACHE_INFO 2 /* get detailed i/d cache info */
|
||||
#define PAL_CACHE_INIT 3 /* initialize i/d cache */
|
||||
#define PAL_CACHE_SUMMARY 4 /* get summary of cache heirarchy */
|
||||
#define PAL_CACHE_SUMMARY 4 /* get summary of cache hierarchy */
|
||||
#define PAL_MEM_ATTRIB 5 /* list supported memory attributes */
|
||||
#define PAL_PTCE_INFO 6 /* purge TLB info */
|
||||
#define PAL_VM_INFO 7 /* return supported virtual memory features */
|
||||
@ -113,14 +113,14 @@ typedef s64 pal_status_t;
|
||||
*/
|
||||
#define PAL_STATUS_REQUIRES_MEMORY (-9) /* Call requires PAL memory buffer */
|
||||
|
||||
/* Processor cache level in the heirarchy */
|
||||
/* Processor cache level in the hierarchy */
|
||||
typedef u64 pal_cache_level_t;
|
||||
#define PAL_CACHE_LEVEL_L0 0 /* L0 */
|
||||
#define PAL_CACHE_LEVEL_L1 1 /* L1 */
|
||||
#define PAL_CACHE_LEVEL_L2 2 /* L2 */
|
||||
|
||||
|
||||
/* Processor cache type at a particular level in the heirarchy */
|
||||
/* Processor cache type at a particular level in the hierarchy */
|
||||
|
||||
typedef u64 pal_cache_type_t;
|
||||
#define PAL_CACHE_TYPE_INSTRUCTION 1 /* Instruction cache */
|
||||
@ -272,14 +272,14 @@ typedef struct pal_cache_protection_info_s {
|
||||
#define PAL_CACHE_PROT_METHOD_ECC 3 /* ECC protection */
|
||||
|
||||
|
||||
/* Processor cache line identification in the heirarchy */
|
||||
/* Processor cache line identification in the hierarchy */
|
||||
typedef union pal_cache_line_id_u {
|
||||
u64 pclid_data;
|
||||
struct {
|
||||
u64 cache_type : 8, /* 7-0 cache type */
|
||||
level : 8, /* 15-8 level of the
|
||||
* cache in the
|
||||
* heirarchy.
|
||||
* hierarchy.
|
||||
*/
|
||||
way : 8, /* 23-16 way in the set
|
||||
*/
|
||||
@ -292,7 +292,7 @@ typedef union pal_cache_line_id_u {
|
||||
u64 cache_type : 8, /* 7-0 cache type */
|
||||
level : 8, /* 15-8 level of the
|
||||
* cache in the
|
||||
* heirarchy.
|
||||
* hierarchy.
|
||||
*/
|
||||
way : 8, /* 23-16 way in the set
|
||||
*/
|
||||
@ -978,7 +978,7 @@ ia64_pal_cache_read (pal_cache_line_id_u_t line_id, u64 physical_addr)
|
||||
return iprv.status;
|
||||
}
|
||||
|
||||
/* Return summary information about the heirarchy of caches controlled by the processor */
|
||||
/* Return summary information about the hierarchy of caches controlled by the processor */
|
||||
static inline s64
|
||||
ia64_pal_cache_summary (u64 *cache_levels, u64 *unique_caches)
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ extern int bus_unregister_notifier(struct bus_type *bus,
|
||||
#define BUS_NOTIFY_UNBIND_DRIVER 0x00000004 /* driver about to be
|
||||
unbound */
|
||||
|
||||
/* driverfs interface for exporting bus attributes */
|
||||
/* sysfs interface for exporting bus attributes */
|
||||
|
||||
struct bus_attribute {
|
||||
struct attribute attr;
|
||||
@ -147,7 +147,7 @@ extern void put_driver(struct device_driver * drv);
|
||||
extern struct device_driver *driver_find(const char *name, struct bus_type *bus);
|
||||
extern int driver_probe_done(void);
|
||||
|
||||
/* driverfs interface for exporting driver attributes */
|
||||
/* sysfs interface for exporting driver attributes */
|
||||
|
||||
struct driver_attribute {
|
||||
struct attribute attr;
|
||||
|
@ -22,12 +22,12 @@
|
||||
#include <linux/ext4_fs.h>
|
||||
|
||||
/*
|
||||
* With AGRESSIVE_TEST defined, the capacity of index/leaf blocks
|
||||
* With AGGRESSIVE_TEST defined, the capacity of index/leaf blocks
|
||||
* becomes very small, so index split, in-depth growing and
|
||||
* other hard changes happen much more often.
|
||||
* This is for debug purposes only.
|
||||
*/
|
||||
#define AGRESSIVE_TEST_
|
||||
#define AGGRESSIVE_TEST_
|
||||
|
||||
/*
|
||||
* With EXTENTS_STATS defined, the number of blocks and extents
|
||||
|
@ -152,7 +152,7 @@ unsigned long __roundup_pow_of_two(unsigned long n)
|
||||
* roundup_pow_of_two - round the given value up to nearest power of two
|
||||
* @n - parameter
|
||||
*
|
||||
* round the given balue up to the nearest power of two
|
||||
* round the given value up to the nearest power of two
|
||||
* - the result is undefined when n == 0
|
||||
* - this can be used to initialise global variables from constant data
|
||||
*/
|
||||
|
@ -59,7 +59,7 @@ struct kparam_array
|
||||
};
|
||||
|
||||
/* This is the fundamental function for registering boot/module
|
||||
parameters. perm sets the visibility in driverfs: 000 means it's
|
||||
parameters. perm sets the visibility in sysfs: 000 means it's
|
||||
not there, read bits mean it's readable, write bits mean it's
|
||||
writable. */
|
||||
#define __module_param_call(prefix, name, set, get, arg, perm) \
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define __LINUX_SEQLOCK_H
|
||||
/*
|
||||
* Reader/writer consistent mechanism without starving writers. This type of
|
||||
* lock for data where the reader wants a consitent set of information
|
||||
* lock for data where the reader wants a consistent set of information
|
||||
* and is willing to retry if the information changes. Readers never
|
||||
* block but they may have to retry if a writer is in
|
||||
* progress. Writers do not wait for readers.
|
||||
|
@ -54,7 +54,7 @@ int console_printk[4] = {
|
||||
};
|
||||
|
||||
/*
|
||||
* Low lever drivers may need that to know if they can schedule in
|
||||
* Low level drivers may need that to know if they can schedule in
|
||||
* their unblank() callback or not. So let's export it.
|
||||
*/
|
||||
int oops_in_progress;
|
||||
|
@ -40,7 +40,7 @@
|
||||
* configuration according to the specified parameters.
|
||||
* (3) User starts the search(es) by calling _find() or _next() to
|
||||
* fetch subsequent occurrences. A state variable is provided
|
||||
* to the algorihtm to store persistent variables.
|
||||
* to the algorithm to store persistent variables.
|
||||
* (4) Core eventually resets the search offset and forwards the find()
|
||||
* request to the algorithm.
|
||||
* (5) Algorithm calls get_next_block() provided by the user continously
|
||||
|
@ -9,7 +9,7 @@ config IP_MULTICAST
|
||||
intend to participate in the MBONE, a high bandwidth network on top
|
||||
of the Internet which carries audio and video broadcasts. More
|
||||
information about the MBONE is on the WWW at
|
||||
<http://www-itg.lbl.gov/mbone/>. Information about the multicast
|
||||
<http://www.savetz.com/mbone/>. Information about the multicast
|
||||
capabilities of the various network cards is contained in
|
||||
<file:Documentation/networking/multicast.txt>. For most people, it's
|
||||
safe to say N.
|
||||
|
@ -29,7 +29,7 @@ static struct tcp_congestion_ops *tcp_ca_find(const char *name)
|
||||
}
|
||||
|
||||
/*
|
||||
* Attach new congestion control algorthim to the list
|
||||
* Attach new congestion control algorithm to the list
|
||||
* of available options.
|
||||
*/
|
||||
int tcp_register_congestion_control(struct tcp_congestion_ops *ca)
|
||||
|
Loading…
Reference in New Issue
Block a user