xv6/lapic.c File Reference

#include "types.h"
#include "defs.h"
#include "traps.h"
#include "mmu.h"
#include "x86.h"

Go to the source code of this file.

Defines

#define ID   (0x0020/4)
#define VER   (0x0030/4)
#define TPR   (0x0080/4)
#define EOI   (0x00B0/4)
#define SVR   (0x00F0/4)
#define ENABLE   0x00000100
#define ESR   (0x0280/4)
#define ICRLO   (0x0300/4)
#define INIT   0x00000500
#define STARTUP   0x00000600
#define DELIVS   0x00001000
#define ASSERT   0x00004000
#define LEVEL   0x00008000
#define BCAST   0x00080000
#define ICRHI   (0x0310/4)
#define TIMER   (0x0320/4)
#define X1   0x0000000B
#define PERIODIC   0x00020000
#define PCINT   (0x0340/4)
#define LINT0   (0x0350/4)
#define LINT1   (0x0360/4)
#define ERROR   (0x0370/4)
#define MASKED   0x00010000
#define TICR   (0x0380/4)
#define TCCR   (0x0390/4)
#define TDCR   (0x03E0/4)
#define IO_RTC   0x70

Functions

static void lapicw (int index, int value)
void lapicinit (int c)
int cpunum (void)
void lapiceoi (void)
void microdelay (int us)
void lapicstartap (uchar apicid, uint addr)

Variables

volatile uintlapic


Define Documentation

#define ASSERT   0x00004000

Definition at line 22 of file lapic.c.

Referenced by lapicstartap().

#define BCAST   0x00080000

Definition at line 24 of file lapic.c.

Referenced by lapicinit().

#define DELIVS   0x00001000

Definition at line 21 of file lapic.c.

Referenced by lapicinit().

#define ENABLE   0x00000100

Definition at line 16 of file lapic.c.

Referenced by lapicinit().

#define EOI   (0x00B0/4)

Definition at line 14 of file lapic.c.

Referenced by lapiceoi(), and lapicinit().

#define ERROR   (0x0370/4)

Definition at line 32 of file lapic.c.

Referenced by lapicinit().

#define ESR   (0x0280/4)

Definition at line 17 of file lapic.c.

Referenced by lapicinit().

#define ICRHI   (0x0310/4)

Definition at line 25 of file lapic.c.

Referenced by lapicinit(), and lapicstartap().

#define ICRLO   (0x0300/4)

Definition at line 18 of file lapic.c.

Referenced by lapicinit(), and lapicstartap().

#define ID   (0x0020/4)

Definition at line 11 of file lapic.c.

Referenced by cpunum(), and lapicw().

#define INIT   0x00000500

Definition at line 19 of file lapic.c.

Referenced by lapicinit(), and lapicstartap().

#define IO_RTC   0x70

Definition at line 129 of file lapic.c.

Referenced by lapicstartap().

#define LEVEL   0x00008000

Definition at line 23 of file lapic.c.

Referenced by lapicinit(), and lapicstartap().

#define LINT0   (0x0350/4)

Definition at line 30 of file lapic.c.

Referenced by lapicinit().

#define LINT1   (0x0360/4)

Definition at line 31 of file lapic.c.

Referenced by lapicinit().

#define MASKED   0x00010000

Definition at line 33 of file lapic.c.

Referenced by lapicinit().

#define PCINT   (0x0340/4)

Definition at line 29 of file lapic.c.

Referenced by lapicinit().

#define PERIODIC   0x00020000

Definition at line 28 of file lapic.c.

Referenced by lapicinit().

#define STARTUP   0x00000600

Definition at line 20 of file lapic.c.

Referenced by lapicstartap().

#define SVR   (0x00F0/4)

Definition at line 15 of file lapic.c.

Referenced by lapicinit().

#define TCCR   (0x0390/4)

Definition at line 35 of file lapic.c.

#define TDCR   (0x03E0/4)

Definition at line 36 of file lapic.c.

Referenced by lapicinit().

#define TICR   (0x0380/4)

Definition at line 34 of file lapic.c.

Referenced by lapicinit().

#define TIMER   (0x0320/4)

Definition at line 26 of file lapic.c.

Referenced by lapicinit().

#define TPR   (0x0080/4)

Definition at line 13 of file lapic.c.

Referenced by lapicinit().

#define VER   (0x0030/4)

Definition at line 12 of file lapic.c.

Referenced by lapicinit().

#define X1   0x0000000B

Definition at line 27 of file lapic.c.

Referenced by lapicinit().


Function Documentation

int cpunum ( void   ) 

Definition at line 94 of file lapic.c.

References cprintf(), FL_IF, ID, lapic, and readeflags().

Referenced by bootothers(), and ksegment().

void lapiceoi ( void   ) 

Definition at line 115 of file lapic.c.

References EOI, lapic, and lapicw().

Referenced by trap().

void lapicinit ( int  c  ) 

Definition at line 48 of file lapic.c.

References BCAST, DELIVS, ENABLE, EOI, ERROR, ESR, ICRHI, ICRLO, INIT, IRQ_ERROR, IRQ_SPURIOUS, IRQ_TIMER, lapic, lapicw(), LEVEL, LINT0, LINT1, MASKED, PCINT, PERIODIC, SVR, T_IRQ0, TDCR, TICR, TIMER, TPR, VER, and X1.

Referenced by mpmain().

void lapicstartap ( uchar  apicid,
uint  addr 
)

Definition at line 134 of file lapic.c.

References ASSERT, ICRHI, ICRLO, INIT, IO_RTC, lapicw(), LEVEL, microdelay(), outb(), and STARTUP.

Referenced by bootothers().

static void lapicw ( int  index,
int  value 
) [static]

Definition at line 41 of file lapic.c.

References ID, and lapic.

Referenced by lapiceoi(), lapicinit(), and lapicstartap().

void microdelay ( int  us  ) 

Definition at line 124 of file lapic.c.

Referenced by lapicstartap(), and uartputc().


Variable Documentation

volatile uint* lapic

Definition at line 38 of file lapic.c.

Referenced by cpunum(), lapiceoi(), lapicinit(), lapicw(), and mpinit().


Generated on Fri Jan 7 12:25:49 2011 for xv6 by  doxygen 1.5.6