Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
ctl_reg.h File Reference

Go to the source code of this file.

Macros

#define __ctl_load(array, low, high)
 
#define __ctl_store(array, low, high)
 
#define __ctl_set_bit(cr, bit)
 
#define __ctl_clear_bit(cr, bit)
 
#define ctl_set_bit(cr, bit)   __ctl_set_bit(cr, bit)
 
#define ctl_clear_bit(cr, bit)   __ctl_clear_bit(cr, bit)
 

Macro Definition Documentation

#define __ctl_clear_bit (   cr,
  bit 
)
Value:
({ \
unsigned long __dummy; \
__ctl_store(__dummy, cr, cr); \
__dummy &= ~(1UL << (bit)); \
__ctl_load(__dummy, cr, cr); \
})

Definition at line 55 of file ctl_reg.h.

#define __ctl_load (   array,
  low,
  high 
)
Value:
({ \
typedef struct { char _[sizeof(array)]; } addrtype; \
asm volatile( \
" lctl %1,%2,%0\n" \
: : "Q" (*(addrtype *)(&array)), \
"i" (low), "i" (high)); \
})

Definition at line 30 of file ctl_reg.h.

#define __ctl_set_bit (   cr,
  bit 
)
Value:
({ \
unsigned long __dummy; \
__ctl_store(__dummy, cr, cr); \
__dummy |= 1UL << (bit); \
__ctl_load(__dummy, cr, cr); \
})

Definition at line 48 of file ctl_reg.h.

#define __ctl_store (   array,
  low,
  high 
)
Value:
({ \
typedef struct { char _[sizeof(array)]; } addrtype; \
asm volatile( \
" stctl %1,%2,%0\n" \
: "=Q" (*(addrtype *)(&array)) \
: "i" (low), "i" (high)); \
})

Definition at line 38 of file ctl_reg.h.

#define ctl_clear_bit (   cr,
  bit 
)    __ctl_clear_bit(cr, bit)

Definition at line 72 of file ctl_reg.h.

#define ctl_set_bit (   cr,
  bit 
)    __ctl_set_bit(cr, bit)

Definition at line 71 of file ctl_reg.h.