struct sigcontext for N32 userland

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If N32 userland refers asm-mips/sigcontext.h, struct sigcontext cause
some troubles.

#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32

struct sigcontext {
	unsigned long	sc_regs[32];
...


The kernel use 64-bit for sc_regs[0], and both N32/N64 userland
expects it was 64-bit.  But size of 'long' on N32 is actually 32-bit.
So this definition make some confusion.

glibc has its own sigcontext.h and it uses 'unsigned long long' for
sc_regs, so no real problem with glibc.

Should we use 'unsigned long long' here as glibc does?

Or should we have separate definition just for N32 userland?  (kernel
does not use #if _MIPS_SIM == _MIPS_SIM_NABI32 block anyway since
kernel itself is compiled as n64)

Or should we make struct sigcontext private to kernel and do not
export for userland at all?

Or ... do nothing?

---
Atsushi Nemoto


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux