|
" 2013 FRC Java API " |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.squawk.VM
public class VM
This is a Squawk VM specific class that is used to communicate between executing Java software and the low level core VM that is expressed in machine code. There are two parts to this. There are a set of native methods that are used to invoke very low level operations like manipulating memory at a very low level or performing I/O. In the other direction there are a number of methods that the low level core may call. These are used to implement high level operations that are better done in Java than in machine code.
A special version of this class exists for the romizer. The romizer version only implements the methods used to manipulate memory.
Nested Class Summary | |
---|---|
static class |
VM.Stats
Virtual machine statistics. |
Field Summary | |
---|---|
static int |
MAX_SYS_PRIORITY
The maximum priority that a system thread can have. |
static int |
STREAM_STDERR
The identifier denoting the standard error output stream. |
static int |
STREAM_STDOUT
The identifier denoting the standard output stream. |
Method Summary | |
---|---|
static void |
addShutdownHook(Isolate iso,
Runnable hook)
Registers a new virtual-machine shutdown hook. |
static void |
addShutdownHook(Thread hook)
Registers a new virtual-machine shutdown hook. |
static void |
allowUserGC(boolean value)
Enable or disable Runtime.gc() |
static void |
arraycopyObject0(Object src,
int src_position,
Object dst,
int dst_position,
int length)
VM-private version of System.arraycopy for arrays of objects that does little error checking. |
static void |
arraycopyPrimitive0(Object src,
int src_position,
Object dst,
int dst_position,
int totalLength,
int dataSize)
VM-private version of System.arraycopy for arrays of primitives that does little error checking. |
static long |
branchCount()
Enables a dynamically loaded class to call this. |
static void |
collectGarbage(boolean forceFullGC)
Switch to the service stack and call 'GC.collectGarbage()' |
static void |
copyBytes(Address src,
int srcPos,
Address dst,
int dstPos,
int length,
boolean nvmDst)
Copy memory from one area to another. |
static long |
doubleToLongBits(double value)
Converts a double into bits. |
static int |
execGraphicsIO(int op,
int i1,
int i2,
int i3,
int i4,
int i5,
int i6,
Object send,
Object receive)
Executes an I/O operation on the graphics channel and return the result. |
static int |
execIO(int op,
int channel,
int i1,
int i2,
int i3,
int i4,
int i5,
int i6,
Object send,
Object receive)
Executes a I/O operation that may block. |
static long |
execIOLong(int op,
int channel,
int i1,
int i2,
int i3,
int i4,
int i5,
int i6,
Object send,
Object receive)
Executes an I/O operation that returns a long value. |
static int |
execSyncIO(int op,
int i1)
Executes a non-blocking I/O operation whose result is guaranteed to be available immediately. |
static int |
execSyncIO(int context,
int op,
int i1,
int i2,
int i3,
int i4,
int i5,
int i6,
Object send,
Object receive)
Executes a non-blocking I/O operation whose result is guaranteed to be available immediately. |
static int |
execSyncIO(int op,
int i1,
int i2,
int i3,
int i4,
int i5,
int i6,
Object send,
Object receive)
Executes a non-blocking I/O operation whose result is guaranteed to be available immediately. |
static void |
fatalVMError()
Halts the VM because of a fatal condition. |
static void |
finalize(Object o)
|
static int |
floatToIntBits(float value)
Converts a float into bits. |
static void |
freeChannel(int channel)
Frees a channel. |
static Address |
getBootstrapEnd()
Gets the address at which the object memory containing the bootstrap suite ends. |
static int |
getBootstrapHash()
Gets the hash of the object memory containing the bootstrap suite in it's canonical (i.e. |
static Address |
getBootstrapStart()
Gets the address at which the object memory containing the bootstrap suite starts. |
static long |
getBranchCount()
Gets the number of backward branch instructions the VM has executed. |
static int |
getChannel(int type)
Gets a new IO channel. |
static Object |
getClass(Object object)
Support routine to get the object representing the class of a given object. |
static Isolate |
getCurrentIsolate()
Gets the isolate of the currently executing thread. |
static void |
getData(Address src,
int boffset,
Object dst,
int low,
int number,
int elementSize)
Do actual copy from memory at address + boffset to array Copy from memory to byte array. |
static char |
getFileSeparatorChar()
The system-dependent default name-separator character. |
static long |
getGUIEvent()
Gets the next available event on the GUI input channel, blocking until there is one. |
static Object |
getKeyedGlobal(int key)
Return the global registered using setGlobal with key. |
static Object |
getKeyedGlobalsMutex()
|
static Hashtable |
getManifestPropertiesOfSuite(String uri)
A helper method to provide access to the manifest of midlet suites from outside the bootstrap. |
static String |
getManifestProperty(String name)
Gets the value of an Suite.PROPERTIES_MANIFEST_RESOURCE_NAME property embedded in the suite. |
static Enumeration |
getManifestPropertyNames()
Gets the names of all manifest properties embedded in the leaf suite and all of its parents. |
static int |
getNextHashcode()
Gets the next available hashcode. |
static OutOfMemoryError |
getOutOfMemoryError()
Get the sentinal OutOfMemoryException object THIS IS PRIVATE TO THE BOOTSTRAP SUITE |
static char |
getPathSeparatorChar()
The system-dependent path-separator character. |
static PeripheralRegistry |
getPeripheralRegistry()
|
static Address |
getRomStart()
Gets the address of the start of the object memory in ROM. |
static Thread[] |
getRunnableThreads()
Answer an array of threads that are runnable now, in the order they appear in the runnable queue. |
static Stack |
getTaskCache()
Return a system global Stack of cached TaskExecutors. |
static long |
getTimeBeforeAnotherThreadIsRunnable()
Answer the time in millis until another thread is runnable. |
static long |
getTimeMicros()
Gets the current time. |
static long |
getTimeMillis()
Gets the current time. |
static void |
haltVM(int code)
Halt the VM without running exit hooks. |
static float |
intBitsToFloat(int value)
Converts bits into a float. |
static boolean |
isArray(Object o)
Support routine to test whether a given object is an array. |
static boolean |
isBigEndian()
Get the endianess. |
static boolean |
isCurrentIsolateInitialized()
Determines if the current isolate is set and initialized. |
static boolean |
isHosted()
Determines if code running at the moment is running inside of a Squawk VM or a JSE VM. |
static boolean |
isInternal(Klass klass)
Determines if the klass is internal, so should be retained (even if symbol gets stripped) |
static boolean |
isInternal(Member member)
Determines if the field or method is internal, so should be retained (even if symbol gets stripped) |
static boolean |
isThreadingInitialized()
Determines if the threading system is initialized. |
static boolean |
isVerbose()
Gets the flag indicating if the VM is running in verbose mode. |
static boolean |
isVeryVerbose()
Gets the flag indicating if the VM is running in very verbose mode. |
static double |
longBitsToDouble(long value)
Converts bits into a double. |
static Mailbox |
lookupMailbox(String name)
|
static int |
lookupNative(String name)
Gets the identifier for a native method. |
static double |
math(int code,
double a,
double b)
Performs a math operation. |
static void |
outPrint(long val)
Print val safely to System.err, or to VM.print if that fails. |
static void |
outPrint(PrintStream stream,
long val)
Print val safely to Stream, or to VM.print if that fails. |
static void |
outPrint(PrintStream stream,
String str)
Print str safely to Stream, or to VM.print if that fails. |
static void |
outPrint(String str)
Print str safely to System.err, or to VM.print if that fails. |
static void |
outPrintBC()
Print branch count as safely as possible. |
static void |
outPrintln()
Print new line safely to System.err, or to VM.print if that fails. |
static void |
outPrintln(PrintStream stream)
Print new line safely to Stream, or to VM.print if that fails. |
static void |
outPrintln(PrintStream stream,
String str)
Print str safely to Stream, or to VM.print if that fails. |
static void |
outPrintln(String str)
Print str safely to System.err, or to VM.print if that fails. |
static void |
outPrintThread(VMThread thr)
Print thread name as safely as possible, to System.err, or VM.print if that fails. |
static void |
print(boolean b)
Prints a boolean to the VM output stream. |
static void |
print(char x)
Prints a character to the VM output stream. |
static void |
print(double x)
Prints a double to the VM output stream. |
static void |
print(float x)
Prints a float to the VM output stream. |
static void |
print(int x)
Prints an integer to the VM output stream. |
static void |
print(long x)
Prints a long to the VM output stream. |
static void |
print(String x)
Prints a string to the VM output stream. |
static void |
printAddress(Address val)
Prints an address to the VM stream. |
static void |
printAddress(Object val)
Prints an address to the VM stream. |
static void |
printBytes(byte[] b,
int off,
int len)
Prints bytes (as C chars) to the VM stream. |
static Throwable |
printExceptionAndTrace(Throwable exc,
String msg)
Safely print exception and stack trace to System.err. |
static Throwable |
printExceptionAndTrace(Throwable exc,
String msg,
boolean printUsingThrowable)
Safely print exception and stack trace to System.err. |
static void |
println()
Prints a new line to the VM output stream. |
static void |
println(boolean x)
Prints a boolean followed by a new line to the VM output stream. |
static void |
println(char x)
Prints a character followed by a new line to the VM output stream. |
static void |
println(double x)
Prints a double followed by a new line to the VM output stream. |
static void |
println(float x)
Prints a float followed by a new line to the VM output stream. |
static void |
println(int x)
Prints an integer followed by a new line to the VM output stream. |
static void |
println(long x)
Prints a long followed by a new line to the VM output stream. |
static void |
println(String x)
Prints a string followed by a new line to the VM output stream. |
static void |
printObject(Object obj)
Prints the string representation of an object to the VM stream. |
static void |
printOffset(Offset val)
Prints an offset to the VM stream. |
static void |
printThread(VMThread thr)
Print thread name as safely as possible. |
static void |
printUWord(UWord val)
Prints an unsigned word to the VM stream. |
static Object |
putKeyedGlobal(int key,
Object value)
Set the global registered for key. |
static boolean |
registerMailbox(String name,
Mailbox mailbox)
Register named mailbox with the system. |
static ExecutionPoint[] |
reifyCurrentStack(int count)
Returns an array of stack trace elements, each representing one stack frame in the current call stack. |
static boolean |
removeShutdownHook(Isolate iso,
Runnable hook)
De-registers a previously-registered virtual-machine shutdown hook. |
static boolean |
removeShutdownHook(Thread hook)
De-registers a previously-registered virtual-machine shutdown hook. |
static void |
setAsDaemonThread(Thread t)
Mark the specified thread to be a daemon thread (won't prevent VM from exiting). |
static void |
setBytes(Address dst,
byte value,
int length)
Set memory region to value. |
static void |
setData(Address dst,
int boffset,
Object src,
int low,
int number,
int elementSize)
Do actual copy from array to memory at address + boffset Copy number bytes from byte array bytes starting at position low .to the memory location specified
by the address dst and byte offset boffset . |
static void |
setMaxSelectWait(long max)
Set the maximum time that the system will wait in select. |
static void |
setMaxSystemWait(long max)
Set the maximum time that system will wait for IO, interrupts, etc. |
static void |
setProperty(String name,
String value)
On a hosted system , this calls System.setProperty(), otherwise calls Isolate.currentIsolate().setProperty() |
static int |
setStream(int stream)
Sets the stream for the VM.print... |
static void |
setSystemThreadPriority(Thread t,
int level)
Sets the given thread to the given priority, bounded by MAX_SYS_PRIORITY (eg. |
static Object |
shallowCopy(Object original)
Perform a shallow copy of the original object, without calling a constructor WARNING: This is bypassing the write barrier, which is (sort of) OK because we are writing to a new object. |
static void |
startTracing()
Start the VM tracing if tracing support is enabled. |
static void |
stopVM(int code)
Halt the VM in the normal way. |
static boolean |
stripSymbols(Klass klass)
Determines if all the symbolic information for a class should be stripped. |
static boolean |
stripSymbols(Member member)
Determines if all the symbolic information for a field or method should be stripped. |
static void |
unregisterMailbox(String name,
Mailbox mailbox)
Unregister named mailbox with the system. |
static void |
unregisterSuite(String uri)
If the suite is registered, unregister it with the garbage collector. |
static boolean |
userGCAllowed()
Tests if Runtime.gc() is allowed. |
static boolean |
usingTypeMap()
Determines if the VM was built with memory access type checking enabled. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int STREAM_STDOUT
public static final int STREAM_STDERR
public static final int MAX_SYS_PRIORITY
Method Detail |
---|
public static ExecutionPoint[] reifyCurrentStack(int count)
count
- how many frames from the stack to reify, starting from the frame
of the method that called this one. A negative value specifies that
all frames are to be reified.
public static double math(int code, double a, double b)
code
- the opcodea
- the first operandb
- the second operand
public static int floatToIntBits(float value)
value
- the input
public static long doubleToLongBits(double value)
value
- the input
public static float intBitsToFloat(int value)
value
- the input
public static double longBitsToDouble(long value)
value
- the input
public static boolean isHosted() throws AllowInlinedPragma
AllowInlinedPragma
public static boolean isBigEndian()
public static void setProperty(String name, String value)
name
- property namevalue
- property valuepublic static int setStream(int stream)
stream
- the stream to use for the print... methods
public static void printUWord(UWord val)
val
- the word to printpublic static void printOffset(Offset val)
val
- the offset to printpublic static void printAddress(Object val)
val
- the address to printpublic static void printAddress(Address val)
val
- the address to printpublic static void printBytes(byte[] b, int off, int len)
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.public static void printObject(Object obj)
obj
- the object whose toString() result is to be printedpublic static void print(char x)
x
- the valuepublic static void print(String x)
x
- the stringpublic static void print(int x)
x
- the valuepublic static void print(long x)
x
- the valuepublic static void print(float x)
x
- the valuepublic static void print(double x)
x
- the valuepublic static void print(boolean b) throws NotInlinedPragma
b
- the value
NotInlinedPragma
public static void println(char x)
x
- the valuepublic static void println(String x) throws NotInlinedPragma
x
- the string
NotInlinedPragma
public static void println(int x) throws NotInlinedPragma
x
- the value
NotInlinedPragma
public static void println(boolean x) throws NotInlinedPragma
x
- the value
NotInlinedPragma
public static void println(long x) throws NotInlinedPragma
x
- the value
NotInlinedPragma
public static void println(float x) throws NotInlinedPragma
x
- the value
NotInlinedPragma
public static void println(double x) throws NotInlinedPragma
x
- the value
NotInlinedPragma
public static void println() throws NotInlinedPragma
NotInlinedPragma
public static void finalize(Object o)
public static Address getRomStart()
public static Address getBootstrapStart()
public static Address getBootstrapEnd()
public static int getBootstrapHash()
public static char getPathSeparatorChar()
':'
; on Windows
systems it is ';'
.
public static char getFileSeparatorChar()
file.separator
. On UNIX systems the value of this
field is '/'
; on Microsoft Windows systems it is '\'
.
System.getProperty(java.lang.String)
public static void fatalVMError()
public static long getBranchCount()
public static long branchCount()
public static void startTracing()
public static boolean isVerbose()
public static boolean isVeryVerbose()
public static long getTimeMicros()
public static long getTimeMillis()
public static void collectGarbage(boolean forceFullGC) throws NotInlinedPragma
forceFullGC
- forces a collection of the whole heap
NotInlinedPragma
- as the frame of this method will be the inner most frame on the
current thread's stack. The inner most frame on any stack does
not have it's local variables scanned by the garbage collector.
As such, this method must not use any local variables.public static void stopVM(int code)
code
- the exit status code.Isolate.addLifecycleListener(com.sun.squawk.Isolate.LifecycleListener, int)
public static void haltVM(int code)
code
- the exit status code.public static void addShutdownHook(Isolate iso, Runnable hook)
The Java virtual machine shuts down in response to two kinds of events:
stopVM
method is invoked, or
A shutdown hook is a runnable. When the virtual machine begins its
shutdown sequence it will
start all registered shutdown hooks in some unspecified order and let
them run serially (this may result in lower memory requirements than running
all hooks concurrently). Note that daemon threads will
continue to run during the shutdown sequence, as will non-daemon threads
if shutdown was initiated by invoking the stopVM
method.
Once the shutdown sequence has begun it can be stopped only by
invoking the haltVM
method, which forcibly
terminates the virtual machine.
Once the shutdown sequence has begun it is impossible to register a
new shutdown hook or de-register a previously-registered hook.
Attempting either of these operations will cause an
IllegalStateException
to be thrown.
Shutdown hooks run at a delicate time in the life cycle of a virtual machine and should therefore be coded defensively. They should, in particular, be written to be thread-safe and to avoid deadlocks insofar as possible. They should also not rely blindly upon services that may have registered their own shutdown hooks and therefore may themselves in the process of shutting down.
Shutdown hooks should also finish their work quickly. When a
program invokes stopVM
the expectation is
that the virtual machine will promptly shut down and exit. When the
virtual machine is terminated due to user logoff or system shutdown the
underlying operating system may only allow a fixed amount of time in
which to shut down and exit. It is therefore inadvisable to attempt any
user interaction or to perform a long-running computation in a shutdown
hook.
Uncaught exceptions are handled in shutdown hooks just as in any
other thread - the VM prints the exception's stack trace to System.err
;
it does not cause the virtual machine to exit or halt.
In rare circumstances the virtual machine may abort, that is, stop running without shutting down cleanly. This occurs when the virtual machine is terminated externally, for example with the SIGKILL signal on Unix or the TerminateProcess call on Microsoft Windows. The virtual machine may also abort if a native method goes awry by, for example, corrupting internal data structures or attempting to access nonexistent memory. If the virtual machine aborts then no guarantee can be made about whether or not any shutdown hooks will be run.
THIS IS PRIVATE TO THE BOOTSTRAP SUITE
iso
- the isolate context to run the hook in.hook
- A Runnable
object
IllegalArgumentException
- If the specified hook has already been registered
IllegalStateException
- If the virtual machine is already in the process
of shutting downremoveShutdownHook(com.sun.squawk.Isolate, java.lang.Runnable)
,
haltVM(int)
,
stopVM(int)
public static boolean removeShutdownHook(Isolate iso, Runnable hook)
THIS IS PRIVATE TO THE BOOTSTRAP SUITE
iso
- the isolate context the hook was registered with.hook
- the hook to remove
IllegalStateException
- If the virtual machine is already in the process of shutting
downaddShutdownHook(com.sun.squawk.Isolate, java.lang.Runnable)
,
stopVM(int)
public static void addShutdownHook(Thread hook)
The Java virtual machine shuts down in response to two kinds of events:
stopVM
method is invoked, or
A shutdown hook is a runnable. When the virtual machine begins its
shutdown sequence it will
start all registered shutdown hooks in some unspecified order and let
them run serially (this may result in lower memory requirements than running
all hooks concurrently). Note that daemon threads will
continue to run during the shutdown sequence, as will non-daemon threads
if shutdown was initiated by invoking the stopVM
method.
Once the shutdown sequence has begun it can be stopped only by
invoking the haltVM
method, which forcibly
terminates the virtual machine.
Once the shutdown sequence has begun it is impossible to register a
new shutdown hook or de-register a previously-registered hook.
Attempting either of these operations will cause an
IllegalStateException
to be thrown.
Shutdown hooks run at a delicate time in the life cycle of a virtual machine and should therefore be coded defensively. They should, in particular, be written to be thread-safe and to avoid deadlocks insofar as possible. They should also not rely blindly upon services that may have registered their own shutdown hooks and therefore may themselves in the process of shutting down.
Shutdown hooks should also finish their work quickly. When a
program invokes stopVM
the expectation is
that the virtual machine will promptly shut down and exit. When the
virtual machine is terminated due to user logoff or system shutdown the
underlying operating system may only allow a fixed amount of time in
which to shut down and exit. It is therefore inadvisable to attempt any
user interaction or to perform a long-running computation in a shutdown
hook.
Uncaught exceptions are handled in shutdown hooks just as in any
other thread - the VM prints the exception's stack trace to System.err
;
it does not cause the virtual machine to exit or halt.
In rare circumstances the virtual machine may abort, that is, stop running without shutting down cleanly. This occurs when the virtual machine is terminated externally, for example with the SIGKILL signal on Unix or the TerminateProcess call on Microsoft Windows. The virtual machine may also abort if a native method goes awry by, for example, corrupting internal data structures or attempting to access nonexistent memory. If the virtual machine aborts then no guarantee can be made about whether or not any shutdown hooks will be run.
hook
- A Thread
object
IllegalArgumentException
- If the specified hook has already been registered
IllegalStateException
- If the virtual machine is already in the process
of shutting downremoveShutdownHook(com.sun.squawk.Isolate, java.lang.Runnable)
,
haltVM(int)
,
stopVM(int)
public static boolean removeShutdownHook(Thread hook)
hook
- the shutdown hook to remove
IllegalStateException
- If the virtual machine is already in the process of shutting
downaddShutdownHook(com.sun.squawk.Isolate, java.lang.Runnable)
,
stopVM(int)
public static Stack getTaskCache()
public static void copyBytes(Address src, int srcPos, Address dst, int dstPos, int length, boolean nvmDst)
src
- the source address.srcPos
- the byte offset into src.dst
- the destination address.dstPos
- the byte offset into dst.length
- the number of bytes to be copied.nvmDst
- the destination buffer is in NVMpublic static void setBytes(Address dst, byte value, int length)
dst
- the destination address.length
- the number of bytes to be copied.value
- the value to setpublic static void arraycopyPrimitive0(Object src, int src_position, Object dst, int dst_position, int totalLength, int dataSize)
THIS IS PRIVATE TO THE BOOTSTRAP SUITE Impose the following restrictions on the input arguments:
dst
is not null
.
src
is not null
.
srcOffset
argument is not negative.
dstOffset
argument is not negative.
length
argument is not negative.
srcOffset+length
is not greater than
src.length
, the length of the source array.
dstOffset+length
is not greater than
dst.length
, the length of the destination array.
srcOffset
through srcOffset+length-1
can be converted to the component type of the destination array
The caller is responsible that these restrictions are not violated. If any of the restrictions above is violated, the behavior is undefined.
Copies an array from the specified source array, beginning at the
specified position, to the specified position of the destination array.
A subsequence of array components are copied from the source
array referenced by src
to the destination array
referenced by dst
. The number of components copied is
equal to the length
argument. The components at
positions srcOffset
through
srcOffset+length-1
in the source array are copied into
positions dstOffset
through
dstOffset+length-1
, respectively, of the destination
array.
If the src
and dst
arguments refer to the
same array object, then the copying is performed as if the
components at positions srcOffset
through
srcOffset+length-1
were first copied to a temporary
array with length
components and then the contents of
the temporary array were copied into positions
dstOffset
through dstOffset+length-1
of the
destination array.
This method will cooperate with the thread scheduler so that thread scheduling can occur during very long array copies.
src
- the source array.src_position
- start position in the source array.dst
- the destination array.dst_position
- start position in the destination data.totalLength
- the number of array elements to be copied.dataSize
- the size of a data element (1, 2, 4, 8)public static void arraycopyObject0(Object src, int src_position, Object dst, int dst_position, int length)
THIS IS PRIVATE TO THE BOOTSTRAP SUITE Impose the following restrictions on the input arguments:
dst
is not null
.
src
is not null
.
srcOffset
argument is not negative.
dstOffset
argument is not negative.
length
argument is not negative.
srcOffset+length
is not greater than
src.length
, the length of the source array.
dstOffset+length
is not greater than
dst.length
, the length of the destination array.
srcOffset
through srcOffset+length-1
can be converted to the component type of the destination array
The caller is responsible that these restrictions are not violated. If any of the restrictions above is violated, the behavior is undefined.
Copies an array from the specified source array, beginning at the
specified position, to the specified position of the destination array.
A subsequence of array components are copied from the source
array referenced by src
to the destination array
referenced by dst
. The number of components copied is
equal to the length
argument. The components at
positions srcOffset
through
srcOffset+length-1
in the source array are copied into
positions dstOffset
through
dstOffset+length-1
, respectively, of the destination
array.
If the src
and dst
arguments refer to the
same array object, then the copying is performed as if the
components at positions srcOffset
through
srcOffset+length-1
were first copied to a temporary
array with length
components and then the contents of
the temporary array were copied into positions
dstOffset
through dstOffset+length-1
of the
destination array.
This method will cooperate with the thread scheduler so that thread scheduling can occur during very long array copies. this method also handles GC write barriers if needed.
src
- the source array.src_position
- start position in the source array.dst
- the destination array.dst_position
- start position in the destination data.length
- the number of array elements to be copied.public static void getData(Address src, int boffset, Object dst, int low, int number, int elementSize)
number
bytes from the memory location specified by the address dst
and byte offset boffset
to
the byte array bytes
starting at position low
.
src
- the base memory addressboffset
- the byte offset to add to the base memory addressdst
- the destination arraylow
- the offset in the destination arraynumber
- the number of elements to copy into the dst arrayelementSize
- the size of the array elements
ArrayIndexOutOfBoundsException
- if the range specified by low and number does not fit within the dst arraypublic static void setData(Address dst, int boffset, Object src, int low, int number, int elementSize)
number
bytes from byte array bytes
starting at position low
.to the memory location specified
by the address dst
and byte offset boffset
.
dst
- the base memory addressboffset
- the byte offset to add to the base memory addresssrc
- the src byte arraylow
- the offset in the src arraynumber
- the number of bytes to copyelementSize
- the size of the array elements
ArrayIndexOutOfBoundsException
- if the range specified by low and number does not fit within the src arraypublic static Object shallowCopy(Object original)
original
- the iobject to copy
public static OutOfMemoryError getOutOfMemoryError()
public static void printThread(VMThread thr)
thr
- the thread to printpublic static void outPrintThread(VMThread thr)
thr
- the thread to printpublic static void outPrintBC()
public static Throwable printExceptionAndTrace(Throwable exc, String msg)
exc
- excption to reportmsg
- message to print before exception.
public static void outPrint(PrintStream stream, String str)
stream
- stream to print onstr
- string to printpublic static void outPrintln(PrintStream stream, String str)
stream
- stream to print onstr
- string to printpublic static void outPrintln(PrintStream stream)
stream
- stream to print onpublic static void outPrint(PrintStream stream, long val)
stream
- stream to print onval
- long to printpublic static void outPrint(String str)
str
- string to printpublic static void outPrintln(String str)
str
- string to printpublic static void outPrintln()
public static void outPrint(long val)
val
- long to printpublic static Throwable printExceptionAndTrace(Throwable exc, String msg, boolean printUsingThrowable)
exc
- excption to reportmsg
- message to print before exception.printUsingThrowable
- if true, try to use Throwable.printStackTrace(), otherwise use VM routines...
public static int execSyncIO(int op, int i1, int i2, int i3, int i4, int i5, int i6, Object send, Object receive)
op
- the opcodei1
- an integer parameteri2
- an integer parameteri3
- an integer parameteri4
- an integer parameteri5
- an integer parameteri6
- an integer parametersend
- an outgoing array parameterreceive
- an incoming array parameter
public static int execSyncIO(int context, int op, int i1, int i2, int i3, int i4, int i5, int i6, Object send, Object receive)
context
- the I/O contextop
- the opcodei1
- an integer parameteri2
- an integer parameteri3
- an integer parameteri4
- an integer parameteri5
- an integer parameteri6
- an integer parametersend
- an outgoing array parameterreceive
- an incoming array parameter
public static int execSyncIO(int op, int i1)
op
- the opcodei1
- an integer parameter
public static int execIO(int op, int channel, int i1, int i2, int i3, int i4, int i5, int i6, Object send, Object receive) throws IOException
op
- the opcodechannel
- the channel numberi1
- an integer parameteri2
- an integer parameteri3
- an integer parameteri4
- an integer parameteri5
- an integer parameteri6
- an integer parametersend
- an outgoing array parameterreceive
- an incoming array parameter
IOException
public static long execIOLong(int op, int channel, int i1, int i2, int i3, int i4, int i5, int i6, Object send, Object receive) throws IOException
long
value.
op
- the opcodechannel
- the channel identifieri1
- an integer parameteri2
- an integer parameteri3
- an integer parameteri4
- an integer parameteri5
- an integer parameteri6
- an integer parametersend
- a outgoing reference parameterreceive
- an incoming reference parameter (i.e. an array of some type)
IOException
public static int execGraphicsIO(int op, int i1, int i2, int i3, int i4, int i5, int i6, Object send, Object receive)
op
- the opcodei1
- an integer parameteri2
- an integer parameteri3
- an integer parameteri4
- an integer parameteri5
- an integer parameteri6
- an integer parametersend
- a outgoing reference parameterreceive
- an incoming reference parameter (i.e. an array of some type)
public static long getGUIEvent()
public static void setAsDaemonThread(Thread t)
t
- The threadpublic static void setSystemThreadPriority(Thread t, int level)
t
- The threadlevel
- the system priority level (currently supports normal priorities as well as 11, and 12)
IllegalArgumentException
- If the priority is not in the
range MIN_PRIORITY
to
MAX_SYS_PRIORITY
.public static int getChannel(int type) throws IOException
type
- the channel type
IOException
public static void freeChannel(int channel) throws IOException
channel
- the identifier of the channel to free
IOException
public static void setMaxSelectWait(long max)
max
- max wait time in ms. Must be > 0.public static void setMaxSystemWait(long max)
max
- max wait time in ms. Must be > 0.public static void allowUserGC(boolean value)
value
- true to enablepublic static boolean userGCAllowed()
public static boolean usingTypeMap()
public static int getNextHashcode()
public static Isolate getCurrentIsolate()
public static Enumeration getManifestPropertyNames()
public static String getManifestProperty(String name)
Suite.PROPERTIES_MANIFEST_RESOURCE_NAME
property embedded in the suite.
name
- the name of the property whose value is to be retrieved
public static Hashtable getManifestPropertiesOfSuite(String uri)
uri
- suite's uri
public static void unregisterSuite(String uri)
uri
- the suite to unregister.public static boolean isCurrentIsolateInitialized()
public static boolean isThreadingInitialized()
public static int lookupNative(String name)
name
- the fully qualified name of the native method
public static boolean stripSymbols(Klass klass)
klass
- the class to consider
public static boolean stripSymbols(Member member)
member
- the method or field to consider
public static boolean isInternal(Member member)
member
- the method or field to consider
public static boolean isInternal(Klass klass)
klass
- the class to consider
public static Object getClass(Object object)
object
-
public static boolean isArray(Object o)
o
- object to test
public static boolean registerMailbox(String name, Mailbox mailbox)
name
- the public name of the mailbozmailbox
- the mailbox to use with that name.
public static void unregisterMailbox(String name, Mailbox mailbox)
name
- the public name of the mailbozmailbox
- the mailbox to use with that name.public static Mailbox lookupMailbox(String name)
public static long getTimeBeforeAnotherThreadIsRunnable()
public static PeripheralRegistry getPeripheralRegistry()
public static Thread[] getRunnableThreads()
public static Object getKeyedGlobalsMutex()
public static Object getKeyedGlobal(int key)
synchronized (VM.getGlobalsMutex()) {
// access/manipulate globals here ...
}
key
-
public static Object putKeyedGlobal(int key, Object value)
synchronized (VM.getGlobalsMutex()) {
// access/manipulate globals here ...
}
key
- value
-
|
" 2013 FRC Java API " |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |