-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
m68k: merge the non-MMU and MMU versions of siginfo.h
It is trivial to merge the non-MMU and MMU versions of siginfo.h. Without a single file "make headers_install" is broken for m68k (since each of the sub-varients of siginfo.h are not installed). Signed-off-by: Greg Ungerer <gerg@uclinux.org>
- Loading branch information
Greg Ungerer
committed
Mar 16, 2009
1 parent
9df3d51
commit 7a2cf4a
Showing
3 changed files
with
95 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,97 @@ | ||
#ifdef __uClinux__ | ||
#include "siginfo_no.h" | ||
#ifndef _M68K_SIGINFO_H | ||
#define _M68K_SIGINFO_H | ||
|
||
#ifndef __uClinux__ | ||
#define HAVE_ARCH_SIGINFO_T | ||
#define HAVE_ARCH_COPY_SIGINFO | ||
#endif | ||
|
||
#include <asm-generic/siginfo.h> | ||
|
||
#ifndef __uClinux__ | ||
|
||
typedef struct siginfo { | ||
int si_signo; | ||
int si_errno; | ||
int si_code; | ||
|
||
union { | ||
int _pad[SI_PAD_SIZE]; | ||
|
||
/* kill() */ | ||
struct { | ||
__kernel_pid_t _pid; /* sender's pid */ | ||
__kernel_uid_t _uid; /* backwards compatibility */ | ||
__kernel_uid32_t _uid32; /* sender's uid */ | ||
} _kill; | ||
|
||
/* POSIX.1b timers */ | ||
struct { | ||
timer_t _tid; /* timer id */ | ||
int _overrun; /* overrun count */ | ||
char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; | ||
sigval_t _sigval; /* same as below */ | ||
int _sys_private; /* not to be passed to user */ | ||
} _timer; | ||
|
||
/* POSIX.1b signals */ | ||
struct { | ||
__kernel_pid_t _pid; /* sender's pid */ | ||
__kernel_uid_t _uid; /* backwards compatibility */ | ||
sigval_t _sigval; | ||
__kernel_uid32_t _uid32; /* sender's uid */ | ||
} _rt; | ||
|
||
/* SIGCHLD */ | ||
struct { | ||
__kernel_pid_t _pid; /* which child */ | ||
__kernel_uid_t _uid; /* backwards compatibility */ | ||
int _status; /* exit code */ | ||
clock_t _utime; | ||
clock_t _stime; | ||
__kernel_uid32_t _uid32; /* sender's uid */ | ||
} _sigchld; | ||
|
||
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ | ||
struct { | ||
void *_addr; /* faulting insn/memory ref. */ | ||
} _sigfault; | ||
|
||
/* SIGPOLL */ | ||
struct { | ||
int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ | ||
int _fd; | ||
} _sigpoll; | ||
} _sifields; | ||
} siginfo_t; | ||
|
||
#define UID16_SIGINFO_COMPAT_NEEDED | ||
|
||
/* | ||
* How these fields are to be accessed. | ||
*/ | ||
#undef si_uid | ||
#ifdef __KERNEL__ | ||
#define si_uid _sifields._kill._uid32 | ||
#define si_uid16 _sifields._kill._uid | ||
#else | ||
#include "siginfo_mm.h" | ||
#define si_uid _sifields._kill._uid | ||
#endif | ||
|
||
#ifdef __KERNEL__ | ||
|
||
#include <linux/string.h> | ||
|
||
static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) | ||
{ | ||
if (from->si_code < 0) | ||
memcpy(to, from, sizeof(*to)); | ||
else | ||
/* _sigchld is currently the largest know union member */ | ||
memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); | ||
} | ||
|
||
#endif /* __KERNEL__ */ | ||
#endif /* !__uClinux__ */ | ||
|
||
#endif |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.