System Calls; System Procedure Table - Intel i960 Jx Developer's Manual

Microprocessor
Table of Contents

Advertisement

7.5

SYSTEM CALLS

A system call is a call made via the system procedure table. It can be used to make a system-local
call — similar to a local call made with
switch — or a system supervisor call. A system call is initiated with
procedure number operand. The procedure number provides an index into the system procedure
table, where the processor finds IPs for specific procedures.
Using an i960 processor language assembler, a system procedure is directly declared using the
.sysproc directive. At link time, the optimized call directive, callj, is replaced with a
system procedure target is specified. (Refer to current i960 processor assembler documentation for
a description of the .sysproc and callj directives.)
The system call mechanism offers two benefits. First, it supports application software portability.
System calls are commonly used to call kernel services. By calling these services with a procedure
number rather than a specific IP, applications software does not need to be changed each time the
implementation of the kernel services is modified. Only the entries in the system procedure table
must be changed. Second, the ability to switch to a different execution mode and stack with a system
supervisor call allows kernel procedures and data to be insulated from applications code. This benefit
is further described in
section 3.8, "USER-SUPERVISOR PROTECTION MODEL" (pg.
7.5.1

System Procedure Table

The system procedure table is a data structure for storing IPs to system procedures. These can be
procedures which software can access through (1) a system call or (2) the fault handling
mechanism. Using the system procedure table to store IPs for fault handling is described in
section 8.1, "FAULT HANDLING OVERVIEW" (pg.
Figure 7-4
shows the system procedure table structure. It is 1088 bytes in length and can have up to
260 procedure entries. At initialization, the processor caches a pointer to the system procedure
table. This pointer is located in the PRCB. The following subsections describe this table's fields.
and
in the sense that there is no stack nor mode
call
callx
8-1).
PROCEDURE CALLS
calls
, which requires a
calls
when a
3-23).
7-15
7

Advertisement

Table of Contents
loading

Table of Contents