diff options
| author | Stefan Roese <sr@denx.de> | 2007-08-15 21:06:27 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2007-08-15 21:06:27 +0200 | 
| commit | b706d63559aeec352bc72dd86d7d5423c15f6a60 (patch) | |
| tree | fdeda4d61970fef239d9d66ecd851fa46cfe5ec0 /board/MAI/bios_emulator/scitech/src/common/libcimp.c | |
| parent | c8603cfbd4573379a6076c9c208545ba2bbf019a (diff) | |
| parent | 594e79838ce5078a90d0c27abb2b2d61d5f8e8a7 (diff) | |
| download | olio-uboot-2014.01-b706d63559aeec352bc72dd86d7d5423c15f6a60.tar.xz olio-uboot-2014.01-b706d63559aeec352bc72dd86d7d5423c15f6a60.zip | |
Merge with git://www.denx.de/git/u-boot.git
Diffstat (limited to 'board/MAI/bios_emulator/scitech/src/common/libcimp.c')
| -rw-r--r-- | board/MAI/bios_emulator/scitech/src/common/libcimp.c | 827 | 
1 files changed, 0 insertions, 827 deletions
| diff --git a/board/MAI/bios_emulator/scitech/src/common/libcimp.c b/board/MAI/bios_emulator/scitech/src/common/libcimp.c deleted file mode 100644 index ab73ad578..000000000 --- a/board/MAI/bios_emulator/scitech/src/common/libcimp.c +++ /dev/null @@ -1,827 +0,0 @@ -/**************************************************************************** -* -*                       SciTech MGL Graphics Library -* -*  ======================================================================== -* -*    The contents of this file are subject to the SciTech MGL Public -*    License Version 1.0 (the "License"); you may not use this file -*    except in compliance with the License. You may obtain a copy of -*    the License at http://www.scitechsoft.com/mgl-license.txt -* -*    Software distributed under the License is distributed on an -*    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -*    implied. See the License for the specific language governing -*    rights and limitations under the License. -* -*    The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc. -* -*    The Initial Developer of the Original Code is SciTech Software, Inc. -*    All Rights Reserved. -* -*  ======================================================================== -* -* Language:     ANSI C -* Environment:  Any -* -* Description:  Module to implement a the OS specific side of the Binary -*               Portable DLL C runtime library. The functions in here -*               are imported into the Binary Portable DLL's to implement -*               OS specific services. -* -****************************************************************************/ - -#include "pmapi.h" -#if defined(__WIN32_VXD__) || defined(__NT_DRIVER__) -#include "drvlib/peloader.h" -#include "drvlib/attrib.h" -#include "drvlib/libc/init.h" -#define __BUILDING_PE_LOADER__ -#include "drvlib/libc/file.h" -#if defined(__WIN32_VXD__) -#include "vxdfile.h" -#endif -#else -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <malloc.h> -#include <time.h> -#include <signal.h> -#include <fcntl.h> -#if defined(__GNUC__) || defined(__UNIX__) -#include <unistd.h> -#include <sys/types.h> -#include <sys/stat.h> -#else -#include <io.h> -#endif -#include "drvlib/attrib.h" -#include "drvlib/libc/init.h" -#define __BUILDING_PE_LOADER__ -#include "drvlib/libc/file.h" -#if defined(__WINDOWS__) || defined(TNT) || defined(__RTTARGET__) -#define WIN32_LEAN_AND_MEAN -#define STRICT -#include <windows.h> -#endif -#ifdef  __MSDOS__ -#include <dos.h> -#endif -#ifdef  __OS2__ -#define INCL_DOS -#define INCL_DOSERRORS -#define INCL_SUB -#include <os2.h> -#endif -#endif - -/* No text or binary modes for Unix */ - -#ifndef O_BINARY -#define O_BINARY    0 -#define O_TEXT      0 -#endif - -/*--------------------------- Global variables ----------------------------*/ - -#if defined(__WIN32_VXD__) || defined(__NT_DRIVER__) -#define MAX_FILES   16 -static FILE *openHandles[MAX_FILES] = {NULL}; -#endif - -/* <stdlib.h> stub functions */ -void    _CDECL stub_abort(void); -int     _CDECL stub_atexit(void (*)(void)); -void *  _CDECL stub_calloc(size_t _nelem, size_t _size); -void    _CDECL stub_exit(int _status); -void    _CDECL stub_free(void *_ptr); -char *  _CDECL stub_getenv(const char *_name); -void *  _CDECL stub_malloc(size_t _size); -void *  _CDECL stub_realloc(void *_ptr, size_t _size); -int     _CDECL stub_system(const char *_s); -int     _CDECL stub_putenv(const char *_val); - -/* <libc/file.h> stub functions */ -int     _CDECL stub_open(const char *_path, int _oflag, unsigned _mode); -int     _CDECL stub_access(const char *_path, int _amode); -int     _CDECL stub_close(int _fildes); -off_t   _CDECL stub_lseek(int _fildes, off_t _offset, int _whence); -size_t  _CDECL stub_read(int _fildes, void *_buf, size_t _nbyte); -int     _CDECL stub_unlink(const char *_path); -size_t  _CDECL stub_write(int _fildes, const void *_buf, size_t _nbyte); -int     _CDECL stub_isatty(int _fildes); - -/* <stdio.h> stub functions */ -int     _CDECL stub_remove(const char *_filename); -int     _CDECL stub_rename(const char *_old, const char *_new); - -/* <time.h> stub functions */ -time_t  _CDECL stub_time(time_t *_tod); - -/* <signal.h> stub functions */ -int     _CDECL stub_raise(int); -void *  _CDECL stub_signal(int, void *); - -/* <drvlib/attrib.h> functions */ -#define stub_OS_setfileattr    _OS_setfileattr -#define stub_OS_getcurrentdate _OS_getcurrentdate - -LIBC_imports    _VARAPI ___imports = { -    sizeof(LIBC_imports), - -    /* <stdlib.h> exports */ -    stub_abort, -    stub_atexit, -    stub_calloc, -    stub_exit, -    stub_free, -    stub_getenv, -    stub_malloc, -    stub_realloc, -    stub_system, -    stub_putenv, - -    /* <libc/file.h> exports */ -    stub_open, -    stub_access, -    stub_close, -    stub_lseek, -    stub_read, -    stub_unlink, -    stub_write, -    stub_isatty, - -    /* <stdio.h> exports */ -    stub_remove, -    stub_rename, - -    /* <signal.h> functions */ -    stub_raise, -    stub_signal, - -    /* <time.h> exports */ -    stub_time, - -    /* <drvlib/attrib.h> exports */ -    stub_OS_setfileattr, -    stub_OS_getcurrentdate, -    }; - -/*---------------------- Stub function implementation ---------------------*/ - -/* <stdlib.h> stub functions */ -void _CDECL stub_abort(void) -{ -#if !defined( __WIN32_VXD__) && !defined(__NT_DRIVER__) -    abort(); -#endif -} - -int _CDECL stub_atexit(void (*func)(void)) -{ -#if !defined( __WIN32_VXD__) && !defined(__NT_DRIVER__) -    return atexit((void(*)(void))func); -#else -    return -1; -#endif -} - -void * _CDECL stub_calloc(size_t _nelem, size_t _size) -{ return __PM_calloc(_nelem,_size); } - -void _CDECL stub_exit(int _status) -{ -#if !defined( __WIN32_VXD__) && !defined(__NT_DRIVER__) -    exit(_status); -#endif -} - -void _CDECL stub_free(void *_ptr) -{ __PM_free(_ptr); } - -char * _CDECL stub_getenv(const char *_name) -{ -#if defined( __WIN32_VXD__) || defined(__NT_DRIVER__) -    return NULL; -#else -    return getenv(_name); -#endif -} - -void * _CDECL stub_malloc(size_t _size) -{ return __PM_malloc(_size); } - -void * _CDECL stub_realloc(void *_ptr, size_t _size) -{ return __PM_realloc(_ptr,_size); } - -int _CDECL stub_system(const char *_s) -{ -#if defined(__WINDOWS__) || defined(__WIN32_VXD__) || defined(__NT_DRIVER__) || defined(__SMX32__) || defined(__RTTARGET__) -    (void)_s; -    return -1; -#else -    return system(_s); -#endif -} - -int _CDECL stub_putenv(const char *_val) -{ -#if defined( __WIN32_VXD__) || defined(__NT_DRIVER__) -    return -1; -#else -    return putenv((char*)_val); -#endif -} - -time_t _CDECL stub_time(time_t *_tod) -{ -#if defined( __WIN32_VXD__) || defined(__NT_DRIVER__) -    return 0; -#else -    return time(_tod); -#endif -} - -#if     defined(__MSDOS__) - -#if defined(TNT) && defined(_MSC_VER) - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ SetFileAttributes((LPSTR)filename, (DWORD)attrib); } - -#else - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ _dos_setfileattr(filename,attrib); } - -#endif - -#elif   defined(__WIN32_VXD__) - -#define USE_LOCAL_FILEIO -#define USE_LOCAL_GETDATE - -/* <libc/file.h> stub functions */ -int _CDECL stub_open(const char *_path, int _oflag, unsigned _mode) -{ -    char    mode[10]; -    int     i; - -    /* Find an empty file handle to use */ -    for (i = 3; i < MAX_FILES; i++) { -	if (!openHandles[i]) -	    break; -	} -    if (openHandles[i]) -	return -1; - -    /* Find the open flags to use */ -    if (_oflag & ___O_TRUNC) -	strcpy(mode,"w"); -    else if (_oflag & ___O_CREAT) -	strcpy(mode,"a"); -    else -	strcpy(mode,"r"); -    if (_oflag & ___O_BINARY) -	strcat(mode,"b"); -    if (_oflag & ___O_TEXT) -	strcat(mode,"t"); - -    /* Open the file and store the file handle */ -    if ((openHandles[i] = fopen(_path,mode)) == NULL) -	return -1; -    return i; -} - -int _CDECL stub_access(const char *_path, int _amode) -{ return -1; } - -int _CDECL stub_close(int _fildes) -{ -    if (_fildes >= 3 && openHandles[_fildes]) { -	fclose(openHandles[_fildes]); -	openHandles[_fildes] = NULL; -	} -    return 0; -} - -off_t _CDECL stub_lseek(int _fildes, off_t _offset, int _whence) -{ -    if (_fildes >= 3) { -	fseek(openHandles[_fildes],_offset,_whence); -	return ftell(openHandles[_fildes]); -	} -    return 0; -} - -size_t _CDECL stub_read(int _fildes, void *_buf, size_t _nbyte) -{ -    if (_fildes >= 3) -	return fread(_buf,1,_nbyte,openHandles[_fildes]); -    return 0; -} - -int _CDECL stub_unlink(const char *_path) -{ -    WORD error; - -    if (initComplete) { -	if (R0_DeleteFile((char*)_path,0,&error)) -	    return 0; -	return -1; -	} -    else -	return i_remove(_path); -} - -size_t _CDECL stub_write(int _fildes, const void *_buf, size_t _nbyte) -{ -    if (_fildes >= 3) -	return fwrite(_buf,1,_nbyte,openHandles[_fildes]); -    return _nbyte; -} - -int _CDECL stub_isatty(int _fildes) -{ return 0; } - -/* <stdio.h> stub functions */ -int _CDECL stub_remove(const char *_filename) -{ return stub_unlink(_filename); } - -int _CDECL stub_rename(const char *_old, const char *_new) -{ return -1; } - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ -    WORD error; -    if (initComplete) -	R0_SetFileAttributes((char*)filename,attrib,&error); -} - -/* Return the current date in days since 1/1/1980 */ -ulong _CDECL _OS_getcurrentdate(void) -{ -    DWORD   date; -    VTD_Get_Date_And_Time(&date); -    return date; -} - -#elif   defined(__NT_DRIVER__) - -#define USE_LOCAL_FILEIO -#define USE_LOCAL_GETDATE - -/* <libc/file.h> stub functions */ -int _CDECL stub_open(const char *_path, int _oflag, unsigned _mode) -{ -    char    mode[10]; -    int     i; - -    /* Find an empty file handle to use */ -    for (i = 3; i < MAX_FILES; i++) { -	if (!openHandles[i]) -	    break; -	} -    if (openHandles[i]) -	return -1; - -    /* Find the open flags to use */ -    if (_oflag & ___O_TRUNC) -	strcpy(mode,"w"); -    else if (_oflag & ___O_CREAT) -	strcpy(mode,"a"); -    else -	strcpy(mode,"r"); -    if (_oflag & ___O_BINARY) -	strcat(mode,"b"); -    if (_oflag & ___O_TEXT) -	strcat(mode,"t"); - -    /* Open the file and store the file handle */ -    if ((openHandles[i] = fopen(_path,mode)) == NULL) -	return -1; -    return i; -} - -int _CDECL stub_close(int _fildes) -{ -    if (_fildes >= 3 && openHandles[_fildes]) { -	fclose(openHandles[_fildes]); -	openHandles[_fildes] = NULL; -	} -    return 0; -} - -off_t _CDECL stub_lseek(int _fildes, off_t _offset, int _whence) -{ -    if (_fildes >= 3) { -	fseek(openHandles[_fildes],_offset,_whence); -	return ftell(openHandles[_fildes]); -	} -    return 0; -} - -size_t _CDECL stub_read(int _fildes, void *_buf, size_t _nbyte) -{ -    if (_fildes >= 3) -	return fread(_buf,1,_nbyte,openHandles[_fildes]); -    return 0; -} - -size_t _CDECL stub_write(int _fildes, const void *_buf, size_t _nbyte) -{ -    if (_fildes >= 3) -	return fwrite(_buf,1,_nbyte,openHandles[_fildes]); -    return _nbyte; -} - -int _CDECL stub_access(const char *_path, int _amode) -{ return -1; } - -int _CDECL stub_isatty(int _fildes) -{ return 0; } - -int _CDECL stub_unlink(const char *_path) -{ -    /* TODO: Implement this! */ -    return -1; -} - -/* <stdio.h> stub functions */ -int _CDECL stub_remove(const char *_filename) -{ return stub_unlink(_filename); } - -int _CDECL stub_rename(const char *_old, const char *_new) -{ -    /* TODO: Implement this! */ -    return -1; -} - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ -    uint _attr = 0; -    if (attrib & __A_RDONLY) -	_attr |= FILE_ATTRIBUTE_READONLY; -    if (attrib & __A_HIDDEN) -	_attr |= FILE_ATTRIBUTE_HIDDEN; -    if (attrib & __A_SYSTEM) -	_attr |= FILE_ATTRIBUTE_SYSTEM; -    PM_setFileAttr(filename,_attr); -} - -/* Return the current date in days since 1/1/1980 */ -ulong _CDECL _OS_getcurrentdate(void) -{ -    TIME_FIELDS tm; -    _int64      count,count_1_1_1980; - -    tm.Year         = 1980; -    tm.Month        = 1; -    tm.Day          = 1; -    tm.Hour         = 0; -    tm.Minute       = 0; -    tm.Second       = 0; -    tm.Milliseconds = 0; -    tm.Weekday      = 0; -    RtlTimeFieldsToTime(&tm,(PLARGE_INTEGER)&count_1_1_1980); -    KeQuerySystemTime((PLARGE_INTEGER)&count); -    return (ulong)( (count - count_1_1_1980) / ((_int64)24 * (_int64)3600 * (_int64)10000000) ); -} - -#elif   defined(__WINDOWS32__) || defined(__RTTARGET__) - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ SetFileAttributes((LPSTR)filename, (DWORD)attrib); } - -#elif   defined(__OS2__) - -#define USE_LOCAL_FILEIO - -#ifndef W_OK -#define W_OK                    0x02 -#endif - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ -    FILESTATUS3 s; -    if (DosQueryPathInfo((PSZ)filename,FIL_STANDARD,(PVOID)&s,sizeof(s))) -	return; -    s.attrFile = attrib; -    DosSetPathInfo((PSZ)filename,FIL_STANDARD,(PVOID)&s,sizeof(s),0L); -} - -/* <libc/file.h> stub functions */ - -#define BUF_SIZE    4096 - -/* Note: the implementation of the standard Unix-ish handle-based I/O isn't - *       complete - but that wasn't the intent either. Note also that we - *       don't presently support text file I/O, so all text files end - *       up in Unix format (and are not translated!). - */ -int _CDECL stub_open(const char *_path, int _oflag, unsigned _mode) -{ -    HFILE   handle; -    ULONG   error, actiontaken, openflag, openmode; -    char    path[PM_MAX_PATH]; - -    /* Determine open flags */ -    if (_oflag & ___O_CREAT) { -	if (_oflag & ___O_EXCL) -	    openflag = OPEN_ACTION_FAIL_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; -	else if (_oflag & ___O_TRUNC) -	    openflag = OPEN_ACTION_REPLACE_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; -	else -	    openflag = OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; -	} -    else if (_oflag & ___O_TRUNC) -	openflag = OPEN_ACTION_REPLACE_IF_EXISTS; -    else -	openflag = OPEN_ACTION_OPEN_IF_EXISTS; - -    /* Determine open mode flags */ -    if (_oflag & ___O_RDONLY) -	openmode = OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE; -    else if (_oflag & ___O_WRONLY) -	openmode = OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYWRITE; -    else -	openmode = OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYWRITE; - -    /* Copy the path to a variable on the stack. We need to do this -     * for OS/2 as when the drivers are loaded into shared kernel -     * memory, we can't pass an address from that memory range to -     * this function. -     */ -    strcpy(path,_path); -    if (DosOpen(path, &handle, &actiontaken, 0, FILE_NORMAL, -	    openflag, openmode, NULL) != NO_ERROR) -	return -1; - -    /* Handle append mode of operation */ -    if (_oflag & ___O_APPEND) { -	if (DosSetFilePtr(handle, 0, FILE_END, &error) != NO_ERROR) -	    return -1; -	} -    return handle; -} - -int _CDECL stub_access(const char *_path, int _amode) -{ -    char        path[PM_MAX_PATH]; -    FILESTATUS  fs; - -    /* Copy the path to a variable on the stack. We need to do this -     * for OS/2 as when the drivers are loaded into shared kernel -     * memory, we can't pass an address from that memory range to -     * this function. -     */ -    strcpy(path,_path); -    if (DosQueryPathInfo(path, FIL_STANDARD, &fs, sizeof(fs)) != NO_ERROR) -	return -1; -    if ((_amode & W_OK) && (fs.attrFile & FILE_READONLY)) -	return -1; -    return 0; -} - -int _CDECL stub_close(int _fildes) -{ -    if (DosClose(_fildes) != NO_ERROR) -	return -1; -    return 0; -} - -off_t _CDECL stub_lseek(int _fildes, off_t _offset, int _whence) -{ -    ULONG  cbActual, origin; - -    switch (_whence) { -	case SEEK_CUR: -	    origin = FILE_CURRENT; -	    break; -	case SEEK_END: -	    origin = FILE_END; -	    break; -	default: -	    origin = FILE_BEGIN; -	} -    if (DosSetFilePtr(_fildes, _offset, origin, &cbActual) != NO_ERROR) -	return -1; -    return cbActual; -} - -size_t _CDECL stub_read(int _fildes, void *_buf, size_t _nbyte) -{ -    ULONG   cbActual = 0,cbRead; -    uchar   *p = _buf; -    uchar   file_io_buf[BUF_SIZE]; - -    /* We need to perform the physical read in chunks into a -     * a temporary static buffer, since the buffer passed in may be -     * in kernel space and will cause DosRead to bail internally. -     */ -    while (_nbyte > BUF_SIZE) { -	if (DosRead(_fildes, file_io_buf, BUF_SIZE, &cbRead) != NO_ERROR) -	    return -1; -	cbActual += cbRead; -	memcpy(p,file_io_buf,BUF_SIZE); -	p += BUF_SIZE; -	_nbyte -= BUF_SIZE; -	} -    if (_nbyte) { -	if (DosRead(_fildes, file_io_buf, _nbyte, &cbRead) != NO_ERROR) -	    return -1; -	cbActual += cbRead; -	memcpy(p,file_io_buf,_nbyte); -	} -    return cbActual; -} - -size_t _CDECL stub_write(int _fildes, const void *_buf, size_t _nbyte) -{ -    ULONG   cbActual = 0,cbWrite; -    uchar   *p = (PVOID)_buf; -    uchar   file_io_buf[BUF_SIZE]; - -    /* We need to perform the physical write in chunks from a -     * a temporary static buffer, since the buffer passed in may be -     * in kernel space and will cause DosWrite to bail internally. -     */ -    while (_nbyte > BUF_SIZE) { -	memcpy(file_io_buf,p,BUF_SIZE); -	if (DosWrite(_fildes, file_io_buf, BUF_SIZE, &cbWrite) != NO_ERROR) -	    return -1; -	cbActual += cbWrite; -	p += BUF_SIZE; -	_nbyte -= BUF_SIZE; -	} -    if (_nbyte) { -	memcpy(file_io_buf,p,_nbyte); -	if (DosWrite(_fildes, file_io_buf, _nbyte, &cbWrite) != NO_ERROR) -	    return -1; -	cbActual += cbWrite; -	} -    return cbActual; -} - -int _CDECL stub_unlink(const char *_path) -{ -    char    path[PM_MAX_PATH]; - -    /* Copy the path to a variable on the stack. We need to do this -     * for OS/2 as when the drivers are loaded into shared kernel -     * memory, we can't pass an address from that memory range to -     * this function. -     */ -    strcpy(path,_path); -    if (DosDelete(path) != NO_ERROR) -	return -1; -    return 0; -} - -int _CDECL stub_isatty(int _fildes) -{ -    ULONG  htype, flags; - -    if (DosQueryHType(_fildes, &htype, &flags) != NO_ERROR) -	return 0; -    return ((htype & 0xFF) == HANDTYPE_DEVICE); -} - -/* <stdio.h> stub functions */ -int _CDECL stub_remove(const char *_path) -{ -    char    path[PM_MAX_PATH]; - -    /* Copy the path to a variable on the stack. We need to do this -     * for OS/2 as when the drivers are loaded into shared kernel -     * memory, we can't pass an address from that memory range to -     * this function. -     */ -    strcpy(path,_path); -    if (DosDelete(path) != NO_ERROR) -	return -1; -    return 0; -} - -int _CDECL stub_rename(const char *_old, const char *_new) -{ -    char    old[PM_MAX_PATH]; -    char    new[PM_MAX_PATH]; - -    /* Copy the path to a variable on the stack. We need to do this -     * for OS/2 as when the drivers are loaded into shared kernel -     * memory, we can't pass an address from that memory range to -     * this function. -     */ -    strcpy(old,_old); -    strcpy(new,_new); -    if (DosMove(old, new) != NO_ERROR) -	return -1; -    return 0; -} - -#else - -void _CDECL _OS_setfileattr(const char *filename,unsigned attrib) -{ /* Unable to set hidden, system attributes on Unix. */ } - -#endif - -#ifndef USE_LOCAL_FILEIO - -/* <libc/file.h> stub functions */ -int _CDECL stub_open(const char *_path, int _oflag, unsigned _mode) -{ -    int oflag_tab[] = { -	___O_RDONLY,    O_RDONLY, -	___O_WRONLY,    O_WRONLY, -	___O_RDWR,      O_RDWR, -	___O_BINARY,    O_BINARY, -	___O_TEXT,      O_TEXT, -	___O_CREAT,     O_CREAT, -	___O_EXCL,      O_EXCL, -	___O_TRUNC,     O_TRUNC, -	___O_APPEND,    O_APPEND, -	}; -    int i,oflag = 0; - -    /* Translate the oflag's to the OS dependent versions */ -    for (i = 0; i < sizeof(oflag_tab) / sizeof(int); i += 2) { -	if (_oflag & oflag_tab[i]) -	    oflag |= oflag_tab[i+1]; -	} -    return open(_path,oflag,_mode); -} - -int _CDECL stub_access(const char *_path, int _amode) -{ return access(_path,_amode); } - -int _CDECL stub_close(int _fildes) -{ return close(_fildes); } - -off_t _CDECL stub_lseek(int _fildes, off_t _offset, int _whence) -{ return lseek(_fildes,_offset,_whence); } - -size_t _CDECL stub_read(int _fildes, void *_buf, size_t _nbyte) -{ return read(_fildes,_buf,_nbyte); } - -int _CDECL stub_unlink(const char *_path) -{ return unlink(_path); } - -size_t _CDECL stub_write(int _fildes, const void *_buf, size_t _nbyte) -{ return write(_fildes,_buf,_nbyte); } - -int _CDECL stub_isatty(int _fildes) -{ return isatty(_fildes); } - -/* <stdio.h> stub functions */ -int _CDECL stub_remove(const char *_filename) -{ return remove(_filename); } - -int _CDECL stub_rename(const char *_old, const char *_new) -{ return rename(_old,_new); } - -#endif - -#ifndef USE_LOCAL_GETDATE - -/* Return the current date in days since 1/1/1980 */ -ulong _CDECL _OS_getcurrentdate(void) -{ -    struct tm refTime; -    refTime.tm_year = 80; -    refTime.tm_mon  = 0; -    refTime.tm_mday = 1; -    refTime.tm_hour = 0; -    refTime.tm_min  = 0; -    refTime.tm_sec  = 0; -    refTime.tm_isdst = -1; -    return (time(NULL) - mktime(&refTime)) / (24 * 3600L); -} - -#endif - -int _CDECL stub_raise(int sig) -{ -#if defined(__WIN32_VXD__) || defined(__NT_DRIVER__) || defined(__SMX32__) -    return -1; -#else -    return raise(sig); -#endif -} - -#ifdef __WINDOWS32__ -typedef void (*__code_ptr)(int); -#else -typedef void (*__code_ptr)(); -#endif - -void * _CDECL stub_signal(int sig, void *handler) -{ -#if defined(__WIN32_VXD__) || defined(__NT_DRIVER__) || defined(__SMX32__) -    return NULL; -#else -    return (void*)signal(sig,(__code_ptr)handler); -#endif -} |