/* Generated by ./xlat/gen.sh from ./xlat/nt_descriptor_types.in; do not edit. */

#ifdef IN_MPERS

# error static const struct xlat nt_descriptor_types in mpers mode

#else

static
const struct xlat nt_descriptor_types[] = {
#if defined(NT_PRSTATUS) || (defined(HAVE_DECL_NT_PRSTATUS) && HAVE_DECL_NT_PRSTATUS)
  XLAT(NT_PRSTATUS),
#endif
#if defined(NT_FPREGSET) || (defined(HAVE_DECL_NT_FPREGSET) && HAVE_DECL_NT_FPREGSET)
  XLAT(NT_FPREGSET),
#endif
#if defined(NT_PRPSINFO) || (defined(HAVE_DECL_NT_PRPSINFO) && HAVE_DECL_NT_PRPSINFO)
  XLAT(NT_PRPSINFO),
#endif
#if defined(NT_PRXREG) || (defined(HAVE_DECL_NT_PRXREG) && HAVE_DECL_NT_PRXREG)
  XLAT(NT_PRXREG),
#endif
#if defined(NT_TASKSTRUCT) || (defined(HAVE_DECL_NT_TASKSTRUCT) && HAVE_DECL_NT_TASKSTRUCT)
  XLAT(NT_TASKSTRUCT),
#endif
#if defined(NT_PLATFORM) || (defined(HAVE_DECL_NT_PLATFORM) && HAVE_DECL_NT_PLATFORM)
  XLAT(NT_PLATFORM),
#endif
#if defined(NT_AUXV) || (defined(HAVE_DECL_NT_AUXV) && HAVE_DECL_NT_AUXV)
  XLAT(NT_AUXV),
#endif
#if defined(NT_GWINDOWS) || (defined(HAVE_DECL_NT_GWINDOWS) && HAVE_DECL_NT_GWINDOWS)
  XLAT(NT_GWINDOWS),
#endif
#if defined(NT_ASRS) || (defined(HAVE_DECL_NT_ASRS) && HAVE_DECL_NT_ASRS)
  XLAT(NT_ASRS),
#endif
#if defined(NT_PSTATUS) || (defined(HAVE_DECL_NT_PSTATUS) && HAVE_DECL_NT_PSTATUS)
  XLAT(NT_PSTATUS),
#endif
#if defined(NT_PSINFO) || (defined(HAVE_DECL_NT_PSINFO) && HAVE_DECL_NT_PSINFO)
  XLAT(NT_PSINFO),
#endif
#if defined(NT_PRCRED) || (defined(HAVE_DECL_NT_PRCRED) && HAVE_DECL_NT_PRCRED)
  XLAT(NT_PRCRED),
#endif
#if defined(NT_UTSNAME) || (defined(HAVE_DECL_NT_UTSNAME) && HAVE_DECL_NT_UTSNAME)
  XLAT(NT_UTSNAME),
#endif
#if defined(NT_LWPSTATUS) || (defined(HAVE_DECL_NT_LWPSTATUS) && HAVE_DECL_NT_LWPSTATUS)
  XLAT(NT_LWPSTATUS),
#endif
#if defined(NT_LWPSINFO) || (defined(HAVE_DECL_NT_LWPSINFO) && HAVE_DECL_NT_LWPSINFO)
  XLAT(NT_LWPSINFO),
#endif
#if defined(NT_PRFPXREG) || (defined(HAVE_DECL_NT_PRFPXREG) && HAVE_DECL_NT_PRFPXREG)
  XLAT(NT_PRFPXREG),
#endif
#if defined(NT_PRXFPREG) || (defined(HAVE_DECL_NT_PRXFPREG) && HAVE_DECL_NT_PRXFPREG)
  XLAT(NT_PRXFPREG),
#endif
#if defined(NT_PPC_VMX) || (defined(HAVE_DECL_NT_PPC_VMX) && HAVE_DECL_NT_PPC_VMX)
  XLAT(NT_PPC_VMX),
#endif
#if defined(NT_PPC_SPE) || (defined(HAVE_DECL_NT_PPC_SPE) && HAVE_DECL_NT_PPC_SPE)
  XLAT(NT_PPC_SPE),
#endif
#if defined(NT_PPC_VSX) || (defined(HAVE_DECL_NT_PPC_VSX) && HAVE_DECL_NT_PPC_VSX)
  XLAT(NT_PPC_VSX),
#endif
#if defined(NT_386_TLS) || (defined(HAVE_DECL_NT_386_TLS) && HAVE_DECL_NT_386_TLS)
  XLAT(NT_386_TLS),
#endif
#if defined(NT_386_IOPERM) || (defined(HAVE_DECL_NT_386_IOPERM) && HAVE_DECL_NT_386_IOPERM)
  XLAT(NT_386_IOPERM),
#endif
#if defined(NT_X86_XSTATE) || (defined(HAVE_DECL_NT_X86_XSTATE) && HAVE_DECL_NT_X86_XSTATE)
  XLAT(NT_X86_XSTATE),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
