On 11/30/2009 10:16 AM, Richard W.M. Jones wrote:
My take from this is that we need a 'set_errno' function which is
equivalent to 'set_winsock_errno' and is used for all non-socket
functions.
For all non-socket functions that are mapped to Win32 functions, yes.
Here is the list that Wine uses, it is at least a good starting point:
ERROR_ACCESS_DENIED
ERROR_CANNOT_MAKE
ERROR_CURRENT_DIRECTORY
ERROR_DRIVE_LOCKED
ERROR_FAIL_I24
ERROR_INVALID_ACCESS
ERROR_LOCK_FAILED
ERROR_LOCK_VIOLATION
ERROR_NETWORK_ACCESS_DENIED
ERROR_NOT_LOCKED
ERROR_SEEK_ON_DEVICE
map to EACCES
ERROR_BAD_NET_NAME
ERROR_BAD_NETPATH
ERROR_BAD_PATHNAME
ERROR_FILENAME_EXCED_RANGE (better: ERANGE)
ERROR_FILE_NOT_FOUND
ERROR_INVALID_DRIVE
ERROR_NO_MORE_FILES
ERROR_PATH_NOT_FOUND
map to ENOENT
ERROR_IO_DEVICE
map to EIO
ERROR_BAD_FORMAT
map to ENOEXEC
ERROR_INVALID_HANDLE
map to EBADF
ERROR_ARENA_TRASHED
ERROR_INVALID_BLOCK
ERROR_NOT_ENOUGH_QUOTA (better: EDQUOT)
ERROR_OUTOFMEMORY
map to ENOMEM
ERROR_BUSY
map to EBUSY
ERROR_ALREADY_EXISTS
ERROR_FILE_EXISTS
map to EEXIST
ERROR_BAD_DEVICE
map to ENODEV
ERROR_TOO_MANY_OPEN_FILES
map to EMFILE
ERROR_DISK_FULL
map to ENOSPC
ERROR_BROKEN_PIPE
map to EPIPE
ERROR_POSSIBLE_DEADLOCK
map to EDEADLK
ERROR_DIR_NOT_EMPTY
map to ENOTEMPTY
ERROR_BAD_ENVIRONMENT
map to E2BIG
ERROR_CHILD_NOT_COMPLETE
ERROR_WAIT_NO_CHILDREN
map to ECHILD
ERROR_MAX_THRDS_REACHED
ERROR_NESTING_NOT_ALLOWED
ERROR_NO_PROC_SLOTS
map to EAGAIN
Paolo