All Packages  This Package  Class Hierarchy  Class Search  Index

Class bmsi.edx.Edxuser
java.lang.Object
   |
   +----bmsi.edx.Edxuser

  Summary

public class  Edxuser
     extends java.lang.Object
{
          // Constructors 2
     public Edxuser() throws EDXException;
     public Edxuser(EDX);

          // Methods 8
     public static synchronized int adduid(short, char, short, short);
     public static synchronized void deluid(int);

     public String[] commandArgs(String[]) throws EDXException;
     public void dispose();
     public ActiveTCB getActiveTCB();
     public Edxuser.UIMsg getUIMsg(boolean) throws EDXException;
     public int getuid();
     public void uiinit(short, char, short, short) throws EDXException;

          // Inner Classes 1
     public class Edxuser.UIMsg
}

The user extension interface to an EDX emulator. The LOADUSER and CALLUSER edl commands can invoke code in a separate process via this interface. After initialization, users of this class should call getUIMsg() in a loop to wait for and process CALLUSER commands from edl.

Author:
Stuart D. Gathman




  Constructors

· Edxuser

Summary  |  Top

   public Edxuser(EDX edx) 

Create a CALLUSER interface attached to an EDX interface.



· Edxuser

Summary  |  Top
   public Edxuser()  throws EDXException

Create a CALLUSER interface attached to the default EDX nucleus.



  Methods

· getActiveTCB

Summary  |  Top
   public ActiveTCB getActiveTCB() 

Return TCB access for the task that loaded us via LOADUSER. Return null if this interface was not loaded by EDL code.



· adduid

Summary  |  Top
   public static synchronized int adduid(short key, 
                                         char tcb, 
                                         short opword, 
                                         short uid) 

Register a user interface id, and return a unique 16-bit integer for use as the mtype field of the message queue. This should really be a 32-bit integer, but it is returned as $TCBCO2 to the EDX program. The concept is like the IPC key used to obtain an id in the posix API.

Parameter Description
uid An application id, or 0 to assign a unique id.

Returns:
0 on failure


· deluid

Summary  |  Top
   public static synchronized void deluid(int uid) 

Release a user interface id assigned with adduid.



· uiinit

Summary  |  Top
   public void uiinit(short key, 
                      char tcb, 
                      short opword, 
                      short id)  throws EDXException

Initialize user interface for this user ID. The opword parameter is the instruction word used to load this IDL program. Bits 4-7 (mask 0x0700) are used to control the load:

        0x0100 - Do not register this process to be killed on PROGSTOP.
        0x0200 - Load IDL process inforeground (by terminal emulator).
        0x0400 - Reserved.
        0x0800 - Reserved.
  
If the key and tcb parameters are not 0 then load return code (-1 for OK) is returned in TCBCO and the user interface ID is placed in TCBCO2. TCBCO return codes are:
       -1  Successfull load.
        1  ID already in use.	(really 2?)
        2  No more IDs avaiable.(really 1?)
  



· getUIMsg

Summary  |  Top
   public Edxuser.UIMsg getUIMsg(boolean wait)  throws EDXException

Return the next USERCALL message in the queue.

Parameter Description
wait set true to wait

Returns:
the UIMsg or null if PROGSTOP or no messages


· dispose

Summary  |  Top
   public void dispose() 

Release resources for this USERCALL interface.



· getuid

Summary  |  Top
   public int getuid() 


· commandArgs

Summary  |  Top
   public String[] commandArgs(String[] argv)  throws EDXException

Parse the standard command args passed by the LOADUSER instruction from EDX, and initialize this user interface as per uiinit.

Returns:
The remaining args for the application.


All Packages  This Package  Class Hierarchy  Class Search  Index
Freshly brewed Java API Documentation automatically generated with polardoc Version 1.0.7