Module service:module - Dynamic loadable module service

Dynamic loadable module service. This service is used to manage loadable modules within RMoX, including application programs (currently), device-drivers, services, file-systems and network stacks.

Index

Declarations

module.occ:60Process module.service

PROC module.service (CT.SERVICE? in, SHARED CT.DRIVER! to.drv, SHARED CT.KERNEL! to.kernel, VAL []BYTE options, SHARED LOG! log)

Dynamic loadable module service for RMoX. This is used for loading various kinds of module.

Parameters:

CT.SERVICE? in Connection from service core ().
SHARED CT.DRIVER! to.drv Connection to driver core ().
SHARED CT.KERNEL! to.kernel Connection to kernel.
VAL []BYTE options Service options.
SHARED LOG! log System log channels.

module_chan.inc:24Group MODTYPE

RMoX module type constants.

module_chan.inc:25Constant MODTYPE.INVALID

VAL INT MODTYPE.INVALID

Invalid module.

module_chan.inc:26Constant MODTYPE.APP

VAL INT MODTYPE.APP

RMoX application module.

module_chan.inc:27Constant MODTYPE.DRV

VAL INT MODTYPE.DRV

RMoX device driver module.

module_chan.inc:28Constant MODTYPE.SRV

VAL INT MODTYPE.SRV

RMoX service module.

module_chan.inc:29Constant MODTYPE.FS

VAL INT MODTYPE.FS

RMoX file-system module.

module_chan.inc:30Constant MODTYPE.NET

VAL INT MODTYPE.NET

RMoX network module.

module_chan.inc:35Record MODULE.INFO

DATA TYPE MODULE.INFO

Module info structure.

module_chan.inc:37Variable name

[MAX.MODULE.LEN]BYTE

Module name, loaded from the file.

module_chan.inc:38Variable name.len

INT

Module name length.

module_chan.inc:39Variable type

INT

Module type (see MODTYPE).

module_chan.inc:40Variable text.size, data.size

INT

".text" and ".data" section sizes (in bytes).

module_chan.inc:41Variable text.addr, data.addr

INT32

Virtual addresses of loaded text and data sections.

module_chan.inc:42Variable dentry.addr

INT32

Virtual address of the DCR entry stub.

module_chan.inc:44Variable ws.slots, vs.slots

INT

Workspace and vectorspace requirements.

module_chan.inc:45Variable if.hash

INT32

Interface type-hash.

module_chan.inc:47Variable resolved

BOOL

True if all symbols are resolved.

module_chan.inc:48Variable relocated

BOOL

True if all relocations have been processed.

module_chan.inc:53Protocol P.MODCTRL.IN

PROTOCOL P.MODCTRL.IN

Module control input protocol.

module_chan.inc:58Protocol P.MODCTRL.OUT

PROTOCOL P.MODCTRL.OUT

Module control output protocol.

module_chan.inc:60Tag terminated

terminated; INT

Module finished execution.

module_chan.inc:64Channel type CT.MODCTRL

CHAN TYPE CT.MODCTRL

Module control channel-type.

module_chan.inc:72Channel type CT.MODULE.APP

CHAN TYPE CT.MODULE.APP

Standard application interface (kyb?, scr!, err!) channels.

module_chan.inc:82Protocol P.MODULE.IN

PROTOCOL P.MODULE.IN

Module service input protocol.

module_chan.inc:84Tag load.file

load.file; MOBILE []BYTE

Load a particular module file, responds with modinfo or result.

module_chan.inc:85Tag query

query

Query module, responds with modinfo or result.

module_chan.inc:86Tag resolve.symbols

resolve.symbols

Resolve symbols in the module, responds with modinfo or result.

module_chan.inc:87Tag relocate

relocate

Performs relocations in the module, responds with modinfo or result.

module_chan.inc:88Tag run.app

run.app; CT.MODULE.APP?; MOBILE []BYTE

Run standard application interface, responds with mod.control or result.

module_chan.inc:92Protocol P.MODULE.OUT

PROTOCOL P.MODULE.OUT

Module service output protocol.

module_chan.inc:94Tag modinfo

modinfo; MODULE.INFO

Module information.

module_chan.inc:95Tag result

result; INT

Generic result.

module_chan.inc:96Tag mod.control

mod.control; CT.MODCTRL!

Returned module control channel-end (for running modules).

module_chan.inc:100Channel type CT.MODULE

RECURSIVE CHAN TYPE CT.MODULE

Module service channel-type.

module_chan.inc:102Variable in?

CHAN P.MODULE.IN

Requests to service.

module_chan.inc:103Variable out!

CHAN P.MODULE.OUT

Responses from service.

module_chan.inc:104Variable return?

CHAN CT.MODULE!

Used to close connection.