13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP 26 #define SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP 27 28 #include "utilities/macros.hpp" 29 30 #include <stddef.h> 31 #include <string.h> 32 33 // Only used by concurrent collectors. 34 #if INCLUDE_ALL_GCS 35 36 // Fill a block of memory with value, like memset, but with the 37 // understanding that there may be concurrent readers of that memory. 38 void memset_with_concurrent_readers(void* to, int value, size_t size); 39 40 #ifdef SPARC 41 42 // SPARC requires special handling. See SPARC-specific definition. 43 44 #else 45 // All others just use memset. 46 47 inline void memset_with_concurrent_readers(void* to, int value, size_t size) { 48 ::memset(to, value, size); 49 } 50 51 #endif // End of target dispatch. 52 53 #endif // INCLUDE_ALL_GCS 54 55 #endif // SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP | 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP 26 #define SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP 27 28 #include "utilities/macros.hpp" 29 30 #include <stddef.h> 31 #include <string.h> 32 33 // Fill a block of memory with value, like memset, but with the 34 // understanding that there may be concurrent readers of that memory. 35 void memset_with_concurrent_readers(void* to, int value, size_t size); 36 37 #ifdef SPARC 38 39 // SPARC requires special handling. See SPARC-specific definition. 40 41 #else 42 // All others just use memset. 43 44 inline void memset_with_concurrent_readers(void* to, int value, size_t size) { 45 ::memset(to, value, size); 46 } 47 48 #endif // End of target dispatch. 49 50 #endif // SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP |