Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bf9f755 authored by Roman Zippel's avatar Roman Zippel Committed by Linus Torvalds
Browse files

[PATCH] m68k: fix constraints of the signal functions and some cleanup

parent 53617825
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -156,13 +156,17 @@ typedef struct sigaltstack {

static inline void sigaddset(sigset_t *set, int _sig)
{
	__asm__("bfset %0{%1,#1}" : "=m" (*set) : "id" ((_sig - 1) ^ 31)
	asm ("bfset %0{%1,#1}"
		: "+od" (*set)
		: "id" ((_sig - 1) ^ 31)
		: "cc");
}

static inline void sigdelset(sigset_t *set, int _sig)
{
	__asm__("bfclr %0{%1,#1}" : "=m"(*set) : "id"((_sig - 1) ^ 31)
	asm ("bfclr %0{%1,#1}"
		: "+od" (*set)
		: "id" ((_sig - 1) ^ 31)
		: "cc");
}

@@ -175,8 +179,10 @@ static inline int __const_sigismember(sigset_t *set, int _sig)
static inline int __gen_sigismember(sigset_t *set, int _sig)
{
	int ret;
	__asm__("bfextu %1{%2,#1},%0"
		: "=d"(ret) : "m"(*set), "id"((_sig-1) ^ 31));
	asm ("bfextu %1{%2,#1},%0"
		: "=d" (ret)
		: "od" (*set), "id" ((_sig-1) ^ 31)
		: "cc");
	return ret;
}

@@ -187,7 +193,10 @@ static inline int __gen_sigismember(sigset_t *set, int _sig)

static inline int sigfindinword(unsigned long word)
{
	__asm__("bfffo %1{#0,#0},%0" : "=d"(word) : "d"(word & -word) : "cc");
	asm ("bfffo %1{#0,#0},%0"
		: "=d" (word)
		: "d" (word & -word)
		: "cc");
	return word ^ 31;
}