Changeset 10581


Ignore:
Timestamp:
Aug 31, 2008, 8:34:06 AM (11 years ago)
Author:
gb
Message:

Conditionalize for win32; may take a few iterations before this compiles/
works on win32, win64.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/windows-calls.c

    r10564 r10581  
    4545
    4646
    47 
     47#ifndef WIN32
    4848#define _dosmaperr mingw_dosmaperr
    49 
     49#else
     50void
     51_dosmaperr(unsigned long oserrno)
     52{
     53  switch(oserrno) {
     54  case  ERROR_INVALID_FUNCTION:
     55    errno = EINVAL;
     56    break;
     57  case ERROR_FILE_NOT_FOUND:
     58    errno = ENOENT;
     59    break;
     60  case ERROR_PATH_NOT_FOUND:
     61    errno = ENOENT;
     62    break;
     63  case  ERROR_TOO_MANY_OPEN_FILES:
     64    errno = EMFILE;
     65    break;
     66  case  ERROR_ACCESS_DENIED:
     67    errno = EACCES;
     68    break;
     69  case  ERROR_ARENA_TRASHED:
     70    errno = ENOMEM;
     71    break;
     72  case  ERROR_NOT_ENOUGH_MEMORY:
     73    errno = ENOMEM;
     74    break;
     75  case  ERROR_INVALID_BLOCK:
     76    errno = ENOMEM;
     77    break;
     78  case  ERROR_BAD_ENVIRONMENT:
     79    errno = E2BIG;
     80    break;
     81  case  ERROR_BAD_FORMAT:
     82    errno = ENOEXEC;
     83    break;
     84  case  ERROR_INVALID_ACCESS:
     85    errno = EINVAL;
     86    break;
     87  case  ERROR_INVALID_DATA:
     88    errno = EINVAL;
     89    break;
     90  case  ERROR_INVALID_DRIVE:
     91    errno = ENOENT;
     92    break;
     93  case  ERROR_CURRENT_DIRECTORY:
     94    errno = EACCES;
     95    break;
     96  case  ERROR_NOT_SAME_DEVICE:
     97    errno = EXDEV;
     98    break;
     99  case  ERROR_NO_MORE_FILES:
     100    errno = ENOENT;
     101    break;
     102  case  ERROR_LOCK_VIOLATION:
     103    errno = EACCES;
     104    break;
     105  case  ERROR_BAD_NETPATH:
     106    errno = ENOENT;
     107    break;
     108  case  ERROR_NETWORK_ACCESS_DENIED:
     109    errno = EACCES;
     110    break;
     111  case  ERROR_BAD_NET_NAME:
     112    errno = ENOENT;
     113    break;
     114  case  ERROR_FILE_EXISTS:
     115    errno = EEXIST;
     116    break;
     117  case  ERROR_CANNOT_MAKE:
     118    errno = EACCES;
     119    break;
     120  case  ERROR_FAIL_I24:
     121    errno = EACCES;
     122    break;
     123  case  ERROR_INVALID_PARAMETER:
     124    errno = EINVAL;
     125    break;
     126  case  ERROR_NO_PROC_SLOTS:
     127    errno = EAGAIN;
     128    break;
     129  case  ERROR_DRIVE_LOCKED:
     130    errno = EACCES;
     131    break;
     132  case  ERROR_BROKEN_PIPE:
     133    errno = EPIPE;
     134    break;
     135  case  ERROR_DISK_FULL:
     136    errno = ENOSPC;
     137    break;
     138  case  ERROR_INVALID_TARGET_HANDLE:
     139    errno = EBADF;
     140    break;
     141  case  ERROR_INVALID_HANDLE:
     142    errno = EINVAL;
     143    break;
     144  case  ERROR_WAIT_NO_CHILDREN:
     145    errno = ECHILD;
     146    break;
     147  case  ERROR_CHILD_NOT_COMPLETE:
     148    errno = ECHILD;
     149    break;
     150  case  ERROR_DIRECT_ACCESS_HANDLE:
     151    errno = EBADF;
     152    break;
     153  case  ERROR_NEGATIVE_SEEK:
     154    errno = EINVAL;
     155    break;
     156  case  ERROR_SEEK_ON_DEVICE:   
     157    errno = EACCES;
     158    break;
     159  case  ERROR_DIR_NOT_EMPTY:
     160    errno = ENOTEMPTY;
     161    break;
     162  case  ERROR_NOT_LOCKED:
     163    errno = EACCES;
     164    break;
     165  case  ERROR_BAD_PATHNAME:
     166    errno = ENOENT;
     167    break;
     168  case  ERROR_MAX_THRDS_REACHED:
     169    errno = EAGAIN;
     170    break;
     171  case  ERROR_LOCK_FAILED:
     172    errno = EACCES;
     173    break;
     174  case  ERROR_ALREADY_EXISTS:
     175    errno = EEXIST;
     176    break;
     177  case  ERROR_FILENAME_EXCED_RANGE:
     178    errno = ENOENT;
     179    break;
     180  case  ERROR_NESTING_NOT_ALLOWED:
     181    errno = EAGAIN;
     182    break;
     183  case  ERROR_NOT_ENOUGH_QUOTA:
     184    errno = ENOMEM;
     185    break;
     186  default:
     187    errno = EINVAL;
     188    break;
     189  }
     190}
     191   
     192#endif
    50193
    51194#define WSYSCALL_RETURN(form) \
     
    238381
    239382__int64
    240 windows_lseek(int fd, _off64_t offset, int whence)
     383windows_lseek(int fd, __int64 offset, int whence)
    241384{
    242385  WSYSCALL_RETURN(lseek64(fd, offset, whence));
     
    244387
    245388__int64
    246 windows_stat(wchar_t *path, struct _stat64 *buf)
     389windows_stat(wchar_t *path, struct __stat64 *buf)
    247390{
    248391  WSYSCALL_RETURN(_wstat64(path,buf));
     
    250393
    251394__int64
    252 windows_fstat(int fd, struct _stat64 *buf)
     395windows_fstat(int fd, struct __stat64 *buf)
    253396{
    254397  WSYSCALL_RETURN(_fstat64(fd,buf));
     
    257400
    258401__int64
    259 windows_ftruncate(int fd, _off64_t new_size)
     402windows_ftruncate(int fd, __int64 new_size)
    260403{
    261404  /* Note that _ftruncate only allows 32-bit length */
Note: See TracChangeset for help on using the changeset viewer.