next up previous contents
Next: 12.5 Exception Handlers Up: (X86) Processor-specific Fluke Interface Previous: 12.3 Thread System Calls

12.4 IPC System Calls

IPC parameter block: 0 Send buffer count 1 Send reference count 2 Receive buffer count 3 Receive reference count 4 Number of words in first buffer to send 8 Pointer to first buffer to send 12 Pointer to send buffer table 16 Pointer to send reference table 20 Number of words in first receive buffer 24 Pointer to first receive buffer 28 Pointer to receive buffer table 32 Pointer to receive reference table

fluke_ipc_send
The first send buffer must be at least the minimum message size (two words on the x86). On entry:
eax
Port reference to invoke
ebx
Pointer to IPC parameter block
ecx
scratch
edx
scratch
esi
scratch
edi
scratch
ebp
scratch

On return:
eax:0-15
trash
eax:16-23
IPC status code
eax:24-31
0
ebx
trash
ecx
trash
edx
trash
esi
trash
edi
trash
ebp
trash

fluke_ipc_call
The first send and receive buffers must be at least the minimum message size (two words on the x86). On entry:
eax
Port reference to invoke
ebx
Pointer to IPC parameter block
ecx
scratch
edx
scratch
esi
scratch
edi
scratch
ebp
scratch

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
trashed
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_client_connect_send
On entry:
eax
Port reference to invoke
ebx
Pointer to IPC parameter block
ecx
scratch
edx
scratch
esi
scratch
edi
scratch
ebp
scratch

On return:
al
trash
ah
trash
hal
IPC status code
hah
0
ebx
trash
ecx
Last send buffer remainder word count if status != 0
edx
trash
esi
trash
edi
trash
ebp
trash

ipc_client_ack_send
ipc_client_send
On entry:
al
Send buffer count
ah
Send reference count
eal
0
eah
0
ebx
unused
ecx
First send buffer word count
edx
Send reference table pointer
esi
First send buffer pointer
edi
Send buffer table pointer
ebp
unused

On return:
al
trash
ah
trash
hal
IPC status code
hah
0
ebx
trash
ecx
trash
edx
trash
esi
trash
edi
trash
ebp
trash

ipc_client_client_connect_send_over_receive
The first send and receive buffers must be at least the minimum message size (two words on the x86). On entry:
eax
Port reference to invoke
ebx
Pointer to IPC parameter block
ecx
scratch
edx
scratch
esi
scratch
edi
scratch
ebp
scratch

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
trashed
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_client_ack_send_over_receive
The first send and receive buffers must be at least the minimum message size (two words on the x86).

ipc_client_send_over_receive
The first receive buffer must be at least the minimum message size (two words on the x86). On entry:
al
Send buffer count
ah
Send reference count
hal
0
hah
0
ebx
Pointer to IPC parameter block for receive info
ecx
First send buffer word count
edx
Send reference table pointer
esi
First send buffer pointer
edi
Send buffer table pointer
ebp
unused

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
trashed
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_client_receive
On entry:
al
Receive buffer count
ah
Receive reference count
hal
0
hah
0
ebx
unused
ecx
First receive buffer word count
edx
Receive reference table pointer
esi
Receive buffer table pointer
edi
First receive buffer pointer
ebp
unused

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
trashed
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_server_ack_send
ipc_server_send
On entry:
al
Send buffer count
ah
Send reference count
hal
0
hah
0
ebx
Pointer to IPC parameter block (for receive info)
ecx
First send buffer word count
edx
Send reference table pointer
esi
First send buffer pointer
edi
Send buffer table pointer
ebp
unused

On return:
al
trash
ah
trash
hal
IPC status code
hah
0
ebx
trash
ecx
trash
edx
trash
esi
trash
edi
trash
ebp
trash

ipc_server_ack_send_wait_receive
ipc_server_send_wait_receive
On entry:
al
Send buffer count
ah
Send reference count
hal
0
hah
0
ebx
Pointer to IPC parameter block (for receive info)
ecx
First send buffer word count
edx
Send reference table pointer
esi
First send buffer pointer
edi
Send buffer table pointer
ebp
unused

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
Alias from port through which connection was received
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_wait_receive
On entry:
al
Receive buffer count
ah
Receive reference count
hal
0
hah
0
ebx
unused
ecx
First receive buffer word count
edx
Receive reference table pointer
esi
Receive buffer table pointer
edi
First receive buffer pointer
ebp
unused

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
Alias from port through which connection was received
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_server_receive
On entry:
al
Receive buffer count
ah
Receive reference count
hal
0
hah
0
ebx
unused
ecx
First receive buffer word count
edx
Receive reference table pointer
esi
Receive buffer table pointer
edi
First receive buffer pointer
ebp
unused

On return:
al
Receive buffer remainder count
ah
Receive reference remainder count
hal
IPC status code
hah
0
ebx
preserved (for port alias)
ecx
Last receive buffer remainder word count
edx
trashed
esi
Minimum message word 0
edi
Minimum message word 1
ebp
trashed

ipc_setup
On entry:
eax
Server port set to wait on
ecx
Initial server stack pointer
edx
Server entrypoint for one-way IPC
esi
Server entrypoint for idempotent IPC
edi
Server entrypoint for reliable IPC

On return:
eax
trashed
ecx
trashed
edx
trashed
esi
trashed
edi
trashed


next up previous contents
Next: 12.5 Exception Handlers Up: (X86) Processor-specific Fluke Interface Previous: 12.3 Thread System Calls

Utah Flux Research Group