From owner-svn-src-projects@FreeBSD.ORG Wed Aug 31 07:46:37 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23ADA106566C; Wed, 31 Aug 2011 07:46:37 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0907C8FC13; Wed, 31 Aug 2011 07:46:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p7V7kaNE088805; Wed, 31 Aug 2011 07:46:36 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p7V7karn088792; Wed, 31 Aug 2011 07:46:36 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201108310746.p7V7karn088792@svn.freebsd.org> From: Grzegorz Bernacki Date: Wed, 31 Aug 2011 07:46:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225285 - in projects/armv6/sys/arm: arm at91 econa include mv s3c2xx0 sa11x0 xscale/i80321 xscale/i8134x xscale/ixp425 xscale/pxa X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Aug 2011 07:46:37 -0000 Author: gber Date: Wed Aug 31 07:46:36 2011 New Revision: 225285 URL: http://svn.freebsd.org/changeset/base/225285 Log: Make __pcpu variable an array. Obtained from: Marvell, Semihalf Modified: projects/armv6/sys/arm/arm/machdep.c projects/armv6/sys/arm/at91/at91_machdep.c projects/armv6/sys/arm/econa/econa_machdep.c projects/armv6/sys/arm/include/pcpu.h projects/armv6/sys/arm/mv/mv_machdep.c projects/armv6/sys/arm/s3c2xx0/s3c24x0_machdep.c projects/armv6/sys/arm/sa11x0/assabet_machdep.c projects/armv6/sys/arm/xscale/i80321/ep80219_machdep.c projects/armv6/sys/arm/xscale/i80321/iq31244_machdep.c projects/armv6/sys/arm/xscale/i8134x/crb_machdep.c projects/armv6/sys/arm/xscale/ixp425/avila_machdep.c projects/armv6/sys/arm/xscale/pxa/pxa_machdep.c Modified: projects/armv6/sys/arm/arm/machdep.c ============================================================================== --- projects/armv6/sys/arm/arm/machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/arm/machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -92,6 +92,9 @@ __FBSDID("$FreeBSD$"); #include #include +struct pcpu __pcpu[MAXCPU]; +struct pcpu *pcpup = &__pcpu[0]; + uint32_t cpu_reset_address = 0; int cold = 1; vm_offset_t vector_page; @@ -707,3 +710,11 @@ fake_preload_metadata(void) return (lastaddr); } + +void +pcpu0_init(void) +{ + + pcpu_init(pcpup, 0, sizeof(struct pcpu)); + PCPU_SET(curthread, &thread0); +} Modified: projects/armv6/sys/arm/at91/at91_machdep.c ============================================================================== --- projects/armv6/sys/arm/at91/at91_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/at91/at91_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -116,9 +116,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -252,8 +249,7 @@ initarm(void *arg, void *arg2) boot_arg2 = arg2; set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/econa/econa_machdep.c ============================================================================== --- projects/armv6/sys/arm/econa/econa_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/econa/econa_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -107,9 +107,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -205,8 +202,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/include/pcpu.h ============================================================================== --- projects/armv6/sys/arm/include/pcpu.h Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/include/pcpu.h Wed Aug 31 07:46:36 2011 (r225285) @@ -48,19 +48,19 @@ struct pcb; struct pcpu; extern struct pcpu *pcpup; -extern struct pcpu __pcpu; -#define PCPU_GET(member) (__pcpu.pc_ ## member) +#define PCPU_GET(member) (pcpup->pc_ ## member) /* * XXX The implementation of this operation should be made atomic * with respect to preemption. */ -#define PCPU_ADD(member, value) (__pcpu.pc_ ## member += (value)) +#define PCPU_ADD(member, value) (pcpup->pc_ ## member += (value)) #define PCPU_INC(member) PCPU_ADD(member, 1) -#define PCPU_PTR(member) (&__pcpu.pc_ ## member) -#define PCPU_SET(member,value) (__pcpu.pc_ ## member = (value)) +#define PCPU_PTR(member) (&pcpup->pc_ ## member) +#define PCPU_SET(member,value) (pcpup->pc_ ## member = (value)) +void pcpu0_init(void); #endif /* _KERNEL */ #endif /* !_MACHINE_PCPU_H_ */ Modified: projects/armv6/sys/arm/mv/mv_machdep.c ============================================================================== --- projects/armv6/sys/arm/mv/mv_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/mv/mv_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -130,11 +130,8 @@ extern vm_offset_t pmap_bootstrap_lastad extern int *end; struct pv_addr kernel_pt_table[KERNEL_PT_MAX]; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; /* Physical and virtual addresses for some global pages */ - vm_paddr_t phys_avail[10]; vm_paddr_t dump_avail[4]; vm_offset_t physical_pages; @@ -372,8 +369,7 @@ initarm(void *mdp, void *unused __unused /* Platform-specific initialisation */ pmap_bootstrap_lastaddr = fdt_immr_va - ARM_NOCACHE_KVA_SIZE; - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Calculate number of L2 tables needed for mapping vm_page_array */ l2size = (memsize / PAGE_SIZE) * sizeof(struct vm_page); Modified: projects/armv6/sys/arm/s3c2xx0/s3c24x0_machdep.c ============================================================================== --- projects/armv6/sys/arm/s3c2xx0/s3c24x0_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/s3c2xx0/s3c24x0_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -122,9 +122,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -254,8 +251,7 @@ initarm(void *arg, void *arg2) cpufuncs.cf_sleep = s3c24x0_sleep; lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/sa11x0/assabet_machdep.c ============================================================================== --- projects/armv6/sys/arm/sa11x0/assabet_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/sa11x0/assabet_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -127,9 +127,6 @@ extern vm_offset_t sa1_cache_clean_addr; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - #ifndef MD_ROOT_SIZE #define MD_ROOT_SIZE 65535 #endif @@ -203,7 +200,6 @@ cpu_reset() void * initarm(void *arg, void *arg2) { - struct pcpu *pc; struct pv_addr kernel_l1pt; struct pv_addr md_addr; struct pv_addr md_bla; @@ -221,9 +217,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); physmem = memsize / PAGE_SIZE; - pc = &__pcpu; - pcpu_init(pc, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/xscale/i80321/ep80219_machdep.c ============================================================================== --- projects/armv6/sys/arm/xscale/i80321/ep80219_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/xscale/i80321/ep80219_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -119,9 +119,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -196,8 +193,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); freemempos = 0xa0200000; /* Define a macro to simplify memory allocation */ Modified: projects/armv6/sys/arm/xscale/i80321/iq31244_machdep.c ============================================================================== --- projects/armv6/sys/arm/xscale/i80321/iq31244_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/xscale/i80321/iq31244_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -119,9 +119,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -197,8 +194,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- projects/armv6/sys/arm/xscale/i8134x/crb_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/xscale/i8134x/crb_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -119,9 +119,6 @@ extern u_int undefined_handler_address; struct pv_addr kernel_pt_table[NUM_KERNEL_PTS]; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -193,8 +190,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- projects/armv6/sys/arm/xscale/ixp425/avila_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/xscale/ixp425/avila_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -123,9 +123,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -242,8 +239,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); /* NB: sets cputype */ lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1(); Modified: projects/armv6/sys/arm/xscale/pxa/pxa_machdep.c ============================================================================== --- projects/armv6/sys/arm/xscale/pxa/pxa_machdep.c Wed Aug 31 07:20:43 2011 (r225284) +++ projects/armv6/sys/arm/xscale/pxa/pxa_machdep.c Wed Aug 31 07:46:36 2011 (r225285) @@ -119,9 +119,6 @@ extern void *_end; extern int *end; -struct pcpu __pcpu; -struct pcpu *pcpup = &__pcpu; - /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[PXA2X0_SDRAM_BANKS * 2 + 4]; @@ -179,8 +176,7 @@ initarm(void *arg, void *arg2) set_cpufuncs(); lastaddr = fake_preload_metadata(); - pcpu_init(pcpup, 0, sizeof(struct pcpu)); - PCPU_SET(curthread, &thread0); + pcpu0_init(); /* Do basic tuning, hz etc */ init_param1();