um: export signals_enabled directly

Use signals_enabled instead of always jumping through
a function call to read it, there's not much point in
that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
Johannes Berg 2021-03-05 13:19:54 +01:00 committed by Richard Weinberger
parent 2efea7dfaa
commit fbb42e7fe2
5 changed files with 14 additions and 20 deletions

View File

@ -2,15 +2,15 @@
#ifndef __UM_IRQFLAGS_H #ifndef __UM_IRQFLAGS_H
#define __UM_IRQFLAGS_H #define __UM_IRQFLAGS_H
extern int get_signals(void); extern int signals_enabled;
extern int set_signals(int enable); int set_signals(int enable);
extern void block_signals(void); void block_signals(void);
extern void unblock_signals(void); void unblock_signals(void);
#define arch_local_save_flags arch_local_save_flags #define arch_local_save_flags arch_local_save_flags
static inline unsigned long arch_local_save_flags(void) static inline unsigned long arch_local_save_flags(void)
{ {
return get_signals(); return signals_enabled;
} }
#define arch_local_irq_restore arch_local_irq_restore #define arch_local_irq_restore arch_local_irq_restore

View File

@ -5,6 +5,7 @@
#include <sysdep/archsetjmp.h> #include <sysdep/archsetjmp.h>
#include <os.h> #include <os.h>
extern int signals_enabled;
extern int setjmp(jmp_buf); extern int setjmp(jmp_buf);
extern void longjmp(jmp_buf, int); extern void longjmp(jmp_buf, int);
@ -12,13 +13,12 @@ extern void longjmp(jmp_buf, int);
longjmp(*buf, val); \ longjmp(*buf, val); \
} while(0) } while(0)
#define UML_SETJMP(buf) ({ \ #define UML_SETJMP(buf) ({ \
int n; \ int n, enable; \
volatile int enable; \ enable = *(volatile int *)&signals_enabled; \
enable = get_signals(); \ n = setjmp(*buf); \
n = setjmp(*buf); \ if(n != 0) \
if(n != 0) \ set_signals_trace(enable); \
set_signals_trace(enable); \
n; }) n; })
#endif #endif

View File

@ -237,7 +237,6 @@ extern void send_sigio_to_self(void);
extern int change_sig(int signal, int on); extern int change_sig(int signal, int on);
extern void block_signals(void); extern void block_signals(void);
extern void unblock_signals(void); extern void unblock_signals(void);
extern int get_signals(void);
extern int set_signals(int enable); extern int set_signals(int enable);
extern int set_signals_trace(int enable); extern int set_signals_trace(int enable);
extern int os_is_signal_stack(void); extern int os_is_signal_stack(void);

View File

@ -7,7 +7,7 @@
#include <os.h> #include <os.h>
EXPORT_SYMBOL(set_signals); EXPORT_SYMBOL(set_signals);
EXPORT_SYMBOL(get_signals); EXPORT_SYMBOL(signals_enabled);
EXPORT_SYMBOL(os_stat_fd); EXPORT_SYMBOL(os_stat_fd);
EXPORT_SYMBOL(os_stat_file); EXPORT_SYMBOL(os_stat_file);

View File

@ -62,7 +62,7 @@ static void sig_handler_common(int sig, struct siginfo *si, mcontext_t *mc)
#define SIGALRM_BIT 1 #define SIGALRM_BIT 1
#define SIGALRM_MASK (1 << SIGALRM_BIT) #define SIGALRM_MASK (1 << SIGALRM_BIT)
static int signals_enabled; int signals_enabled;
static unsigned int signals_pending; static unsigned int signals_pending;
static unsigned int signals_active = 0; static unsigned int signals_active = 0;
@ -334,11 +334,6 @@ void unblock_signals(void)
} }
} }
int get_signals(void)
{
return signals_enabled;
}
int set_signals(int enable) int set_signals(int enable)
{ {
int ret; int ret;