home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.2 / LINUX-1.2 / LINUX-1 / linux / include / asm-alpha / hwrpb.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-16  |  3.4 KB  |  126 lines

  1. #ifndef _HWRPB_H
  2. #define _HWRPB_H
  3.  
  4. #define INIT_HWRPB ((struct hwrpb_struct *) 0x10000000)
  5.  
  6. struct pcb_struct {
  7.     unsigned long ksp;
  8.     unsigned long usp;
  9.     unsigned long ptbr;
  10.     unsigned int pcc;
  11.     unsigned int asn;
  12.     unsigned long unique;
  13.     unsigned long flags;
  14.     unsigned long res1, res2;
  15. };
  16.  
  17. struct percpu_struct {
  18.     unsigned long hwpcb[16];
  19.     unsigned long flags;
  20.     unsigned long pal_mem_size;
  21.     unsigned long pal_scratch_size;
  22.     unsigned long pal_mem_pa;
  23.     unsigned long pal_scratch_pa;
  24.     unsigned long pal_revision;
  25.     unsigned long type;
  26.     unsigned long variation;
  27.     unsigned long revision;
  28.     unsigned long serial_no[2];
  29.     unsigned long logout_area_pa;
  30.     unsigned long logout_area_len;
  31.     unsigned long halt_PCBB;
  32.     unsigned long halt_PC;
  33.     unsigned long halt_PS;
  34.     unsigned long halt_arg;
  35.     unsigned long halt_ra;
  36.     unsigned long halt_pv;
  37.     unsigned long halt_reason;
  38.     unsigned long res;
  39.     unsigned long ipc_buffer[21];
  40.     unsigned long palcode_avail[16];
  41.     unsigned long compatibility;
  42. };
  43.  
  44. struct procdesc_struct {
  45.     unsigned long weird_vms_stuff;
  46.     unsigned long address;
  47. };
  48.  
  49. struct vf_map_struct {
  50.     unsigned long va;
  51.     unsigned long pa;
  52.     unsigned long count;
  53. };
  54.  
  55. struct crb_struct {
  56.     struct procdesc_struct * dispatch_va;
  57.     struct procdesc_struct * dispatch_pa;
  58.     struct procdesc_struct * fixup_va;
  59.     struct procdesc_struct * fixup_pa;
  60.     /* virtual->physical map */
  61.     unsigned long map_entries;
  62.     unsigned long map_pages;
  63.     struct vf_map_struct map[1];
  64. };
  65.  
  66. struct memclust_struct {
  67.     unsigned long start_pfn;
  68.     unsigned long numpages;
  69.     unsigned long numtested;
  70.     unsigned long bitmap_va;
  71.     unsigned long bitmap_pa;
  72.     unsigned long bitmap_chksum;
  73.     unsigned long usage;
  74. };
  75.  
  76. struct memdesc_struct {
  77.     unsigned long chksum;
  78.     unsigned long optional_pa;
  79.     unsigned long numclusters;
  80.     struct memclust_struct cluster[0];
  81. };
  82.  
  83. struct hwrpb_struct {
  84.     unsigned long phys_addr;    /* check: physical address of the hwrpb */
  85.     unsigned long id;        /* check: "HWRPB\0\0\0" */
  86.     unsigned long revision;    
  87.     unsigned long size;        /* size of hwrpb */
  88.     unsigned long cpuid;
  89.     unsigned long pagesize;        /* 8192, I hope */
  90.     unsigned long pa_bits;        /* number of physical address bits */
  91.     unsigned long max_asn;
  92.     unsigned char ssn[16];        /* system serial number: big bother is watching */
  93.     unsigned long sys_type;
  94.     unsigned long sys_variation;
  95.     unsigned long sys_revision;
  96.     unsigned long intr_freq;    /* interval clock frequency * 4096 */
  97.     unsigned long cycle_freq;    /* cycle counter frequency */
  98.     unsigned long vptb;        /* Virtual Page Table Base address */
  99.     unsigned long res1;
  100.     unsigned long tbhb_offset;    /* Translation Buffer Hint Block */
  101.     unsigned long nr_processors;
  102.     unsigned long processor_size;
  103.     unsigned long processor_offset;
  104.     unsigned long ctb_nr;
  105.     unsigned long ctb_size;        /* console terminal block size */
  106.     unsigned long ctbt_offset;    /* console terminal block table offset */
  107.     unsigned long crb_offset;    /* console callback routine block */
  108.     unsigned long mddt_offset;    /* memory data descriptor table */
  109.     unsigned long cdb_offset;    /* configuration data block (or NULL) */
  110.     unsigned long frut_offset;    /* FRU table (or NULL) */
  111.     void (*save_terminal)(unsigned long);
  112.     unsigned long save_terminal_data;
  113.     void (*restore_terminal)(unsigned long);
  114.     unsigned long restore_terminal_data;
  115.     void (*CPU_restart)(unsigned long);
  116.     unsigned long CPU_restart_data;
  117.     unsigned long res2;
  118.     unsigned long res3;
  119.     unsigned long chksum;
  120.     unsigned long rxrdy;
  121.     unsigned long txrdy;
  122.     unsigned long dsrdbt_offset;    /* "Dynamic System Recognition Data Block Table" Whee */
  123. };
  124.  
  125. #endif
  126.