diff options
Diffstat (limited to 'arch/s390/include/asm/facility.h')
-rw-r--r-- | arch/s390/include/asm/facility.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/s390/include/asm/facility.h b/arch/s390/include/asm/facility.h index f040644575b7..99c8ce30b3cd 100644 --- a/arch/s390/include/asm/facility.h +++ b/arch/s390/include/asm/facility.h @@ -8,13 +8,31 @@ #ifndef __ASM_FACILITY_H #define __ASM_FACILITY_H -#include <generated/facilities.h> +#include <asm/facility-defs.h> #include <linux/string.h> #include <linux/preempt.h> #include <asm/lowcore.h> #define MAX_FACILITY_BIT (sizeof(((struct lowcore *)0)->stfle_fac_list) * 8) +static inline void __set_facility(unsigned long nr, void *facilities) +{ + unsigned char *ptr = (unsigned char *) facilities; + + if (nr >= MAX_FACILITY_BIT) + return; + ptr[nr >> 3] |= 0x80 >> (nr & 7); +} + +static inline void __clear_facility(unsigned long nr, void *facilities) +{ + unsigned char *ptr = (unsigned char *) facilities; + + if (nr >= MAX_FACILITY_BIT) + return; + ptr[nr >> 3] &= ~(0x80 >> (nr & 7)); +} + static inline int __test_facility(unsigned long nr, void *facilities) { unsigned char *ptr; |