OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [gdb-5.0/] [utils/] [amd-udi/] [udi/] [dos386c.h] - Rev 1778

Go to most recent revision | Compare with Previous | Blame | View Log

/******************************************************************************
 * Copyright 1991 Advanced Micro Devices, Inc.
 *
 * This software is the property of Advanced Micro Devices, Inc  (AMD)  which
 * specifically  grants the user the right to modify, use and distribute this
 * software provided this notice is not removed or altered.  All other rights
 * are reserved by AMD.
 *
 * AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
 * SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
 * DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
 * USE OF THIS SOFTWARE.
 *
 * Comments about this software should be directed to udi@amd.com. If access
 * to electronic mail isn't available, send mail to:
 *
 * Advanced Micro Devices, Inc.
 * 29K Support Products
 * Mail Stop 573
 * 5900 E. Ben White Blvd.
 * Austin, TX 78741
 *****************************************************************************
 *       $Id: dos386c.h,v 1.1.1.1 2001-05-18 11:27:55 markom Exp $
 *       $Id: @(#)dos386c.h	1.6, AMD
 */
 
#ifndef _DOS386_H
#define _DOS386_H
 
#ifdef WATC 
#define NULL 0
#endif /* WATC */
 
 
#ifdef _DOS386C_C
#define EXTERN 
#define STATIC static
#else
#define EXTERN extern
#define STATIC
#endif
 
#define FAR
 
EXTERN char    *conventional_memory;	/* pointer to first byte of conventinal memory     */
 
EXTERN USHORT	our_tsr_psp;
EXTERN USHORT	dos_ext_psp;
/* EXTERN STATIC	struct UDIVecRec FAR * FAR * UDIVecP; */
extern	REALPTR	call_prot;
extern	USHORT	code_selector;
extern	USHORT	data_selector;
extern	USHORT	rmcode_firstbyte;
 
 
/*
 * Used to copy real mode code and data into conventional memory (udip2dos)
 * and to construct real mode pointers and protected mode far (48 bit) 
 * pointers.
 */
 
EXTERN	USHORT	rmem_adr;
EXTERN	REALPTR	real_base;
EXTERN	FARPTR	prot_base;
 
 
/*=============== Utilities for converting pointers from prot to real and vice versa========*/
 
	/* LINEARIZE converts a segment:ofst pointer into a linear addr between 0 and 1meg */
#define LINEARIZE(rp) ((RP_SEG(rp)<<4) + RP_OFF(rp))
 
 
 
FARPTR REAL_TO_PROT(REALPTR rp);
 
 
/* in DOS386, TIPName, TIPVecRec defined in dos386a.asm in rmdata */
extern char TIPName[];
extern struct UDIVecRec TIPVecRec;
 
 
/* Function Prototypes */
 
REALPTR PROT_TO_REAL(FARPTR p);
REALPTR _far * FindIntVect();
FARPTR NEARPTR_TO_FARPTR(void *ptr);
 
 
 
/* Prototypes for DOS386 UDI interface functions. */
 
 
UDIError UDIPConnect(REALPTR UDIConnectAddr, 
	char *Configuration, 
	UDISessionId *Session,
	DOSTerm _far * TermStruct
	);
 
 
 
UDIError UDIPCapabilities(
	REALPTR		UDICapabilitiesAddr,
	UDIUInt32	*TIPId,			/* Out */
	UDIUInt32	*TargetId,		/* Out */
	UDIUInt32	DFEId,			/* In  */
	UDIUInt32	DFE,			/* In  */
	UDIUInt32	*TIP,			/* Out */
	UDIUInt32	*DFEIPCId,		/* Out */
	UDIUInt32	*TIPIPCId,		/* Out */
	char		*TIPString		/* Out */
  	);
 
UDIError UDIPGetErrorMsg(
	REALPTR		UDIGetErrorMessageAddr,
	UDIError	ErrorCode,		/* In  */
	UDISizeT	MsgSize,		/* In  */
	char		*Msg,			/* Out */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPSetCurrentConnection(
	REALPTR		UDISetCurrentConnectionAddr,
	UDISessionId	Session			/* In  */
	);
 
UDIError UDIPDisconnect(
	REALPTR		UDIDisconnectAddr,
	UDISessionId	Session,		/* In  */
	UDIBool		Terminate,		/* In  */
	DOSTerm _far * TermStruct	/* In  */
	);
 
UDIError UDIPGetTargetConfig(
	REALPTR		UDIGetTargetConfigAddr,
	UDIMemoryRange	KnownMemory[],		/* Out */
	UDIInt		*NumberOfRanges,	/* In/Out */
	UDIUInt32	ChipVersions[],		/* Out */
	UDIInt		*NumberofChips		/* In/Out */
	);
 
UDIError UDIPCreateProcess(
	REALPTR		UDICreateProcessAddr,
	UDIPId		*PId			/* Out */
	);
 
UDIError UDIPSetCurrentProcess(
	REALPTR		UDISetCurrentProcessAddr,
	UDIPId		PId			/* In  */
	);
 
UDIError UDIPInitializeProcess(
	REALPTR		UDIInitializeProcessAddr,
	UDIMemoryRange	ProcessMemory[],	/* In  */
	UDIInt		NumberOfRanges,		/* In  */
	UDIResource	EntryPoint,		/* In  */
	CPUSizeT	*StackSizes,		/* In  */
	UDIInt		NumberOfStacks,		/* In  */
	char		*ArgString		/* In  */
	);
 
UDIError UDIPDestroyProcess(
	REALPTR		UDIDestroyProcessAddr,
	UDIPId		PId			/* In  */
	);
 
UDIError UDIPRead(
	REALPTR		UDIReadAddr,
	UDIResource	From,			/* In  */
	UDIHostMemPtr	To,			/* Out */
	UDICount	Count,			/* In  */
	UDISizeT	Size,			/* In  */
	UDICount	*CountDone,		/* Out */
	UDIBool		HostEndian		/* In  */
	);
 
UDIError UDIPWrite(
	REALPTR		UDIWriteAddr,
	UDIHostMemPtr	From,			/* In  */
	UDIResource	To,			/* In  */
	UDICount	Count,			/* In  */
	UDISizeT	Size,			/* In  */
	UDICount	*CountDone,		/* Out */
	UDIBool		HostEndian		/* In  */
	);
 
UDIError UDIPCopy(
	REALPTR		UDICopyAddr,
	UDIResource	From,			/* In  */
	UDIResource	To,			/* In  */
	UDICount	Count,			/* In  */
	UDISizeT	Size,			/* In  */
	UDICount	*CountDone,		/* Out */
	UDIBool		Direction		/* In  */
	);
 
UDIError UDIPExecute(
	REALPTR		UDIExecuteAddr
	);
 
UDIError UDIPStep(
	REALPTR		UDIStepAddr,
	UDIUInt32	Steps,			/* In  */
	UDIStepType	StepType,		/* In  */
	UDIRange	Range			/* In  */
	);
 
UDIError UDIPStop(
	REALPTR		UDIStopAddr
	);
 
UDIError UDIPWait(
	REALPTR		UDIWaitAddr,
	UDIInt32	MaxTime,		/* In  */
	UDIPId		*PId,			/* Out */
	UDIUInt32	*StopReason		/* Out */
	);
 
UDIError UDIPSetBreakpoint(
	REALPTR		UDISetBreakpointAddr,
	UDIResource	Addr,	  		/* In  */
	UDIInt32	PassCount,		/* In  */
	UDIBreakType	Type,			/* In  */
	UDIBreakId	*BreakId		/* Out */
	);
 
UDIError UDIPQueryBreakpoint(
	REALPTR		UDIQueryBreakpointAddr,
	UDIBreakId	BreakId,		/* In  */
	UDIResource	*Addr,			/* Out */
	UDIInt32	*PassCount,		/* Out */
	UDIBreakType	*Type,			/* Out */
	UDIInt32	*CurrentCount		/* Out */
	);
 
UDIError UDIPClearBreakpoint(
	REALPTR		UDIClearBreakpointAddr,
	UDIBreakId	BreakId			/* In  */
	);
 
 
UDIError UDIPGetStdout(
	REALPTR		UDIGetStdoutAddr,
	UDIHostMemPtr	Buf,			/* Out */
	UDISizeT	BufSize,		/* In  */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPGetStderr(
	REALPTR		UDIGetStderrAddr,
	UDIHostMemPtr	Buf,			/* Out */
	UDISizeT	BufSize,		/* In  */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPPutStdin(
	REALPTR		UDIPutStdinAddr,
	UDIHostMemPtr	Buf,			/* In  */
	UDISizeT	Count,			/* In  */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPStdinMode(
	REALPTR		UDIStdinModeAddr,
	UDIMode		*Mode			/* Out */
	);
 
UDIError UDIPPutTrans(
	REALPTR		UDIPutTransAddr,
	UDIHostMemPtr	Buf,			/* In  */
	UDISizeT	Count,			/* In  */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPGetTrans(
	REALPTR		UDIGetTransAddr,
	UDIHostMemPtr	Buf,			/* Out */
	UDISizeT	BufSize,		/* In  */
	UDISizeT	*CountDone		/* Out */
	);
 
UDIError UDIPTransMode(
	REALPTR		UDITranModesAddr,
	UDIMode		*Mode			/* Out */
	);
 
 
#if __HIGHC__
/* make _fmemmove work for highc */
 
static void _fmemmove(void _far *dst, void _far *src, int count)
{
  /* Metaware hc386 call */
  _movedata(FP_SEL(src), /* from segment:ofs */
	    FP_OFF(src),
	    FP_SEL(dst), /* to segment:ofst */
	    FP_OFF(dst),
	    count);
}
#endif
 
 
 
#endif  /* _DOS386_H */
 
 
 
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.