naca.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef _NACA_H
  2. #define _NACA_H
  3. /* 
  4.  * c 2001 PPC 64 Team, IBM Corp
  5.  *
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version
  9.  * 2 of the License, or (at your option) any later version.
  10.  */
  11. #include <asm/types.h>
  12. struct naca_struct {
  13. /*==================================================================
  14.  * Cache line 1: 0x0000 - 0x007F
  15.  * Kernel only data - undefined for user space
  16.  *==================================================================
  17.  */
  18. void *xItVpdAreas;              /* VPD Data                  0x00 */
  19. void *xRamDisk;                 /* iSeries ramdisk           0x08 */
  20. u64   xRamDiskSize; /* In pages                  0x10 */
  21. struct paca_struct *paca; /* Ptr to an array of pacas  0x18 */
  22. u64 debug_switch; /* Debug print control       0x20 */
  23. u64 banner;                     /* Ptr to banner string      0x28 */
  24. u64 log;                        /* Ptr to log buffer         0x30 */
  25. u64 serialPortAddr; /* Phy addr of serial port   0x38 */
  26. u64 interrupt_controller; /* Type of int controller    0x40 */ 
  27. u64 slb_size; /* SLB size in entries       0x48 */
  28. u64 pftSize; /* Log 2 of page table size  0x50 */
  29. u64 resv0[5];                   /* Reserved           0x58 - 0x7F */
  30. /*==================================================================
  31.  * Cache line 2: 0x0080 - 0x00FF
  32.  * Kernel / User data
  33.  *==================================================================
  34.  */
  35. u8  eye_catcher[6];             /* Eyecatcher: PPC64         0x00 */
  36. u16 version;                    /* Version number            0x06 */
  37. u16 platform; /* Platform flags            0x08 */
  38. u16 processor; /* Processor type            0x0A */
  39. u32 processorCount; /* # of physical processors  0x0C */
  40. u64 physicalMemorySize; /* Size of real memory(B)    0x10 */
  41. u16 dCacheL1Size;         /* L1 d-cache size           0x18 */
  42. u16 dCacheL1LineSize; /* L1 d-cache line size      0x1A */
  43. u16 dCacheL1LogLineSize; /* L1 d-cache line size Log2 0x1C */
  44. u16 dCacheL1LinesPerPage; /* L1 d-cache lines / page   0x1E */
  45. u16 dCacheL1Assoc;              /* L1 d-cache associativity  0x20 */
  46. u16 iCacheL1Size;         /* L1 i-cache size           0x22 */
  47. u16 iCacheL1LineSize; /* L1 i-cache line size      0x24 */
  48. u16 iCacheL1LogLineSize; /* L1 i-cache line size Log2 0x26 */
  49. u16 iCacheL1LinesPerPage; /* L1 i-cache lines / page   0x28 */
  50. u16 iCacheL1Assoc;              /* L1 i-cache associativity  0x2A */
  51. u16 cacheL2Size;         /* L2 cache size             0x2C */
  52. u16 cacheL2Assoc;         /* L2 cache associativity    0x2E */
  53. u64 tb_orig_stamp;              /* Timebase at boot          0x30 */
  54. u64 tb_ticks_per_sec;           /* Timebase tics / sec       0x38 */
  55. u64 tb_to_xs;                   /* Inverse of TB to 2^20     0x40 */
  56. u64 stamp_xsec;                 /*                           0x48 */
  57. volatile u64 tb_update_count;   /* Timebase atomicity ctr    0x50 */
  58. u32 tz_minuteswest;             /* Minutes west of Greenwich 0x58 */
  59. u32 tz_dsttime;                 /* Type of dst correction    0x5C */
  60. u64 resv1[4];                   /* Reserverd          0x60 - 0x7F */
  61. };
  62. extern struct naca_struct *naca;
  63. #endif /* _NACA_H */