Move struct pidmap and PIDMAP_ENTRIES to a new file, include/linux/pspace.h where it will be used in subsequent patches to define pid spaces. Its a subset of Eric Biederman's patch http://lkml.org/lkml/2006/2/6/285 Signed-off-by: Eric W. Biederman <ebiederm at xmission.com> Signed-off-by: Sukadev Bhattiprolu <sukadev at us.ibm.com> Cc: Dave Hansen <haveblue at us.ibm.com> Cc: Serge Hallyn <serue at us.ibm.com> Cc: Cedric Le Goater <clg at fr.ibm.com> Cc: <containers at lists.osdl.org> include/linux/pspace.h | 17 +++++++++++++++++ kernel/pid.c | 7 +------ 2 files changed, 18 insertions(+), 6 deletions(-) Index: linux-2.6.18-rc3/include/linux/pspace.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.18-rc3/include/linux/pspace.h 2006-08-10 18:00:08.000000000 -0700 @@ -0,0 +1,17 @@ +#ifndef _LINUX_PSPACE_H +#define _LINUX_PSPACE_H + +#include <linux/sched.h> +#include <linux/threads.h> +#include <linux/pid.h> + +typedef struct pidmap +{ + atomic_t nr_free; + void *page; +} pidmap_t; + +#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8) + + +#endif /* _LINUX_PSPACE_H */ Index: linux-2.6.18-rc3/kernel/pid.c =================================================================== --- linux-2.6.18-rc3.orig/kernel/pid.c 2006-08-10 17:59:55.000000000 -0700 +++ linux-2.6.18-rc3/kernel/pid.c 2006-08-10 18:01:09.000000000 -0700 @@ -26,6 +26,7 @@ #include <linux/init.h> #include <linux/bootmem.h> #include <linux/hash.h> +#include <linux/pspace.h> #define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift) static struct hlist_head *pid_hash; @@ -40,7 +41,6 @@ int last_pid; int pid_max_min = RESERVED_PIDS + 1; int pid_max_max = PID_MAX_LIMIT; -#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8) #define BITS_PER_PAGE (PAGE_SIZE*8) #define BITS_PER_PAGE_MASK (BITS_PER_PAGE-1) #define mk_pid(map, off) (((map) - pidmap_array)*BITS_PER_PAGE + (off)) @@ -53,11 +53,6 @@ int pid_max_max = PID_MAX_LIMIT; * value does not cause lots of bitmaps to be allocated, but * the scheme scales to up to 4 million PIDs, runtime. */ -struct pidmap { - atomic_t nr_free; - void *page; -}; - static struct pidmap pidmap_array[PIDMAP_ENTRIES] = { [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } };