123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- // gcj/cni.h -*- c++ -*-
- // This file describes the Compiled Native Interface, CNI.
- // It provides a nicer interface to many of the things in gcj/javaprims.h.
- /* Copyright (C) 1998, 1999, 2002 Free Software Foundation
- This file is part of libgcj.
- This software is copyrighted work licensed under the terms of the
- Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
- details. */
- #ifndef __GCJ_CNI_H__
- #define __GCJ_CNI_H__
- #include <java/lang/Object.h>
- #include <java/lang/Class.h>
- #include <gcj/array.h>
- #include <gcj/javaprims.h>
- #include <string.h>
- extern "C" void _Jv_InitClass (jclass);
- extern "C" void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));
- extern inline void
- JvInitClass (jclass cls)
- {
- return _Jv_InitClass (cls);
- }
- extern inline void *
- JvAllocBytes (jsize sz)
- {
- return _Jv_AllocBytes (sz);
- }
- extern inline jstring
- JvAllocString (jsize sz)
- {
- return _Jv_AllocString (sz);
- }
- extern inline jstring
- JvNewString (const jchar *chars, jsize len)
- {
- return _Jv_NewString (chars, len);
- }
- extern inline jstring
- JvNewStringLatin1 (const char *bytes, jsize len)
- {
- return _Jv_NewStringLatin1 (bytes, len);
- }
- extern inline jstring
- JvNewStringLatin1 (const char *bytes)
- {
- return _Jv_NewStringLatin1 (bytes, strlen (bytes));
- }
- extern inline jchar *
- _Jv_GetStringChars (jstring str)
- {
- return (jchar*)((char*) str->data + str->boffset);
- }
- extern inline jchar*
- JvGetStringChars (jstring str)
- {
- return _Jv_GetStringChars (str);
- }
- extern inline jsize
- JvGetStringUTFLength (jstring string)
- {
- return _Jv_GetStringUTFLength (string);
- }
- extern inline jsize
- JvGetStringUTFRegion (jstring str, jsize start, jsize len, char *buf)
- {
- return _Jv_GetStringUTFRegion (str, start, len, buf);
- }
- extern inline jstring
- JvNewStringUTF (const char *bytes)
- {
- return _Jv_NewStringUTF (bytes);
- }
- class JvSynchronize
- {
- private:
- jobject obj;
- public:
- JvSynchronize (const jobject &o) : obj (o)
- { _Jv_MonitorEnter (obj); }
- ~JvSynchronize ()
- { _Jv_MonitorExit (obj); }
- };
- /* Call malloc, but throw exception if insufficient memory. */
- extern inline void *
- JvMalloc (jsize size)
- {
- return _Jv_Malloc (size);
- }
- extern inline void *
- JvRealloc (void *ptr, jsize size)
- {
- return _Jv_Realloc (ptr, size);
- }
- extern inline void
- JvFree (void *ptr)
- {
- return _Jv_Free (ptr);
- }
- typedef struct _Jv_VMOption JvVMOption;
- typedef struct _Jv_VMInitArgs JvVMInitArgs;
- extern inline jint
- JvCreateJavaVM (JvVMInitArgs* vm_args)
- {
- return _Jv_CreateJavaVM (vm_args);
- }
- extern inline java::lang::Thread*
- JvAttachCurrentThread (jstring name, java::lang::ThreadGroup* group)
- {
- return _Jv_AttachCurrentThread (name, group);
- }
- extern inline java::lang::Thread*
- JvAttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group)
- {
- return _Jv_AttachCurrentThreadAsDaemon (name, group);
- }
- extern inline jint
- JvDetachCurrentThread (void)
- {
- return _Jv_DetachCurrentThread ();
- }
- #endif /* __GCJ_CNI_H__ */
|