// File: /workspace/github_c_makefile_star2_O0/wahern[P]cqueues/src/notify.c
// Function: luaopen__cqueues_notify
int luaopen__cqueues_notify(lua_State *L) {
	static const struct {
		const char *name;
		int value;
	} flag[] = {
		{ "CREATE", NOTIFY_CREATE },
		{ "DELETE", NOTIFY_DELETE },
		{ "ATTRIB", NOTIFY_ATTRIB },
		{ "MODIFY", NOTIFY_MODIFY },
		{ "REVOKE", NOTIFY_REVOKE },
		{ "ALL",    NOTIFY_ALL },

		{ "INOTIFY",    NOTIFY_INOTIFY },
		{ "FEN",        NOTIFY_FEN },
		{ "KQUEUE",     NOTIFY_KQUEUE },
		{ "KQUEUE1",    NOTIFY_KQUEUE1 },
		{ "OPENAT",     NOTIFY_OPENAT },
		{ "FDOPENDIR",  NOTIFY_FDOPENDIR},
		{ "O_CLOEXEC",  NOTIFY_O_CLOEXEC },
		{ "IN_CLOEXEC", NOTIFY_IN_CLOEXEC },
	};
	unsigned i;

	if (luaL_newmetatable(L, CQS_NOTIFY)) {
		luaL_setfuncs(L, ln_metatable, 0);

		luaL_newlib(L, ln_methods);
		lua_setfield(L, -2, "__index");
	}

	luaL_newlib(L, ln_globals);

	for (i = 0; i < countof(flag); i++) {
		lua_pushinteger(L, flag[i].value);
		lua_setfield(L, -2, flag[i].name);

		lua_pushinteger(L, flag[i].value);
		lua_pushstring(L, flag[i].name);
		lua_settable(L, -3);
	}

	lua_pushinteger(L, notify_features());
	lua_setfield(L, -2, "FEATURES");

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x239ad(%rip), %rsi     # 0x492b4
callq 0x102d0
cmpl $0x0, %eax
je 0x25970
movq -0x8(%rbp), %rdi
leaq 0x34934(%rip), %rsi     # 0x5a250
xorl %edx, %edx
callq 0x10390
movq -0x8(%rbp), %rdi
movsd 0x226d1(%rip), %xmm0    # 0x48000
movl $0x88, %esi
callq 0x106d0
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x10330
movq -0x8(%rbp), %rdi
leaq 0x3491c(%rip), %rsi     # 0x5a270
xorl %edx, %edx
callq 0x10390
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x22830(%rip), %rdx     # 0x4819b
callq 0xf580
movq -0x8(%rbp), %rdi
movsd 0x22684(%rip), %xmm0    # 0x48000
movl $0x88, %esi
callq 0x106d0
movq -0x8(%rbp), %rdi
xorl %esi, %esi
movl $0x5, %edx
callq 0x10330
movq -0x8(%rbp), %rdi
leaq 0x3493f(%rip), %rsi     # 0x5a2e0
xorl %edx, %edx
callq 0x10390
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpq $0xe, %rax
jae 0x25a5b
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, %ecx
leaq 0x347a4(%rip), %rax     # 0x5a170
shlq $0x4, %rcx
addq %rcx, %rax
movslq 0x8(%rax), %rsi
callq 0xf9a0
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, %ecx
leaq 0x34784(%rip), %rax     # 0x5a170
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf580
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, %ecx
leaq 0x34760(%rip), %rax     # 0x5a170
shlq $0x4, %rcx
addq %rcx, %rax
movslq 0x8(%rax), %rsi
callq 0xf9a0
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, %ecx
leaq 0x34740(%rip), %rax     # 0x5a170
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0xfcc0
movq -0x8(%rbp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x103b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x259af
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
callq 0xf870
movq -0x18(%rbp), %rdi
movslq %eax, %rsi
callq 0xf9a0
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x235b8(%rip), %rdx     # 0x4903c
callq 0xf580
movl $0x1, %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)