15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file essentially replicates NSPR's source for the functions that
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * map system-specific error codes to NSPR error codes.  We would use
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NSPR's functions, instead of duplicating them, but they're private.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * As long as SSL's server session cache code must do platform native I/O
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to accomplish its job, and NSPR's error mapping functions remain private,
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * this code will continue to need to be replicated.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * This Source Code Form is subject to the terms of the Mozilla Public
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * License, v. 2.0. If a copy of the MPL was not distributed with this
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "prerror.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "prlog.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <errno.h>
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Based on win32err.c
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * OS2TODO Stub everything for now to build. HCT
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* forward declaration. */
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_default_error(PRInt32 err);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_opendir_error(PRInt32 err)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_closedir_error(PRInt32 err)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_readdir_error(PRInt32 err)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_delete_error(PRInt32 err)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The error code for stat() is in errno. */
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_stat_error(PRInt32 err)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_fstat_error(PRInt32 err)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_rename_error(PRInt32 err)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The error code for access() is in errno. */
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_access_error(PRInt32 err)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_mkdir_error(PRInt32 err)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_rmdir_error(PRInt32 err)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_read_error(PRInt32 err)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_transmitfile_error(PRInt32 err)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_write_error(PRInt32 err)
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_lseek_error(PRInt32 err)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_fsync_error(PRInt32 err)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * For both CloseHandle() and closesocket().
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_close_error(PRInt32 err)
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_socket_error(PRInt32 err)
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//  PR_ASSERT(err != WSANOTINITIALISED);
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_recv_error(PRInt32 err)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_recvfrom_error(PRInt32 err)
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_send_error(PRInt32 err)
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     case WSAEMSGSIZE: 	prError = PR_INVALID_ARGUMENT_ERROR; break;
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_sendto_error(PRInt32 err)
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEMSGSIZE: 	prError = PR_INVALID_ARGUMENT_ERROR; break;
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_accept_error(PRInt32 err)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEOPNOTSUPP: prError = PR_NOT_TCP_SOCKET_ERROR; break;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEINVAL: 	prError = PR_INVALID_STATE_ERROR; break;
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_acceptex_error(PRInt32 err)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_connect_error(PRInt32 err)
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEWOULDBLOCK: prError = PR_IN_PROGRESS_ERROR; break;
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEINVAL: 	prError = PR_ALREADY_INITIATED_ERROR; break;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAETIMEDOUT: 	prError = PR_IO_TIMEOUT_ERROR; break;
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_bind_error(PRInt32 err)
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//  case WSAEINVAL: 	prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; break;
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_listen_error(PRInt32 err)
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEOPNOTSUPP: prError = PR_NOT_TCP_SOCKET_ERROR; break;
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEINVAL: 	prError = PR_INVALID_STATE_ERROR; break;
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_shutdown_error(PRInt32 err)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_getsockname_error(PRInt32 err)
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAEINVAL: 	prError = PR_INVALID_STATE_ERROR; break;
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_getpeername_error(PRInt32 err)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_getsockopt_error(PRInt32 err)
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_setsockopt_error(PRInt32 err)
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_open_error(PRInt32 err)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_gethostname_error(PRInt32 err)
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Win32 select() only works on sockets.  So in this
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** context, WSAENOTSOCK is equivalent to EBADF on Unix.
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_select_error(PRInt32 err)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case WSAENOTSOCK:	prError = PR_BAD_DESCRIPTOR_ERROR; break;
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:		nss_MD_os2_map_default_error(err); return;
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_lockf_error(PRInt32 err)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nss_MD_os2_map_default_error(err);
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void nss_MD_os2_map_default_error(PRInt32 err)
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PRErrorCode prError;
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    switch (err) {
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ENOENT: 		prError = PR_FILE_NOT_FOUND_ERROR; break;
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_ACCESS_DENIED: 	prError = PR_NO_ACCESS_RIGHTS_ERROR; break;
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_ALREADY_EXISTS: 	prError = PR_FILE_EXISTS_ERROR; break;
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_DISK_CORRUPT: 	prError = PR_IO_ERROR; break;
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_DISK_FULL: 	prError = PR_NO_DEVICE_SPACE_ERROR; break;
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_DISK_OPERATION_FAILED: prError = PR_IO_ERROR; break;
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_DRIVE_LOCKED: 	prError = PR_FILE_IS_LOCKED_ERROR; break;
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_FILENAME_EXCED_RANGE: prError = PR_NAME_TOO_LONG_ERROR; break;
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_FILE_CORRUPT: 	prError = PR_IO_ERROR; break;
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_FILE_EXISTS: 	prError = PR_FILE_EXISTS_ERROR; break;
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_FILE_INVALID: 	prError = PR_BAD_DESCRIPTOR_ERROR; break;
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if ERROR_FILE_NOT_FOUND != ENOENT
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//    case ERROR_FILE_NOT_FOUND: 	prError = PR_FILE_NOT_FOUND_ERROR; break;
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default: 			prError = PR_UNKNOWN_ERROR; break;
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PR_SetError(prError, err);
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
281