81 lines
2.2 KiB
C
81 lines
2.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1995-1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
fraglib.h
|
|
|
|
Abstract:
|
|
|
|
Public interface to the fragment library.
|
|
|
|
Author:
|
|
|
|
12-Jun-1995 BarryBo, Created
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef FRAGLIB_H
|
|
#define FRAGLIB_H
|
|
|
|
#ifdef MSCCPU
|
|
#include "ccpu.h"
|
|
#define FRAG0(x) void x(PCPUCONTEXT cpu)
|
|
#define FRAG1(x, t) void x(PCPUCONTEXT cpu, t *pop1)
|
|
#define FRAG1IMM(x, t) void x(PCPUCONTEXT cpu, t op1)
|
|
#define FRAG2(x, t) void x(PCPUCONTEXT cpu, t *pop1, t op2)
|
|
#define FRAG2REF(x, t) void x(PCPUCONTEXT cpu, t *pop1, t *pop2)
|
|
#define FRAG2IMM(x, t1, t2) void x(PCPUCONTEXT cpu, t1 op1, t2 op2)
|
|
#define FRAG3(x, t1, t2, t3) void x(PCPUCONTEXT cpu, t1 *pop1, t2 op2, t3 op3)
|
|
#else
|
|
#include "threadst.h"
|
|
#define FRAGCONTROLTRANSFER(x) ULONG x(PTHREADSTATE cpu)
|
|
#define FRAG0(x) void x(PTHREADSTATE cpu)
|
|
#define FRAG1(x, t) void x(PTHREADSTATE cpu, t *pop1)
|
|
#define FRAG1IMM(x, t) void x(PTHREADSTATE cpu, t op1)
|
|
#define FRAG2(x, t) void x(PTHREADSTATE cpu, t *pop1, t op2)
|
|
#define FRAG2REF(x, t) void x(PTHREADSTATE cpu, t *pop1, t *pop2)
|
|
#define FRAG2IMM(x, t1, t2) void x(PTHREADSTATE cpu, t1 op1, t2 op2)
|
|
#define FRAG3(x, t1, t2, t3) void x(PTHREADSTATE cpu, t1 *pop1, t2 op2, t3 op3)
|
|
#endif
|
|
|
|
//
|
|
// Function for initializing the fragment library
|
|
//
|
|
BOOL
|
|
FragLibInit(
|
|
PCPUCONTEXT cpu,
|
|
DWORD StackBase
|
|
);
|
|
|
|
|
|
#define CALLFRAG0(x) x(cpu)
|
|
#define CALLFRAG1(x, pop1) x(cpu, pop1)
|
|
#define CALLFRAG2(x, pop1, op2) x(cpu, pop1, op2)
|
|
#define CALLFRAG3(x, pop1, op2, op3) x(cpu, pop1, op2, op3)
|
|
|
|
#include "fragmisc.h"
|
|
#include "frag8.h"
|
|
#include "frag16.h"
|
|
#include "frag32.h"
|
|
#include "fpufrags.h"
|
|
#include "lock.h"
|
|
#include "synlock.h"
|
|
|
|
//
|
|
// Table mapping a byte to a 0 or 1, corresponding to the parity bit for
|
|
// that byte.
|
|
//
|
|
extern const BYTE ParityBit[256];
|
|
|
|
// These fragments are used only by the compiler
|
|
#ifdef MSCPU
|
|
#include "ctrltrns.h"
|
|
#include "optfrag.h"
|
|
#endif
|
|
|
|
#endif //FRAGLIB_H
|