Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

i10_v86.c File Reference

#include <unistd.h>
#include <errno.h>
#include <asm/unistd.h>
#include <stdio.h>
#include <string.h>
#include "vm86_struct.h"
#include <signal.h>
#include "v86bios.h"
#include "AsmMacros.h"

Defines

#define USE_CPU_EMU
#define INT2PTR(a)   ((a) + (unsigned char *) 0)
#define CPU_REG(x)   (vm86s.regs.x)
#define CPU_REG_LW(reg)   (*((CARD16 *)&CPU_REG(reg)))
#define CPU_REG_HW(reg)   (*((CARD16 *)&CPU_REG(reg) + 1))
#define CPU_REG_LB(reg)   (*(CARD8 *)&CPU_REG(e##reg))
#define SEG_ADR(type, seg, reg)   type((CPU_REG_LW(seg) << 4) + CPU_REG_LW(e##reg) + (unsigned char *) 0)
#define DF   (1 << 10)
#define LIN_PREF_SI   ((pref_seg << 4) + CPU_REG_LW(esi))
#define LWECX   (prefix66 ^ prefix67 ? CPU_REG(ecx) : CPU_REG_LW(ecx))
#define COPY(x)   regs.x = CPU_REG(x)
#define COPY_R(x)   CPU_REG(x) = regs.x
#define pushw(base, ptr, val)

Functions

int emu_vm86 (struct vm86_struct *vm)
void log_err (char *format,...) __attribute__((format(printf
int vm86_GP_fault (void)
int vm86_do_int (int num)
void log_registers (void)
void setup_io (void)
void setup_vm86 (unsigned long bios_start, i86biosRegsPtr regs)
void collect_bios_regs (i86biosRegsPtr regs)
int do_vm86 (void)
void do_x86 (unsigned long bios_start, i86biosRegsPtr regs)
int run_bios_int (int num, struct regs86 *regs)
CARD32 getIntVect (int num)
CARD32 getIP (void)

Variables

vm86_struct vm86s
pio P

Define Documentation

#define COPY (  x   )     regs.x = CPU_REG(x)
 

#define COPY_R (  x   )     CPU_REG(x) = regs.x
 

#define CPU_REG (  x   )     (vm86s.regs.x)
 

#define CPU_REG_HW (  reg   )     (*((CARD16 *)&CPU_REG(reg) + 1))
 

#define CPU_REG_LB (  reg   )     (*(CARD8 *)&CPU_REG(e##reg))
 

#define CPU_REG_LW (  reg   )     (*((CARD16 *)&CPU_REG(reg)))
 

#define DF   (1 << 10)
 

#define INT2PTR (  a   )     ((a) + (unsigned char *) 0)
 

#define LIN_PREF_SI   ((pref_seg << 4) + CPU_REG_LW(esi))
 

#define LWECX   (prefix66 ^ prefix67 ? CPU_REG(ecx) : CPU_REG_LW(ecx))
 

#define pushw (  base,
ptr,
val   ) 
 

Value:

{ \ ptr = ((ptr) - 1) & 0xffff; \ *((unsigned char *)(base) + (ptr)) = (val) >> 8; \ ptr = ((ptr) - 1) & 0xffff; \ *((unsigned char *)(base) + (ptr)) = (val); \ }

#define SEG_ADR (  type,
seg,
reg   )     type((CPU_REG_LW(seg) << 4) + CPU_REG_LW(e##reg) + (unsigned char *) 0)
 

#define USE_CPU_EMU
 


Function Documentation

void collect_bios_regs (  i86biosRegsPtr  regs  ) 
 

int do_vm86 (  void   )  [static]
 

void do_x86 (  unsigned long  bios_start,
i86biosRegsPtr  regs
) 
 

int emu_vm86 (  struct vm86_struct *  vm  ) 
 

CARD32 getIntVect (  int  num  ) 
 

CARD32 getIP (  void   ) 
 

void log_err (  char *  format,
  ...
) 
 

void log_registers (  void   ) 
 

int run_bios_int (  int  num,
struct regs86 *  regs
) 
 

void setup_io (  void   ) 
 

void setup_vm86 (  unsigned long  bios_start,
i86biosRegsPtr  regs
)  [static]
 

int vm86_do_int (  int  num  )  [static]
 

int vm86_GP_fault (  void   )  [static]
 


Variable Documentation

struct pio P
 

struct vm86_struct vm86s