summaryrefslogtreecommitdiffabout
path: root/pwmanager/libcrypt/error/code-from-errno.c
Unidiff
Diffstat (limited to 'pwmanager/libcrypt/error/code-from-errno.c') (more/less context) (show whitespace changes)
-rw-r--r--pwmanager/libcrypt/error/code-from-errno.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/pwmanager/libcrypt/error/code-from-errno.c b/pwmanager/libcrypt/error/code-from-errno.c
new file mode 100644
index 0000000..d431ef1
--- a/dev/null
+++ b/pwmanager/libcrypt/error/code-from-errno.c
@@ -0,0 +1,44 @@
1/* code-from-errno.c - Mapping errnos to error codes.
2 Copyright (C) 2003 g10 Code GmbH
3
4 This file is part of libgpg-error.
5
6 libgpg-error is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public License
8 as published by the Free Software Foundation; either version 2.1 of
9 the License, or (at your option) any later version.
10
11 libgpg-error is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with libgpg-error; if not, write to the Free
18 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 02111-1307, USA. */
20
21#if HAVE_CONFIG_H
22#include <config.h>
23#endif
24
25#include <gpg-error.h>
26
27#include "code-from-errno.h"
28
29/* Retrieve the error code for the system error ERR. This returns
30 GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped (report
31 this). */
32gpg_err_code_t
33gpg_err_code_from_errno (int err)
34{
35 int idx = errno_to_idx (err);
36
37 if (!err)
38 return GPG_ERR_NO_ERROR;
39
40 if (idx < 0)
41 return GPG_ERR_UNKNOWN_ERRNO;
42
43 return GPG_ERR_SYSTEM_ERROR | err_code_from_index[idx];
44}