User manual
86
if (ci->set_affinity_callback) {
ci->set_affinity_callback (ci, brq_handle, sa_procedure, <some pointer>,
<some integer>);
}
The example above shows that the CHARON core is not obliged to support the indicated
operation. It also indicates why the device instance should remember the chapi_in
descriptor.
4.9.9 Get bus server mask for the bus request (could require Stromasys
consulting)
The operation of getting bus request server mask belongs to the group of operations
previously called “Request for bus interrupt”. Such an operation is initiated by the device
instance and CHARON core is defined as the target of the operation. This routine has
sense only for the case of multi CPU emulated system and returns the bus server mask
(CPU mask) which can process bus request.
In order to perform the operation, the initiator invokes a routine identified by the
get_bus_server_mask field of the chapi_in descriptor supplying in the parameter brq_handle
the identifier of bus request to get bus server mask for. The procedure is invoked as
follows:
brq_handle_t brq_handle;
const chapi_in * ci = …;
…
// Connect bus request to the bus getting brq_handle as in previous example
…
// Ask for bus server mask for some reason
if (ci->get_bus_server_mask) {
unsigned int cpu_mask = ci->get_bus_server_mask (ci, brq_handle);
// Process cpu_mask somehow here …
}
The example above shows that the CHARON core is not obliged to support the indicated
operation. It also indicates why the device instance should remember the chapi_in
descriptor.
4.9.10 Get attention objects for the bus server (could require Stromasys consulting)
The operation of getting attention objects for the bus server belongs to the group of
operations previously called “Replacement hardware support requests”, using this function
could require Stromasys consulting. Such an operation is initiated by the device instance
and CHARON core is defined as the target of the operation. This routine can be used
when working with replacement hardware and interrupts. It should not be used during the
general loadable component development. Attention objects in a couple with the bus
requests objects give developers efficient mechanism to interrupt CHARON emulators
from hardware device drivers.










