Index: c/src/lib/libc/malloc.c
===================================================================
--- c/src/lib/libc/malloc.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libc/malloc.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -33,5 +33,4 @@
 size_t RTEMS_Malloc_Sbrk_amount;
 
-extern rtems_cpu_table   Cpu_table;
 #ifdef RTEMS_DEBUG
 #define MALLOC_STATS
@@ -110,5 +109,5 @@
    */
 
-  if ( Cpu_table.do_zero_of_workspace )
+  if ( rtems_cpu_configuration_get_do_zero_of_workspace() )
      memset( starting_address, 0, length );
 
Index: c/src/lib/libcpu/hppa1.1/clock/clock.c
===================================================================
--- c/src/lib/libcpu/hppa1.1/clock/clock.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/hppa1.1/clock/clock.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -22,6 +22,4 @@
 
 #include <stdlib.h>                     /* for atexit() */
-
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
 
 typedef unsigned long long hppa_click_count_t;
@@ -208,5 +206,5 @@
     future_time = Clock_clicks +
       ((rtems_unsigned64) microseconds) *
-        Cpu_table.itimer_clicks_per_microsecond;
+        rtems_cpu_configuration_get_itimer_clicks_per_microsecond();
 
     for (;;)
Index: c/src/lib/libcpu/powerpc/mpc821/clock/clock.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc821/clock/clock.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc821/clock/clock.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -43,6 +43,4 @@
 #include <mpc821.h>
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 volatile rtems_unsigned32 Clock_driver_ticks;
 extern volatile m821_t m821;
@@ -75,5 +73,5 @@
   
   pit_value = rtems_configuration_get_microseconds_per_tick() /
-               Cpu_table.clicks_per_usec;
+               rtems_cpu_configuration_get_clicks_per_usec();
   if (pit_value == 0) {
     pit_value = 0xffff;
Index: c/src/lib/libcpu/powerpc/mpc821/console-generic/console-generic.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc821/console-generic/console-generic.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc821/console-generic/console-generic.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -52,6 +52,4 @@
 #define NIFACES 4        /* number of console devices (serial ports) */
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 static Buf_t *rxBufList[NIFACES];
 static Buf_t *rxBufListTail[NIFACES];
@@ -88,5 +86,6 @@
   int div16 = 0;
   
-  divisor = ((Cpu_table.clock_speed / 16) + (baud / 2)) / baud;
+  divisor = ((rtems_cpu_configuration_get_clock_speed() / 16) + 
+              (baud / 2)) / baud;
   if (divisor > 4096) {
     div16 = 1;
Index: c/src/lib/libcpu/powerpc/mpc821/timer/timer.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc821/timer/timer.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc821/timer/timer.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -47,6 +47,4 @@
 #include <mpc821.h>
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 static volatile rtems_unsigned32 Timer_starting;
 static rtems_boolean Timer_driver_Find_average_overhead;
@@ -86,8 +84,8 @@
 
   else {
-    if ( total < Cpu_table.timer_least_valid ) {
+    if ( total < rtems_cpu_configuration_get_timer_least_valid() ) {
       return 0;            /* below timer resolution */
     }
-    return (total - Cpu_table.timer_average_overhead);
+    return (total - rtems_cpu_configuration_get_timer_average_overhead());
   }
 }
Index: c/src/lib/libcpu/powerpc/mpc860/clock/clock.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc860/clock/clock.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc860/clock/clock.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -44,6 +44,4 @@
 #include <mpc860.h>
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 volatile rtems_unsigned32 Clock_driver_ticks;
 extern volatile m860_t m860;
@@ -76,5 +74,5 @@
   
   pit_value = rtems_configuration_get_microseconds_per_tick() /
-               Cpu_table.clicks_per_usec;
+               rtems_cpu_configuration_get_clicks_per_usec();
   if (pit_value == 0) {
     pit_value = 0xffff;
Index: c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -55,6 +55,4 @@
 #define NIFACES 6        /* number of console devices (serial ports) */
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 static Buf_t *rxBufList[NIFACES];
 static Buf_t *rxBufListTail[NIFACES];
@@ -91,5 +89,6 @@
   int div16 = 0;
   
-  divisor = ((Cpu_table.clock_speed / 16) + (baud / 2)) / baud;
+  divisor = ((rtems_cpu_configuration_get_clock_speed() / 16) +
+                 (baud / 2)) / baud;
   if (divisor > 4096) {
     div16 = 1;
Index: c/src/lib/libcpu/powerpc/mpc860/timer/timer.c
===================================================================
--- c/src/lib/libcpu/powerpc/mpc860/timer/timer.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/mpc860/timer/timer.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -47,6 +47,4 @@
 #include <mpc860.h>
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 static volatile rtems_unsigned32 Timer_starting;
 static rtems_boolean Timer_driver_Find_average_overhead;
@@ -86,8 +84,8 @@
 
   else {
-    if ( total < Cpu_table.timer_least_valid ) {
+    if ( total < rtems_cpu_configuration_get_timer_least_valid() ) {
       return 0;            /* below timer resolution */
     }
-    return (total - Cpu_table.timer_average_overhead);
+    return (total - rtems_cpu_configuration_get_timer_average_overhead());
   }
 }
Index: c/src/lib/libcpu/powerpc/ppc403/clock/clock.c
===================================================================
--- c/src/lib/libcpu/powerpc/ppc403/clock/clock.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/ppc403/clock/clock.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -44,6 +44,4 @@
 #include <stdlib.h>                     /* for atexit() */
 
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
-
 volatile rtems_unsigned32 Clock_driver_ticks;
 static rtems_unsigned32 pit_value, tick_time;
@@ -141,5 +139,5 @@
     asm volatile ("mfdcr %0, 0xa0" : "=r" (iocr)); /* IOCR */
 
-    if (Cpu_table.timer_internal_clock) {
+    if (rtems_cpu_configuration_get_timer_internal_clock()) {
 	iocr &= ~4; /* timer clocked from system clock */
     }
@@ -166,5 +164,5 @@
  
     pit_value = rtems_configuration_get_microseconds_per_tick() *
-      Cpu_table.clicks_per_usec;
+      rtems_cpu_configuration_get_clicks_per_usec();
  
     if ( rtems_configuration_get_ticks_per_timeslice() ) {
Index: c/src/lib/libcpu/powerpc/ppc403/console/console.c
===================================================================
--- c/src/lib/libcpu/powerpc/ppc403/console/console.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/ppc403/console/console.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -61,5 +61,4 @@
 #include "../ictrl/ictrl.h"
 #include <stdlib.h>                                     /* for atexit() */
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
 
 struct async {
@@ -216,5 +215,5 @@
 {
   unsigned32 tmp;
-  tmp = Cpu_table.serial_per_sec / baudrate;
+  tmp = rtems_cpu_configuration_get_serial_per_sec() / baudrate;
   tmp = ((tmp) >> 4) - 1;
   port->BRDL = tmp & 0xff;
@@ -315,5 +314,5 @@
 
   /* set up baud rate to original state */
-  spiBaudSet(Cpu_table.serial_rate);
+  spiBaudSet(rtems_cpu_configuration_get_serial_rate());
 
   /* clear any receive (error) status */
@@ -357,5 +356,5 @@
 
   tmp &= ~3;
-  tmp |= (Cpu_table.serial_external_clock ? 2 : 0) | 1;
+  tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 2 : 0) | 1;
 
   asm volatile ("mtdcr 0xa0, %0" : "=r" (tmp) : "0" (tmp)); /* IOCR */
@@ -366,5 +365,5 @@
 
   /* set up baud rate */
-  spiBaudSet(Cpu_table.serial_rate);
+  spiBaudSet(rtems_cpu_configuration_get_serial_rate());
 
   /* set up port control: DTR/RTS active,8 bit,1 stop,no parity */
Index: c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled
===================================================================
--- c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/ppc403/console/console.c.polled	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -34,6 +34,4 @@
 #include <rtems.h>
 #include <rtems/libio.h>
-
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
 
 struct async {
@@ -148,10 +146,11 @@
   asm volatile ("mfdcr %0, 0xa0" : "=r" (tmp)); /* IOCR */
   tmp &= ~3;
-  tmp |= (Cpu_table.serial_external_clock ? 2 : 0) |
-      (Cpu_table.serial_cts_rts ? 1 : 0);
+  tmp |= (rtems_cpu_configuration_get_serial_external_clock() ? 2 : 0) |
+      (rtems_cpu_configuration_get_serial_cts_rts() ? 1 : 0);
   asm volatile ("mtdcr 0xa0, %0" : "=r" (tmp) : "0" (tmp)); /* IOCR */
   port->SPLS = (LSRDataReady | LSRFramingError | LSROverrunError |
          LSRParityError | LSRBreakInterrupt);
-  tmp = Cpu_table.serial_per_sec / Cpu_table.serial_rate;
+  tmp = rtems_cpu_configuration_get_serial_per_sec() /
+          rtems_cpu_configuration_get_serial_rate();
 #if 0 /* replaced by IMD... */
   tmp = ((tmp + 8) >> 4) - 1;
@@ -279,5 +278,5 @@
     }
 
-  if (Cpu_table.serial_xon_xoff)
+  if (rtems_cpu_configuration_get_serial_xon_xoff())
     while (is_character_ready(&status))
     {
Index: c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c
===================================================================
--- c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/ppc403/ictrl/ictrl.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -109,5 +109,5 @@
  *  enabled but there is no handler installed. It will clear
  *  the corresponding enable bits and call the spurious handler
- *  present in the _CPU_Table, if any.
+ *  present in the CPU Configuration Table, if any.
  *
  */
@@ -126,6 +126,6 @@
 	     vector, cpu_frame->Interrupt.pcoqfront);
 #endif
-      if (_CPU_Table.spurious_handler) {
-	_CPU_Table.spurious_handler(v + PPC_IRQ_EXT_BASE,cpu_frame);
+      if (rtems_cpu_configuration_get_spurious_handler()) {
+	rtems_cpu_configuration_get_spurious_handler()(v + PPC_IRQ_EXT_BASE,cpu_frame);
       }
     }
Index: c/src/lib/libcpu/powerpc/ppc403/timer/timer.c
===================================================================
--- c/src/lib/libcpu/powerpc/ppc403/timer/timer.c	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/ppc403/timer/timer.c	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -36,6 +36,4 @@
 
 #include <rtems.h>
-
-extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
 
 static volatile rtems_unsigned32 Timer_starting;
@@ -79,7 +77,7 @@
 
   else {
-    if ( total < Cpu_table.timer_least_valid )
+    if ( total < rtems_cpu_configuration_get_timer_least_valid() )
       return 0;            /* below timer resolution */
-    return (total - Cpu_table.timer_average_overhead);
+    return (total - rtems_cpu_configuration_get_timer_average_overhead());
   }
 }
Index: c/src/lib/libcpu/powerpc/shared/cpu.h
===================================================================
--- c/src/lib/libcpu/powerpc/shared/cpu.h	(revision f817b0283cce904d0bcb48cf9e641c2b40ba8f38)
+++ c/src/lib/libcpu/powerpc/shared/cpu.h	(revision 458bd343e24cda7169c75f079705979891c9abc1)
@@ -248,5 +248,5 @@
     unsigned32 start, ticks, now; \
     CPU_Get_timebase_low( start ) ; \
-    ticks = (_microseconds) * Cpu_table.clicks_per_usec; \
+    ticks = (_microseconds) * rtems_cpu_configuration_get_clicks_per_usec(); \
     do \
       CPU_Get_timebase_low( now ) ; \
