< prev index next >

src/share/vm/runtime/orderAccess.hpp

Print this page
rev 8910 : full patch for jfr
   1 /*
   2  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  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  *


 244  public:
 245   static void     loadload();
 246   static void     storestore();
 247   static void     loadstore();
 248   static void     storeload();
 249 
 250   static void     acquire();
 251   static void     release();
 252   static void     fence();
 253 
 254   static jbyte    load_acquire(volatile jbyte*   p);
 255   static jshort   load_acquire(volatile jshort*  p);
 256   static jint     load_acquire(volatile jint*    p);
 257   static jlong    load_acquire(volatile jlong*   p);
 258   static jubyte   load_acquire(volatile jubyte*  p);
 259   static jushort  load_acquire(volatile jushort* p);
 260   static juint    load_acquire(volatile juint*   p);
 261   static julong   load_acquire(volatile julong*  p);
 262   static jfloat   load_acquire(volatile jfloat*  p);
 263   static jdouble  load_acquire(volatile jdouble* p);


 264 
 265   static intptr_t load_ptr_acquire(volatile intptr_t*   p);

 266   static void*    load_ptr_acquire(volatile void*       p);
 267   static void*    load_ptr_acquire(const volatile void* p);
 268 
 269   static void     release_store(volatile jbyte*   p, jbyte   v);
 270   static void     release_store(volatile jshort*  p, jshort  v);
 271   static void     release_store(volatile jint*    p, jint    v);
 272   static void     release_store(volatile jlong*   p, jlong   v);
 273   static void     release_store(volatile jubyte*  p, jubyte  v);
 274   static void     release_store(volatile jushort* p, jushort v);
 275   static void     release_store(volatile juint*   p, juint   v);
 276   static void     release_store(volatile julong*  p, julong  v);
 277   static void     release_store(volatile jfloat*  p, jfloat  v);
 278   static void     release_store(volatile jdouble* p, jdouble v);
 279 
 280   static void     release_store_ptr(volatile intptr_t* p, intptr_t v);
 281   static void     release_store_ptr(volatile void*     p, void*    v);
 282 
 283   static void     store_fence(jbyte*   p, jbyte   v);
 284   static void     store_fence(jshort*  p, jshort  v);
 285   static void     store_fence(jint*    p, jint    v);


   1 /*
   2  * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  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  *


 244  public:
 245   static void     loadload();
 246   static void     storestore();
 247   static void     loadstore();
 248   static void     storeload();
 249 
 250   static void     acquire();
 251   static void     release();
 252   static void     fence();
 253 
 254   static jbyte    load_acquire(volatile jbyte*   p);
 255   static jshort   load_acquire(volatile jshort*  p);
 256   static jint     load_acquire(volatile jint*    p);
 257   static jlong    load_acquire(volatile jlong*   p);
 258   static jubyte   load_acquire(volatile jubyte*  p);
 259   static jushort  load_acquire(volatile jushort* p);
 260   static juint    load_acquire(volatile juint*   p);
 261   static julong   load_acquire(volatile julong*  p);
 262   static jfloat   load_acquire(volatile jfloat*  p);
 263   static jdouble  load_acquire(volatile jdouble* p);
 264   static bool     load_acquire(const volatile bool* p);
 265   static julong   load_acquire(const volatile julong*  p);
 266 
 267   static intptr_t load_ptr_acquire(volatile intptr_t*   p);
 268   static uintptr_t load_ptr_acquire(const volatile uintptr_t*   p);
 269   static void*    load_ptr_acquire(volatile void*       p);
 270   static void*    load_ptr_acquire(const volatile void* p);
 271 
 272   static void     release_store(volatile jbyte*   p, jbyte   v);
 273   static void     release_store(volatile jshort*  p, jshort  v);
 274   static void     release_store(volatile jint*    p, jint    v);
 275   static void     release_store(volatile jlong*   p, jlong   v);
 276   static void     release_store(volatile jubyte*  p, jubyte  v);
 277   static void     release_store(volatile jushort* p, jushort v);
 278   static void     release_store(volatile juint*   p, juint   v);
 279   static void     release_store(volatile julong*  p, julong  v);
 280   static void     release_store(volatile jfloat*  p, jfloat  v);
 281   static void     release_store(volatile jdouble* p, jdouble v);
 282 
 283   static void     release_store_ptr(volatile intptr_t* p, intptr_t v);
 284   static void     release_store_ptr(volatile void*     p, void*    v);
 285 
 286   static void     store_fence(jbyte*   p, jbyte   v);
 287   static void     store_fence(jshort*  p, jshort  v);
 288   static void     store_fence(jint*    p, jint    v);


< prev index next >