OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [java/] [lang/] [Object.h] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
// Object.h - Header file for java.lang.Object.  -*- c++ -*-
2
 
3
/* Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005  Free Software Foundation
4
 
5
   This file is part of libgcj.
6
 
7
This software is copyrighted work licensed under the terms of the
8
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
9
details.  */
10
 
11
#ifndef __JAVA_LANG_OBJECT_H__
12
#define __JAVA_LANG_OBJECT_H__
13
 
14
#pragma interface
15
 
16
#include <gcj/javaprims.h>
17
 
18
extern "Java"
19
{
20
// This class is mainly here as a kludge to get G++ to allocate two
21
// extra entries in each vtable.
22
struct _JvObjectPrefix
23
{
24
protected:
25
  // New ABI Compatibility Dummy, #1 and 2.
26
  virtual void nacd_1 (void) {}; // This slot really contains the Class pointer.
27
  // For IA64, the GC descriptor goes into the second word of the nacd1 descr.
28
# ifndef __ia64__
29
    virtual void nacd_2 (void) {}; // Actually the GC bitmap marking descriptor.
30
# endif
31
};
32
}
33
 
34
// Forward declarations for friends of java::lang::Object
35
void _Jv_MonitorEnter (jobject obj);
36
void _Jv_MonitorExit (jobject obj);
37
void _Jv_InitializeSyncMutex (void);
38
void _Jv_FinalizeObject (jobject obj);
39
bool _Jv_ObjectCheckMonitor (jobject obj);
40
 
41
class java::lang::Object : public _JvObjectPrefix
42
{
43
protected:
44
  virtual void finalize (void);
45
public:
46
  // Order must match order in Object.java.
47
  jclass getClass (void);
48
  virtual jint hashCode (void);
49
  void notify (void);
50
  void notifyAll (void);
51
  void wait (jlong timeout, jint nanos);
52
  virtual jboolean equals (jobject obj);
53
  Object (void);
54
  virtual jstring toString (void);
55
  void wait (void);
56
  void wait (jlong timeout);
57
 
58
  friend void ::_Jv_MonitorEnter (jobject obj);
59
  friend void ::_Jv_MonitorExit (jobject obj);
60
  friend void ::_Jv_InitializeSyncMutex (void);
61
  friend void ::_Jv_FinalizeObject (jobject obj);
62
  friend bool ::_Jv_ObjectCheckMonitor (jobject obj);
63
 
64
#ifdef JV_MARKOBJ_DECL
65
  friend JV_MARKOBJ_DECL;
66
#endif
67
#ifdef JV_MARKARRAY_DECL
68
  friend JV_MARKARRAY_DECL;
69
#endif
70
 
71
  static java::lang::Class class$;
72
 
73
protected:
74
  virtual jobject clone (void);
75
 
76
private:
77
  // This does not actually refer to a Java object.  Instead it is a
78
  // placeholder for a piece of internal data (the synchronization
79
  // information).
80
# ifndef JV_HASH_SYNCHRONIZATION
81
    jobject sync_info;
82
# endif
83
 
84
    // Initialize the sync_info field.  Not called with JV_HASH_SYNCHRONIZATION.
85
    void sync_init (void);
86
 
87
public:
88
  virtual void throwNoSuchMethodError (void);
89
};
90
 
91
#endif /* __JAVA_LANG_OBJECT_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.