|
@@ -13,6 +13,16 @@
|
|
|
|
|
|
#define MAX_FACILITY_BIT (256*8) /* stfle_fac_list has 256 bytes */
|
|
|
|
|
|
+static inline int __test_facility(unsigned long nr, void *facilities)
|
|
|
+{
|
|
|
+ unsigned char *ptr;
|
|
|
+
|
|
|
+ if (nr >= MAX_FACILITY_BIT)
|
|
|
+ return 0;
|
|
|
+ ptr = (unsigned char *) facilities + (nr >> 3);
|
|
|
+ return (*ptr & (0x80 >> (nr & 7))) != 0;
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* The test_facility function uses the bit odering where the MSB is bit 0.
|
|
|
* That makes it easier to query facility bits with the bit number as
|
|
@@ -20,12 +30,7 @@
|
|
|
*/
|
|
|
static inline int test_facility(unsigned long nr)
|
|
|
{
|
|
|
- unsigned char *ptr;
|
|
|
-
|
|
|
- if (nr >= MAX_FACILITY_BIT)
|
|
|
- return 0;
|
|
|
- ptr = (unsigned char *) &S390_lowcore.stfle_fac_list + (nr >> 3);
|
|
|
- return (*ptr & (0x80 >> (nr & 7))) != 0;
|
|
|
+ return __test_facility(nr, &S390_lowcore.stfle_fac_list);
|
|
|
}
|
|
|
|
|
|
/**
|