blob: 9b9dbe76ecdaf75519ce0c854d96f5b139bf59c6 (
plain) (
tree)
|
|
/* See LICENSE file for copyright and license details. */
/* This file is included from ../libsyscalls_get_signals.c */
#include "../generated/linux-signals.h"
static enum libsyscalls_error
get_linux_signals(enum libsyscalls_arch arch, const struct libsyscalls_named_number **sigs_out,
size_t *nsigs_out, int *are_signed_out)
{
#define CASE(ARCH)\
*sigs_out = linux_signals_for_##ARCH;\
*nsigs_out = ELEMSOF(linux_signals_for_##ARCH);\
goto out
switch ((int)arch) {
case LIBSYSCALLS_ARCH_ALPHA_LE:
case LIBSYSCALLS_ARCH_ALPHA_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_ALPHA
CASE(alpha);
#else
break;
#endif
case LIBSYSCALLS_ARCH_AMD64:
case LIBSYSCALLS_ARCH_AMD64_X32:
case LIBSYSCALLS_ARCH_I386:
#ifdef LIST_LINUX_SIGNALS_FOR_X86
CASE(x86);
#else
break;
#endif
case LIBSYSCALLS_ARCH_ARM_OABI_LE:
case LIBSYSCALLS_ARCH_ARM_OABI_BE:
case LIBSYSCALLS_ARCH_ARM_EABI_LE:
case LIBSYSCALLS_ARCH_ARM_EABI_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_ARM
CASE(arm);
#else
break;
#endif
case LIBSYSCALLS_ARCH_IA64_LE:
case LIBSYSCALLS_ARCH_IA64_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_IA64
CASE(ia64);
#else
break;
#endif
case LIBSYSCALLS_ARCH_M68K:
#ifdef LIST_LINUX_SIGNALS_FOR_M68K
CASE(m68k);
#else
break;
#endif
case LIBSYSCALLS_ARCH_MICROBLAZE_32_LE:
case LIBSYSCALLS_ARCH_MICROBLAZE_32_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_MICROBLAZE_32
CASE(microblaze);
#else
break;
#endif
case LIBSYSCALLS_ARCH_MIPS_O32_LE:
case LIBSYSCALLS_ARCH_MIPS_O32_BE:
case LIBSYSCALLS_ARCH_MIPS_N32_LE:
case LIBSYSCALLS_ARCH_MIPS_N32_BE:
case LIBSYSCALLS_ARCH_MIPS_N64_LE:
case LIBSYSCALLS_ARCH_MIPS_N64_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_MIPS
CASE(mips);
#else
break;
#endif
case LIBSYSCALLS_ARCH_PARISC_32:
case LIBSYSCALLS_ARCH_PARISC_64:
#ifdef LIST_LINUX_SIGNALS_FOR_PARISC
CASE(parisc);
#else
break;
#endif
case LIBSYSCALLS_ARCH_POWERPC_32_LE:
case LIBSYSCALLS_ARCH_POWERPC_32_BE:
case LIBSYSCALLS_ARCH_POWERPC_64_LE:
case LIBSYSCALLS_ARCH_POWERPC_64_BE:
case LIBSYSCALLS_ARCH_POWERPC_NOSPU_LE:
case LIBSYSCALLS_ARCH_POWERPC_NOSPU_BE:
case LIBSYSCALLS_ARCH_POWERPC_SPU_LE:
case LIBSYSCALLS_ARCH_POWERPC_SPU_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_POWERPC
CASE(powerpc);
#else
break;
#endif
case LIBSYSCALLS_ARCH_S390_32:
case LIBSYSCALLS_ARCH_S390_64:
#ifdef LIST_LINUX_SIGNALS_FOR_S390
CASE(s390);
#else
break;
#endif
case LIBSYSCALLS_ARCH_SH_LE:
case LIBSYSCALLS_ARCH_SH_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_SH
CASE(sh);
#else
break;
#endif
case LIBSYSCALLS_ARCH_SPARC_32:
case LIBSYSCALLS_ARCH_SPARC_64_LE:
case LIBSYSCALLS_ARCH_SPARC_64_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_SPARC
CASE(sparc);
#else
break;
#endif
case LIBSYSCALLS_ARCH_XTENSA_LE:
case LIBSYSCALLS_ARCH_XTENSA_BE:
#ifdef LIST_LINUX_SIGNALS_FOR_XTENSA
CASE(xtensa);
#else
break;
#endif
default:
return LIBSYSCALLS_E_ARCHNOSUP;
}
*sigs_out = linux_signals_for_generic;
*nsigs_out = ELEMSOF(linux_signals_for_generic);
out:
*are_signed_out = 0;
return LIBSYSCALLS_E_OK;
#undef CASE
}
|