Merge trunk version 204345 into gupc branch.
[official-gcc.git] / libgupc / smp / upc_access.h
blob3d782df640670d3a2e94cd3da76aee964239cceb
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)
11 any later version.
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);
39 #if GUPCR_TARGET64
40 extern u_intTI_t __getti2 (upc_shared_ptr_t);
41 #endif
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);
52 #if GUPCR_TARGET64
53 extern void __putti2 (upc_shared_ptr_t, u_intTI_t);
54 #endif
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);
62 /* strict accesses */
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);
68 #if GUPCR_TARGET64
69 extern u_intTI_t __getsti2 (upc_shared_ptr_t);
70 #endif
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);
81 #if GUPCR_TARGET64
82 extern void __putsti2 (upc_shared_ptr_t, u_intTI_t);
83 #endif
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);
97 #if GUPCR_TARGET64
98 extern u_intTI_t __getgti3 (upc_shared_ptr_t, const char *file, int line);
99 #endif
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,
105 int line);
107 extern void __putgqi4 (upc_shared_ptr_t, u_intQI_t, const char *file,
108 int line);
109 extern void __putghi4 (upc_shared_ptr_t, u_intHI_t, const char *file,
110 int line);
111 extern void __putgsi4 (upc_shared_ptr_t, u_intSI_t, const char *file,
112 int line);
113 extern void __putgdi4 (upc_shared_ptr_t, u_intDI_t, const char *file,
114 int line);
115 #if GUPCR_TARGET64
116 extern void __putgti4 (upc_shared_ptr_t, u_intTI_t, const char *file,
117 int line);
118 #endif
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,
124 int line);
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);
134 #if GUPCR_TARGET64
135 extern u_intTI_t __getsgti3 (upc_shared_ptr_t, const char *file, int line);
136 #endif
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,
142 int line);
144 extern void __putsgqi4 (upc_shared_ptr_t, u_intQI_t, const char *file,
145 int line);
146 extern void __putsghi4 (upc_shared_ptr_t, u_intHI_t, const char *file,
147 int line);
148 extern void __putsgsi4 (upc_shared_ptr_t, u_intSI_t, const char *file,
149 int line);
150 extern void __putsgdi4 (upc_shared_ptr_t, u_intDI_t, const char *file,
151 int line);
152 #if GUPCR_TARGET64
153 extern void __putsgti4 (upc_shared_ptr_t, u_intTI_t, const char *file,
154 int line);
155 #endif
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,
161 int line);
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_ */