comparison src/share/vm/oops/oop.hpp @ 1972:f95d63e2154a

6989984: Use standard include model for Hospot Summary: Replaced MakeDeps and the includeDB files with more standardized solutions. Reviewed-by: coleenp, kvn, kamg
author stefank
date Tue, 23 Nov 2010 13:22:55 -0800
parents 9d7a8ab3736b
children 3582bf76420e
comparison
equal deleted inserted replaced
1971:e33f46fc48ed 1972:f95d63e2154a
1 /* 1 /*
2 * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 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 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
20 * or visit www.oracle.com if you need additional information or have any 20 * or visit www.oracle.com if you need additional information or have any
21 * questions. 21 * questions.
22 * 22 *
23 */ 23 */
24 24
25 #ifndef SHARE_VM_OOPS_OOP_HPP
26 #define SHARE_VM_OOPS_OOP_HPP
27
28 #include "memory/iterator.hpp"
29 #include "memory/memRegion.hpp"
30 #include "memory/specialized_oop_closures.hpp"
31 #include "utilities/top.hpp"
32
25 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe 33 // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe
26 // the format of Java objects so the fields can be accessed from C++. 34 // the format of Java objects so the fields can be accessed from C++.
27 // oopDesc is abstract. 35 // oopDesc is abstract.
28 // (see oopHierarchy for complete oop class hierarchy) 36 // (see oopHierarchy for complete oop class hierarchy)
29 // 37 //
30 // no virtual functions allowed 38 // no virtual functions allowed
31 39
32 // store into oop with store check 40 // store into oop with store check
33 template <class T> inline void oop_store(T* p, oop v); 41 template <class T> void oop_store(T* p, oop v);
34 template <class T> inline void oop_store(volatile T* p, oop v); 42 template <class T> void oop_store(volatile T* p, oop v);
35 43
36 // store into oop without store check 44 // store into oop without store check
37 template <class T> inline void oop_store_without_check(T* p, oop v); 45 template <class T> void oop_store_without_check(T* p, oop v);
38 template <class T> inline void oop_store_without_check(volatile T* p, oop v); 46 template <class T> void oop_store_without_check(volatile T* p, oop v);
39 47
40 extern bool always_do_update_barrier; 48 extern bool always_do_update_barrier;
41 49
42 // Forward declarations. 50 // Forward declarations.
43 class OopClosure; 51 class OopClosure;
401 // for code generation 409 // for code generation
402 static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); } 410 static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); }
403 static int klass_offset_in_bytes() { return offset_of(oopDesc, _metadata._klass); } 411 static int klass_offset_in_bytes() { return offset_of(oopDesc, _metadata._klass); }
404 static int klass_gap_offset_in_bytes(); 412 static int klass_gap_offset_in_bytes();
405 }; 413 };
414
415 #endif // SHARE_VM_OOPS_OOP_HPP