svn commit: r225285 - in projects/armv6/sys/arm: arm at91 econa
include mv s3c2xx0 sa11x0 xscale/i80321 xscale/i8134x
xscale/ixp425 xscale/pxa
Grzegorz Bernacki
gber at FreeBSD.org
Wed Aug 31 07:46:37 UTC 2011
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 <machine/vmparam.h>
#include <machine/sysarch.h>
+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();
More information about the svn-src-projects
mailing list