|
Sun SPOT 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.StackTraceElement
Represents the method and bytecode index of the execution point in a frame on a thread's call stack. |
| Field Summary | |
|---|---|
static String |
LONG_COPYRIGHT
Long Form Legal Notice of Sun Microsystems copyright. |
static String |
SHORT_COPYRIGHT
Short Form Legal Notice of Sun Microsystems copyright. |
static int |
STREAM_STDERR
The identifier denoting the standard error output stream. |
static int |
STREAM_STDOUT
The identifier denoting the standard output stream. |
| Constructor Summary | |
|---|---|
VM()
|
|
| Method Summary | |
|---|---|
static void |
addServerConnectionHandler(ServerConnectionHandler sch)
Adds a new ServerConnectionHandler to the list of active handlers. |
static void |
allowUserGC(boolean value)
Enable or disable Runtime.gc() |
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 |
diagnostic(String message)
Prints the message on the serial port even after the USB has been enumerated |
static void |
diagnostic(String message,
int val)
Prints the message on the serial port even after the USB has been enumerated |
static long |
doubleToLongBits(double value)
Converts a double into bits. |
static void |
eliminateFinalizer(Object obj)
Eliminates a finalizer. |
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 Address |
execMessageIO(int op,
Object key,
Object data,
int status)
Executes a message I/O operation. |
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 int |
getChannel(int type)
Gets a new IO channel. |
static Isolate |
getCurrentIsolate()
Gets the isolate of the currently executing thread. |
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 String |
getManifestProperty(String name)
Gets the value of an Suite.PROPERTIES_MANIFEST_RESOURCE_NAME property embedded in the suite. |
static int |
getNextHashcode()
Gets the next available hashcode. |
static OutOfMemoryError |
getOutOfMemoryError()
Get the sentinal OutOfMemoryException object |
static char |
getPathSeparatorChar()
The system-dependent path-separator character. |
static Address |
getRomStart()
Gets the address of the start of the object memory in ROM. |
static long |
getTimeMicros()
Gets the current time. |
static long |
getTimeMillis()
Gets the current time. |
static float |
intBitsToFloat(int value)
Converts bits into a float. |
static void |
invokeMain(String className,
String[] args)
Call the main method of the specified class |
static boolean |
isBigEndian()
Get the endianess. |
static boolean |
isCurrentIsolateInitialized()
Determines if the current isolate is set and initialized. |
static boolean |
isHosted()
Determines if the Squawk system is being run in a hosted environment such as the romizer or mapper application. |
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 |
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(Object val)
Prints an address to the VM stream. |
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 |
printUWord(UWord val)
Prints an unsigned word to the VM stream. |
static int |
readSerial(byte[] b,
int off,
int len)
Reads characters from the serial line: blocks until one is returned and then returns up to limit. |
static boolean |
registerMailbox(String name,
Mailbox mailbox)
Register named mailbox with the system. |
static VM.StackTraceElement[] |
reifyCurrentStack(int count)
Returns an array of stack trace elements, each representing one stack frame in the current call stack. |
static void |
setAsDaemonThread(Thread t)
Mark the specified thread to be a daemon thread (won't prevent VM from exiting) |
static int |
setStream(int stream)
Sets the stream for the VM.print... |
static Object |
shallowCopy(Object original)
Perform a shallow copy of the original object, without calling a constructor |
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 void |
unregisterMailbox(String name,
Mailbox mailbox)
Unregister named mailbox with the system. |
static boolean |
userGCAllowed()
Tests if Runtime.gc() is allowed. |
static boolean |
usingTypeMap()
Determines if the VM was built with memory access type checking enabled. |
static long |
waitForDeepSleep(long minimumDeepSleepTime)
Wait until it's possible that we can go to deep sleep. |
static void |
waitForInterrupt(int irq)
Waits for an interrupt. |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String LONG_COPYRIGHT
public static final String SHORT_COPYRIGHT
public static final int STREAM_STDOUT
public static final int STREAM_STDERR
| Constructor Detail |
|---|
public VM()
| Method Detail |
|---|
public static VM.StackTraceElement[] 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()
public static boolean isBigEndian()
public 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 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)
b - the valuepublic static void println(char x)
x - the valuepublic static void println(String x)
x - the stringpublic static void println(int x)
x - the valuepublic static void println(boolean x)
x - the valuepublic static void println(long x)
x - the valuepublic static void println(float x)
x - the valuepublic static void println(double x)
x - the valuepublic static void println()
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 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 com.sun.squawk.pragma.NotInlinedPragma
forceFullGC - forces a collection of the whole heap
com.sun.squawk.pragma.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.public static Object shallowCopy(Object original)
original - the iobject to copy
public static OutOfMemoryError getOutOfMemoryError()
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 Address execMessageIO(int op,
Object key,
Object data,
int status)
throws IOException
op - the opcodekey - the message keydata - the message data or null
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 waitForInterrupt(int irq)
throws IOException
irq - mask for interrupt
IOExceptionpublic static long waitForDeepSleep(long minimumDeepSleepTime)
minimumDeepSleepTime - the minimum time (in millis) that it's worth deep sleeping
public static int readSerial(byte[] b,
int off,
int len)
throws IOException
b - byte array in which to write chars readoff - offset in array to write tolen - maximum number of chars to read
IOExceptionpublic static void diagnostic(String message)
message -
public static void diagnostic(String message,
int val)
message -
public static void invokeMain(String className,
String[] args)
throws ClassNotFoundException
className - the name of the class whose main method is to be runargs - the arguments to be passed to the main method
ClassNotFoundException - if the class is not foundpublic static void setAsDaemonThread(Thread t)
t - The thread
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
IOExceptionpublic static void addServerConnectionHandler(ServerConnectionHandler sch)
sch - the ServerConnectionHandler to add
IllegalArgumentException - if there is already a handler registered with the same name as schpublic 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 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 boolean isCurrentIsolateInitialized()
public static boolean isThreadingInitialized()
public static void eliminateFinalizer(Object obj)
obj - the object of the finalizerpublic static int lookupNative(String name)
name - the fully qualified name of the native method
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)
|
Sun SPOT API |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||