x86: Upgrade backtrace
[akaros.git] / kern / arch / x86 / io.h
index 086d2fd..b077731 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * This file is part of the UCB release of Plan 9. It is subject to the license
  * terms in the LICENSE file found in the top-level directory of this
  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  * This file is part of the UCB release of Plan 9. It is subject to the license
  * terms in the LICENSE file found in the top-level directory of this
  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
@@ -7,94 +7,7 @@
  * in the LICENSE file.
  */
 
  * in the LICENSE file.
  */
 
-enum {
-       VectorNMI = 2,                          /* non-maskable interrupt */
-       VectorBPT = 3,  /* breakpoint */
-       VectorUD = 6,   /* invalid opcode exception */
-       VectorCNA = 7,  /* coprocessor not available */
-       Vector2F = 8,   /* double fault */
-       VectorCSO = 9,  /* coprocessor segment overrun */
-       VectorPF = 14,  /* page fault */
-       Vector15 = 15,  /* reserved */
-       VectorCERR = 16,        /* coprocessor error */
-
-       VectorPIC = 32, /* external i8259 interrupts */
-       IrqCLOCK = 0,
-       IrqKBD = 1,
-       IrqUART1 = 3,
-       IrqUART0 = 4,
-       IrqPCMCIA = 5,
-       IrqFLOPPY = 6,
-       IrqLPT = 7,
-       IrqIRQ7 = 7,
-       IrqAUX = 12,    /* PS/2 port */
-       IrqIRQ13 = 13,  /* coprocessor on 386 */
-       IrqATA0 = 14,
-       IrqATA1 = 15,
-       MaxIrqPIC = 15,
-
-       VectorLAPIC = VectorPIC + 16,   /* local APIC interrupts */
-       IrqLINT0 = VectorLAPIC + 0,
-       IrqLINT1 = VectorLAPIC + 1,
-       IrqTIMER = VectorLAPIC + 2,
-       IrqERROR = VectorLAPIC + 3,
-       IrqPCINT = VectorLAPIC + 4,
-       IrqSPURIOUS = VectorLAPIC + 15,
-       MaxIrqLAPIC = VectorLAPIC + 15,
-
-       VectorSYSCALL = 64,
-
-       VectorAPIC = 65,        /* external APIC interrupts */
-       MaxVectorAPIC = 255,
-};
-
-enum {
-       IdtPIC = 32,                            /* external i8259 interrupts */
-
-       IdtLINT0 = 48,  /* local APIC interrupts */
-       IdtLINT1 = 49,
-       IdtTIMER = 50,
-       IdtERROR = 51,
-       IdtPCINT = 52,
-
-       IdtIPI = 62,
-       IdtSPURIOUS = 63,
-
-       IdtSYSCALL = 64,
-
-       IdtIOAPIC = 65, /* external APIC interrupts */
-
-       IdtMAX = 255,
-};
-
-struct Vkey {
-       int tbdf;                                       /* pci: ioapic or msi sources */
-       int irq;                                        /* 8259-emulating sources */
-};
-
-typedef struct Vctl {
-       struct Vctl *next;                      /* handlers on this vector */
-
-       int isintr;                                     /* interrupt or fault/trap */
-
-       struct Vkey;                            /* source-specific key; tbdf for pci */
-       void (*f) (void *, void *);     /* handler to call */
-       void *a;                                        /* argument to call it with */
-       char name[KNAMELEN];            /* of driver */
-       char *type;
-
-       int (*isr) (int);                       /* get isr bit for this irq */
-       int (*eoi) (int);                       /* eoi */
-       int (*mask) (struct Vkey *, int);       /* interrupt enable returns masked vector */
-       int vno;
-} Vctl;
-
-struct ACVctl {
-       //char* (*f)(Ureg*,void*);
-       void *a;
-       int vno;
-       char name[KNAMELEN];            /* of driver */
-};
+#pragma once
 
 enum {
        BusCBUS = 0,                            /* Corollary CBUS */
 
 enum {
        BusCBUS = 0,                            /* Corollary CBUS */
@@ -115,6 +28,8 @@ enum {
        BusVL,  /* VESA Local bus */
        BusVME, /* VMEbus */
        BusXPRESS,      /* Express System Bus */
        BusVL,  /* VESA Local bus */
        BusVME, /* VMEbus */
        BusXPRESS,      /* Express System Bus */
+       BusLAPIC,       /* Local APIC, fake type */
+       BusIPI, /* IPIs, fake type like the LAPIC */
 };
 
 #define MKBUS(t,b,d,f) (((t)<<24)|(((b)&0xFF)<<16)|(((d)&0x1F)<<11)|(((f)&0x07)<<8))
 };
 
 #define MKBUS(t,b,d,f) (((t)<<24)|(((b)&0xFF)<<16)|(((d)&0x1F)<<11)|(((f)&0x07)<<8))
@@ -130,6 +45,11 @@ enum {
        CfgEISA = 0xC80,
 };
 
        CfgEISA = 0xC80,
 };
 
+/* IO Ports */
+
+#define CMOS_RAM_IDX                   0x70
+#define CMOS_RAM_DATA                  0x71
+
 /*
  * PCI support code.
  */
 /*
  * PCI support code.
  */