MacVAX XFC (system) Calls
SYSTEM XFC's
These xfc calls are only available to Kernel mode processes. A number of them are only available to the VAX OS itself. The VAX OS must notify MacVAX that it is present and is willing to be responsible for the handling of the following functions: ... by executing
"xfc #SYSTEM"
- XFC #SYSTEM (128)
- The SYSTEM xfc tells MacVAX that an operating system is present. If this call is not made then some of the following SYSTEM XFC's will generate a "Reserved or Privileged Instruction" fault. Once this call is made the operating system accepts responsibility for handling the "Load Process", "Terminate Process", "Shutdown System" and "Reset Process" menu items.
- XFC #REBOOT (129)
- REBOOT is exactly he same as selecting "Load Boot Image" from File menu.
- XFC #CREATE_USER_SYMBOL_TABLE (130)
- CREATE_USER_SYMBOL_TABLE tells MacVAX to read and process the symbol table for the file specified by the File Descriptor passed in R0. MacVAX builds a memory copy of the symbol table and returns a process descriptor to the VAX system in R1. This process descriptor should be stored in the long word following the PCB for the process associated with the file descriptor. If an error occurred while reading the symbol table an error code (a negative number) will be returned in R1 instead of the process descriptor. This value should also be stored at the end of the PCB, if the system intends to continue with the process, given no symbol table info will be available for it.
- XFC #CREATE_SYS_SYMBOL_TABLE (131)
- CREATE_SYS_SYMBOL_TABLE tells MacVAX to read and process the symbol table for the file specified by the File Descriptor passed in R0. MacVAX builds a memory copy of the symbol table and returns a process descriptor to the VAX system in R1. The process descriptor returned will always be 0 ( the system symbol table) unless an error occurred while reading or processing the symbol table. If an error occurred while reading the symbol table an error code (a negative number) will be returned in R1 instead of the process descriptor.
CREATE_SYS_SYMBOL_TABLE differs from CREATE_USER_SYMBOL_TABLE in that the return process descriptor is always 0, and need not be saved by the VAX system, and in that the symbol table will be used immediately for S space.
- XFC #DUP_USER_SYMBOL_TABLE (138)
- Process descriptor in R0. Returns a new process descriptor in R1.
Tells MACVAX to use the symbol table info for P0 and P1 symbols
by copying references from an existing process descriptor
- XFC #FREE_SYMBOL_TABLE (132)
- FREE_SYMBOL_TABLE tells MACVAX to forget the symbol table info for the process specified by the Process descriptor in R0. The memory taken by the symbol table is freed. If the Process descriptor is that of the current P0 process it will loose all displayed symbol table information. A result code of 0 is returned in R1 if the process descriptor was valid, or -1 if it was invalid.
- XFC #USE_USER_SYMBOL_TABLE (133)
- USE_USER_SYMBOL_TABLE Tells MACVAX to use the symbol table info specified by the Process descriptor in R0 for P0 and P1 symbols. A result code of 0 is returned in R1 if the process descriptor was valid, or -1 if it was invalid. This is equivalent to a mtpr #MVPID except the mtpr does not produce a result code. Both this call and the mtpr should not normally be needed as the ldpctx and svpctx calls will load and save the IPR MVPID.
- XFC #GET_FILENAME_PD (134)
- GET_FILENAME_PD returns the directory reference number and the name of the file associated with the process descriptor passed in R0. It allows a VAX system to easily reopen the file when reseting the process when the user selects the Reset Process menu item. The directory reference number and the name of the file are written to the VAX virtual memory location specified by R1 in the form of a filename structure as described above.
- XFC #DISPLAY_DIALOG (135)
- DISPLAY_DIALOG displays the pascal string pointed to by R0 in a dialog box.
There is no return code.
- XFC #CLEAR_WATCHPOINTS (136)
- The OS can clear watchpoints in a specified address range by specifying the Virtual address of the start of the range in R0 and the length in bytes in R1.
- XFC #SET_WATCHPOINTS (137)
- The OS can set watchpoints in a specified address range by specifying the Virtual address of the start of the range in R0 and the length in bytes in R1.