C.2 Kernel Data Interface

The whole data interface of the kernel is provided by mechanism of collecting special objects - the global kernel info objects (GKI objects). This mechanism is provided by the collector layer of the kernel processes. When the whole GKI object is completely collected, it is sent out of the kernel to the application process, that has previously demanded this kind of information. For details on GKIs (i.e. supported information types) see list of kernel infos. These are the kernel data interface messages:

In addition there are two messages in the kernel data interface, that have nothing to do with collecting GKI objects. Particular message is sent out of the kernel whenever an internal event is encountered inside the kernel: an error reporting or a journal log (see chapter Base Class). These messages are sent out of the kernel only when some application process registers this service (see messages CONNECT and DISCONNECT in section Control Interface of Kernel). These are the additional messages:

REGISTER
comment: Message sent from application process to the kernel. It registers a demand of certain GKI objects to be sent to the requester.
tag: MT_DEMAND
special tag: MS_REGISTER
body: ID of the GKI class (int), PID of requester (int), global period (int), local period (int)

UNREGISTER
comment: Message sent from application process to the kernel. It unregisters the previously registered demand of GKI objects.
tag: MT_DEMAND
special tag: MS_UNREGISTER
body: ID of the GKI class (int), PID of requester (int)

INFO
comment: Message sent from the kernel to an application process. It contains the previously demanded GKI object.
tag: MT_KERNELINFO
special tag: N/A
body: ID of the GKI class (int), serialized kernel info object (TKernelInfo)

ERROR
comment: This message informs about encountering an internal error in some kernel process. This message is produced by a call of method TObj::Message() with type specified as MSG_OK. This message consists of three serialized arrays of type char (C strings without '\0'). The first one is the error description. The second is the name of the method, where the error has occurred. And the third is the object attributes dump (result of the method TObj::Dump()).
tag: MT_EVENT
special tag: MS_ERROR
body: length of array1, length of array2, length of array3, array1, array2, array3

TEXT
comment: This message informs about the system journal log performed by some kernel process. This message is produced by a call of the method TObj::Message() with type specified as MSG_DEBUGG. This message consists of a serialized array of type char (C string without '\0'), containing the logged text.
tag: MT_EVENT
special tag: MS_TEXT
body: length of array, array

Programmer's Guide Project Antares