1 /* Copyright (C) 2006-2013 Free Software Foundation, Inc.
2 This file is part of the UPC runtime library.
3 Written by Gary Funck <gary@intrepid.com>
4 and Nenad Vukicevic <nenad@intrepid.com>
6 This file is part of GCC.
8 GCC is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
13 GCC is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 Under Section 7 of GPL version 3, you are granted additional
19 permissions described in the GCC Runtime Library Exception, version
20 3.1, as published by the Free Software Foundation.
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. */
28 #ifndef _UPC_ACCESS_H_
29 #define _UPC_ACCESS_H_
32 //begin lib_access_prototypes
33 /* relaxed accesses */
35 extern u_intQI_t
__getqi2 (upc_shared_ptr_t
);
36 extern u_intHI_t
__gethi2 (upc_shared_ptr_t
);
37 extern u_intSI_t
__getsi2 (upc_shared_ptr_t
);
38 extern u_intDI_t
__getdi2 (upc_shared_ptr_t
);
40 extern u_intTI_t
__getti2 (upc_shared_ptr_t
);
42 extern float __getsf2 (upc_shared_ptr_t
);
43 extern double __getdf2 (upc_shared_ptr_t
);
44 extern long double __gettf2 (upc_shared_ptr_t
);
45 extern long double __getxf2 (upc_shared_ptr_t
);
46 extern void __getblk3 (void *, upc_shared_ptr_t
, size_t);
48 extern void __putqi2 (upc_shared_ptr_t
, u_intQI_t
);
49 extern void __puthi2 (upc_shared_ptr_t
, u_intHI_t
);
50 extern void __putsi2 (upc_shared_ptr_t
, u_intSI_t
);
51 extern void __putdi2 (upc_shared_ptr_t
, u_intDI_t
);
53 extern void __putti2 (upc_shared_ptr_t
, u_intTI_t
);
55 extern void __putsf2 (upc_shared_ptr_t
, float);
56 extern void __putdf2 (upc_shared_ptr_t
, double);
57 extern void __puttf2 (upc_shared_ptr_t
, long double);
58 extern void __putxf2 (upc_shared_ptr_t
, long double);
59 extern void __putblk3 (upc_shared_ptr_t
, void *, size_t);
60 extern void __copyblk3 (upc_shared_ptr_t
, upc_shared_ptr_t
, size_t);
64 extern u_intQI_t
__getsqi2 (upc_shared_ptr_t
);
65 extern u_intHI_t
__getshi2 (upc_shared_ptr_t
);
66 extern u_intSI_t
__getssi2 (upc_shared_ptr_t
);
67 extern u_intDI_t
__getsdi2 (upc_shared_ptr_t
);
69 extern u_intTI_t
__getsti2 (upc_shared_ptr_t
);
71 extern float __getssf2 (upc_shared_ptr_t
);
72 extern double __getsdf2 (upc_shared_ptr_t
);
73 extern long double __getstf2 (upc_shared_ptr_t
);
74 extern long double __getsxf2 (upc_shared_ptr_t
);
75 extern void __getsblk3 (void *, upc_shared_ptr_t
, size_t);
77 extern void __putsqi2 (upc_shared_ptr_t
, u_intQI_t
);
78 extern void __putshi2 (upc_shared_ptr_t
, u_intHI_t
);
79 extern void __putssi2 (upc_shared_ptr_t
, u_intSI_t
);
80 extern void __putsdi2 (upc_shared_ptr_t
, u_intDI_t
);
82 extern void __putsti2 (upc_shared_ptr_t
, u_intTI_t
);
84 extern void __putssf2 (upc_shared_ptr_t
, float);
85 extern void __putsdf2 (upc_shared_ptr_t
, double);
86 extern void __putstf2 (upc_shared_ptr_t
, long double);
87 extern void __putsxf2 (upc_shared_ptr_t
, long double);
88 extern void __putsblk3 (upc_shared_ptr_t
, void *, size_t);
89 extern void __copysblk3 (upc_shared_ptr_t
, upc_shared_ptr_t
, size_t);
91 /* relaxed accesses (profiled) */
93 extern u_intQI_t
__getgqi3 (upc_shared_ptr_t
, const char *file
, int line
);
94 extern u_intHI_t
__getghi3 (upc_shared_ptr_t
, const char *file
, int line
);
95 extern u_intSI_t
__getgsi3 (upc_shared_ptr_t
, const char *file
, int line
);
96 extern u_intDI_t
__getgdi3 (upc_shared_ptr_t
, const char *file
, int line
);
98 extern u_intTI_t
__getgti3 (upc_shared_ptr_t
, const char *file
, int line
);
100 extern float __getgsf3 (upc_shared_ptr_t
, const char *file
, int line
);
101 extern double __getgdf3 (upc_shared_ptr_t
, const char *file
, int line
);
102 extern long double __getgtf3 (upc_shared_ptr_t
, const char *file
, int line
);
103 extern long double __getgxf3 (upc_shared_ptr_t
, const char *file
, int line
);
104 extern void __getgblk5 (void *, upc_shared_ptr_t
, size_t, const char *file
,
107 extern void __putgqi4 (upc_shared_ptr_t
, u_intQI_t
, const char *file
,
109 extern void __putghi4 (upc_shared_ptr_t
, u_intHI_t
, const char *file
,
111 extern void __putgsi4 (upc_shared_ptr_t
, u_intSI_t
, const char *file
,
113 extern void __putgdi4 (upc_shared_ptr_t
, u_intDI_t
, const char *file
,
116 extern void __putgti4 (upc_shared_ptr_t
, u_intTI_t
, const char *file
,
119 extern void __putgsf4 (upc_shared_ptr_t
, float, const char *file
, int line
);
120 extern void __putgdf4 (upc_shared_ptr_t
, double, const char *file
, int line
);
121 extern void __putgtf4 (upc_shared_ptr_t
, long double, const char *file
, int line
);
122 extern void __putgxf4 (upc_shared_ptr_t
, long double, const char *file
, int line
);
123 extern void __putgblk5 (upc_shared_ptr_t
, void *, size_t, const char *file
,
125 extern void __copygblk5 (upc_shared_ptr_t
, upc_shared_ptr_t
, size_t,
126 const char *file
, int line
);
128 /* strict accesses (profiled) */
130 extern u_intQI_t
__getsgqi3 (upc_shared_ptr_t
, const char *file
, int line
);
131 extern u_intHI_t
__getsghi3 (upc_shared_ptr_t
, const char *file
, int line
);
132 extern u_intSI_t
__getsgsi3 (upc_shared_ptr_t
, const char *file
, int line
);
133 extern u_intDI_t
__getsgdi3 (upc_shared_ptr_t
, const char *file
, int line
);
135 extern u_intTI_t
__getsgti3 (upc_shared_ptr_t
, const char *file
, int line
);
137 extern float __getsgsf3 (upc_shared_ptr_t
, const char *file
, int line
);
138 extern double __getsgdf3 (upc_shared_ptr_t
, const char *file
, int line
);
139 extern long double __getsgtf3 (upc_shared_ptr_t
, const char *file
, int line
);
140 extern long double __getsgxf3 (upc_shared_ptr_t
, const char *file
, int line
);
141 extern void __getsgblk5 (void *, upc_shared_ptr_t
, size_t, const char *file
,
144 extern void __putsgqi4 (upc_shared_ptr_t
, u_intQI_t
, const char *file
,
146 extern void __putsghi4 (upc_shared_ptr_t
, u_intHI_t
, const char *file
,
148 extern void __putsgsi4 (upc_shared_ptr_t
, u_intSI_t
, const char *file
,
150 extern void __putsgdi4 (upc_shared_ptr_t
, u_intDI_t
, const char *file
,
153 extern void __putsgti4 (upc_shared_ptr_t
, u_intTI_t
, const char *file
,
156 extern void __putsgsf4 (upc_shared_ptr_t
, float, const char *file
, int line
);
157 extern void __putsgdf4 (upc_shared_ptr_t
, double, const char *file
, int line
);
158 extern void __putsgtf4 (upc_shared_ptr_t
, long double, const char *file
, int line
);
159 extern void __putsgxf4 (upc_shared_ptr_t
, long double, const char *file
, int line
);
160 extern void __putsgblk5 (upc_shared_ptr_t
, void *, size_t, const char *file
,
162 extern void __copysgblk5 (upc_shared_ptr_t
, upc_shared_ptr_t
, size_t,
163 const char *file
, int line
);
165 /* Miscellaneous access related prototypes. */
166 extern void __upc_fence (void);
168 //end lib_access_prototypes
170 /* memory-to-memory operations (profiled) */
171 extern void upc_memcpyg (upc_shared_ptr_t dest
, upc_shared_ptr_t src
,
172 size_t n
, const char *filename
, int linenum
);
173 extern void upc_memgetg (void *dest
, upc_shared_ptr_t src
, size_t n
,
174 const char *filename
, int linenum
);
175 extern void upc_memputg (upc_shared_ptr_t dest
, const void *src
, size_t n
,
176 const char *filename
, int linenum
);
177 extern void upc_memsetg (upc_shared_ptr_t dest
, int c
, size_t n
,
178 const char *filename
, int linenum
);
180 #endif /* _UPC_ACCESS_H_ */