Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 8523
b: refs/heads/master
c: a2a9798
h: refs/heads/master
i:
  8521: 4cf8e02
  8519: 3c3f291
v: v3
  • Loading branch information
Keith Owens authored and Tony Luck committed Sep 11, 2005
1 parent 6754cac commit 5345eab
Show file tree
Hide file tree
Showing 14 changed files with 52 additions and 32 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e6c69bd39199656a8bbd0569edaff60574ff9cac
refs/heads/master: a2a979821b6ab75a4f143cfaa1c4672cc259ec10
14 changes: 7 additions & 7 deletions trunk/Documentation/kbuild/makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ This document describes the Linux kernel Makefiles.

=== 6 Architecture Makefiles
--- 6.1 Set variables to tweak the build to the architecture
--- 6.2 Add prerequisites to archprepare:
--- 6.2 Add prerequisites to prepare:
--- 6.3 List directories to visit when descending
--- 6.4 Architecture specific boot images
--- 6.5 Building non-kbuild targets
Expand Down Expand Up @@ -734,18 +734,18 @@ When kbuild executes the following steps are followed (roughly):
for loadable kernel modules.


--- 6.2 Add prerequisites to archprepare:
--- 6.2 Add prerequisites to prepare:

The archprepare: rule is used to list prerequisites that needs to be
The prepare: rule is used to list prerequisites that needs to be
built before starting to descend down in the subdirectories.
This is usual header files containing assembler constants.

Example:
#arch/arm/Makefile
archprepare: maketools
#arch/s390/Makefile
prepare: include/asm-$(ARCH)/offsets.h

In this example the file target maketools will be processed
before descending down in the subdirectories.
In this example the file include/asm-$(ARCH)/offsets.h will
be built before descending down in the subdirectories.
See also chapter XXX-TODO that describe how kbuild supports
generating offset header files.

Expand Down
24 changes: 8 additions & 16 deletions trunk/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,6 @@ include .config
# If .config is newer than include/linux/autoconf.h, someone tinkered
# with it and forgot to run make oldconfig
include/linux/autoconf.h: .config
$(Q)mkdir -p include/linux
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
else
# Dummy target needed, because used as prerequisite
Expand Down Expand Up @@ -777,20 +776,15 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
# Error messages still appears in the original language

.PHONY: $(vmlinux-dirs)
$(vmlinux-dirs): prepare scripts
$(vmlinux-dirs): prepare-all scripts
$(Q)$(MAKE) $(build)=$@

# Things we need to do before we recursively start building the kernel
# or the modules are listed in "prepare".
# A multi level approach is used. prepareN is processed before prepareN-1.
# archprepare is used in arch Makefiles and when processed asm symlink,
# version.h and scripts_basic is processed / created.

# Listed in dependency order
.PHONY: prepare archprepare prepare0 prepare1 prepare2 prepare3
# or the modules are listed in "prepare-all".
# A multi level approach is used. prepare1 is updated first, then prepare0.
# prepare-all is the collection point for the prepare targets.

# prepare-all is deprecated, use prepare as valid replacement
.PHONY: prepare-all
.PHONY: prepare-all prepare prepare0 prepare1 prepare2 prepare3

# prepare3 is used to check if we are building in a separate output directory,
# and if so do:
Expand Down Expand Up @@ -819,13 +813,11 @@ ifneq ($(KBUILD_MODULES),)
$(Q)mkdir -p $(MODVERDIR)
endif

archprepare: prepare1 scripts_basic

prepare0: archprepare FORCE
prepare0: prepare prepare1 FORCE
$(Q)$(MAKE) $(build)=.

# All the preparing..
prepare prepare-all: prepare0
prepare-all: prepare0

# Leave this as default for preprocessing vmlinux.lds.S, which is now
# done in arch/$(ARCH)/kernel/Makefile
Expand Down Expand Up @@ -916,7 +908,7 @@ modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)

# Target to prepare building external modules
.PHONY: modules_prepare
modules_prepare: prepare scripts
modules_prepare: prepare-all scripts

# Target to install modules
.PHONY: modules_install
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ else
endif
@touch $@

archprepare: maketools include/asm-arm/.arch
prepare: maketools include/asm-arm/.arch

.PHONY: maketools FORCE
maketools: include/linux/version.h FORCE
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/cris/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ archclean:
rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img
rm -rf $(LD_SCRIPT).tmp

archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch
prepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch

# Create some links to make all tools happy
$(SRC_ARCH)/.links:
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ia64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ unwcheck: vmlinux
archclean:
$(Q)$(MAKE) $(clean)=$(boot)

archprepare: include/asm-ia64/.offsets.h.stamp
prepare: include/asm-ia64/.offsets.h.stamp

include/asm-ia64/.offsets.h.stamp:
mkdir -p include/asm-ia64
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion trunk/arch/ppc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ archclean:
# Temporary hack until we have migrated to asm-powerpc
$(Q)rm -rf arch/$(ARCH)/include

archprepare: checkbin
prepare: checkbin

# Temporary hack until we have migrated to asm-powerpc
include/asm: arch/$(ARCH)/include/asm
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sh/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ endif
@touch $@


archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach
prepare: maketools include/asm-sh/.cpu include/asm-sh/.mach

.PHONY: maketools FORCE
maketools: include/linux/version.h FORCE
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sh64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ compressed: zImage
archclean:
$(Q)$(MAKE) $(clean)=$(boot)

archprepare: arch/$(ARCH)/lib/syscalltab.h
prepare: arch/$(ARCH)/lib/syscalltab.h

define filechk_gen-syscalltab
(set -e; \
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/um/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ else
$(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch)
endif

archprepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS)
prepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS)

LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/xtensa/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ boot := arch/xtensa/boot

archinc := include/asm-xtensa

archprepare: $(archinc)/.platform
prepare: $(archinc)/.platform

# Update machine cpu and platform symlinks if something which affects
# them changed.
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/linux/sched.h
Original file line number Diff line number Diff line change
Expand Up @@ -904,6 +904,8 @@ extern int task_curr(const task_t *p);
extern int idle_cpu(int cpu);
extern int sched_setscheduler(struct task_struct *, int, struct sched_param *);
extern task_t *idle_task(int cpu);
extern task_t *curr_task(int cpu);
extern void set_curr_task(int cpu, task_t *p);

void yield(void);

Expand Down
26 changes: 26 additions & 0 deletions trunk/kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -3576,6 +3576,32 @@ task_t *idle_task(int cpu)
return cpu_rq(cpu)->idle;
}

/**
* curr_task - return the current task for a given cpu.
* @cpu: the processor in question.
*/
task_t *curr_task(int cpu)
{
return cpu_curr(cpu);
}

/**
* set_curr_task - set the current task for a given cpu.
* @cpu: the processor in question.
* @p: the task pointer to set.
*
* Description: This function must only be used when non-maskable interrupts
* are serviced on a separate stack. It allows the architecture to switch the
* notion of the current task on a cpu in a non-blocking manner. This function
* must be called with interrupts disabled, the caller must save the original
* value of the current task (see curr_task() above) and restore that value
* before reenabling interrupts.
*/
void set_curr_task(int cpu, task_t *p)
{
cpu_curr(cpu) = p;
}

/**
* find_process_by_pid - find a process with a matching PID value.
* @pid: the pid in question.
Expand Down

0 comments on commit 5345eab

Please sign in to comment.