]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_global.c
Upgrade Unbound to 1.6.8. More to follow.
[FreeBSD/FreeBSD.git] / sys / cddl / contrib / opensolaris / uts / common / fs / zfs / zcp_global.c
1 /*
2  * CDDL HEADER START
3  *
4  * This file and its contents are supplied under the terms of the
5  * Common Development and Distribution License ("CDDL"), version 1.0.
6  * You may only use this file in accordance with the terms of version
7  * 1.0 of the CDDL.
8  *
9  * A full copy of the text of the CDDL should have accompanied this
10  * source.  A copy of the CDDL is also available via the Internet at
11  * http://www.illumos.org/license/CDDL.
12  *
13  * CDDL HEADER END
14  */
15
16 /*
17  * Copyright (c) 2016, 2017 by Delphix. All rights reserved.
18  */
19
20 #include <sys/zcp_global.h>
21
22 #include "lua.h"
23 #include "lauxlib.h"
24
25 typedef struct zcp_errno_global {
26         const char *zeg_name;
27         int zeg_errno;
28 } zcp_errno_global_t;
29
30 static const zcp_errno_global_t errno_globals[] = {
31         {"EPERM", EPERM},
32         {"ENOENT", ENOENT},
33         {"ESRCH", ESRCH},
34         {"EINTR", EINTR},
35         {"EIO", EIO},
36         {"ENXIO", ENXIO},
37         {"E2BIG", E2BIG},
38         {"ENOEXEC", ENOEXEC},
39         {"EBADF", EBADF},
40         {"ECHILD", ECHILD},
41         {"EAGAIN", EAGAIN},
42         {"ENOMEM", ENOMEM},
43         {"EACCES", EACCES},
44         {"EFAULT", EFAULT},
45         {"ENOTBLK", ENOTBLK},
46         {"EBUSY", EBUSY},
47         {"EEXIST", EEXIST},
48         {"EXDEV", EXDEV},
49         {"ENODEV", ENODEV},
50         {"ENOTDIR", ENOTDIR},
51         {"EISDIR", EISDIR},
52         {"EINVAL", EINVAL},
53         {"ENFILE", ENFILE},
54         {"EMFILE", EMFILE},
55         {"ENOTTY", ENOTTY},
56         {"ETXTBSY", ETXTBSY},
57         {"EFBIG", EFBIG},
58         {"ENOSPC", ENOSPC},
59         {"ESPIPE", ESPIPE},
60         {"EROFS", EROFS},
61         {"EMLINK", EMLINK},
62         {"EPIPE", EPIPE},
63         {"EDOM", EDOM},
64         {"ERANGE", ERANGE},
65         {"EDEADLK", EDEADLK},
66         {"ENOLCK", ENOLCK},
67         {"ECANCELED", ECANCELED},
68         {"ENOTSUP", ENOTSUP},
69         {"EDQUOT", EDQUOT},
70         {"ENAMETOOLONG", ENAMETOOLONG},
71         {NULL, 0}
72 };
73
74 static void
75 zcp_load_errno_globals(lua_State *state)
76 {
77         const zcp_errno_global_t *global = errno_globals;
78         while (global->zeg_name != NULL) {
79                 lua_pushnumber(state, (lua_Number)global->zeg_errno);
80                 lua_setglobal(state, global->zeg_name);
81                 global++;
82         }
83 }
84
85 void
86 zcp_load_globals(lua_State *state)
87 {
88         zcp_load_errno_globals(state);
89 }