Commit 045fea2a authored by Anton Blanchard's avatar Anton Blanchard

Merge samba.org:/scratch/anton/linux-2.5

into samba.org:/scratch/anton/sfr
parents 3b3b091d c98a2447
...@@ -28,8 +28,6 @@ JFS TODO list: ...@@ -28,8 +28,6 @@ JFS TODO list:
Plans for our near term development items Plans for our near term development items
- enhance support for logfile on dedicated partition - enhance support for logfile on dedicated partition
- get access control list functionality operational
- get extended attributes functionality operational
Longer term work items Longer term work items
...@@ -37,7 +35,7 @@ Longer term work items ...@@ -37,7 +35,7 @@ Longer term work items
- add quota support - add quota support
- add support for block sizes (512,1024,2048) - add support for block sizes (512,1024,2048)
Please send bugs, comments, cards and letters to linuxjfs@us.ibm.com. Please send bugs, comments, cards and letters to shaggy@austin.ibm.com.
The JFS mailing list can be subscribed to by using the link labeled The JFS mailing list can be subscribed to by using the link labeled
"Mail list Subscribe" at our web page http://oss.software.ibm.com/jfs/. "Mail list Subscribe" at our web page http://oss.software.ibm.com/jfs/.
00-INDEX 00-INDEX
- this file: info on the kernel build process - this file: info on the kernel build process
bug-list.txt
- known bugs in kbuild programs
commands.txt commands.txt
- overview of kbuild commands - overview of kbuild commands
kconfig-language.txt kconfig-language.txt
- specification of Config Language, the language in Kconfig files - specification of Config Language, the language in Kconfig files
random.txt
- description of generic config targets
makefiles.txt makefiles.txt
- developer information for linux kernel makefiles - developer information for linux kernel makefiles
Bug List
21 January 1999
Michael Elizabeth Chastain, <mailto:mec@shout.net>
- If a variable has a value of "m" in the previous .config file,
and a type of bool in the Config script, then all the interpreters
get confused. This happens frequently when someone changes a
tristate option to a bool option and people in the field have
.config files with a value of 'm'. For example: CONFIG_PSMOUSE.
- CONFIG_MODVERSIONS has incorrect dependencies. If you have a
problem building the kernel, and you have CONFIG_MODVERSIONS turned
on, do a 'make dep' followed by 'make clean' before you try anything
else.
- 'make dep' uses multistage dependencies, so the .hdepend file contains
'touch' commands. As a result, building a kernel often touches files
in include/linux/*.h. This messes up CVS and other systems which like
to rely on file dates.
- 'make dep' fails for C files which include other C files, such as
drivers/cdrom/sbpcd2.c.
This diff is collapsed.
...@@ -9,20 +9,13 @@ modules packages aren't aware of some of the newer modular features ...@@ -9,20 +9,13 @@ modules packages aren't aware of some of the newer modular features
that the kernel now supports. The current required version is listed that the kernel now supports. The current required version is listed
in the file linux/Documentation/Changes. in the file linux/Documentation/Changes.
* * * NOTE * * *
The kernel has been changed to remove kerneld support and use
the new kmod support. Keep this in mind when reading this file. Kmod
does the exact same thing as kerneld, but doesn't require an external
program (see Documentation/kmod.txt)
In the beginning... In the beginning...
------------------- -------------------
Anyway, your first step is to compile the kernel, as explained in the Anyway, your first step is to compile the kernel, as explained in the
file linux/README. It generally goes like: file linux/README. It generally goes like:
make config make *config <= usually menuconfig or xconfig
make dep
make clean make clean
make zImage or make zlilo make zImage or make zlilo
...@@ -39,15 +32,16 @@ You will generally select the minimal resident set that is needed to boot: ...@@ -39,15 +32,16 @@ You will generally select the minimal resident set that is needed to boot:
plus those things that you just can't live without... plus those things that you just can't live without...
The set of modules is constantly increasing, and you will be able to select The set of modules is constantly increasing, and you will be able to select
the option "m" in "make config" for those features that the current kernel the option "m" in "make menuconfig" for those features that the current kernel
can offer as loadable modules. can offer as loadable modules.
You also have a possibility to create modules that are less dependent on You also have a possibility to create modules that are less dependent on
the kernel version. This option can be selected during "make config", by the kernel version. This option can be selected during "make *config", by
enabling CONFIG_MODVERSIONS, and is most useful on "stable" kernel versions, enabling CONFIG_MODVERSIONS, and is most useful on "stable" kernel versions,
such as the kernels from the 1.2 and 2.0 series. such as the kernels from the 2.<even number> series.
If you have modules that are based on sources that are not included in If you have modules that are based on sources that are not included in
the official kernel sources, you will certainly like this option... the official kernel sources, you will certainly like this option...
See below how to compile modules outside the official kernel.
Here is a sample of the available modules included in the kernel sources: Here is a sample of the available modules included in the kernel sources:
...@@ -83,22 +77,45 @@ When you have made the kernel, you create the modules by doing: ...@@ -83,22 +77,45 @@ When you have made the kernel, you create the modules by doing:
make modules make modules
This will compile all modules and update the linux/modules directory. This will compile all modules. A module is identified by the
In this directory you will then find a bunch of symbolic links, extension .ko, for kernel object.
pointing to the various object files in the kernel tree.
Now, after you have created all your modules, you should also do: Now, after you have created all your modules, you should also do:
make modules_install make modules_install
This will copy all newly made modules into subdirectories under This will copy all newly made modules into subdirectories under
"/lib/modules/kernel_release/", where "kernel_release" is something "/lib/modules/kernel_release/", where "kernel_release" is something
like 2.0.1, or whatever the current kernel version is... like 2.5.54, or whatever the current kernel version is.
Note: Installing modules may require root privileges.
As soon as you have rebooted the newly made kernel, you can install As soon as you have rebooted the newly made kernel, you can install
and remove modules at will with the utilities: "insmod" and "rmmod". and remove modules at will with the utilities: "insmod" and "rmmod".
After reading the man-page for insmod, you will also know how easy After reading the man-page for insmod, you will also know how easy
it is to configure a module when you do "insmod" (hint: symbol=value). it is to configure a module when you do "insmod" (hint: symbol=value).
Installing modules in a non-standard location
---------------------------------------------
When the modules needs to be installed under another directory
the INSTALL_MOD_PATH can be used to prefix "/lib/modules" as seen
in the following example:
make INSTALL_MOD_PATH=/frodo modules_install
This will install the modules in the directory /frodo/lib/modules.
/frodo can be a NFS mounted filesystem on another machine, allowing
out-of-the-box support for installation on remote machines.
Compiling modules outside the official kernel
---------------------------------------------
Often modules are developed outside the official kernel.
To keep up with changes in the build system the most portable way
to compile a module outside the kernel is to use the following command-line:
make -C path/to/kernel/src SUBDIRS=$PWD modules
This requires that a makefile exits made in accordance to
Documentation/kbuild/makefiles.txt.
Nifty features: Nifty features:
--------------- ---------------
......
...@@ -281,6 +281,14 @@ tcp_rfc1337 - BOOLEAN ...@@ -281,6 +281,14 @@ tcp_rfc1337 - BOOLEAN
assassination. assassination.
Default: 0 Default: 0
tcp_low_latency - BOOLEAN
If set, the TCP stack makes decisions that prefer lower
latency as opposed to higher throughput. By default, this
option is not set meaning that higher throughput is preferred.
An example of an application where this default should be
changed would be a Beowulf compute cluster.
Default: 0
ip_local_port_range - 2 INTEGERS ip_local_port_range - 2 INTEGERS
Defines the local port range that is used by TCP and UDP to Defines the local port range that is used by TCP and UDP to
choose the local port. The first number is the first, the choose the local port. The first number is the first, the
......
This diff is collapsed.
This diff is collapsed.
...@@ -748,7 +748,8 @@ Module parameters ...@@ -748,7 +748,8 @@ Module parameters
Module snd-rme32 Module snd-rme32
---------------- ----------------
Module for RME Digi32, Digi32/8 and Digi32 PRO soundcards. Module for RME Digi32, Digi32 Pro and Digi32/8 (Sek'd Prodif32,
Prodif96 and Prodif Gold) soundcards.
Module supports up to 8 cards. Module supports up to 8 cards.
......
...@@ -82,9 +82,15 @@ as you like and set the format S16LE. For example, for playback with ...@@ -82,9 +82,15 @@ as you like and set the format S16LE. For example, for playback with
and use the interleaved 4 channel data. and use the interleaved 4 channel data.
There is a control switch, "Line-In As Bass". As you can imagine from There are some control switchs affecting to the speaker connections:
its name, the line-in jack is used for the bass (5th and 6th channels)
output. "Line-In As Rear" - As mentioned above, the line-in jack is used
for the rear (3th and 4th channels) output.
"Line-In As Bass" - The line-in jack is used for the bass (5th
and 6th channels) output.
"Mic As Center/LFE" - The mic jack is used for the bass output.
If this switch is on, you cannot use a microphone as a capture
source, of course.
Digital I/O Digital I/O
...@@ -134,8 +140,7 @@ Additionally there are relevant control switches: ...@@ -134,8 +140,7 @@ Additionally there are relevant control switches:
(see the next section). (see the next section).
"IEC958 In Select" - Select SPDIF input, the internal CD-in (false) "IEC958 In Select" - Select SPDIF input, the internal CD-in (false)
and the external input (true). This switch appears only on and the external input (true).
the chip models 039 or later.
"IEC958 Loop" - SPDIF input data is loop back into SPDIF "IEC958 Loop" - SPDIF input data is loop back into SPDIF
output (aka bypass) output (aka bypass)
......
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<book>
<?dbhtml filename="index.html">
<!-- ****************************************************** -->
<!-- Header -->
<!-- ****************************************************** -->
<bookinfo>
<title>The ALSA Driver API</title>
<legalnotice>
<para>
This document is free; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
</para>
<para>
This document is distributed in the hope that it will be useful,
but <emphasis>WITHOUT ANY WARRANTY</emphasis>; without even the
implied warranty of <emphasis>MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE</emphasis>. See the GNU General Public License
for more details.
</para>
<para>
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
</para>
</legalnotice>
</bookinfo>
<chapter><title>Management of Cards and Devices</title>
<sect1><title>Card Managment</title>
!Esound/core/init.c
</sect1>
<sect1><title>Device Components</title>
!Esound/core/device.c
</sect1>
<sect1><title>KMOD and Device File Entries</title>
!Esound/core/sound.c
</sect1>
<sect1><title>Memory Management Helpers</title>
!Esound/core/memory.c
!Iinclude/sound/sndmagic.h
</sect1>
</chapter>
<chapter><title>PCM API</title>
<sect1><title>PCM Core</title>
!Esound/core/pcm.c
!Esound/core/pcm_lib.c
!Esound/core/pcm_native.c
</sect1>
<sect1><title>PCM Format Helpers</title>
!Esound/core/pcm_misc.c
</sect1>
<sect1><title>PCM Memory Managment</title>
!Esound/core/pcm_memory.c
</sect1>
<sect1><title>SG-Buffer Helpers</title>
!Esound/core/pcm_sgbuf.c
</sect1>
</chapter>
<chapter><title>Control/Mixer API</title>
<sect1><title>General Control Interface</title>
!Esound/core/control.c
</sect1>
<sect1><title>AC97 Codec API</title>
!Esound/pci/ac97/ac97_codec.c
</sect1>
</chapter>
<chapter><title>MIDI API</title>
<sect1><title>Raw MIDI API</title>
!Esound/core/rawmidi.c
</sect1>
<sect1><title>MPU401-UART API</title>
!Esound/drivers/mpu401/mpu401_uart.c
</sect1>
</chapter>
<chapter><title>Proc Info API</title>
<sect1><title>Proc Info Interface</title>
!Esound/core/info.c
</sect1>
</chapter>
<chapter><title>Miscellaneous Functions</title>
<sect1><title>Hardware-Dependent Devices API</title>
!Esound/core/hwdep.c
</sect1>
<sect1><title>ISA DMA Helpers</title>
!Esound/core/isadma.c
</sect1>
<sect1><title>Other Helper Macros</title>
!Iinclude/sound/core.h
</sect1>
</chapter>
</book>
This diff is collapsed.
This diff is collapsed.
...@@ -54,7 +54,7 @@ CROSS_COMPILE = ...@@ -54,7 +54,7 @@ CROSS_COMPILE =
# That's our default target when none is given on the command line # That's our default target when none is given on the command line
all: vmlinux all: vmlinux modules
# Decide whether to build built-in, modular, or both. # Decide whether to build built-in, modular, or both.
# Normally, just do built-in. # Normally, just do built-in.
...@@ -183,6 +183,8 @@ export CPPFLAGS NOSTDINC_FLAGS OBJCOPYFLAGS LDFLAGS ...@@ -183,6 +183,8 @@ export CPPFLAGS NOSTDINC_FLAGS OBJCOPYFLAGS LDFLAGS
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
export MODVERDIR := .tmp_versions
# The temporary file to save gcc -MD generated dependencies must not # The temporary file to save gcc -MD generated dependencies must not
# contain a comma # contain a comma
depfile = $(subst $(comma),_,$(@D)/.$(@F).d) depfile = $(subst $(comma),_,$(@D)/.$(@F).d)
...@@ -190,7 +192,7 @@ depfile = $(subst $(comma),_,$(@D)/.$(@F).d) ...@@ -190,7 +192,7 @@ depfile = $(subst $(comma),_,$(@D)/.$(@F).d)
noconfig_targets := xconfig menuconfig config oldconfig randconfig \ noconfig_targets := xconfig menuconfig config oldconfig randconfig \
defconfig allyesconfig allnoconfig allmodconfig \ defconfig allyesconfig allnoconfig allmodconfig \
clean mrproper distclean \ clean mrproper distclean \
help tags TAGS sgmldocs psdocs pdfdocs htmldocs \ help tags TAGS cscope sgmldocs psdocs pdfdocs htmldocs \
checkconfig checkhelp checkincludes checkconfig checkhelp checkincludes
RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \) -prune -o RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \) -prune -o
...@@ -256,14 +258,22 @@ ifdef include_config ...@@ -256,14 +258,22 @@ ifdef include_config
-include .config.cmd -include .config.cmd
ifdef CONFIG_MODULES
export EXPORT_FLAGS := -DEXPORT_SYMTAB
endif
ifndef CONFIG_FRAME_POINTER ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer CFLAGS += -fomit-frame-pointer
endif endif
# When we're building modules with modversions, we need to consider
# the built-in objects during the descend as well, in order to
# make sure the checksums are uptodate before we record them.
ifdef CONFIG_MODVERSIONS
ifeq ($(KBUILD_MODULES),1)
ifneq ($(KBUILD_BUILTIN),1)
KBUILD_BUILTIN := 1
endif
endif
endif
# #
# INSTALL_PATH specifies where to place the updated kernel and system map # INSTALL_PATH specifies where to place the updated kernel and system map
# images. Uncomment if you want to place them anywhere other than root. # images. Uncomment if you want to place them anywhere other than root.
...@@ -289,12 +299,12 @@ export MODLIB ...@@ -289,12 +299,12 @@ export MODLIB
# normal descending-into-subdirs phase, since at that time # normal descending-into-subdirs phase, since at that time
# we cannot yet know if we will need to relink vmlinux. # we cannot yet know if we will need to relink vmlinux.
# So we descend into init/ inside the rule for vmlinux again. # So we descend into init/ inside the rule for vmlinux again.
head-y += $(HEAD)
vmlinux-objs := $(HEAD) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y) vmlinux-objs := $(head-y) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y)
quiet_cmd_vmlinux__ = LD $@ quiet_cmd_vmlinux__ = LD $@
define cmd_vmlinux__ define cmd_vmlinux__
$(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(HEAD) $(init-y) \ $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(head-y) $(init-y) \
--start-group \ --start-group \
$(core-y) \ $(core-y) \
$(libs-y) \ $(libs-y) \
...@@ -384,7 +394,7 @@ $(sort $(vmlinux-objs)): $(SUBDIRS) ; ...@@ -384,7 +394,7 @@ $(sort $(vmlinux-objs)): $(SUBDIRS) ;
# Handle descending into subdirectories listed in $(SUBDIRS) # Handle descending into subdirectories listed in $(SUBDIRS)
.PHONY: $(SUBDIRS) .PHONY: $(SUBDIRS)
$(SUBDIRS): .hdepend prepare $(SUBDIRS): prepare
$(Q)$(MAKE) $(build)=$@ $(Q)$(MAKE) $(build)=$@
# Things we need done before we descend to build or make # Things we need done before we descend to build or make
...@@ -392,6 +402,16 @@ $(SUBDIRS): .hdepend prepare ...@@ -392,6 +402,16 @@ $(SUBDIRS): .hdepend prepare
.PHONY: prepare .PHONY: prepare
prepare: include/linux/version.h include/asm include/config/MARKER prepare: include/linux/version.h include/asm include/config/MARKER
ifdef CONFIG_MODVERSIONS
ifdef KBUILD_MODULES
ifeq ($(origin SUBDIRS),file)
$(Q)rm -rf $(MODVERDIR)
else
@echo '*** Warning: Overriding SUBDIRS on the command line can cause'
@echo '*** inconsistencies with module symbol versions'
endif
endif
endif
@echo ' Starting the build. KBUILD_BUILTIN=$(KBUILD_BUILTIN) KBUILD_MODULES=$(KBUILD_MODULES)' @echo ' Starting the build. KBUILD_BUILTIN=$(KBUILD_BUILTIN) KBUILD_MODULES=$(KBUILD_MODULES)'
# We need to build init/vermagic.o before descending since all modules # We need to build init/vermagic.o before descending since all modules
...@@ -424,6 +444,8 @@ targets += arch/$(ARCH)/vmlinux.lds.s ...@@ -424,6 +444,8 @@ targets += arch/$(ARCH)/vmlinux.lds.s
$(Q)$(MAKE) $(build)=$(@D) $@ $(Q)$(MAKE) $(build)=$(@D) $@
%.o: %.c scripts FORCE %.o: %.c scripts FORCE
$(Q)$(MAKE) $(build)=$(@D) $@ $(Q)$(MAKE) $(build)=$(@D) $@
%/: scripts prepare FORCE
$(Q)$(MAKE) $(build)=$(@D)
%.ko: scripts FORCE %.ko: scripts FORCE
$(Q)$(MAKE) $(build)=$(@D) $@ $(Q)$(MAKE) $(build)=$(@D) $@
%.lst: %.c scripts FORCE %.lst: %.c scripts FORCE
...@@ -475,61 +497,11 @@ include/linux/version.h: Makefile ...@@ -475,61 +497,11 @@ include/linux/version.h: Makefile
) > $@.tmp ) > $@.tmp
@$(update-if-changed) @$(update-if-changed)
# Generate module versions
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# The targets are still named depend / dep for traditional .PHONY: depend dep
# reasons, but the only thing we do here is generating depend dep:
# the module version checksums. @echo'*** Warning: make $@ is unnecessary now.'
.PHONY: depend dep $(patsubst %,_sfdep_%,$(SUBDIRS))
depend dep: .hdepend
# .hdepend is our (misnomed) marker for whether we've
# generated module versions
make-versions := $(strip $(if $(filter dep depend,$(MAKECMDGOALS)),1) \
$(if $(wildcard .hdepend),,1))
.hdepend: prepare FORCE
ifneq ($(make-versions),)
@$(MAKE) include/linux/modversions.h
@touch $@
endif
ifdef CONFIG_MODVERSIONS
# Update modversions.h, but only if it would change.
.PHONY: __rm_tmp_export-objs
__rm_tmp_export-objs:
@rm -rf .tmp_export-objs
include/linux/modversions.h: $(patsubst %,_modver_%,$(SUBDIRS))
@echo -n ' Generating $@'
@( echo "#ifndef _LINUX_MODVERSIONS_H";\
echo "#define _LINUX_MODVERSIONS_H"; \
echo "#include <linux/modsetver.h>"; \
cd .tmp_export-objs >/dev/null; \
for f in `find modules -name \*.ver -print | sort`; do \
echo "#include <linux/$${f}>"; \
done; \
echo "#endif"; \
) > $@.tmp; \
$(update-if-changed)
.PHONY: $(patsubst %, _modver_%, $(SUBDIRS))
$(patsubst %, _modver_%, $(SUBDIRS)): __rm_tmp_export-objs
$(Q)$(MAKE) -f scripts/Makefile.modver obj=$(patsubst _modver_%,%,$@)
else # !CONFIG_MODVERSIONS
.PHONY: include/linux/modversions.h
include/linux/modversions.h:
endif # CONFIG_MODVERSIONS
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Modules # Modules
...@@ -538,12 +510,16 @@ ifdef CONFIG_MODULES ...@@ -538,12 +510,16 @@ ifdef CONFIG_MODULES
# Build modules # Build modules
.PHONY: modules __modversions
modules: $(SUBDIRS) __modversions
ifdef CONFIG_MODVERSIONS ifdef CONFIG_MODVERSIONS
MODFLAGS += -include include/linux/modversions.h
endif
.PHONY: modules __modversions: vmlinux $(SUBDIRS)
modules: $(SUBDIRS) @echo ' Recording module symbol versions.';
$(Q)$(MAKE) -rR -f scripts/Makefile.modver
endif
# Install modules # Install modules
...@@ -574,6 +550,7 @@ _modinst_post: ...@@ -574,6 +550,7 @@ _modinst_post:
.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS)) .PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
$(patsubst %, _modinst_%, $(SUBDIRS)) : $(patsubst %, _modinst_%, $(SUBDIRS)) :
$(Q)$(MAKE) -rR -f scripts/Makefile.modinst obj=$(patsubst _modinst_%,%,$@) $(Q)$(MAKE) -rR -f scripts/Makefile.modinst obj=$(patsubst _modinst_%,%,$@)
else # CONFIG_MODULES else # CONFIG_MODULES
# Modules not configured # Modules not configured
...@@ -624,7 +601,7 @@ spec: ...@@ -624,7 +601,7 @@ spec:
rpm: clean spec rpm: clean spec
find . $(RCS_FIND_IGNORE) \ find . $(RCS_FIND_IGNORE) \
\( -size 0 -o -name .depend -o -name .hdepend \) \ \( -size 0 -o -name .depend -o -name .hdepend\) \
-type f -print | xargs rm -f -type f -print | xargs rm -f
set -e; \ set -e; \
cd $(TOPDIR)/.. ; \ cd $(TOPDIR)/.. ; \
...@@ -718,25 +695,26 @@ MRPROPER_FILES += \ ...@@ -718,25 +695,26 @@ MRPROPER_FILES += \
.menuconfig.log \ .menuconfig.log \
include/asm \ include/asm \
.hdepend include/linux/modversions.h \ .hdepend include/linux/modversions.h \
tags TAGS kernel.spec \ tags TAGS cscope kernel.spec \
.tmp* .tmp*
# Directories removed with 'make mrproper' # Directories removed with 'make mrproper'
MRPROPER_DIRS += \ MRPROPER_DIRS += \
$(MODVERDIR) \
.tmp_export-objs \ .tmp_export-objs \
include/config \ include/config \
include/linux/modules include/linux/modules
# clean - Delete all intermediate files # clean - Delete all intermediate files
# #
clean-dirs += $(ALL_SUBDIRS) Documentation/DocBook scripts clean-dirs += $(addprefix _clean_,$(ALL_SUBDIRS) Documentation/DocBook scripts)
.PHONY: $(clean-dirs) clean archclean mrproper archmrproper distclean
$(addprefix _clean_,$(clean-dirs)): $(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
quiet_cmd_rmclean = RM $$(CLEAN_FILES) quiet_cmd_rmclean = RM $$(CLEAN_FILES)
cmd_rmclean = rm -f $(CLEAN_FILES) cmd_rmclean = rm -f $(CLEAN_FILES)
clean: archclean $(addprefix _clean_,$(clean-dirs)) clean: archclean $(clean-dirs)
$(call cmd,rmclean) $(call cmd,rmclean)
@find . $(RCS_FIND_IGNORE) \ @find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
...@@ -775,6 +753,9 @@ define all-sources ...@@ -775,6 +753,9 @@ define all-sources
-name '*.[chS]' -print ) -name '*.[chS]' -print )
endef endef
quiet_cmd_cscope = MAKE $@
cmd_cscope = $(all-sources) | cscope -k -b -i -
quiet_cmd_TAGS = MAKE $@ quiet_cmd_TAGS = MAKE $@
cmd_TAGS = $(all-sources) | etags - cmd_TAGS = $(all-sources) | etags -
...@@ -787,6 +768,9 @@ define cmd_tags ...@@ -787,6 +768,9 @@ define cmd_tags
$(all-sources) | xargs ctags $$CTAGSF -a $(all-sources) | xargs ctags $$CTAGSF -a
endef endef
cscope: FORCE
$(call cmd,cscope)
TAGS: FORCE TAGS: FORCE
$(call cmd,TAGS) $(call cmd,TAGS)
......
...@@ -90,7 +90,7 @@ endif ...@@ -90,7 +90,7 @@ endif
# BWX is most important, but we don't really want any emulation ever. # BWX is most important, but we don't really want any emulation ever.
CFLAGS += $(cflags-y) -Wa,-mev6 CFLAGS += $(cflags-y) -Wa,-mev6
HEAD := arch/alpha/kernel/head.o head-y := arch/alpha/kernel/head.o
core-y += arch/alpha/kernel/ arch/alpha/mm/ core-y += arch/alpha/kernel/ arch/alpha/mm/
core-$(CONFIG_MATHEMU) += arch/alpha/math-emu/ core-$(CONFIG_MATHEMU) += arch/alpha/math-emu/
...@@ -125,8 +125,6 @@ include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s ...@@ -125,8 +125,6 @@ include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
archclean: archclean:
$(Q)$(MAKE) -f scripts/Makefile.clean obj=$(boot) $(Q)$(MAKE) -f scripts/Makefile.clean obj=$(boot)
archmrproper:
CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h.tmp \ CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h.tmp \
include/asm-$(ARCH)/asm_offsets.h include/asm-$(ARCH)/asm_offsets.h
......
...@@ -6,8 +6,6 @@ EXTRA_TARGETS := head.o ...@@ -6,8 +6,6 @@ EXTRA_TARGETS := head.o
EXTRA_AFLAGS := $(CFLAGS) EXTRA_AFLAGS := $(CFLAGS)
export-objs := alpha_ksyms.o core_marvel.o core_titan.o
obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \ obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
irq_alpha.o signal.o setup.o ptrace.o time.o semaphore.o \ irq_alpha.o signal.o setup.o ptrace.o time.o semaphore.o \
alpha_ksyms.o systbls.o err_common.o alpha_ksyms.o systbls.o err_common.o
......
...@@ -17,7 +17,7 @@ GZFLAGS :=-9 ...@@ -17,7 +17,7 @@ GZFLAGS :=-9
CFLAGS :=$(CFLAGS:-O2=-Os) CFLAGS :=$(CFLAGS:-O2=-Os)
ifeq ($(CONFIG_FRAME_POINTER),y) ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS :=$(CFLAGS:-fomit-frame-pointer=-mapcs -mno-sched-prolog) CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif endif
ifeq ($(CONFIG_DEBUG_INFO),y) ifeq ($(CONFIG_DEBUG_INFO),y)
...@@ -36,7 +36,7 @@ apcs-$(CONFIG_CPU_26) :=-mapcs-26 -mcpu=arm3 ...@@ -36,7 +36,7 @@ apcs-$(CONFIG_CPU_26) :=-mapcs-26 -mcpu=arm3
# series of macros. # series of macros.
arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3 arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3
arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4 arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4
arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 -march=armv5 arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 -march=armv5te
arch-$(CONFIG_CPU_XSCALE) :=-D__LINUX_ARM_ARCH__=5 -march=armv4 -Wa,-mxscale #-march=armv5te arch-$(CONFIG_CPU_XSCALE) :=-D__LINUX_ARM_ARCH__=5 -march=armv4 -Wa,-mxscale #-march=armv5te
# This selects how we optimise for the processor. # This selects how we optimise for the processor.
...@@ -61,7 +61,7 @@ DATAADDR := . ...@@ -61,7 +61,7 @@ DATAADDR := .
ifeq ($(CONFIG_CPU_26),y) ifeq ($(CONFIG_CPU_26),y)
PROCESSOR := armo PROCESSOR := armo
HEAD := arch/arm/mach-arc/head.o arch/arm/kernel/init_task.o head-y := arch/arm/mach-arc/head.o arch/arm/kernel/init_task.o
LDFLAGS_BLOB += --oformat elf26-littlearm LDFLAGS_BLOB += --oformat elf26-littlearm
ifeq ($(CONFIG_ROM_KERNEL),y) ifeq ($(CONFIG_ROM_KERNEL),y)
DATAADDR := 0x02080000 DATAADDR := 0x02080000
...@@ -73,7 +73,7 @@ endif ...@@ -73,7 +73,7 @@ endif
ifeq ($(CONFIG_CPU_32),y) ifeq ($(CONFIG_CPU_32),y)
PROCESSOR := armv PROCESSOR := armv
HEAD := arch/arm/kernel/head.o arch/arm/kernel/init_task.o head-y := arch/arm/kernel/head.o arch/arm/kernel/init_task.o
LDFLAGS_BLOB += --oformat elf32-littlearm LDFLAGS_BLOB += --oformat elf32-littlearm
textaddr-y := 0xC0008000 textaddr-y := 0xC0008000
endif endif
...@@ -124,10 +124,10 @@ FASTFPE_OBJ :=$(FASTFPE)/ ...@@ -124,10 +124,10 @@ FASTFPE_OBJ :=$(FASTFPE)/
endif endif
# If we have a machine-specific directory, then include it in the build. # If we have a machine-specific directory, then include it in the build.
core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
ifneq ($(MACHINE),) ifneq ($(MACHINE),)
core-y += arch/arm/mach-$(MACHINE)/ core-y += arch/arm/mach-$(MACHINE)/
endif endif
core-y += arch/arm/kernel/ arch/arm/mm/
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/ core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ) core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
...@@ -181,7 +181,6 @@ MRPROPER_FILES += \ ...@@ -181,7 +181,6 @@ MRPROPER_FILES += \
include/asm-arm/mach-types.h include/asm-arm/mach-types.h
# We use MRPROPER_FILES and CLEAN_FILES now # We use MRPROPER_FILES and CLEAN_FILES now
archmrproper:
archclean: archclean:
$(Q)$(MAKE) $(clean)=$(boot) $(Q)$(MAKE) $(clean)=$(boot)
......
...@@ -664,5 +664,5 @@ memdump: mov r12, r0 ...@@ -664,5 +664,5 @@ memdump: mov r12, r0
reloc_end: reloc_end:
.align .align
.section ".stack", "aw" .section ".stack", "w"
user_stack: .space 4096 user_stack: .space 4096
#
# Makefile for the linux kernel.
#
obj-$(CONFIG_SA1111) += sa1111.o sa1111-pcibuf.o sa1111-pcipool.o
obj-$(CONFIG_PCI_HOST_PLX90X0) += plx90x0.o
obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
This diff is collapsed.
This diff is collapsed.
...@@ -15,8 +15,6 @@ obj-m := ...@@ -15,8 +15,6 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs := armksyms.o apm.o dma.o ecard.o fiq.o io.o time.o
obj-$(CONFIG_APM) += apm.o obj-$(CONFIG_APM) += apm.o
obj-$(CONFIG_ARCH_ACORN) += ecard.o time-acorn.o obj-$(CONFIG_ARCH_ACORN) += ecard.o time-acorn.o
obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o
...@@ -26,8 +24,6 @@ obj-$(CONFIG_MODULES) += armksyms.o module.o ...@@ -26,8 +24,6 @@ obj-$(CONFIG_MODULES) += armksyms.o module.o
obj-$(CONFIG_ARTHUR) += arthur.o obj-$(CONFIG_ARTHUR) += arthur.o
obj-$(CONFIG_ISA_DMA) += dma-isa.o obj-$(CONFIG_ISA_DMA) += dma-isa.o
obj-$(CONFIG_PCI) += bios32.o obj-$(CONFIG_PCI) += bios32.o
obj-$(CONFIG_PCI_HOST_PLX90X0) += plx90x0.o
obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
ifneq ($(MACHINE),ebsa110) ifneq ($(MACHINE),ebsa110)
obj-y += io.o obj-y += io.o
......
...@@ -881,6 +881,90 @@ static void ecard_proc_init(void) ...@@ -881,6 +881,90 @@ static void ecard_proc_init(void)
get_ecard_dev_info); get_ecard_dev_info);
} }
#define ec_set_resource(ec,nr,st,sz,flg) \
do { \
(ec)->resource[nr].name = ec->dev.name; \
(ec)->resource[nr].start = st; \
(ec)->resource[nr].end = (st) + (sz) - 1; \
(ec)->resource[nr].flags = flg; \
} while (0)
static void __init ecard_init_resources(struct expansion_card *ec)
{
unsigned long base = PODSLOT_IOC4_BASE;
unsigned int slot = ec->slot_no;
int i;
if (slot < 4) {
ec_set_resource(ec, ECARD_RES_MEMC,
PODSLOT_MEMC_BASE + (slot << 14),
PODSLOT_MEMC_SIZE, IORESOURCE_MEM);
base = PODSLOT_IOC0_BASE;
}
#ifdef CONFIG_ARCH_RPC
if (slot < 8) {
ec_set_resource(ec, ECARD_RES_EASI,
PODSLOT_EASI_BASE + (slot << 24),
PODSLOT_EASI_SIZE, IORESOURCE_MEM);
}
if (slot == 8) {
ec_set_resource(ec, ECARD_RES_MEMC, NETSLOT_BASE,
NETSLOT_SIZE, IORESOURCE_MEM);
} else
#endif
for (i = 0; i < ECARD_RES_IOCSYNC - ECARD_RES_IOCSLOW; i++) {
ec_set_resource(ec, i + ECARD_RES_IOCSLOW,
base + (slot << 14) + (i << 19),
PODSLOT_IOC_SIZE, IORESOURCE_MEM);
}
for (i = 0; i < ECARD_NUM_RESOURCES; i++) {
if (ec->resource[i].start &&
request_resource(&iomem_resource, &ec->resource[i])) {
printk(KERN_ERR "%s: resource(s) not available\n",
ec->dev.bus_id);
ec->resource[i].end -= ec->resource[i].start;
ec->resource[i].start = 0;
}
}
}
static ssize_t ecard_show_irq(struct device *dev, char *buf)
{
struct expansion_card *ec = ECARD_DEV(dev);
return sprintf(buf, "%u\n", ec->irq);
}
static DEVICE_ATTR(irq, S_IRUGO, ecard_show_irq, NULL);
static ssize_t ecard_show_dma(struct device *dev, char *buf)
{
struct expansion_card *ec = ECARD_DEV(dev);
return sprintf(buf, "%u\n", ec->dma);
}
static DEVICE_ATTR(dma, S_IRUGO, ecard_show_dma, NULL);
static ssize_t ecard_show_resources(struct device *dev, char *buf)
{
struct expansion_card *ec = ECARD_DEV(dev);
char *str = buf;
int i;
for (i = 0; i < ECARD_NUM_RESOURCES; i++)
str += sprintf(str, "%08lx %08lx %08lx\n",
ec->resource[i].start,
ec->resource[i].end,
ec->resource[i].flags);
return str - buf;
}
static DEVICE_ATTR(resource, S_IRUGO, ecard_show_resources, NULL);
/* /*
* Probe for an expansion card. * Probe for an expansion card.
* *
...@@ -949,6 +1033,16 @@ ecard_probe(int slot, card_type_t type) ...@@ -949,6 +1033,16 @@ ecard_probe(int slot, card_type_t type)
break; break;
} }
snprintf(ec->dev.bus_id, sizeof(ec->dev.bus_id), "ecard%d", slot);
snprintf(ec->dev.name, sizeof(ec->dev.name), "ecard %04x:%04x",
ec->cid.manufacturer, ec->cid.product);
ec->dev.parent = NULL;
ec->dev.bus = &ecard_bus_type;
ec->dev.dma_mask = &ec->dma_mask;
ec->dma_mask = (u64)0xffffffff;
ecard_init_resources(ec);
/* /*
* hook the interrupt handlers * hook the interrupt handlers
*/ */
...@@ -974,14 +1068,10 @@ ecard_probe(int slot, card_type_t type) ...@@ -974,14 +1068,10 @@ ecard_probe(int slot, card_type_t type)
*ecp = ec; *ecp = ec;
slot_to_expcard[slot] = ec; slot_to_expcard[slot] = ec;
snprintf(ec->dev.bus_id, sizeof(ec->dev.bus_id), "ecard%d", slot);
strcpy(ec->dev.name, "fixme!");
ec->dev.parent = NULL;
ec->dev.bus = &ecard_bus_type;
ec->dev.dma_mask = &ec->dma_mask;
ec->dma_mask = (u64)0xffffffff;
device_register(&ec->dev); device_register(&ec->dev);
device_create_file(&ec->dev, &dev_attr_dma);
device_create_file(&ec->dev, &dev_attr_irq);
device_create_file(&ec->dev, &dev_attr_resource);
return 0; return 0;
......
This diff is collapsed.
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/root_dev.h> #include <linux/root_dev.h>
#include <linux/cpu.h>
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/hardware.h> #include <asm/hardware.h>
...@@ -691,6 +692,15 @@ void __init setup_arch(char **cmdline_p) ...@@ -691,6 +692,15 @@ void __init setup_arch(char **cmdline_p)
#endif #endif
} }
static struct cpu cpu[1];
static int __init topology_init(void)
{
return register_cpu(cpu, 0, NULL);
}
subsys_initcall(topology_init);
static const char *hwcap_str[] = { static const char *hwcap_str[] = {
"swp", "swp",
"half", "half",
......
...@@ -53,7 +53,8 @@ static const char *handler[]= { "prefetch abort", "data abort", "address excepti ...@@ -53,7 +53,8 @@ static const char *handler[]= { "prefetch abort", "data abort", "address excepti
void dump_backtrace_entry(unsigned long where, unsigned long from) void dump_backtrace_entry(unsigned long where, unsigned long from)
{ {
printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from); printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
print_symbol(" %s\n", where); print_symbol(" %s", where);
printk("\n");
} }
/* /*
......
...@@ -9,4 +9,3 @@ obj-m := ...@@ -9,4 +9,3 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
...@@ -9,4 +9,3 @@ obj-m := ...@@ -9,4 +9,3 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
...@@ -10,8 +10,6 @@ obj-m := ...@@ -10,8 +10,6 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs := oldlatches.o
obj-$(CONFIG_DEBUG_LL) += debug.o obj-$(CONFIG_DEBUG_LL) += debug.o
EXTRA_TARGETS := head.o EXTRA_TARGETS := head.o
......
...@@ -9,4 +9,3 @@ obj-m := ...@@ -9,4 +9,3 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
...@@ -4,11 +4,9 @@ ...@@ -4,11 +4,9 @@
# Object file lists. # Object file lists.
obj-y := core.o io.o time.o obj-y := core.o io.o
obj-m := obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs := io.o
obj-$(CONFIG_LEDS) += leds.o obj-$(CONFIG_LEDS) += leds.o
This diff is collapsed.
...@@ -9,4 +9,3 @@ obj-m := ...@@ -9,4 +9,3 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
...@@ -9,8 +9,6 @@ obj-m := ...@@ -9,8 +9,6 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs := arch.o netwinder-hw.o
pci-$(CONFIG_ARCH_CATS) += cats-pci.o pci-$(CONFIG_ARCH_CATS) += cats-pci.o
pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o
pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
......
...@@ -9,7 +9,5 @@ obj-m := ...@@ -9,7 +9,5 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
obj-$(CONFIG_PCI) += pci.o obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_LEDS) += leds.o obj-$(CONFIG_LEDS) += leds.o
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <asm/hardware.h> #include <asm/hardware.h>
#include <asm/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/mach/pci.h> #include <asm/mach/pci.h>
...@@ -295,7 +296,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where, ...@@ -295,7 +296,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
v = __raw_readw(addr); v = __raw_readw(addr);
break; break;
case 4: default:
v = __raw_readl(addr); v = __raw_readl(addr);
break; break;
} }
......
...@@ -10,8 +10,6 @@ obj-m := ...@@ -10,8 +10,6 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
obj-$(CONFIG_ARCH_IQ80310) += iq80310-pci.o iq80310-irq.o obj-$(CONFIG_ARCH_IQ80310) += iq80310-pci.o iq80310-irq.o
ifneq ($(CONFIG_XSCALE_PMU_TIMER),y) ifneq ($(CONFIG_XSCALE_PMU_TIMER),y)
......
...@@ -9,4 +9,3 @@ obj-m := ...@@ -9,4 +9,3 @@ obj-m :=
obj-n := obj-n :=
obj- := obj- :=
export-objs :=
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
# Makefile for the linux kernel. # Makefile for the linux kernel.
# #
export-objs := generic.o irq.o dma.o sa1111.o
# Common support (must be linked before board specific support) # Common support (must be linked before board specific support)
obj-y += generic.o irq.o dma.o obj-y += generic.o irq.o dma.o
obj-$(CONFIG_SA1111) += sa1111.o obj-$(CONFIG_SA1111) += sa1111.o
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment