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