mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-08 02:40:28 +00:00
Merge branch 'jart:master' into patch-lua-545
This commit is contained in:
commit
289ded82b4
5539 changed files with 1590 additions and 16258 deletions
13
Makefile
13
Makefile
|
@ -88,7 +88,8 @@ o/$(MODE): \
|
||||||
|
|
||||||
ifneq ($(LANDLOCKMAKE_VERSION),)
|
ifneq ($(LANDLOCKMAKE_VERSION),)
|
||||||
ifeq ($(wildcard /usr/bin/ape),)
|
ifeq ($(wildcard /usr/bin/ape),)
|
||||||
$(error please run ape/apeinstall.sh if you intend to use landlock make)
|
$(warning please run ape/apeinstall.sh if you intend to use landlock make)
|
||||||
|
$(shell sleep .5)
|
||||||
endif
|
endif
|
||||||
ifeq ($(USE_SYSTEM_TOOLCHAIN),)
|
ifeq ($(USE_SYSTEM_TOOLCHAIN),)
|
||||||
.STRICT = 1
|
.STRICT = 1
|
||||||
|
@ -344,7 +345,6 @@ COSMOPOLITAN_OBJECTS = \
|
||||||
LIBC_NT_PDH \
|
LIBC_NT_PDH \
|
||||||
LIBC_NT_GDI32 \
|
LIBC_NT_GDI32 \
|
||||||
LIBC_NT_COMDLG32 \
|
LIBC_NT_COMDLG32 \
|
||||||
LIBC_NT_URL \
|
|
||||||
LIBC_NT_USER32 \
|
LIBC_NT_USER32 \
|
||||||
LIBC_NT_NTDLL \
|
LIBC_NT_NTDLL \
|
||||||
LIBC_NT_ADVAPI32 \
|
LIBC_NT_ADVAPI32 \
|
||||||
|
@ -425,6 +425,7 @@ $(SRCS): \
|
||||||
libc/integral/lp64.inc
|
libc/integral/lp64.inc
|
||||||
|
|
||||||
.PHONY: toolchain
|
.PHONY: toolchain
|
||||||
|
ifeq ($(ARCH), x86_64)
|
||||||
toolchain: o/cosmopolitan.h \
|
toolchain: o/cosmopolitan.h \
|
||||||
o/$(MODE)/ape/public/ape.lds \
|
o/$(MODE)/ape/public/ape.lds \
|
||||||
o/$(MODE)/libc/crt/crt.o \
|
o/$(MODE)/libc/crt/crt.o \
|
||||||
|
@ -435,6 +436,14 @@ toolchain: o/cosmopolitan.h \
|
||||||
o/$(MODE)/third_party/libcxx/libcxx.a \
|
o/$(MODE)/third_party/libcxx/libcxx.a \
|
||||||
o/$(MODE)/tool/build/fixupobj.com \
|
o/$(MODE)/tool/build/fixupobj.com \
|
||||||
o/$(MODE)/tool/build/zipcopy.com
|
o/$(MODE)/tool/build/zipcopy.com
|
||||||
|
else
|
||||||
|
toolchain: o/$(MODE)/ape/aarch64.lds \
|
||||||
|
o/$(MODE)/libc/crt/crt.o \
|
||||||
|
o/$(MODE)/cosmopolitan.a \
|
||||||
|
o/$(MODE)/third_party/libcxx/libcxx.a \
|
||||||
|
o/$(MODE)/tool/build/fixupobj.com \
|
||||||
|
o/$(MODE)/tool/build/zipcopy.com
|
||||||
|
endif
|
||||||
|
|
||||||
aarch64: private .INTERNET = true
|
aarch64: private .INTERNET = true
|
||||||
aarch64: private .UNSANDBOXED = true
|
aarch64: private .UNSANDBOXED = true
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
// @see libc/nt/master.sh
|
// @see libc/nt/master.sh
|
||||||
// @see ape/ape.lds
|
// @see ape/ape.lds
|
||||||
// @see winimp
|
// @see winimp
|
||||||
.macro .imp dll:req fn:req actual:req hint
|
.macro .imp dll:req fn:req actual:req
|
||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
.dll "\dll"
|
.dll "\dll"
|
||||||
.section ".piro.data.sort.iat.2.\dll\().2.\actual","aw",@progbits
|
.section ".piro.data.sort.iat.2.\dll\().2.\actual","aw",@progbits
|
||||||
|
@ -50,11 +50,7 @@
|
||||||
.previous
|
.previous
|
||||||
.section ".idata.ro.hnt.\dll\().2.\actual","a",@progbits
|
.section ".idata.ro.hnt.\dll\().2.\actual","a",@progbits
|
||||||
"\dll\().\actual":
|
"\dll\().\actual":
|
||||||
.ifnb \hint // hint i.e. guess function ordinal
|
.short 0 // hint
|
||||||
.short \hint
|
|
||||||
.else
|
|
||||||
.short 0
|
|
||||||
.endif
|
|
||||||
.asciz "\actual"
|
.asciz "\actual"
|
||||||
.align 2 // documented requirement
|
.align 2 // documented requirement
|
||||||
.globl "\dll\().\actual"
|
.globl "\dll\().\actual"
|
||||||
|
|
|
@ -116,10 +116,6 @@ o/$(MODE)/%.lua: %.lua o/$(MODE)/third_party/lua/luac.com $(VM)
|
||||||
o/$(MODE)/%.lua.runs: %.lua o/$(MODE)/tool/net/redbean.com $(VM)
|
o/$(MODE)/%.lua.runs: %.lua o/$(MODE)/tool/net/redbean.com $(VM)
|
||||||
@$(COMPILE) -wALUA -tT$@ $(VM) o/$(MODE)/tool/net/redbean.com $(LUAFLAGS) -i $<
|
@$(COMPILE) -wALUA -tT$@ $(VM) o/$(MODE)/tool/net/redbean.com $(LUAFLAGS) -i $<
|
||||||
|
|
||||||
o/$(MODE)/%: o/$(MODE)/%.com o/$(MODE)/tool/build/cp.com o/$(MODE)/tool/build/assimilate.com $(VM)
|
|
||||||
@$(COMPILE) -wACP -T$@ $(VM) o/$(MODE)/tool/build/cp.com $< $@
|
|
||||||
@$(COMPILE) -wAASSIMILATE -T$@ $(VM) o/$(MODE)/tool/build/assimilate.com $@
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# LOCAL UNIT TESTS
|
# LOCAL UNIT TESTS
|
||||||
#
|
#
|
||||||
|
@ -247,7 +243,7 @@ o/$(MODE)/%-clang.asm: %.c
|
||||||
@$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) -S -g0 $(OUTPUT_OPTION) $<
|
@$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.c) -S -g0 $(OUTPUT_OPTION) $<
|
||||||
|
|
||||||
# TODO(jart): Make intrinsics support Clang.
|
# TODO(jart): Make intrinsics support Clang.
|
||||||
# o/$(MODE)/%-clang.asm: CC = $(CLANG)
|
o/$(MODE)/%-clang.asm: CC = $(CLANG)
|
||||||
o/$(MODE)/%-clang.asm: private .UNSANDBOXED = 1
|
o/$(MODE)/%-clang.asm: private .UNSANDBOXED = 1
|
||||||
o/$(MODE)/%-clang.asm: %.cc
|
o/$(MODE)/%-clang.asm: %.cc
|
||||||
@$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.cxx) -S -g0 $(OUTPUT_OPTION) $<
|
@$(COMPILE) -AOBJECTIFY.c $(OBJECTIFY.cxx) -S -g0 $(OUTPUT_OPTION) $<
|
||||||
|
|
|
@ -189,7 +189,7 @@ void *Worker(void *id) {
|
||||||
// we're not terrible concerned when errors happen here
|
// we're not terrible concerned when errors happen here
|
||||||
if ((got = read(client, inbuf, sizeof(inbuf))) <= 0) break;
|
if ((got = read(client, inbuf, sizeof(inbuf))) <= 0) break;
|
||||||
// check that client message wasn't fragmented into more reads
|
// check that client message wasn't fragmented into more reads
|
||||||
if (!(inmsglen = ParseHttpMessage(&msg, inbuf, got))) break;
|
if ((inmsglen = ParseHttpMessage(&msg, inbuf, got)) <= 0) break;
|
||||||
++messages;
|
++messages;
|
||||||
|
|
||||||
#if LOGGING
|
#if LOGGING
|
||||||
|
|
81
libc/calls/fchmodat-linux.c
Normal file
81
libc/calls/fchmodat-linux.c
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
/*-*- mode:c;indent-tabs-mode:t;c-basic-offset:8;tab-width:8;coding:utf-8 -*-│
|
||||||
|
│vi: set et ft=c ts=8 tw=8 fenc=utf-8 :vi│
|
||||||
|
╚──────────────────────────────────────────────────────────────────────────────╝
|
||||||
|
│ │
|
||||||
|
│ Musl Libc │
|
||||||
|
│ Copyright © 2005-2014 Rich Felker, et al. │
|
||||||
|
│ │
|
||||||
|
│ Permission is hereby granted, free of charge, to any person obtaining │
|
||||||
|
│ a copy of this software and associated documentation files (the │
|
||||||
|
│ "Software"), to deal in the Software without restriction, including │
|
||||||
|
│ without limitation the rights to use, copy, modify, merge, publish, │
|
||||||
|
│ distribute, sublicense, and/or sell copies of the Software, and to │
|
||||||
|
│ permit persons to whom the Software is furnished to do so, subject to │
|
||||||
|
│ the following conditions: │
|
||||||
|
│ │
|
||||||
|
│ The above copyright notice and this permission notice shall be │
|
||||||
|
│ included in all copies or substantial portions of the Software. │
|
||||||
|
│ │
|
||||||
|
│ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, │
|
||||||
|
│ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF │
|
||||||
|
│ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. │
|
||||||
|
│ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY │
|
||||||
|
│ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, │
|
||||||
|
│ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE │
|
||||||
|
│ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │
|
||||||
|
│ │
|
||||||
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
|
#include "libc/calls/struct/stat.internal.h"
|
||||||
|
#include "libc/calls/syscall-sysv.internal.h"
|
||||||
|
#include "libc/errno.h"
|
||||||
|
#include "libc/sysv/consts/at.h"
|
||||||
|
#include "libc/sysv/consts/o.h"
|
||||||
|
#include "libc/sysv/consts/s.h"
|
||||||
|
#include "libc/sysv/errfuns.h"
|
||||||
|
|
||||||
|
asm(".ident\t\"\\n\\n\
|
||||||
|
Musl libc (MIT License)\\n\
|
||||||
|
Copyright 2005-2014 Rich Felker, et. al.\"");
|
||||||
|
asm(".include \"libc/disclaimer.inc\"");
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
static void __procfdname(char *buf, unsigned fd) {
|
||||||
|
unsigned i, j;
|
||||||
|
for (i = 0; (buf[i] = "/proc/self/fd/"[i]); i++);
|
||||||
|
if (!fd) {
|
||||||
|
buf[i] = '0';
|
||||||
|
buf[i + 1] = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (j = fd; j; j /= 10, i++);
|
||||||
|
buf[i] = 0;
|
||||||
|
for (; fd; fd /= 10) buf[--i] = '0' + fd % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sys_fchmodat_linux(int fd, const char *path, unsigned mode, int flag) {
|
||||||
|
struct stat st;
|
||||||
|
int ret, fd2;
|
||||||
|
char proc[15 + 3 * sizeof(int)];
|
||||||
|
if (flag != AT_SYMLINK_NOFOLLOW)
|
||||||
|
return einval();
|
||||||
|
if (sys_fstatat(fd, path, &st, flag))
|
||||||
|
return -1;
|
||||||
|
if (S_ISLNK(st.st_mode))
|
||||||
|
return eopnotsupp();
|
||||||
|
if ((fd2 = sys_openat(fd, path, (O_RDONLY | O_PATH | O_NOFOLLOW |
|
||||||
|
O_NOCTTY | O_CLOEXEC), 0)) < 0) {
|
||||||
|
if (fd2 == -ELOOP)
|
||||||
|
return eopnotsupp();
|
||||||
|
return fd2;
|
||||||
|
}
|
||||||
|
__procfdname(proc, fd2);
|
||||||
|
ret = sys_fstatat(AT_FDCWD, proc, &st, 0);
|
||||||
|
if (!ret) {
|
||||||
|
if (S_ISLNK(st.st_mode))
|
||||||
|
ret = eopnotsupp();
|
||||||
|
else
|
||||||
|
ret = sys_fchmodat(AT_FDCWD, proc, mode, 0);
|
||||||
|
}
|
||||||
|
sys_close(fd2);
|
||||||
|
return ret;
|
||||||
|
}
|
|
@ -27,6 +27,8 @@
|
||||||
#include "libc/sysv/errfuns.h"
|
#include "libc/sysv/errfuns.h"
|
||||||
#include "libc/zipos/zipos.internal.h"
|
#include "libc/zipos/zipos.internal.h"
|
||||||
|
|
||||||
|
int sys_fchmodat_linux(int, const char *, unsigned, int);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes permissions on file, e.g.:
|
* Changes permissions on file, e.g.:
|
||||||
*
|
*
|
||||||
|
@ -50,7 +52,11 @@ int fchmodat(int dirfd, const char *path, uint32_t mode, int flags) {
|
||||||
(rc = __zipos_notat(dirfd, path)) == -1) {
|
(rc = __zipos_notat(dirfd, path)) == -1) {
|
||||||
rc = enotsup();
|
rc = enotsup();
|
||||||
} else if (!IsWindows()) {
|
} else if (!IsWindows()) {
|
||||||
rc = sys_fchmodat(dirfd, path, mode, flags);
|
if (IsLinux() && flags) {
|
||||||
|
rc = sys_fchmodat_linux(dirfd, path, mode, flags);
|
||||||
|
} else {
|
||||||
|
rc = sys_fchmodat(dirfd, path, mode, flags);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
rc = sys_fchmodat_nt(dirfd, path, mode, flags);
|
rc = sys_fchmodat_nt(dirfd, path, mode, flags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,11 +18,13 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "libc/calls/ntspawn.h"
|
#include "libc/calls/ntspawn.h"
|
||||||
#include "libc/fmt/conv.h"
|
#include "libc/fmt/conv.h"
|
||||||
|
#include "libc/intrin/_getenv.internal.h"
|
||||||
#include "libc/intrin/bits.h"
|
#include "libc/intrin/bits.h"
|
||||||
#include "libc/macros.internal.h"
|
#include "libc/macros.internal.h"
|
||||||
#include "libc/mem/alloca.h"
|
#include "libc/mem/alloca.h"
|
||||||
#include "libc/mem/arraylist2.internal.h"
|
#include "libc/mem/arraylist2.internal.h"
|
||||||
#include "libc/mem/mem.h"
|
#include "libc/mem/mem.h"
|
||||||
|
#include "libc/runtime/runtime.h"
|
||||||
#include "libc/str/str.h"
|
#include "libc/str/str.h"
|
||||||
#include "libc/str/thompike.h"
|
#include "libc/str/thompike.h"
|
||||||
#include "libc/str/utf16.h"
|
#include "libc/str/utf16.h"
|
||||||
|
@ -91,12 +93,15 @@ static textwindows void FixPath(char *path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static textwindows void InsertString(char **a, size_t i, char *s,
|
static textwindows void InsertString(char **a, size_t i, char *s,
|
||||||
char buf[ARG_MAX], size_t *bufi) {
|
char buf[ARG_MAX], size_t *bufi,
|
||||||
|
bool *have_systemroot) {
|
||||||
char *v;
|
char *v;
|
||||||
size_t j, k;
|
size_t j, k;
|
||||||
|
|
||||||
|
v = StrChr(s, '=');
|
||||||
|
|
||||||
// apply fixups to var=/c/...
|
// apply fixups to var=/c/...
|
||||||
if ((v = StrChr(s, '=')) && v[1] == '/' && IsAlpha(v[2]) && v[3] == '/') {
|
if (v && v[1] == '/' && IsAlpha(v[2]) && v[3] == '/') {
|
||||||
v = buf + *bufi;
|
v = buf + *bufi;
|
||||||
for (k = 0; s[k]; ++k) {
|
for (k = 0; s[k]; ++k) {
|
||||||
if (*bufi + 1 < ARG_MAX) {
|
if (*bufi + 1 < ARG_MAX) {
|
||||||
|
@ -136,11 +141,25 @@ textwindows int mkntenvblock(char16_t envvars[ARG_MAX / 2], char *const envp[],
|
||||||
uint64_t w;
|
uint64_t w;
|
||||||
char **vars;
|
char **vars;
|
||||||
wint_t x, y;
|
wint_t x, y;
|
||||||
|
bool have_systemroot = false;
|
||||||
size_t i, j, k, n, m, bufi = 0;
|
size_t i, j, k, n, m, bufi = 0;
|
||||||
for (n = 0; envp[n];) n++;
|
for (n = 0; envp[n];) n++;
|
||||||
vars = alloca((n + 1) * sizeof(char *));
|
vars = alloca((n + 1) * sizeof(char *));
|
||||||
for (i = 0; i < n; ++i) InsertString(vars, i, envp[i], buf, &bufi);
|
for (i = 0; i < n; ++i) {
|
||||||
if (extravar) InsertString(vars, n++, extravar, buf, &bufi);
|
InsertString(vars, i, envp[i], buf, &bufi, &have_systemroot);
|
||||||
|
}
|
||||||
|
if (extravar) {
|
||||||
|
InsertString(vars, n++, extravar, buf, &bufi, &have_systemroot);
|
||||||
|
}
|
||||||
|
if (!have_systemroot && environ) {
|
||||||
|
// https://jpassing.com/2009/12/28/the-hidden-danger-of-forgetting-to-specify-systemroot-in-a-custom-environment-block/
|
||||||
|
struct Env systemroot;
|
||||||
|
systemroot = _getenv(environ, "SYSTEMROOT");
|
||||||
|
if (systemroot.s) {
|
||||||
|
InsertString(vars, n++, environ[systemroot.i], buf, &bufi,
|
||||||
|
&have_systemroot);
|
||||||
|
}
|
||||||
|
}
|
||||||
for (k = i = 0; i < n; ++i) {
|
for (k = i = 0; i < n; ++i) {
|
||||||
j = 0;
|
j = 0;
|
||||||
v = false;
|
v = false;
|
||||||
|
|
|
@ -44,20 +44,20 @@ unsigned __wincrash(struct NtExceptionPointers *ep) {
|
||||||
static bool noreentry;
|
static bool noreentry;
|
||||||
noreentry = true;
|
noreentry = true;
|
||||||
|
|
||||||
|
STRACE("wincrash rip %x bt %s", ep->ContextRecord->Rip,
|
||||||
|
DescribeBacktrace((struct StackFrame *)ep->ContextRecord->Rbp));
|
||||||
|
|
||||||
if ((tib = __tls_enabled ? __get_tls_privileged() : 0)) {
|
if ((tib = __tls_enabled ? __get_tls_privileged() : 0)) {
|
||||||
if (~tib->tib_flags & TIB_FLAG_WINCRASHING) {
|
if (~tib->tib_flags & TIB_FLAG_WINCRASHING) {
|
||||||
tib->tib_flags |= TIB_FLAG_WINCRASHING;
|
tib->tib_flags |= TIB_FLAG_WINCRASHING;
|
||||||
} else {
|
} else {
|
||||||
WincrashPanic:
|
|
||||||
STRACE("panic: wincrash reentry: rip %x bt %s", ep->ContextRecord->Rip,
|
|
||||||
DescribeBacktrace((struct StackFrame *)ep->ContextRecord->Rbp));
|
|
||||||
ExitProcess(89);
|
ExitProcess(89);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!noreentry) {
|
if (!noreentry) {
|
||||||
noreentry = true;
|
noreentry = true;
|
||||||
} else {
|
} else {
|
||||||
goto WincrashPanic;
|
ExitProcess(89);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,15 @@
|
||||||
* @param shdr is from GetElfSectionHeaderAddress(), or null
|
* @param shdr is from GetElfSectionHeaderAddress(), or null
|
||||||
* @return pointer to section data within image, or null if
|
* @return pointer to section data within image, or null if
|
||||||
* 1. `shdr` was null, or
|
* 1. `shdr` was null, or
|
||||||
* 2. `sh_size` was zero, or
|
* 2. content wasn't contained within `[elf,elf+mapsize)`, or
|
||||||
* 3, `sh_type` was `SHT_NOBITS`, or
|
* 3. an arithmetic overflow occurred
|
||||||
* 4. content wasn't contained within `[elf,elf+mapsize)`, or
|
|
||||||
* 5. an arithmetic overflow occurred
|
|
||||||
*/
|
*/
|
||||||
void *GetElfSectionAddress(const Elf64_Ehdr *elf, // validated
|
void *GetElfSectionAddress(const Elf64_Ehdr *elf, // validated
|
||||||
size_t mapsize, // validated
|
size_t mapsize, // validated
|
||||||
const Elf64_Shdr *shdr) { // foreign
|
const Elf64_Shdr *shdr) { // foreign
|
||||||
Elf64_Off last;
|
Elf64_Off last;
|
||||||
if (!shdr) return 0;
|
if (!shdr) return 0;
|
||||||
if (shdr->sh_size <= 0) return 0;
|
if (!shdr->sh_size) return elf;
|
||||||
if (shdr->sh_type == SHT_NOBITS) return 0;
|
if (shdr->sh_type == SHT_NOBITS) return 0;
|
||||||
if (ckd_add(&last, shdr->sh_offset, shdr->sh_size)) return 0;
|
if (ckd_add(&last, shdr->sh_offset, shdr->sh_size)) return 0;
|
||||||
if (last > mapsize) return 0;
|
if (last > mapsize) return 0;
|
||||||
|
|
|
@ -18,16 +18,24 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "libc/intrin/describeflags.internal.h"
|
#include "libc/intrin/describeflags.internal.h"
|
||||||
#include "libc/macros.internal.h"
|
#include "libc/macros.internal.h"
|
||||||
|
#include "libc/nt/enum/accessmask.h"
|
||||||
|
#include "libc/nt/enum/fileflagandattributes.h"
|
||||||
#include "libc/nt/enum/filemapflags.h"
|
#include "libc/nt/enum/filemapflags.h"
|
||||||
#include "libc/nt/ipc.h"
|
#include "libc/nt/ipc.h"
|
||||||
|
|
||||||
static const struct DescribeFlags kPipeOpenFlags[] = {
|
static const struct DescribeFlags kPipeOpenFlags[] = {
|
||||||
{kNtPipeAccessDuplex, "Duplex"}, // 0x00000003
|
{kNtPipeAccessDuplex, "kNtPipeAccessDuplex"},
|
||||||
{kNtPipeAccessOutbound, "Outbound"}, // 0x00000002
|
{kNtPipeAccessOutbound, "kNtPipeAccessOutbound"},
|
||||||
{kNtPipeAccessInbound, "Inbound"}, // 0x00000001
|
{kNtPipeAccessInbound, "kNtPipeAccessInbound"},
|
||||||
|
{kNtFileFlagOverlapped, "kNtFileFlagOverlapped"},
|
||||||
|
{kNtFileFlagFirstPipeInstance, "kNtFileFlagFirstPipeInstance"},
|
||||||
|
{kNtFileFlagWriteThrough, "kNtFileFlagWriteThrough"},
|
||||||
|
{kNtWriteDac, "kNtWriteDac"},
|
||||||
|
{kNtWriteOwner, "kNtWriteOwner"},
|
||||||
|
{kNtAccessSystemSecurity, "kNtAccessSystemSecurity"},
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *(DescribeNtPipeOpenFlags)(char buf[64], uint32_t x) {
|
const char *(DescribeNtPipeOpenFlags)(char buf[64], uint32_t x) {
|
||||||
return DescribeFlags(buf, 64, kPipeOpenFlags, ARRAYLEN(kPipeOpenFlags),
|
return DescribeFlags(buf, 64, kPipeOpenFlags, ARRAYLEN(kPipeOpenFlags), "",
|
||||||
"kNtPipeAccess", x);
|
x);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,10 +17,13 @@
|
||||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "libc/calls/state.internal.h"
|
#include "libc/calls/state.internal.h"
|
||||||
|
#include "libc/fmt/itoa.h"
|
||||||
#include "libc/intrin/describeflags.internal.h"
|
#include "libc/intrin/describeflags.internal.h"
|
||||||
#include "libc/nt/struct/securityattributes.h"
|
#include "libc/nt/struct/securityattributes.h"
|
||||||
|
|
||||||
const char *DescribeNtSecurityAttributes(struct NtSecurityAttributes *p) {
|
const char *(DescribeNtSecurityAttributes)(char buf[32],
|
||||||
|
struct NtSecurityAttributes *p) {
|
||||||
if (p == &kNtIsInheritable) return "&kNtIsInheritable";
|
if (p == &kNtIsInheritable) return "&kNtIsInheritable";
|
||||||
return "0";
|
FormatInt64(buf, (uintptr_t)p);
|
||||||
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WaitOnAddress,WaitOnAddress,111
|
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WaitOnAddress,WaitOnAddress
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressAll,WakeByAddressAll,113
|
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressAll,WakeByAddressAll
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressSingle,WakeByAddressSingle,116
|
.imp API-MS-Win-Core-Synch-l1-2-0,__imp_WakeByAddressSingle,WakeByAddressSingle
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp MsWSock,__imp_AcceptEx,AcceptEx,0
|
.imp MsWSock,__imp_AcceptEx,AcceptEx
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp MsWSock,__imp_DisconnectEx,DisconnectEx,0
|
.imp MsWSock,__imp_DisconnectEx,DisconnectEx
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp MsWSock,__imp_GetAcceptExSockaddrs,GetAcceptExSockaddrs,0
|
.imp MsWSock,__imp_GetAcceptExSockaddrs,GetAcceptExSockaddrs
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp MsWSock,__imp_TransmitFile,TransmitFile,0
|
.imp MsWSock,__imp_TransmitFile,TransmitFile
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp MsWSock,__imp_WSARecvEx,WSARecvEx,0
|
.imp MsWSock,__imp_WSARecvEx,WSARecvEx
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp PowrProf,__imp_SetSuspendState,SetSuspendState,0
|
.imp PowrProf,__imp_SetSuspendState,SetSuspendState
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AbortSystemShutdownW,AbortSystemShutdownW,1006
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp advapi32,__imp_AccessCheck,AccessCheck,0
|
.imp advapi32,__imp_AccessCheck,AccessCheck
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckAndAuditAlarmW,AccessCheckAndAuditAlarmW,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckByType,AccessCheckByType,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckByTypeAndAuditAlarmW,AccessCheckByTypeAndAuditAlarmW,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckByTypeResultList,AccessCheckByTypeResultList,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckByTypeResultListAndAuditAlarmByHandleW,AccessCheckByTypeResultListAndAuditAlarmByHandleW,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AccessCheckByTypeResultListAndAuditAlarmW,AccessCheckByTypeResultListAndAuditAlarmW,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessAllowedAce,AddAccessAllowedAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessAllowedAceEx,AddAccessAllowedAceEx,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessAllowedObjectAce,AddAccessAllowedObjectAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessDeniedAce,AddAccessDeniedAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessDeniedAceEx,AddAccessDeniedAceEx,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAccessDeniedObjectAce,AddAccessDeniedObjectAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAce,AddAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAuditAccessAce,AddAuditAccessAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAuditAccessAceEx,AddAuditAccessAceEx,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddAuditAccessObjectAce,AddAuditAccessObjectAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddConditionalAce,AddConditionalAce,1028
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddMandatoryAce,AddMandatoryAce,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AddUsersToEncryptedFile,AddUsersToEncryptedFile,1030
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AdjustTokenGroups,AdjustTokenGroups,0
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp advapi32,__imp_AdjustTokenPrivileges,AdjustTokenPrivileges,0
|
.imp advapi32,__imp_AdjustTokenPrivileges,AdjustTokenPrivileges
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AllocateAndInitializeSid,AllocateAndInitializeSid,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AllocateLocallyUniqueId,AllocateLocallyUniqueId,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AreAllAccessesGranted,AreAllAccessesGranted,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AreAnyAccessesGranted,AreAnyAccessesGranted,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditComputeEffectivePolicyBySid,AuditComputeEffectivePolicyBySid,1038
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditComputeEffectivePolicyByToken,AuditComputeEffectivePolicyByToken,1039
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditEnumerateCategories,AuditEnumerateCategories,1040
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditEnumeratePerUserPolicy,AuditEnumeratePerUserPolicy,1041
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditEnumerateSubCategories,AuditEnumerateSubCategories,1042
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditFree,AuditFree,1043
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditLookupCategoryGuidFromCategoryId,AuditLookupCategoryGuidFromCategoryId,1044
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditLookupCategoryIdFromCategoryGuid,AuditLookupCategoryIdFromCategoryGuid,1045
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditLookupCategoryNameW,AuditLookupCategoryNameW,1047
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditLookupSubCategoryNameW,AuditLookupSubCategoryNameW,1049
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditQueryPerUserPolicy,AuditQueryPerUserPolicy,1052
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditQuerySecurity,AuditQuerySecurity,1053
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditQuerySystemPolicy,AuditQuerySystemPolicy,1054
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditSetPerUserPolicy,AuditSetPerUserPolicy,1057
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditSetSecurity,AuditSetSecurity,1058
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_AuditSetSystemPolicy,AuditSetSystemPolicy,1059
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BackupEventLogW,BackupEventLogW,1061
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildExplicitAccessWithNameW,BuildExplicitAccessWithNameW,1076
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildImpersonateExplicitAccessWithNameW,BuildImpersonateExplicitAccessWithNameW,1078
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildImpersonateTrusteeW,BuildImpersonateTrusteeW,1080
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildSecurityDescriptorW,BuildSecurityDescriptorW,1082
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildTrusteeWithNameW,BuildTrusteeWithNameW,1084
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildTrusteeWithObjectsAndNameW,BuildTrusteeWithObjectsAndNameW,1086
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildTrusteeWithObjectsAndSidW,BuildTrusteeWithObjectsAndSidW,1088
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_BuildTrusteeWithSidW,BuildTrusteeWithSidW,1090
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ChangeServiceConfig2W,ChangeServiceConfig2W,1093
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ChangeServiceConfigW,ChangeServiceConfigW,1095
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CheckTokenMembership,CheckTokenMembership,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ClearEventLogW,ClearEventLogW,1099
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CloseEncryptedFileRaw,CloseEncryptedFileRaw,1101
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CloseEventLog,CloseEventLog,1102
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CloseServiceHandle,CloseServiceHandle,1103
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CloseThreadWaitChainSession,CloseThreadWaitChainSession,1104
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CloseTrace,CloseTrace,1105
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ControlService,ControlService,1108
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ControlServiceExW,ControlServiceExW,1110
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ControlTraceW,ControlTraceW,1112
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertSecurityDescriptorToStringSecurityDescriptorW,ConvertSecurityDescriptorToStringSecurityDescriptorW,1123
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertSidToStringSidW,ConvertSidToStringSidW,1125
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertStringSDToSDDomainW,ConvertStringSDToSDDomainW,1127
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertStringSecurityDescriptorToSecurityDescriptorW,ConvertStringSecurityDescriptorToSecurityDescriptorW,1131
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertStringSidToSidW,ConvertStringSidToSidW,1133
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_ConvertToAutoInheritPrivateObjectSecurity,ConvertToAutoInheritPrivateObjectSecurity,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CopySid,CopySid,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreatePrivateObjectSecurity,CreatePrivateObjectSecurity,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreatePrivateObjectSecurityEx,CreatePrivateObjectSecurityEx,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreatePrivateObjectSecurityWithMultipleInheritance,CreatePrivateObjectSecurityWithMultipleInheritance,0
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "libc/nt/codegen.h"
|
#include "libc/nt/codegen.h"
|
||||||
.imp advapi32,__imp_CreateProcessAsUserW,CreateProcessAsUserW,0
|
.imp advapi32,__imp_CreateProcessAsUserW,CreateProcessAsUserW
|
||||||
|
|
||||||
.text.windows
|
.text.windows
|
||||||
.ftrace1
|
.ftrace1
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreateProcessWithLogonW,CreateProcessWithLogonW,1142
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreateProcessWithTokenW,CreateProcessWithTokenW,1143
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreateRestrictedToken,CreateRestrictedToken,0
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreateServiceW,CreateServiceW,1147
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "libc/nt/codegen.h"
|
|
||||||
.imp advapi32,__imp_CreateTraceInstanceId,CreateTraceInstanceId,0
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue