Loading .gitignore +2 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ *.a *.a *.s *.s *.ko *.ko *.so *.mod.c *.mod.c # # Loading @@ -23,6 +24,7 @@ Module.symvers # Generated include files # Generated include files # # include/asm include/asm include/asm-*/asm-offsets.h include/config include/config include/linux/autoconf.h include/linux/autoconf.h include/linux/compile.h include/linux/compile.h Loading CREDITS +13 −4 Original line number Original line Diff line number Diff line Loading @@ -611,8 +611,7 @@ S: USA N: Randolph Chung N: Randolph Chung E: tausq@debian.org E: tausq@debian.org D: Linux/PA-RISC hacker D: Linux/PA-RISC hacker S: Los Altos, CA 94022 S: Hong Kong S: USA N: Juan Jose Ciarlante N: Juan Jose Ciarlante W: http://juanjox.kernelnotes.org/ W: http://juanjox.kernelnotes.org/ Loading Loading @@ -1097,7 +1096,7 @@ S: 80050-430 - Curitiba - Paran S: Brazil S: Brazil N: Kumar Gala N: Kumar Gala E: kumar.gala@freescale.com E: galak@kernel.crashing.org D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support S: Austin, Texas 78729 S: Austin, Texas 78729 S: USA S: USA Loading Loading @@ -1884,6 +1883,7 @@ N: Jaya Kumar E: jayalk@intworks.biz E: jayalk@intworks.biz W: http://www.intworks.biz W: http://www.intworks.biz D: Arc monochrome LCD framebuffer driver, x86 reboot fixups D: Arc monochrome LCD framebuffer driver, x86 reboot fixups D: pirq addr, CS5535 alsa audio driver S: Gurgaon, India S: Gurgaon, India S: Kuala Lumpur, Malaysia S: Kuala Lumpur, Malaysia Loading Loading @@ -3203,7 +3203,7 @@ N: Eugene Surovegin E: ebs@ebshome.net E: ebs@ebshome.net W: http://kernel.ebshome.net/ W: http://kernel.ebshome.net/ P: 1024D/AE5467F1 FF22 39F1 6728 89F6 6E6C 2365 7602 F33D AE54 67F1 P: 1024D/AE5467F1 FF22 39F1 6728 89F6 6E6C 2365 7602 F33D AE54 67F1 D: Embedded PowerPC 4xx: I2C, PIC and random hacks/fixes D: Embedded PowerPC 4xx: EMAC, I2C, PIC and random hacks/fixes S: Sunnyvale, California 94085 S: Sunnyvale, California 94085 S: USA S: USA Loading Loading @@ -3405,6 +3405,15 @@ S: Chudenicka 8 S: 10200 Prague 10, Hostivar S: 10200 Prague 10, Hostivar S: Czech Republic S: Czech Republic N: Thibaut Varene E: T-Bone@parisc-linux.org W: http://www.parisc-linux.org/ P: 1024D/B7D2F063 E67C 0D43 A75E 12A5 BB1C FA2F 1E32 C3DA B7D2 F063 D: PA-RISC port minion, PDC and GSCPS2 drivers, debuglocks and other bits D: Some bits in an ARM port, S1D13XXX FB driver, random patches here and there D: AD1889 sound driver S: Paris, France N: Heikki Vatiainen N: Heikki Vatiainen E: hessu@cs.tut.fi E: hessu@cs.tut.fi D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks Loading Documentation/00-INDEX +6 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,8 @@ DMA-mapping.txt - info for PCI drivers using DMA portably across all platforms. - info for PCI drivers using DMA portably across all platforms. DocBook/ DocBook/ - directory with DocBook templates etc. for kernel documentation. - directory with DocBook templates etc. for kernel documentation. HOWTO - The process and procedures of how to do Linux kernel development. IO-mapping.txt IO-mapping.txt - how to access I/O mapped memory from within device drivers. - how to access I/O mapped memory from within device drivers. IPMI.txt IPMI.txt Loading Loading @@ -256,6 +258,10 @@ specialix.txt - info on hardware/driver for specialix IO8+ multiport serial card. - info on hardware/driver for specialix IO8+ multiport serial card. spinlocks.txt spinlocks.txt - info on using spinlocks to provide exclusive access in kernel. - info on using spinlocks to provide exclusive access in kernel. stable_api_nonsense.txt - info on why the kernel does not have a stable in-kernel api or abi. stable_kernel_rules.txt - rules and procedures for the -stable kernel releases. stallion.txt stallion.txt - info on using the Stallion multiport serial driver. - info on using the Stallion multiport serial driver. svga.txt svga.txt Loading Documentation/Changes +5 −26 Original line number Original line Diff line number Diff line Loading @@ -31,8 +31,6 @@ al espa Eine deutsche Version dieser Datei finden Sie unter Eine deutsche Version dieser Datei finden Sie unter <http://www.stefan-winter.de/Changes-2.4.0.txt>. <http://www.stefan-winter.de/Changes-2.4.0.txt>. Last updated: October 29th, 2002 Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). Current Minimal Requirements Current Minimal Requirements Loading @@ -48,7 +46,7 @@ necessary on all systems; obviously, if you don't have any ISDN hardware, for example, you probably needn't concern yourself with hardware, for example, you probably needn't concern yourself with isdn4k-utils. isdn4k-utils. o Gnu C 2.95.3 # gcc --version o Gnu C 3.2 # gcc --version o Gnu make 3.79.1 # make --version o Gnu make 3.79.1 # make --version o binutils 2.12 # ld -v o binutils 2.12 # ld -v o util-linux 2.10o # fdformat --version o util-linux 2.10o # fdformat --version Loading @@ -74,26 +72,7 @@ GCC --- --- The gcc version requirements may vary depending on the type of CPU in your The gcc version requirements may vary depending on the type of CPU in your computer. The next paragraph applies to users of x86 CPUs, but not computer. necessarily to users of other CPUs. Users of other CPUs should obtain information about their gcc version requirements from another source. The recommended compiler for the kernel is gcc 2.95.x (x >= 3), and it should be used when you need absolute stability. You may use gcc 3.0.x instead if you wish, although it may cause problems. Later versions of gcc have not received much testing for Linux kernel compilation, and there are almost certainly bugs (mainly, but not exclusively, in the kernel) that will need to be fixed in order to use these compilers. In any case, using pgcc instead of plain gcc is just asking for trouble. The Red Hat gcc 2.96 compiler subtree can also be used to build this tree. You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build the kernel correctly. In addition, please pay attention to compiler optimization. Anything greater than -O2 may not be wise. Similarly, if you choose to use gcc-2.95.x or derivatives, be sure not to use -fstrict-aliasing (which, depending on your version of gcc 2.95.x, may necessitate using -fno-strict-aliasing). Make Make ---- ---- Loading Loading @@ -322,9 +301,9 @@ Getting updated software Kernel compilation Kernel compilation ****************** ****************** gcc 2.95.3 gcc ---------- --- o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz> o <ftp://ftp.gnu.org/gnu/gcc/> Make Make ---- ---- Loading Documentation/CodingStyle +37 −6 Original line number Original line Diff line number Diff line Loading @@ -199,7 +199,7 @@ The rationale is: modifications are prevented modifications are prevented - saves the compiler work to optimize redundant code away ;) - saves the compiler work to optimize redundant code away ;) int fun(int ) int fun(int a) { { int result = 0; int result = 0; char *buffer = kmalloc(SIZE); char *buffer = kmalloc(SIZE); Loading Loading @@ -344,7 +344,7 @@ Remember: if another thread can find your data structure, and you don't have a reference count on it, you almost certainly have a bug. have a reference count on it, you almost certainly have a bug. Chapter 11: Macros, Enums, Inline functions and RTL Chapter 11: Macros, Enums and RTL Names of macros defining constants and labels in enums are capitalized. Names of macros defining constants and labels in enums are capitalized. Loading Loading @@ -429,7 +429,35 @@ from void pointer to any other pointer type is guaranteed by the C programming language. language. Chapter 14: References Chapter 14: The inline disease There appears to be a common misperception that gcc has a magic "make me faster" speedup option called "inline". While the use of inlines can be appropriate (for example as a means of replacing macros, see Chapter 11), it very often is not. Abundant use of the inline keyword leads to a much bigger kernel, which in turn slows the system as a whole down, due to a bigger icache footprint for the CPU and simply because there is less memory available for the pagecache. Just think about it; a pagecache miss causes a disk seek, which easily takes 5 miliseconds. There are a LOT of cpu cycles that can go into these 5 miliseconds. A reasonable rule of thumb is to not put inline at functions that have more than 3 lines of code in them. An exception to this rule are the cases where a parameter is known to be a compiletime constant, and as a result of this constantness you *know* the compiler will be able to optimize most of your function away at compile time. For a good example of this later case, see the kmalloc() inline function. Often people argue that adding inline to functions that are static and used only once is always a win since there is no space tradeoff. While this is technically correct, gcc is capable of inlining these automatically without help, and the maintenance issue of removing the inline when a second user appears outweighs the potential value of the hint that tells gcc to do something it would have done anyway. Chapter 15: References The C Programming Language, Second Edition The C Programming Language, Second Edition by Brian W. Kernighan and Dennis M. Ritchie. by Brian W. Kernighan and Dennis M. Ritchie. Loading @@ -444,10 +472,13 @@ ISBN 0-201-61586-X. URL: http://cm.bell-labs.com/cm/cs/tpop/ URL: http://cm.bell-labs.com/cm/cs/tpop/ GNU manuals - where in compliance with K&R and this text - for cpp, gcc, GNU manuals - where in compliance with K&R and this text - for cpp, gcc, gcc internals and indent, all available from http://www.gnu.org gcc internals and indent, all available from http://www.gnu.org/manual/ WG14 is the international standardization working group for the programming WG14 is the international standardization working group for the programming language C, URL: http://std.dkuug.dk/JTC1/SC22/WG14/ language C, URL: http://www.open-std.org/JTC1/SC22/WG14/ Kernel CodingStyle, by greg@kroah.com at OLS 2002: http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/ -- -- Last updated on 16 February 2004 by a community effort on LKML. Last updated on 30 December 2005 by a community effort on LKML. Loading
.gitignore +2 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ *.a *.a *.s *.s *.ko *.ko *.so *.mod.c *.mod.c # # Loading @@ -23,6 +24,7 @@ Module.symvers # Generated include files # Generated include files # # include/asm include/asm include/asm-*/asm-offsets.h include/config include/config include/linux/autoconf.h include/linux/autoconf.h include/linux/compile.h include/linux/compile.h Loading
CREDITS +13 −4 Original line number Original line Diff line number Diff line Loading @@ -611,8 +611,7 @@ S: USA N: Randolph Chung N: Randolph Chung E: tausq@debian.org E: tausq@debian.org D: Linux/PA-RISC hacker D: Linux/PA-RISC hacker S: Los Altos, CA 94022 S: Hong Kong S: USA N: Juan Jose Ciarlante N: Juan Jose Ciarlante W: http://juanjox.kernelnotes.org/ W: http://juanjox.kernelnotes.org/ Loading Loading @@ -1097,7 +1096,7 @@ S: 80050-430 - Curitiba - Paran S: Brazil S: Brazil N: Kumar Gala N: Kumar Gala E: kumar.gala@freescale.com E: galak@kernel.crashing.org D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support S: Austin, Texas 78729 S: Austin, Texas 78729 S: USA S: USA Loading Loading @@ -1884,6 +1883,7 @@ N: Jaya Kumar E: jayalk@intworks.biz E: jayalk@intworks.biz W: http://www.intworks.biz W: http://www.intworks.biz D: Arc monochrome LCD framebuffer driver, x86 reboot fixups D: Arc monochrome LCD framebuffer driver, x86 reboot fixups D: pirq addr, CS5535 alsa audio driver S: Gurgaon, India S: Gurgaon, India S: Kuala Lumpur, Malaysia S: Kuala Lumpur, Malaysia Loading Loading @@ -3203,7 +3203,7 @@ N: Eugene Surovegin E: ebs@ebshome.net E: ebs@ebshome.net W: http://kernel.ebshome.net/ W: http://kernel.ebshome.net/ P: 1024D/AE5467F1 FF22 39F1 6728 89F6 6E6C 2365 7602 F33D AE54 67F1 P: 1024D/AE5467F1 FF22 39F1 6728 89F6 6E6C 2365 7602 F33D AE54 67F1 D: Embedded PowerPC 4xx: I2C, PIC and random hacks/fixes D: Embedded PowerPC 4xx: EMAC, I2C, PIC and random hacks/fixes S: Sunnyvale, California 94085 S: Sunnyvale, California 94085 S: USA S: USA Loading Loading @@ -3405,6 +3405,15 @@ S: Chudenicka 8 S: 10200 Prague 10, Hostivar S: 10200 Prague 10, Hostivar S: Czech Republic S: Czech Republic N: Thibaut Varene E: T-Bone@parisc-linux.org W: http://www.parisc-linux.org/ P: 1024D/B7D2F063 E67C 0D43 A75E 12A5 BB1C FA2F 1E32 C3DA B7D2 F063 D: PA-RISC port minion, PDC and GSCPS2 drivers, debuglocks and other bits D: Some bits in an ARM port, S1D13XXX FB driver, random patches here and there D: AD1889 sound driver S: Paris, France N: Heikki Vatiainen N: Heikki Vatiainen E: hessu@cs.tut.fi E: hessu@cs.tut.fi D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks Loading
Documentation/00-INDEX +6 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,8 @@ DMA-mapping.txt - info for PCI drivers using DMA portably across all platforms. - info for PCI drivers using DMA portably across all platforms. DocBook/ DocBook/ - directory with DocBook templates etc. for kernel documentation. - directory with DocBook templates etc. for kernel documentation. HOWTO - The process and procedures of how to do Linux kernel development. IO-mapping.txt IO-mapping.txt - how to access I/O mapped memory from within device drivers. - how to access I/O mapped memory from within device drivers. IPMI.txt IPMI.txt Loading Loading @@ -256,6 +258,10 @@ specialix.txt - info on hardware/driver for specialix IO8+ multiport serial card. - info on hardware/driver for specialix IO8+ multiport serial card. spinlocks.txt spinlocks.txt - info on using spinlocks to provide exclusive access in kernel. - info on using spinlocks to provide exclusive access in kernel. stable_api_nonsense.txt - info on why the kernel does not have a stable in-kernel api or abi. stable_kernel_rules.txt - rules and procedures for the -stable kernel releases. stallion.txt stallion.txt - info on using the Stallion multiport serial driver. - info on using the Stallion multiport serial driver. svga.txt svga.txt Loading
Documentation/Changes +5 −26 Original line number Original line Diff line number Diff line Loading @@ -31,8 +31,6 @@ al espa Eine deutsche Version dieser Datei finden Sie unter Eine deutsche Version dieser Datei finden Sie unter <http://www.stefan-winter.de/Changes-2.4.0.txt>. <http://www.stefan-winter.de/Changes-2.4.0.txt>. Last updated: October 29th, 2002 Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu). Current Minimal Requirements Current Minimal Requirements Loading @@ -48,7 +46,7 @@ necessary on all systems; obviously, if you don't have any ISDN hardware, for example, you probably needn't concern yourself with hardware, for example, you probably needn't concern yourself with isdn4k-utils. isdn4k-utils. o Gnu C 2.95.3 # gcc --version o Gnu C 3.2 # gcc --version o Gnu make 3.79.1 # make --version o Gnu make 3.79.1 # make --version o binutils 2.12 # ld -v o binutils 2.12 # ld -v o util-linux 2.10o # fdformat --version o util-linux 2.10o # fdformat --version Loading @@ -74,26 +72,7 @@ GCC --- --- The gcc version requirements may vary depending on the type of CPU in your The gcc version requirements may vary depending on the type of CPU in your computer. The next paragraph applies to users of x86 CPUs, but not computer. necessarily to users of other CPUs. Users of other CPUs should obtain information about their gcc version requirements from another source. The recommended compiler for the kernel is gcc 2.95.x (x >= 3), and it should be used when you need absolute stability. You may use gcc 3.0.x instead if you wish, although it may cause problems. Later versions of gcc have not received much testing for Linux kernel compilation, and there are almost certainly bugs (mainly, but not exclusively, in the kernel) that will need to be fixed in order to use these compilers. In any case, using pgcc instead of plain gcc is just asking for trouble. The Red Hat gcc 2.96 compiler subtree can also be used to build this tree. You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build the kernel correctly. In addition, please pay attention to compiler optimization. Anything greater than -O2 may not be wise. Similarly, if you choose to use gcc-2.95.x or derivatives, be sure not to use -fstrict-aliasing (which, depending on your version of gcc 2.95.x, may necessitate using -fno-strict-aliasing). Make Make ---- ---- Loading Loading @@ -322,9 +301,9 @@ Getting updated software Kernel compilation Kernel compilation ****************** ****************** gcc 2.95.3 gcc ---------- --- o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz> o <ftp://ftp.gnu.org/gnu/gcc/> Make Make ---- ---- Loading
Documentation/CodingStyle +37 −6 Original line number Original line Diff line number Diff line Loading @@ -199,7 +199,7 @@ The rationale is: modifications are prevented modifications are prevented - saves the compiler work to optimize redundant code away ;) - saves the compiler work to optimize redundant code away ;) int fun(int ) int fun(int a) { { int result = 0; int result = 0; char *buffer = kmalloc(SIZE); char *buffer = kmalloc(SIZE); Loading Loading @@ -344,7 +344,7 @@ Remember: if another thread can find your data structure, and you don't have a reference count on it, you almost certainly have a bug. have a reference count on it, you almost certainly have a bug. Chapter 11: Macros, Enums, Inline functions and RTL Chapter 11: Macros, Enums and RTL Names of macros defining constants and labels in enums are capitalized. Names of macros defining constants and labels in enums are capitalized. Loading Loading @@ -429,7 +429,35 @@ from void pointer to any other pointer type is guaranteed by the C programming language. language. Chapter 14: References Chapter 14: The inline disease There appears to be a common misperception that gcc has a magic "make me faster" speedup option called "inline". While the use of inlines can be appropriate (for example as a means of replacing macros, see Chapter 11), it very often is not. Abundant use of the inline keyword leads to a much bigger kernel, which in turn slows the system as a whole down, due to a bigger icache footprint for the CPU and simply because there is less memory available for the pagecache. Just think about it; a pagecache miss causes a disk seek, which easily takes 5 miliseconds. There are a LOT of cpu cycles that can go into these 5 miliseconds. A reasonable rule of thumb is to not put inline at functions that have more than 3 lines of code in them. An exception to this rule are the cases where a parameter is known to be a compiletime constant, and as a result of this constantness you *know* the compiler will be able to optimize most of your function away at compile time. For a good example of this later case, see the kmalloc() inline function. Often people argue that adding inline to functions that are static and used only once is always a win since there is no space tradeoff. While this is technically correct, gcc is capable of inlining these automatically without help, and the maintenance issue of removing the inline when a second user appears outweighs the potential value of the hint that tells gcc to do something it would have done anyway. Chapter 15: References The C Programming Language, Second Edition The C Programming Language, Second Edition by Brian W. Kernighan and Dennis M. Ritchie. by Brian W. Kernighan and Dennis M. Ritchie. Loading @@ -444,10 +472,13 @@ ISBN 0-201-61586-X. URL: http://cm.bell-labs.com/cm/cs/tpop/ URL: http://cm.bell-labs.com/cm/cs/tpop/ GNU manuals - where in compliance with K&R and this text - for cpp, gcc, GNU manuals - where in compliance with K&R and this text - for cpp, gcc, gcc internals and indent, all available from http://www.gnu.org gcc internals and indent, all available from http://www.gnu.org/manual/ WG14 is the international standardization working group for the programming WG14 is the international standardization working group for the programming language C, URL: http://std.dkuug.dk/JTC1/SC22/WG14/ language C, URL: http://www.open-std.org/JTC1/SC22/WG14/ Kernel CodingStyle, by greg@kroah.com at OLS 2002: http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/ -- -- Last updated on 16 February 2004 by a community effort on LKML. Last updated on 30 December 2005 by a community effort on LKML.