PAPI 7.1.0.0
Loading...
Searching...
No Matches
hpc/hppa.h File Reference
Include dependency graph for hpc/hppa.h:

Go to the source code of this file.

Data Structures

struct  AO_pa_clearable_loc
 

Macros

#define AO_TS_t   struct AO_pa_clearable_loc
 
#define AO_TS_INITIALIZER   {1,1,1,1}
 
#define AO_TS_VAL_t   AO_PA_TS_val
 
#define AO_TS_CLEAR   AO_PA_TS_clear
 
#define AO_TS_SET   AO_PA_TS_set
 
#define AO_ldcw(a, ret)    _LDCWX(0 /* index */, 0 /* s */, a /* base */, ret)
 
#define AO_PA_LDCW_ALIGNMENT   16
 
#define AO_ldcw_align(addr)
 
#define AO_HAVE_test_and_set_full
 
#define AO_CLEAR(addr)   AO_pa_clear(addr)
 
#define AO_HAVE_CLEAR
 

Enumerations

enum  AO_PA_TS_val { AO_PA_TS_set = 0 , AO_PA_TS_clear = 1 , AO_PA_TS_set = 0 , AO_PA_TS_clear = 1 }
 

Functions

AO_INLINE AO_TS_VAL_t AO_test_and_set_full (volatile AO_TS_t *addr)
 
AO_INLINE void AO_pa_clear (volatile AO_TS_t *addr)
 

Macro Definition Documentation

◆ AO_CLEAR

#define AO_CLEAR (   addr)    AO_pa_clear(addr)

Definition at line 99 of file hpc/hppa.h.

◆ AO_HAVE_CLEAR

#define AO_HAVE_CLEAR

Definition at line 100 of file hpc/hppa.h.

◆ AO_HAVE_test_and_set_full

#define AO_HAVE_test_and_set_full

Definition at line 89 of file hpc/hppa.h.

◆ AO_ldcw

#define AO_ldcw (   a,
  ret 
)     _LDCWX(0 /* index */, 0 /* s */, a /* base */, ret)

Definition at line 60 of file hpc/hppa.h.

◆ AO_ldcw_align

#define AO_ldcw_align (   addr)
Value:
((volatile unsigned *)(((unsigned long)(addr) \
#define AO_PA_LDCW_ALIGNMENT
Definition: hpc/hppa.h:70

Definition at line 71 of file hpc/hppa.h.

◆ AO_PA_LDCW_ALIGNMENT

#define AO_PA_LDCW_ALIGNMENT   16

Definition at line 70 of file hpc/hppa.h.

◆ AO_TS_CLEAR

#define AO_TS_CLEAR   AO_PA_TS_clear

Definition at line 53 of file hpc/hppa.h.

◆ AO_TS_INITIALIZER

#define AO_TS_INITIALIZER   {1,1,1,1}

Definition at line 48 of file hpc/hppa.h.

◆ AO_TS_SET

#define AO_TS_SET   AO_PA_TS_set

Definition at line 54 of file hpc/hppa.h.

◆ AO_TS_t

#define AO_TS_t   struct AO_pa_clearable_loc

Definition at line 47 of file hpc/hppa.h.

◆ AO_TS_VAL_t

#define AO_TS_VAL_t   AO_PA_TS_val

Definition at line 52 of file hpc/hppa.h.

Enumeration Type Documentation

◆ AO_PA_TS_val

Enumerator
AO_PA_TS_set 
AO_PA_TS_clear 
AO_PA_TS_set 
AO_PA_TS_clear 

Definition at line 51 of file hpc/hppa.h.

AO_PA_TS_val
Definition: hpc/hppa.h:51
@ AO_PA_TS_clear
Definition: hpc/hppa.h:51
@ AO_PA_TS_set
Definition: hpc/hppa.h:51

Function Documentation

◆ AO_pa_clear()

AO_INLINE void AO_pa_clear ( volatile AO_TS_t addr)

Definition at line 92 of file hpc/hppa.h.

93{
94 volatile unsigned *a = AO_ldcw_align(addr);
95
97 *a = 1;
98}
#define AO_compiler_barrier()
Definition: atomic_ops.h:305
#define AO_ldcw_align(addr)
Definition: hpc/hppa.h:71
static double a[MATRIX_SIZE][MATRIX_SIZE]
Definition: libmsr_basic.c:38

◆ AO_test_and_set_full()

AO_INLINE AO_TS_VAL_t AO_test_and_set_full ( volatile AO_TS_t addr)

Definition at line 78 of file hpc/hppa.h.

79{
80 register unsigned int ret;
81 register unsigned long a = (unsigned long)AO_ldcw_align(addr);
82
83# if defined(CPPCHECK)
84 ret = 0; /* to void 'uninitialized variable' warning */
85# endif
86 AO_ldcw(a, ret);
87 return (AO_TS_VAL_t)ret;
88}
#define AO_ldcw(a, ret)
Definition: hpc/hppa.h:60
#define AO_TS_VAL_t
Definition: hpc/hppa.h:52
long long int long long
Definition: sde_internal.h:85