ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Public Attributes | List of all members
XRayLogImpl Struct Reference

A valid XRay logging implementation MUST provide all of the function pointers in XRayLogImpl when being installed through `__xray_set_log_impl`. More...

#include <xray_log_interface.h>

Collaboration diagram for XRayLogImpl:
Collaboration graph
[legend]

Public Attributes

XRayLogInitStatus(* log_init )(size_t, size_t, void *, size_t)
 The log initialization routine provided by the implementation, always provided with the following parameters: More...
 
XRayLogInitStatus(* log_finalize )()
 The log finalization routine provided by the implementation. More...
 
void(* handle_arg0 )(int32_t, XRayEntryType)
 The 0-argument function call handler. More...
 
XRayLogFlushStatus(* flush_log )()
 The log implementation provided routine for when __xray_log_flushLog() is called. More...
 

Detailed Description

A valid XRay logging implementation MUST provide all of the function pointers in XRayLogImpl when being installed through `__xray_set_log_impl`.

To be precise, ALL the functions pointers MUST NOT be nullptr.

Definition at line 156 of file xray_log_interface.h.

Member Data Documentation

◆ flush_log

XRayLogFlushStatus(* XRayLogImpl::flush_log) ()

The log implementation provided routine for when __xray_log_flushLog() is called.

See XRayLogFlushStatus for details on what the implementation MUST return when called.

Definition at line 194 of file xray_log_interface.h.

◆ handle_arg0

void(* XRayLogImpl::handle_arg0) (int32_t, XRayEntryType)

The 0-argument function call handler.

XRay logging implementations MUST always have a handler for function entry and exit events. In case the implementation wants to support arg1 (or other future extensions to XRay logging) those MUST be installed by the installed 'log_init' handler.

Because we didn't want to change the ABI of this struct, the arg1 handler may be silently overwritten during initialization as well.

Definition at line 187 of file xray_log_interface.h.

◆ log_finalize

XRayLogInitStatus(* XRayLogImpl::log_finalize) ()

The log finalization routine provided by the implementation.

See XRayLogInitStatus for details on what the implementation MUST return when called.

Definition at line 178 of file xray_log_interface.h.

◆ log_init

XRayLogInitStatus(* XRayLogImpl::log_init) (size_t, size_t, void *, size_t)

The log initialization routine provided by the implementation, always provided with the following parameters:

  • buffer size (unused)
  • maximum number of buffers (unused)
  • a pointer to an argument struct that the implementation MUST handle
  • the size of the argument struct

See XRayLogInitStatus for details on what the implementation MUST return when called.

If the implementation needs to install handlers aside from the 0-argument function call handler, it MUST do so in this initialization handler.

See xray_interface.h for available handler installation routines.

Definition at line 172 of file xray_log_interface.h.


The documentation for this struct was generated from the following file: