xv6/ide.c File Reference

#include "types.h"
#include "defs.h"
#include "param.h"
#include "mmu.h"
#include "proc.h"
#include "x86.h"
#include "traps.h"
#include "spinlock.h"
#include "buf.h"

Go to the source code of this file.

Defines

#define IDE_BSY   0x80
#define IDE_DRDY   0x40
#define IDE_DF   0x20
#define IDE_ERR   0x01
#define IDE_CMD_READ   0x20
#define IDE_CMD_WRITE   0x30

Functions

static void idestart (struct buf *)
static int idewait (int checkerr)
void ideinit (void)
void ideintr (void)
void iderw (struct buf *b)

Variables

static struct spinlock idelock
static struct bufidequeue
static int havedisk1


Define Documentation

#define IDE_BSY   0x80

Definition at line 13 of file ide.c.

Referenced by idewait().

#define IDE_CMD_READ   0x20

Definition at line 18 of file ide.c.

Referenced by idestart().

#define IDE_CMD_WRITE   0x30

Definition at line 19 of file ide.c.

Referenced by idestart().

#define IDE_DF   0x20

Definition at line 15 of file ide.c.

Referenced by idewait().

#define IDE_DRDY   0x40

Definition at line 14 of file ide.c.

Referenced by idewait().

#define IDE_ERR   0x01

Definition at line 16 of file ide.c.

Referenced by idewait().


Function Documentation

void ideinit ( void   ) 

Definition at line 45 of file ide.c.

References havedisk1, idelock, idewait(), inb(), initlock(), ioapicenable(), IRQ_IDE, ncpu, outb(), and picenable().

Referenced by mpmain().

void ideintr ( void   ) 

Definition at line 91 of file ide.c.

References acquire(), B_DIRTY, B_VALID, cprintf(), buf::data, buf::flags, idelock, idestart(), idewait(), insl(), buf::qnext, release(), and wakeup().

Referenced by trap().

void iderw ( struct buf b  ) 

Definition at line 124 of file ide.c.

References acquire(), B_BUSY, B_DIRTY, B_VALID, buf::dev, buf::flags, havedisk1, idelock, idestart(), panic(), buf::qnext, release(), and sleep().

Referenced by bread(), and bwrite().

static void idestart ( struct buf b  )  [static]

Definition at line 69 of file ide.c.

References B_DIRTY, buf::data, buf::dev, buf::flags, IDE_CMD_READ, IDE_CMD_WRITE, idewait(), outb(), outsl(), panic(), and buf::sector.

Referenced by ideintr(), and iderw().

static int idewait ( int  checkerr  )  [static]

Definition at line 33 of file ide.c.

References IDE_BSY, IDE_DF, IDE_DRDY, IDE_ERR, inb(), and r.

Referenced by ideinit(), ideintr(), and idestart().


Variable Documentation

int havedisk1 [static]

Definition at line 28 of file ide.c.

Referenced by ideinit(), and iderw().

struct spinlock idelock [static]

Definition at line 25 of file ide.c.

Referenced by ideinit(), ideintr(), and iderw().

struct buf* idequeue [static]

Definition at line 26 of file ide.c.


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