Home | History | Annotate | Download | only in asm
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef __ASM_MPSPEC_H
     13 #define __ASM_MPSPEC_H
     14 
     15 #include <linux/cpumask.h>
     16 #include <asm/mpspec_def.h>
     17 #include <mach_mpspec.h>
     18 
     19 #define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
     20 
     21 struct physid_mask
     22 {
     23  unsigned long mask[PHYSID_ARRAY_SIZE];
     24 };
     25 
     26 typedef struct physid_mask physid_mask_t;
     27 
     28 #define physid_set(physid, map) set_bit(physid, (map).mask)
     29 #define physid_clear(physid, map) clear_bit(physid, (map).mask)
     30 #define physid_isset(physid, map) test_bit(physid, (map).mask)
     31 #define physid_test_and_set(physid, map) test_and_set_bit(physid, (map).mask)
     32 
     33 #define physids_and(dst, src1, src2) bitmap_and((dst).mask, (src1).mask, (src2).mask, MAX_APICS)
     34 #define physids_or(dst, src1, src2) bitmap_or((dst).mask, (src1).mask, (src2).mask, MAX_APICS)
     35 #define physids_clear(map) bitmap_zero((map).mask, MAX_APICS)
     36 #define physids_complement(dst, src) bitmap_complement((dst).mask,(src).mask, MAX_APICS)
     37 #define physids_empty(map) bitmap_empty((map).mask, MAX_APICS)
     38 #define physids_equal(map1, map2) bitmap_equal((map1).mask, (map2).mask, MAX_APICS)
     39 #define physids_weight(map) bitmap_weight((map).mask, MAX_APICS)
     40 #define physids_shift_right(d, s, n) bitmap_shift_right((d).mask, (s).mask, n, MAX_APICS)
     41 #define physids_shift_left(d, s, n) bitmap_shift_left((d).mask, (s).mask, n, MAX_APICS)
     42 #define physids_coerce(map) ((map).mask[0])
     43 
     44 #define physids_promote(physids)   ({   physid_mask_t __physid_mask = PHYSID_MASK_NONE;   __physid_mask.mask[0] = physids;   __physid_mask;   })
     45 
     46 #define physid_mask_of_physid(physid)   ({   physid_mask_t __physid_mask = PHYSID_MASK_NONE;   physid_set(physid, __physid_mask);   __physid_mask;   })
     47 
     48 #define PHYSID_MASK_ALL { {[0 ... PHYSID_ARRAY_SIZE-1] = ~0UL} }
     49 #define PHYSID_MASK_NONE { {[0 ... PHYSID_ARRAY_SIZE-1] = 0UL} }
     50 
     51 #endif
     52 
     53