diff options
Diffstat (limited to '3rdparty/expat/amiga/expat_lib.c')
-rw-r--r-- | 3rdparty/expat/amiga/expat_lib.c | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/3rdparty/expat/amiga/expat_lib.c b/3rdparty/expat/amiga/expat_lib.c deleted file mode 100644 index 70e91b101aa..00000000000 --- a/3rdparty/expat/amiga/expat_lib.c +++ /dev/null @@ -1,247 +0,0 @@ -/* -** Copyright (c) 2001-2009 Expat maintainers. -** -** Permission is hereby granted, free of charge, to any person obtaining -** a copy of this software and associated documentation files (the -** "Software"), to deal in the Software without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Software, and to -** permit persons to whom the Software is furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifdef __USE_INLINE__ -#undef __USE_INLINE__ -#endif - -#define __NOLIBBASE__ -#define __NOGLOBALIFACE__ - -#include <dos/dos.h> -#include <proto/exec.h> - -#include "expat_base.h" - - -#define LIBNAME "expat.library" -#define LIBPRI 0 -#define VERSION 53 -#define REVISION 1 -#define VSTRING "expat.library 53.1 (7.8.2009)" /* dd.mm.yyyy */ - - -static const char* __attribute__((used)) verstag = "\0$VER: " VSTRING; - - -struct Interface *INewlib = 0; - - -struct ExpatBase * libInit(struct ExpatBase *libBase, BPTR seglist, struct ExecIFace *ISys); -uint32 libObtain (struct LibraryManagerInterface *Self); -uint32 libRelease (struct LibraryManagerInterface *Self); -struct ExpatBase *libOpen (struct LibraryManagerInterface *Self, uint32 version); -BPTR libClose (struct LibraryManagerInterface *Self); -BPTR libExpunge (struct LibraryManagerInterface *Self); -struct Interface *openInterface(struct ExecIFace *IExec, CONST_STRPTR libName, uint32 libVer); -void closeInterface(struct ExecIFace *IExec, struct Interface *iface); - - -static APTR lib_manager_vectors[] = { - libObtain, - libRelease, - NULL, - NULL, - libOpen, - libClose, - libExpunge, - NULL, - (APTR)-1, -}; - - -static struct TagItem lib_managerTags[] = { - { MIT_Name, (uint32)"__library" }, - { MIT_VectorTable, (uint32)lib_manager_vectors }, - { MIT_Version, 1 }, - { TAG_END, 0 } -}; - - -extern void *main_vectors[]; - -static struct TagItem lib_mainTags[] = { - { MIT_Name, (uint32)"main" }, - { MIT_VectorTable, (uint32)main_vectors }, - { MIT_Version, 1 }, - { TAG_END, 0 } -}; - - -static APTR libInterfaces[] = { - lib_managerTags, - lib_mainTags, - NULL -}; - - -extern void *VecTable68K[]; - -static struct TagItem libCreateTags[] = { - { CLT_DataSize, sizeof(struct ExpatBase) }, - { CLT_InitFunc, (uint32)libInit }, - { CLT_Interfaces, (uint32)libInterfaces }, - { CLT_Vector68K, (uint32)VecTable68K }, - { TAG_END, 0 } -}; - - -static struct Resident __attribute__((used)) lib_res = { - RTC_MATCHWORD, // rt_MatchWord - &lib_res, // rt_MatchTag - &lib_res+1, // rt_EndSkip - RTF_NATIVE | RTF_AUTOINIT, // rt_Flags - VERSION, // rt_Version - NT_LIBRARY, // rt_Type - LIBPRI, // rt_Pri - LIBNAME, // rt_Name - VSTRING, // rt_IdString - libCreateTags // rt_Init -}; - - -int32 _start() -{ - return RETURN_FAIL; -} - - -struct ExpatBase *libInit(struct ExpatBase *libBase, BPTR seglist, struct ExecIFace *iexec) -{ - libBase->libNode.lib_Node.ln_Type = NT_LIBRARY; - libBase->libNode.lib_Node.ln_Pri = LIBPRI; - libBase->libNode.lib_Node.ln_Name = LIBNAME; - libBase->libNode.lib_Flags = LIBF_SUMUSED|LIBF_CHANGED; - libBase->libNode.lib_Version = VERSION; - libBase->libNode.lib_Revision = REVISION; - libBase->libNode.lib_IdString = VSTRING; - - libBase->SegList = seglist; - - libBase->IExec = iexec; - INewlib = openInterface(iexec, "newlib.library", 0); - - if ( INewlib != 0 ) { - return libBase; - } - - closeInterface(iexec, INewlib); - INewlib = 0; - - iexec->DeleteLibrary(&libBase->libNode); - - return NULL; -} - - -uint32 libObtain( struct LibraryManagerInterface *Self ) -{ - ++Self->Data.RefCount; - return Self->Data.RefCount; -} - - -uint32 libRelease( struct LibraryManagerInterface *Self ) -{ - --Self->Data.RefCount; - return Self->Data.RefCount; -} - - -struct ExpatBase *libOpen( struct LibraryManagerInterface *Self, uint32 version ) -{ - struct ExpatBase *libBase; - - libBase = (struct ExpatBase *)Self->Data.LibBase; - - ++libBase->libNode.lib_OpenCnt; - libBase->libNode.lib_Flags &= ~LIBF_DELEXP; - - return libBase; -} - - -BPTR libClose( struct LibraryManagerInterface *Self ) -{ - struct ExpatBase *libBase; - - libBase = (struct ExpatBase *)Self->Data.LibBase; - - --libBase->libNode.lib_OpenCnt; - if ( libBase->libNode.lib_OpenCnt ) { - return 0; - } - - if ( libBase->libNode.lib_Flags & LIBF_DELEXP ) { - return (BPTR)Self->LibExpunge(); - } - else { - return ZERO; - } -} - - -BPTR libExpunge( struct LibraryManagerInterface *Self ) -{ - struct ExpatBase *libBase = (struct ExpatBase *)Self->Data.LibBase; - BPTR result = ZERO; - - if (libBase->libNode.lib_OpenCnt == 0) { - libBase->IExec->Remove(&libBase->libNode.lib_Node); - - result = libBase->SegList; - - closeInterface(libBase->IExec, INewlib); - INewlib = 0; - - libBase->IExec->DeleteLibrary(&libBase->libNode); - } - else { - libBase->libNode.lib_Flags |= LIBF_DELEXP; - } - - return result; -} - - -struct Interface *openInterface(struct ExecIFace *IExec, CONST_STRPTR libName, uint32 libVer) -{ - struct Library *base = IExec->OpenLibrary(libName, libVer); - struct Interface *iface = IExec->GetInterface(base, "main", 1, 0); - if (iface == 0) { - IExec->CloseLibrary(base); - } - - return iface; -} - - -void closeInterface(struct ExecIFace *IExec, struct Interface *iface) -{ - if (iface != 0) - { - struct Library *base = iface->Data.LibBase; - IExec->DropInterface(iface); - IExec->CloseLibrary(base); - } -} |