#ifndef COSMOPOLITAN_NTSPAWN_H_
#define COSMOPOLITAN_NTSPAWN_H_
#include "libc/nt/struct/processinformation.h"
#include "libc/nt/struct/startupinfo.h"
COSMOPOLITAN_C_START_

struct NtSpawnArgs {
  int64_t dirhand;
  const char *prog;
  char *const *argv;
  char *const *envp;
  char *const *extravars;
  uint32_t dwCreationFlags;
  const char16_t *opt_lpCurrentDirectory;
  int64_t opt_hParentProcess;
  int64_t *opt_lpExplicitHandleList;
  uint32_t dwExplicitHandleCount;
  const struct NtStartupInfo *lpStartupInfo;
  struct NtProcessInformation *opt_out_lpProcessInformation;
};

int mkntenvblock(char16_t[32767], char *const[], char *const[], char[32767]);
int ntspawn(struct NtSpawnArgs *);
size_t mkntcmdline(char16_t *, char *const[], size_t);
void mungentpath(char *);

COSMOPOLITAN_C_END_
#endif /* COSMOPOLITAN_NTSPAWN_H_ */