1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #include <sal/config.h> 21 22 #include <cassert> 23 #include <cerrno> 24 25 #include "file_error_transl.hxx" 26 oslTranslateFileError(int Errno)27oslFileError oslTranslateFileError(int Errno) 28 { 29 switch (Errno) 30 { 31 case EPERM: 32 return osl_File_E_PERM; 33 34 case ENOENT: 35 return osl_File_E_NOENT; 36 37 case ESRCH: 38 return osl_File_E_SRCH; 39 40 case EINTR: 41 return osl_File_E_INTR; 42 43 case EIO: 44 return osl_File_E_IO; 45 46 case ENXIO: 47 return osl_File_E_IO; 48 49 case E2BIG: 50 return osl_File_E_2BIG; 51 52 case ENOEXEC: 53 return osl_File_E_NOEXEC; 54 55 case EBADF: 56 return osl_File_E_BADF; 57 58 case ECHILD: 59 return osl_File_E_CHILD; 60 61 case EAGAIN: 62 return osl_File_E_AGAIN; 63 64 case ENOMEM: 65 return osl_File_E_NOMEM; 66 67 case EACCES: 68 return osl_File_E_ACCES; 69 70 case EFAULT: 71 return osl_File_E_FAULT; 72 73 case EBUSY: 74 return osl_File_E_BUSY; 75 76 case EEXIST: 77 return osl_File_E_EXIST; 78 79 case EXDEV: 80 return osl_File_E_XDEV; 81 82 case ENODEV: 83 return osl_File_E_NODEV; 84 85 case ENOTDIR: 86 return osl_File_E_NOTDIR; 87 88 case EISDIR: 89 return osl_File_E_ISDIR; 90 91 case EINVAL: 92 return osl_File_E_INVAL; 93 94 case ENFILE: 95 return osl_File_E_NFILE; 96 97 case EMFILE: 98 return osl_File_E_MFILE; 99 100 case ENOTTY: 101 return osl_File_E_NOTTY; 102 103 case EFBIG: 104 return osl_File_E_FBIG; 105 106 case ENOSPC: 107 return osl_File_E_NOSPC; 108 109 case ESPIPE: 110 return osl_File_E_SPIPE; 111 112 case EROFS: 113 return osl_File_E_ROFS; 114 115 case EMLINK: 116 return osl_File_E_MLINK; 117 118 case EPIPE: 119 return osl_File_E_PIPE; 120 121 case EDOM: 122 return osl_File_E_DOM; 123 124 case ERANGE: 125 return osl_File_E_RANGE; 126 127 case EDEADLK: 128 return osl_File_E_DEADLK; 129 130 case ENAMETOOLONG: 131 return osl_File_E_NAMETOOLONG; 132 133 case ENOLCK: 134 return osl_File_E_NOLCK; 135 136 case ENOSYS: 137 case ENOTSUP: 138 #if EOPNOTSUPP != ENOTSUP 139 case EOPNOTSUPP: 140 #endif 141 return osl_File_E_NOSYS; 142 143 #if !defined(AIX) || !(defined(_ALL_SOURCE) && !defined(_LINUX_SOURCE_COMPAT)) 144 case ENOTEMPTY: 145 return osl_File_E_NOTEMPTY; 146 #endif 147 148 case ELOOP: 149 return osl_File_E_LOOP; 150 151 #if !(defined(MACOSX) || defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) \ 152 || defined(DRAGONFLY)) 153 case EILSEQ: 154 return osl_File_E_ILSEQ; 155 156 case ENOLINK: 157 return osl_File_E_NOLINK; 158 159 case EMULTIHOP: 160 return osl_File_E_MULTIHOP; 161 #endif /* MACOSX */ 162 163 #if !defined(HAIKU) 164 case EUSERS: 165 return osl_File_E_USERS; 166 #endif 167 168 case EOVERFLOW: 169 return osl_File_E_OVERFLOW; 170 171 case ETIMEDOUT: 172 return osl_File_E_TIMEDOUT; 173 174 default: 175 assert(Errno != 0); 176 /* FIXME translateFileError: is this alright? Or add a new one: osl_File_E_Unknown? */ 177 return osl_File_E_invalidError; 178 } 179 } 180 181 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 182