From 3b8ff426935b860d662115922c1b6305c3f5d47a Mon Sep 17 00:00:00 2001 From: koolsmoky <> Date: Sun, 6 Apr 2003 18:30:26 +0000 Subject: [PATCH] initial checkin of dos win32 glide --- swlibs/fxmisc/makefile | 32 +++ swlibs/include/makefile | 26 +++ swlibs/include/nmake/3dfx.mak | 344 +++++++++++++++++++++++++++++++ swlibs/newpci/pcilib/fxdpmi.h | 33 +++ swlibs/newpci/pcilib/fxdpmi2.c | 103 ++++++++- swlibs/newpci/pcilib/fxfreebsd.h | 160 +++++++------- swlibs/newpci/pcilib/makefile | 32 +++ 7 files changed, 646 insertions(+), 84 deletions(-) create mode 100644 swlibs/fxmisc/makefile create mode 100644 swlibs/include/makefile create mode 100644 swlibs/include/nmake/3dfx.mak create mode 100644 swlibs/newpci/pcilib/fxdpmi.h create mode 100644 swlibs/newpci/pcilib/makefile diff --git a/swlibs/fxmisc/makefile b/swlibs/fxmisc/makefile new file mode 100644 index 0000000..ec81e7f --- /dev/null +++ b/swlibs/fxmisc/makefile @@ -0,0 +1,32 @@ +# +# THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY +# PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT +# TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX +# INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE +# DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). +# THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +# EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A +# FULL TEXT OF THE NON-WARRANTY PROVISIONS. +# +# USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO +# RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN +# TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, +# AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR +# SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF +# THE UNITED STATES. +# +# COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED +# +# $Revision$ +# $Date$ +# $Log: +# 1 ve3d 1.0 11/24/01 KoolSmoky makefile +# + +!include $(BUILD_ROOT)\config.mak + +HEADERS=*.h + +#INSTALL_DESTINATION=$(BUILD_ROOT)\$(FX_GLIDE_HW) + +!include $(BUILD_ROOT)\swlibs\include\nmake\3dfx.mak diff --git a/swlibs/include/makefile b/swlibs/include/makefile new file mode 100644 index 0000000..b328987 --- /dev/null +++ b/swlibs/include/makefile @@ -0,0 +1,26 @@ +# +# THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY +# PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT +# TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX +# INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE +# DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). +# THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +# EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A +# FULL TEXT OF THE NON-WARRANTY PROVISIONS. +# +# USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO +# RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN +# TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, +# AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR +# SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF +# THE UNITED STATES. +# +# COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED +# +# $Revision$ +# $Date$ +# + +LDIRT = *.h + +!include $(BUILD_ROOT_SWLIBS)\include\nmake\3dfx.mak diff --git a/swlibs/include/nmake/3dfx.mak b/swlibs/include/nmake/3dfx.mak new file mode 100644 index 0000000..93b0dff --- /dev/null +++ b/swlibs/include/nmake/3dfx.mak @@ -0,0 +1,344 @@ +# +# $Log: +# 1 ve3d 1.0 11/24/01 KoolSmoky initial win32 global makefile +# + +# +# library source sets FX_DLL_DEFINITION before including fxdll.h to indicate +# next header is interface file +# +!if "$(FX_TARGET)" == "WIN32" && "$(FX_DLL_BUILD)"=="1" && "$(FX_DLL_LIBRARY)"=="1" +FX_DLL_COMPILE = 1 +LINK_DLL = 1 +!endif + +!if "$(FX_TARGET)" == "WIN32" && "$(FX_DLL_BUILD)"=="1" && "$(FX_DLL_COMPILE)"=="1" +COMPILE_DLL = 1 +!endif + +# +# compiler flags: +# +!if "$(FX_COMPILER)" == "MICROSOFT" + +!if "$(CC)"=="" +CC = cl +CPLUSPLUS = cl +!endif +CDEBUG = -Z7 +CNODEBUG = /Ox +LDEBUG = -Z7 +LINK = $(CC) +GCOPTS = /nologo /G6 /W3 /c +GCDEFS = -D__MSC__=1 -D_X86_=1 -DNULL=0 +!if "$(FX_TARGET_MINOR)" == "WIN95" +GLDOPTS = -nologo /link /map -subsystem:windows,4.0 -debugtype:none -pdb:none -incremental:no -release +!else +!if "$(DEBUG)"=="1" +GLDOPTS = -nologo /link -subsystem:console -debugtype:both -pdb:none +!else +GLDOPTS = -link -pdb:none -incremental:no -release +!endif +!endif +CPP = $(CC) -E /c +LNODEBUG = $(CDEBUG) +GCINCS = -I$(BUILD_ROOT_SWLIBS)\include + +!endif + +# +# assembler flags: +# +AOPTS = /coff +ASM_LIST_FLAGS = /FAsc +AR = lib -nologo +!if "$(AS)"=="" +AS = ml +!endif +ADEBUG = /Zi +AOPTS = $(AOPTS) /I. /c /Cp +ANODEBUG = + +# if we are not debugging then replace debug flags with nodebug flags +!ifndef DEBUG +CDEBUG = $(CNODEBUG) +LDEBUG = $(LNODEBUG) +ADEBUG = $(ANODEBUG) +!endif + +# +# target environment configs: +# +!if "$(FX_TARGET)" == "WIN32" +GCDEFS = $(GCDEFS) -D_WIN32 -DWIN32=1 -D__WIN32__=1 + +!ifdef COMPILE_DLL +GCDEFS = $(GCDEFS) -DFX_DLL_ENABLE=1 +!endif + +baselibs = $(optlibs) advapi32.lib #kernel32.lib +uilibs = shell32.lib comdlg32.lib comctl32.lib ctl3d32.lib +winlibs = $(baselibs) $(uilibs) user32.lib gdi32.lib winspool.lib winmm.lib + +!if "$(FX_COMPILER)" == "MICROSOFT" +libcdll = /MT +!endif + +guilibsdll = $(libcdll) $(winlibs) + +!endif + +# +# CFLAGS, we make sure we use both global and local flags: +# +# +GCFLAGS = $(GCINCS) $(GCDEFS) $(GCOPTS) +LCFLAGS = $(LCINCS) $(LCDEFS) $(LCOPTS) +VCFLAGS = $(VCINCS) $(VCDEFS) $(VCOPTS) + +CFLAGS = $(CDEBUG) $(GCFLAGS) $(LCFLAGS) $(VCFLAGS) + +# +# global linker flags (LDFLAGS) and libraries (LDLIBS) +# NOTE: local libs are before global libs +# +GLDOPTS = $(LDEBUG) $(GLDOPTS) +GLDLIBS = $(guilibsdll) +LDFLAGS = $(GLDOPTS) $(LLDOPTS) +LDLIBS = $(LLDLIBS) $(GLDLIBS) + +# +# build up global assembler flags +# +AFLAGS = $(LADEFS) $(ADEBUG) $(LAINCS) $(AOPTS) $(LAOPTS) $(AINCLUDES) + +# +# OS commands: +# +!if "$(FX_HOST)" == "WIN32" +XCOPY=@xcopy +CALL=@call +!endif + +CHMODWR = attrib -r +RM = del /Q +INSTALL = $(XCOPY) /d /k /r /i /s /q + +# +# default rule (make all): +# +default:: all + +all: incs libs bins + +RESFILE = $(RCFILE:.rc=.res) +OBJECTS = $(CFILES:.c=.obj) $(CPPFILES:.cpp=.obj) $(AFILES:.asm=.obj) $(RESFILE) $(LOBJECTS) + +# +# INCS rule: +# +incs: $(BUILD_TOOLS) $(HEADERS) +!ifdef HEADERS +!ifdef FX_INSTALL_DESTINATION +!ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\include + !attrib +r $(INSTALL_DESTINATION)\include\$** + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\include + !attrib +r $(FX_INSTALL_DESTINATION)\include\$** +!else + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\include + !attrib +r $(FX_INSTALL_DESTINATION)\include\$** +!endif +!else ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\include + !attrib +r $(INSTALL_DESTINATION)\include\$** +!else + @echo INSTALL_DESTINATION not defined, not installing HEADERS +!endif +!endif + +# +# LIBRARIES rules: +# +!ifdef LIBRARIES +LIBPARTS = $(OBJECTS) $(SUBLIBRARIES) + +!ifdef LINK_DLL + +!if "$(FX_TARGET)" == "WIN32" +DLLS = $(LIBRARIES:.lib=.dll) +EXPS = $(LIBRARIES:.lib=.exp) +!endif + +!if "$(FX_COMPILER)"=="MICROSOFT" +$(LIBRARIES) : $(LIBPARTS) + $(LINK) /o $* /LD $(LIBPARTS) $(LDLIBS) $(LDFLAGS) +!endif + +$(DLLS) : $(LIBRARIES) + +!if defined(LIBRARIES) || defined(DLLS) +libs: $(LIBRARIES) $(DLLS) + echo FX_INSTALL_DESTINATION=$(FX_INSTALL_DESTINATION) +!ifdef FX_INSTALL_DESTINATION +!ifdef INSTALL_DESTINATION + !$(INSTALL) $(LIBRARIES) $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !$(INSTALL) $(DLLS) $(INSTALL_DESTINATION)\bin + !attrib +r $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$(LIBRARIES) + !attrib +r $(INSTALL_DESTINATION)\bin\$(DLLS) + !$(INSTALL) $(LIBRARIES) $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !$(INSTALL) $(DLLS) $(FX_INSTALL_DESTINATION)\bin + !attrib +r $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$(LIBRARIES) + !attrib +r $(FX_INSTALL_DESTINATION)\bin\$(DLLS) +!else + !$(INSTALL) $(LIBRARIES) $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !$(INSTALL) $(DLLS) $(FX_INSTALL_DESTINATION)\bin + !attrib +r $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$(LIBRARIES) + !attrib +r $(FX_INSTALL_DESTINATION)\bin\$(DLLS) +!endif +!else ifdef INSTALL_DESTINATION + !$(INSTALL) $(LIBRARIES) $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !$(INSTALL) $(DLLS) $(INSTALL_DESTINATION)\bin + !attrib +r $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$(LIBRARIES) + !attrib +r $(INSTALL_DESTINATION)\bin\$(DLLS) +!else + @echo INSTALL_DESTINATION not defined, not installing LIBRARIES +!endif +!else +libs: +!endif + +!else + +$(LIBRARIES) : $(LIBPARTS) + $(AR) /out:$*.lib $(LIBPARTS) + +libs: $(LIBRARIES) +!ifdef FX_INSTALL_DESTINATION +!ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !attrib +r $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$** + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !attrib +r $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$** +!else + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !attrib +r $(FX_INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$** +!endif +!else ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR) + !attrib +r $(INSTALL_DESTINATION)\lib$(FX_COMPLIB_DIR)\$** +!else + @echo INSTALL_DESTINATION not defined, not installing LIBRARIES +!endif +!endif +!else +libs: +!endif + +# +# BINS rules: +# +!ifdef PROGRAM +$(PROGRAM) : $(LLDLIBS) $(OBJECTS) $(DEPDATA) + $(LINK) -o $@ $(OBJECTS) $(LDLIBS) $(LDFLAGS) +!endif + +!ifdef PROGRAMS +$(PROGRAMS) : $(LLDLIBS) $*.obj $(RESFILE) + $(LINK) -o $@ $*.obj $(RESFILE) $(LDLIBS) $(LDFLAGS) +!endif + +!if defined(PROGRAM) || defined(PROGRAMS) || defined(BATS) || defined(DIAGS) +bins: $(PROGRAM) $(PROGRAMS) $(BATS) $(DATAFILES) $(DIAGS) +!ifdef FX_INSTALL_DESTINATION +!ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\bin + !attrib +r $(INSTALL_DESTINATION)\bin\$** + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\bin + !attrib +r $(FX_INSTALL_DESTINATION)\bin\$** +!else + !$(INSTALL) $** $(FX_INSTALL_DESTINATION)\bin + !attrib +r $(FX_INSTALL_DESTINATION)\bin\$** +!endif +!else ifdef INSTALL_DESTINATION + !$(INSTALL) $** $(INSTALL_DESTINATION)\bin + !attrib +r $(INSTALL_DESTINATION)\bin\$** +!else + @echo INSTALL_DESTINATION not defined, not installing PROGRAMS +!endif +!else +bins: +!endif + +TARGETS = $(TARGETS) $(LIBRARIES) $(DLLS) $(EXPS) $(PROGRAM) $(PROGRAMS) $(DEPDATA) $(DIAGS) + + +# +# dependency: +# +MKDEPFILE = makedep + +# +# make clean: +# +GDIRT = *.cod *.bak *.pdb *.ilk *.map *.sym *.err *.i stderr.out tmp.opt *.evt +DIRT = $(GDIRT) $(LDIRT) +JUNK = __junk__ + +OBJECTS = $(OBJECTS) + +clean: +!if EXISTS ($(MKDEPFILE)) + FOR %i IN ($(MKDEPFILE) $(JUNK)) DO $(CHMODWR) %i > NUL + FOR %i IN ($(MKDEPFILE) $(JUNK)) DO $(RM) %i > NUL +!endif + FOR %i IN ($(OBJECTS) $(JUNK)) DO $(CHMODWR) %i > NUL + FOR %i IN ($(OBJECTS) $(JUNK)) DO $(RM) %i > NUL + FOR %i IN ($(DIRT) $(JUNK)) DO $(CHMODWR) %i > NUL + FOR %i IN ($(DIRT) $(JUNK)) DO $(RM) %i > NUL + FOR %i IN ($(TARGETS) $(JUNK)) DO $(CHMODWR) %i > NUL + FOR %i IN ($(TARGETS) $(JUNK)) DO $(RM) %i > NUL + +.SUFFIXES: .cod .i + +.c.obj: + $(CC) $(CFLAGS) $< + +.cpp.obj: + $(CPLUSPLUS) $(CFLAGS) $< + +.rc.res: + rc $(GCINCS) $(LCINCS) $(VCINCS) $(GCDEFS) $(LCDEFS) $(VCDEFS) $< + +.c.cod: + $(CC) $(CFLAGS) $(ASM_LIST_FLAGS) $< + +.c.i: + $(CPP) $(CFLAGS) $< > $@ + +.asm.obj: + $(AS) $(AFLAGS) $< + +.asm.o: + $(AS) $(AFLAGS) $< + rename $*.obj $@ + + +# +# makedepend rules: +# +!if EXISTS ($(MKDEPFILE)) +!include $(MKDEPFILE) +!endif + +!ifndef MAKEFILE +MAKEFILE = makefile +!endif + +!ifdef CFILES +$(OBJECTS): $(HEADERS) $(PRIVATE_HEADERS) $(MAKEFILE) +!endif + +!ifdef CPPFILES +$(OBJECTS): $(HEADERS) $(PRIVATE_HEADERS) $(MAKEFILE) +!endif diff --git a/swlibs/newpci/pcilib/fxdpmi.h b/swlibs/newpci/pcilib/fxdpmi.h new file mode 100644 index 0000000..81e1aad --- /dev/null +++ b/swlibs/newpci/pcilib/fxdpmi.h @@ -0,0 +1,33 @@ +/* + * FxDPMI for DOS. + * + * Copyright (c) 2002 - Borca Daniel + * Email : dborca@yahoo.com + * Web : http://www.geocities.com/dborca + */ + + +#ifndef FXDPMI_H_included +#define FXDPMI_H_included + +#ifdef __DJGPP__ +#include + +#define inp inportb +#define inpw inportw +#define inpd inportl + +#define outp outportb +#define outpw outportw +#define outpd outportl + +#define _inp inportb +#define _inpw inportw +#define _inpd inportl + +#define _outp outportb +#define _outpw outportw +#define _outpd outportl +#endif + +#endif diff --git a/swlibs/newpci/pcilib/fxdpmi2.c b/swlibs/newpci/pcilib/fxdpmi2.c index 162ea7f..58d313e 100644 --- a/swlibs/newpci/pcilib/fxdpmi2.c +++ b/swlibs/newpci/pcilib/fxdpmi2.c @@ -30,7 +30,16 @@ #include "pcilib.h" #include + +/* [dBorca] */ +#ifdef __DJGPP__ +#include +#include +#include +static FxBool dirty; +#else #include +#endif /* Callback declarations */ static FxBool pciInitializeDPMI(void); @@ -96,12 +105,31 @@ pciPlatformInit(void) static FxBool pciInitializeDPMI(void) { +/* [dBorca] */ +#ifdef __DJGPP__ + /* enable nearptr access */ + if (_crt0_startup_flags & _CRT0_FLAG_NEARPTR) { + dirty = FXFALSE; + } else { + if (__djgpp_nearptr_enable() == 0) + return FXFALSE; + + dirty = FXTRUE; + } +#endif return FXTRUE; } static FxBool pciShutdownDPMI(void) { +/* [dBorca] */ +#ifdef __DJGPP__ + if (dirty) { + __djgpp_nearptr_disable(); + dirty = FXFALSE; + } +#endif return FXTRUE; } @@ -117,6 +145,26 @@ static FxBool pciMapLinearDPMI(FxU32 busNumber, FxU32 physical_addr, FxU32 *linear_addr, FxU32 *length) { +/* [dBorca] */ +#ifdef __DJGPP__ + __dpmi_meminfo meminfo; + + if (physical_addr >= 0x100000) { + /* map into linear memory */ + meminfo.address = physical_addr; + /* Hack alert: + * because of the TILE shit, we must enhance the mapped area + */ + meminfo.size = *length * 3 / 2; + if (__dpmi_physical_address_mapping(&meminfo) != 0) + return FXFALSE; + + *linear_addr = meminfo.address - __djgpp_base_address; + } else { + /* exploit 1 -> 1 physical to linear mapping in low megabyte */ + *linear_addr = physical_addr; + } +#else FxBool onWindows; /* @@ -152,14 +200,29 @@ pciMapLinearDPMI(FxU32 busNumber, FxU32 physical_addr, /* If we got here, it's OK to map the memory */ *linear_addr = DpmiMapPhysicalToLinear( physical_addr, *length ); +#endif - return FXTRUE; + return FXTRUE; } static FxBool pciUnmapLinearDPMI( FxU32 linear_addr, FxU32 length ) { +/* [dBorca] */ +#ifdef __DJGPP__ + __dpmi_meminfo meminfo; + + if (linear_addr >= 0x100000) { + meminfo.address = linear_addr + __djgpp_base_address; + if (!__dpmi_free_physical_address_mapping(&meminfo)) { + return FXTRUE; + } + } + + return FXFALSE; +#else DpmiUnmapMemory(linear_addr, length); +#endif } /* Platform port io stuff */ @@ -184,50 +247,82 @@ pciPortInLongDPMI(FxU16 port) static FxBool pciPortOutByteDPMI(FxU16 port, FxU8 data) { - return outp(port, data); + /* [dBorca] */ + outp(port, data); + return FXTRUE; } static FxBool pciPortOutWordDPMI(FxU16 port, FxU16 data) { - return outpw(port, data); + /* [dBorca] */ + outpw(port, data); + return FXTRUE; } static FxBool pciPortOutLongDPMI(FxU16 port, FxU32 data) { - return outpd(port, data); + /* [dBorca] */ + outpd(port, data); + return FXTRUE; } static FxBool pciMsrGetDPMI(MSRInfo* in, MSRInfo* out) { +/* [dBorca] */ +#ifdef __DJGPP__ + return FXTRUE; +#else return DpmiGetMSR((FxU32)in, (FxU32)out); +#endif } static FxBool pciMsrSetDPMI(MSRInfo* in, MSRInfo* out) { +/* [dBorca] */ +#ifdef __DJGPP__ + return FXTRUE; +#else return DpmiSetMSR((FxU32)in, (FxU32)out); +#endif } /* Platform utilities. */ static FxBool pciOutputStringDPMI(const char* msg) { +/* [dBorca] */ +#ifdef __DJGPP__ + printf("%s", msg); + return FXTRUE; +#else return DpmiOutputDebugString(msg); +#endif } static FxBool pciSetPermissionDPMI(const FxU32 addrBase, const FxU32 addrLen, const FxBool writePermP) { +/* [dBorca] */ +#ifdef __DJGPP__ + return FXTRUE; +#else return DpmiLinearRangeSetPermission(addrBase, addrLen, writePermP); +#endif } static FxBool pciSetPassThroughBaseDPMI(FxU32* baseAddr, FxU32 baseAddrLen) { +/* [dBorca] */ +#ifdef __DJGPP__ + return FXTRUE; +#else return DpmiSetPassThroughBase(baseAddr, baseAddrLen); +#endif } diff --git a/swlibs/newpci/pcilib/fxfreebsd.h b/swlibs/newpci/pcilib/fxfreebsd.h index 1ad0e5a..21bae26 100644 --- a/swlibs/newpci/pcilib/fxfreebsd.h +++ b/swlibs/newpci/pcilib/fxfreebsd.h @@ -1,80 +1,80 @@ -/* -** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY -** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT -** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX -** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE -** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). -** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER -** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A -** FULL TEXT OF THE NON-WARRANTY PROVISIONS. -** -** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO -** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN -** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, -** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR -** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF -** THE UNITED STATES. -** -** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED -*/ - -#ifndef _FXFREEBSD_H_ -#define _FXFREEBSD_H_ - -#define FX_MAJOR_VER 0 -#define FX_MINOR_VER 0 - -extern const FxU32 PCI_VENDOR_ID_FREEBSD; -extern const FxU32 PCI_DEVICE_ID_FREEBSD; -extern const FxU32 PCI_COMMAND_FREEBSD; -extern const FxU32 PCI_BASE_ADDRESS_0_FREEBSD; -extern const FxU32 SST1_PCI_INIT_ENABLE_FREEBSD; -extern const FxU32 SST1_PCI_BUS_SNOOP0_FREEBSD; -extern const FxU32 SST1_PCI_BUS_SNOOP1_FREEBSD; - -FxBool -hasDev3DfxFreeBSD(void); - -FxBool -pciInitializeFreeBSD(void); - -FxBool -pciCloseFreeBSD( void ); - -FxU8 -pioInByteFreeBSD(unsigned short port); - -FxU16 -pioInWordFreeBSD(unsigned short port); - -FxU32 -pioInLongFreeBSD(unsigned short port); - -FxBool -pioOutByteFreeBSD(unsigned short port, FxU8 data); - -FxBool -pioOutWordFreeBSD(unsigned short port, FxU16 data); - -FxBool -pioOutLongFreeBSD(unsigned short port, FxU32 data); - -FxBool -pciMapPhysicalToLinearFreeBSD( FxU32 *linear_addr, FxU32 physical_addr, - FxU32 *length ); -void -pciUnmapPhysicalFreeBSD( FxU32 linear_addr, FxU32 length ); - -int -getNumDevicesFreeBSD(void); - -FxU32 -pciFetchRegisterFreeBSD( FxU32 cmd, FxU32 size, FxU32 device); - -int -pciUpdateRegisterFreeBSD(FxU32 cmd, FxU32 data, FxU32 size, FxU32 device); - -FxBool -pciOutputDebugStringFreeBSD(const char *msg); - -#endif +/* +** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY +** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT +** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX +** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE +** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). +** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A +** FULL TEXT OF THE NON-WARRANTY PROVISIONS. +** +** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO +** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN +** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, +** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR +** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF +** THE UNITED STATES. +** +** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED +*/ + +#ifndef _FXFREEBSD_H_ +#define _FXFREEBSD_H_ + +#define FX_MAJOR_VER 0 +#define FX_MINOR_VER 0 + +extern const FxU32 PCI_VENDOR_ID_FREEBSD; +extern const FxU32 PCI_DEVICE_ID_FREEBSD; +extern const FxU32 PCI_COMMAND_FREEBSD; +extern const FxU32 PCI_BASE_ADDRESS_0_FREEBSD; +extern const FxU32 SST1_PCI_INIT_ENABLE_FREEBSD; +extern const FxU32 SST1_PCI_BUS_SNOOP0_FREEBSD; +extern const FxU32 SST1_PCI_BUS_SNOOP1_FREEBSD; + +FxBool +hasDev3DfxFreeBSD(void); + +FxBool +pciInitializeFreeBSD(void); + +FxBool +pciCloseFreeBSD( void ); + +FxU8 +pioInByteFreeBSD(unsigned short port); + +FxU16 +pioInWordFreeBSD(unsigned short port); + +FxU32 +pioInLongFreeBSD(unsigned short port); + +FxBool +pioOutByteFreeBSD(unsigned short port, FxU8 data); + +FxBool +pioOutWordFreeBSD(unsigned short port, FxU16 data); + +FxBool +pioOutLongFreeBSD(unsigned short port, FxU32 data); + +FxBool +pciMapPhysicalToLinearFreeBSD( FxU32 *linear_addr, FxU32 physical_addr, + FxU32 *length ); +void +pciUnmapPhysicalFreeBSD( FxU32 linear_addr, FxU32 length ); + +int +getNumDevicesFreeBSD(void); + +FxU32 +pciFetchRegisterFreeBSD( FxU32 cmd, FxU32 size, FxU32 device); + +int +pciUpdateRegisterFreeBSD(FxU32 cmd, FxU32 data, FxU32 size, FxU32 device); + +FxBool +pciOutputDebugStringFreeBSD(const char *msg); + +#endif diff --git a/swlibs/newpci/pcilib/makefile b/swlibs/newpci/pcilib/makefile new file mode 100644 index 0000000..5e444ea --- /dev/null +++ b/swlibs/newpci/pcilib/makefile @@ -0,0 +1,32 @@ +# +# THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY +# PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT +# TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX +# INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE +# DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). +# THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +# EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A +# FULL TEXT OF THE NON-WARRANTY PROVISIONS. +# +# USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO +# RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN +# TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, +# AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR +# SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF +# THE UNITED STATES. +# +# COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED +# +# $Revision$ +# $Date$ +# $Log: +# 1 ve3d 1.0 11/24/01 KoolSmoky makefile +# + +!include $(BUILD_ROOT)\config.mak + +HEADERS=*.h + +INSTALL_DESTINATION=$(BUILD_ROOT)\$(FX_GLIDE_HW) + +!include $(BUILD_ROOT)\swlibs\include\nmake\3dfx.mak