Don't include linux/config.h from anywhere else in include/
[powerpc.git] / include / asm-powerpc / paca.h
index a64b4d4..3c6f644 100644 (file)
 #define _ASM_POWERPC_PACA_H
 #ifdef __KERNEL__
 
-#include       <linux/config.h>
 #include       <asm/types.h>
 #include       <asm/lppaca.h>
 #include       <asm/mmu.h>
 
 register struct paca_struct *local_paca asm("r13");
 #define get_paca()     local_paca
+#define get_lppaca()   (get_paca()->lppaca_ptr)
 
 struct task_struct;
 
@@ -53,7 +53,7 @@ struct paca_struct {
 #endif /* CONFIG_PPC_ISERIES */
 
        /*
-        * MAGIC: the spinlock functions in arch/ppc64/lib/locks.c
+        * MAGIC: the spinlock functions in arch/powerpc/lib/locks.c 
         * load lock_token and paca_index with a single lwz
         * instruction.  They must travel together and be properly
         * aligned.
@@ -96,21 +96,15 @@ struct paca_struct {
        u64 saved_msr;                  /* MSR saved here by enter_rtas */
        u8 proc_enabled;                /* irq soft-enable flag */
 
-       /*
-        * iSeries structure which the hypervisor knows about -
-        * this structure should not cross a page boundary.
-        * The vpa_init/register_vpa call is now known to fail if the
-        * lppaca structure crosses a page boundary.
-        * The lppaca is also used on POWER5 pSeries boxes.
-        * The lppaca is 640 bytes long, and cannot readily change
-        * since the hypervisor knows its layout, so a 1kB
-        * alignment will suffice to ensure that it doesn't
-        * cross a page boundary.
-        */
-       struct lppaca lppaca __attribute__((__aligned__(0x400)));
+       /* Stuff for accurate time accounting */
+       u64 user_time;                  /* accumulated usermode TB ticks */
+       u64 system_time;                /* accumulated system TB ticks */
+       u64 startpurr;                  /* PURR/TB value snapshot */
 };
 
 extern struct paca_struct paca[];
 
+void setup_boot_paca(void);
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_PACA_H */