RTEMS  5.0.0
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Event Recording

Low-level event recording support. More...

Data Structures

struct  rtems_record_client_per_cpu
 
struct  rtems_record_client_context
 
struct  rtems_record_item_32
 The 32-bit format record item. More...
 

Macros

#define RTEMS_RECORD_CLIENT_MAXIMUM_CPU_COUNT   32
 
#define RTEMS_RECORD_THE_VERSION   4
 The record version. More...
 
#define RTEMS_RECORD_FORMAT_LE_32   0x11111111
 The items are in 32-bit little-endian format.
 
#define RTEMS_RECORD_FORMAT_LE_64   0x22222222
 The items are in 64-bit little-endian format.
 
#define RTEMS_RECORD_FORMAT_BE_32   0x33333333
 The items are in 32-bit big-endian format.
 
#define RTEMS_RECORD_FORMAT_BE_64   0x44444444
 The items are in 64-bit big-endian format.
 
#define RTEMS_RECORD_MAGIC   0x82e14ec1
 Magic number to identify a record item stream. More...
 
#define RTEMS_RECORD_LAST   RTEMS_RECORD_USER_511
 
#define RTEMS_RECORD_USER(index)   ( RTEMS_RECORD_USER_0 + ( index ) )
 
#define RTEMS_RECORD_EVENT_BITS   10
 Bits in the record item event member reserved for the actual event.
 
#define RTEMS_RECORD_TIME_BITS   22
 Bits in the record item event member reserved for the time of the event.
 
#define RTEMS_RECORD_TIME_EVENT(time, event)   ( ( ( time ) << RTEMS_RECORD_EVENT_BITS ) | ( event ) )
 Builds a time event for the specified time stamp and event. More...
 
#define RTEMS_RECORD_GET_TIME(time_event)   ( ( time_event ) >> RTEMS_RECORD_EVENT_BITS )
 Gets the time of a time event.
 
#define RTEMS_RECORD_GET_EVENT(time_event)   ( ( time_event ) & ( ( 1U << RTEMS_RECORD_EVENT_BITS ) - 1U ) )
 Gets the event of a time event.
 

Typedefs

typedef void(* rtems_record_drain_visitor) (const rtems_record_item *items, size_t count, void *arg)
 
typedef rtems_record_client_status(* rtems_record_client_handler) (uint32_t seconds, uint32_t nanoseconds, uint32_t cpu, rtems_record_event event, uint64_t data, void *arg)
 
typedef struct rtems_record_client_context rtems_record_client_context
 
typedef unsigned long rtems_record_data
 The record data integer type. More...
 

Enumerations

enum  rtems_record_client_status {
  RTEMS_RECORD_CLIENT_SUCCESS, RTEMS_RECORD_CLIENT_ERROR_INVALID_MAGIC, RTEMS_RECORD_CLIENT_ERROR_UNKNOWN_FORMAT, RTEMS_RECORD_CLIENT_ERROR_UNSUPPORTED_VERSION,
  RTEMS_RECORD_CLIENT_ERROR_UNSUPPORTED_CPU
}
 
enum  rtems_record_event {
  RTEMS_RECORD_EMPTY, RTEMS_RECORD_VERSION, RTEMS_RECORD_ACCEPT_ENTRY, RTEMS_RECORD_ACCEPT_EXIT,
  RTEMS_RECORD_BIND_ENTRY, RTEMS_RECORD_BIND_EXIT, RTEMS_RECORD_BUFFER, RTEMS_RECORD_CHOWN_ENTRY,
  RTEMS_RECORD_CHOWN_EXIT, RTEMS_RECORD_CLOSE_ENTRY, RTEMS_RECORD_CLOSE_EXIT, RTEMS_RECORD_CONNECT_ENTRY,
  RTEMS_RECORD_CONNECT_EXIT, RTEMS_RECORD_ETHER_INPUT, RTEMS_RECORD_ETHER_OUTPUT, RTEMS_RECORD_FCHMOD_ENTRY,
  RTEMS_RECORD_FCHMOD_EXIT, RTEMS_RECORD_FCNTL_ENTRY, RTEMS_RECORD_FCNTL_EXIT, RTEMS_RECORD_FDATASYNC_ENTRY,
  RTEMS_RECORD_FDATASYNC_EXIT, RTEMS_RECORD_FREQUENCY, RTEMS_RECORD_FSTAT_ENTRY, RTEMS_RECORD_FSTAT_EXIT,
  RTEMS_RECORD_FSYNC_ENTRY, RTEMS_RECORD_FSYNC_EXIT, RTEMS_RECORD_FTRUNCATE_ENTRY, RTEMS_RECORD_FTRUNCATE_EXIT,
  RTEMS_RECORD_GETSOCKOPT_ENTRY, RTEMS_RECORD_GETSOCKOPT_EXIT, RTEMS_RECORD_GIT_HASH, RTEMS_RECORD_HEAP_ALLOC,
  RTEMS_RECORD_HEAP_FREE, RTEMS_RECORD_HEAP_SIZE, RTEMS_RECORD_HEAP_USAGE, RTEMS_RECORD_INTERRUPT_ENTRY,
  RTEMS_RECORD_INTERRUPT_EXIT, RTEMS_RECORD_INTERRUPT_INSTALL, RTEMS_RECORD_INTERRUPT_REMOVE, RTEMS_RECORD_INTERRUPT_SERVER_ENTRY,
  RTEMS_RECORD_INTERRUPT_SERVER_EXIT, RTEMS_RECORD_INTERRUPT_SERVER_INSTALL, RTEMS_RECORD_INTERRUPT_SERVER_MOVE, RTEMS_RECORD_INTERRUPT_SERVER_REMOVE,
  RTEMS_RECORD_INTERRUPT_SERVER_TRIGGER, RTEMS_RECORD_IOCTL_ENTRY, RTEMS_RECORD_IOCTL_EXIT, RTEMS_RECORD_IP6_INPUT,
  RTEMS_RECORD_IP6_OUTPUT, RTEMS_RECORD_IP_INPUT, RTEMS_RECORD_IP_OUTPUT, RTEMS_RECORD_KEVENT_ENTRY,
  RTEMS_RECORD_KEVENT_EXIT, RTEMS_RECORD_KQUEUE_ENTRY, RTEMS_RECORD_KQUEUE_EXIT, RTEMS_RECORD_LENGTH,
  RTEMS_RECORD_LINK_ENTRY, RTEMS_RECORD_LINK_EXIT, RTEMS_RECORD_LISTEN_ENTRY, RTEMS_RECORD_LISTEN_EXIT,
  RTEMS_RECORD_LSEEK_ENTRY, RTEMS_RECORD_LSEEK_EXIT, RTEMS_RECORD_MKNOD_ENTRY, RTEMS_RECORD_MKNOD_EXIT,
  RTEMS_RECORD_MMAP_ENTRY, RTEMS_RECORD_MMAP_EXIT, RTEMS_RECORD_MOUNT_ENTRY, RTEMS_RECORD_MOUNT_EXIT,
  RTEMS_RECORD_OPEN_ENTRY, RTEMS_RECORD_OPEN_EXIT, RTEMS_RECORD_PAGE_ALLOC, RTEMS_RECORD_PAGE_FREE,
  RTEMS_RECORD_PER_CPU_COUNT, RTEMS_RECORD_PER_CPU_HEAD, RTEMS_RECORD_PER_CPU_OVERFLOW, RTEMS_RECORD_PER_CPU_TAIL,
  RTEMS_RECORD_POLL_ENTRY, RTEMS_RECORD_POLL_EXIT, RTEMS_RECORD_PROCESSOR, RTEMS_RECORD_PROCESSOR_MAXIMUM,
  RTEMS_RECORD_READ_ENTRY, RTEMS_RECORD_READ_EXIT, RTEMS_RECORD_READLINK_ENTRY, RTEMS_RECORD_READLINK_EXIT,
  RTEMS_RECORD_READV_ENTRY, RTEMS_RECORD_READV_EXIT, RTEMS_RECORD_RECV_ENTRY, RTEMS_RECORD_RECV_EXIT,
  RTEMS_RECORD_RECVFROM_ENTRY, RTEMS_RECORD_RECVFROM_EXIT, RTEMS_RECORD_RECVMSG_ENTRY, RTEMS_RECORD_RECVMSG_EXIT,
  RTEMS_RECORD_RENAME_ENTRY, RTEMS_RECORD_RENAME_EXIT, RTEMS_RECORD_RTEMS_BARRIER_CREATE, RTEMS_RECORD_RTEMS_BARRIER_DELETE,
  RTEMS_RECORD_RTEMS_BARRIER_RELEASE, RTEMS_RECORD_RTEMS_BARRIER_WAIT, RTEMS_RECORD_RTEMS_EVENT_RECEIVE, RTEMS_RECORD_RTEMS_EVENT_SEND,
  RTEMS_RECORD_RTEMS_EVENT_SYSTEM_RECEIVE, RTEMS_RECORD_RTEMS_EVENT_SYSTEM_SEND, RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_BROADCAST, RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_CREATE,
  RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_DELETE, RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_FLUSH, RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_RECEIVE, RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_SEND,
  RTEMS_RECORD_RTEMS_MESSAGE_QUEUE_URGENT, RTEMS_RECORD_RTEMS_PARTITION_CREATE, RTEMS_RECORD_RTEMS_PARTITION_DELETE, RTEMS_RECORD_RTEMS_PARTITION_GET_BUFFER,
  RTEMS_RECORD_RTEMS_PARTITION_RETURN_BUFFER, RTEMS_RECORD_RTEMS_RATE_MONOTONIC_CANCEL, RTEMS_RECORD_RTEMS_RATE_MONOTONIC_CREATE, RTEMS_RECORD_RTEMS_RATE_MONOTONIC_DELETE,
  RTEMS_RECORD_RTEMS_RATE_MONOTONIC_PERIOD, RTEMS_RECORD_RTEMS_SEMAPHORE_CREATE, RTEMS_RECORD_RTEMS_SEMAPHORE_DELETE, RTEMS_RECORD_RTEMS_SEMAPHORE_FLUSH,
  RTEMS_RECORD_RTEMS_SEMAPHORE_OBTAIN, RTEMS_RECORD_RTEMS_SEMAPHORE_RELEASE, RTEMS_RECORD_RTEMS_TIMER_CANCEL, RTEMS_RECORD_RTEMS_TIMER_CREATE,
  RTEMS_RECORD_RTEMS_TIMER_DELETE, RTEMS_RECORD_RTEMS_TIMER_FIRE_AFTER, RTEMS_RECORD_RTEMS_TIMER_FIRE_WHEN, RTEMS_RECORD_RTEMS_TIMER_RESET,
  RTEMS_RECORD_RTEMS_TIMER_SERVER_FIRE_AFTER, RTEMS_RECORD_RTEMS_TIMER_SERVER_FIRE_WHEN, RTEMS_RECORD_SBWAIT_ENTRY, RTEMS_RECORD_SBWAIT_EXIT,
  RTEMS_RECORD_SBWAKEUP_ENTRY, RTEMS_RECORD_SBWAKEUP_EXIT, RTEMS_RECORD_SELECT_ENTRY, RTEMS_RECORD_SELECT_EXIT,
  RTEMS_RECORD_SEND_ENTRY, RTEMS_RECORD_SEND_EXIT, RTEMS_RECORD_SENDMSG_ENTRY, RTEMS_RECORD_SENDMSG_EXIT,
  RTEMS_RECORD_SENDTO_ENTRY, RTEMS_RECORD_SENDTO_EXIT, RTEMS_RECORD_SETSOCKOPT_ENTRY, RTEMS_RECORD_SETSOCKOPT_EXIT,
  RTEMS_RECORD_SHUTDOWN_ENTRY, RTEMS_RECORD_SHUTDOWN_EXIT, RTEMS_RECORD_SOABORT_ENTRY, RTEMS_RECORD_SOABORT_EXIT,
  RTEMS_RECORD_SOACCEPT_ENTRY, RTEMS_RECORD_SOACCEPT_EXIT, RTEMS_RECORD_SOALLOC_ENTRY, RTEMS_RECORD_SOALLOC_EXIT,
  RTEMS_RECORD_SOBINDAT_ENTRY, RTEMS_RECORD_SOBINDAT_EXIT, RTEMS_RECORD_SOBIND_ENTRY, RTEMS_RECORD_SOBIND_EXIT,
  RTEMS_RECORD_SOCKET_ENTRY, RTEMS_RECORD_SOCKET_EXIT, RTEMS_RECORD_SOCLOSE_ENTRY, RTEMS_RECORD_SOCLOSE_EXIT,
  RTEMS_RECORD_SOCONNECT2_ENTRY, RTEMS_RECORD_SOCONNECT2_EXIT, RTEMS_RECORD_SOCONNECTAT_ENTRY, RTEMS_RECORD_SOCONNECTAT_EXIT,
  RTEMS_RECORD_SOCREATE_ENTRY, RTEMS_RECORD_SOCREATE_EXIT, RTEMS_RECORD_SODEALLOC_ENTRY, RTEMS_RECORD_SODEALLOC_EXIT,
  RTEMS_RECORD_SODISCONNECT_ENTRY, RTEMS_RECORD_SODISCONNECT_EXIT, RTEMS_RECORD_SOFREE_ENTRY, RTEMS_RECORD_SOFREE_EXIT,
  RTEMS_RECORD_SOLISTEN_ENTRY, RTEMS_RECORD_SOLISTEN_EXIT, RTEMS_RECORD_SONEWCONN_ENTRY, RTEMS_RECORD_SONEWCONN_EXIT,
  RTEMS_RECORD_SORECEIVE_ENTRY, RTEMS_RECORD_SORECEIVE_EXIT, RTEMS_RECORD_SORFLUSH_ENTRY, RTEMS_RECORD_SORFLUSH_EXIT,
  RTEMS_RECORD_SOSEND_ENTRY, RTEMS_RECORD_SOSEND_EXIT, RTEMS_RECORD_SOSHUTDOWN_ENTRY, RTEMS_RECORD_SOSHUTDOWN_EXIT,
  RTEMS_RECORD_STATVFS_ENTRY, RTEMS_RECORD_STATVFS_EXIT, RTEMS_RECORD_SYMLINK_ENTRY, RTEMS_RECORD_SYMLINK_EXIT,
  RTEMS_RECORD_TCP_CLOSE, RTEMS_RECORD_TCP_INPUT, RTEMS_RECORD_TCP_OUTPUT, RTEMS_RECORD_THREAD_BEGIN,
  RTEMS_RECORD_THREAD_CREATE, RTEMS_RECORD_THREAD_DELETE, RTEMS_RECORD_THREAD_EXIT, RTEMS_RECORD_THREAD_EXITTED,
  RTEMS_RECORD_THREAD_ID, RTEMS_RECORD_THREAD_PRIO_CURRENT_HIGH, RTEMS_RECORD_THREAD_PRIO_CURRENT_LOW, RTEMS_RECORD_THREAD_PRIO_REAL_HIGH,
  RTEMS_RECORD_THREAD_PRIO_REAL_LOW, RTEMS_RECORD_THREAD_QUEUE_ENQUEUE, RTEMS_RECORD_THREAD_QUEUE_ENQUEUE_STICKY, RTEMS_RECORD_THREAD_QUEUE_EXTRACT,
  RTEMS_RECORD_THREAD_QUEUE_SURRENDER, RTEMS_RECORD_THREAD_QUEUE_SURRENDER_STICKY, RTEMS_RECORD_THREAD_RESOURCE_OBTAIN, RTEMS_RECORD_THREAD_RESOURCE_RELEASE,
  RTEMS_RECORD_THREAD_RESTART, RTEMS_RECORD_THREAD_STACK_CURRENT, RTEMS_RECORD_THREAD_STACK_SIZE, RTEMS_RECORD_THREAD_STACK_USAGE,
  RTEMS_RECORD_THREAD_START, RTEMS_RECORD_THREAD_STATE_CLEAR, RTEMS_RECORD_THREAD_STATE_SET, RTEMS_RECORD_THREAD_SWITCH_IN,
  RTEMS_RECORD_THREAD_SWITCH_OUT, RTEMS_RECORD_THREAD_TERMINATE, RTEMS_RECORD_UDP_INPUT, RTEMS_RECORD_UDP_OUTPUT,
  RTEMS_RECORD_UMA_ALLOC_PTR, RTEMS_RECORD_UMA_ALLOC_ZONE, RTEMS_RECORD_UMA_FREE_PTR, RTEMS_RECORD_UMA_FREE_ZONE,
  RTEMS_RECORD_UNLINK_ENTRY, RTEMS_RECORD_UNLINK_EXIT, RTEMS_RECORD_UNMOUNT_ENTRY, RTEMS_RECORD_UNMOUNT_EXIT,
  RTEMS_RECORD_UPTIME_HIGH, RTEMS_RECORD_UPTIME_LOW, RTEMS_RECORD_WORKSPACE_ALLOC, RTEMS_RECORD_WORKSPACE_FREE,
  RTEMS_RECORD_WORKSPACE_SIZE, RTEMS_RECORD_WORKSPACE_USAGE, RTEMS_RECORD_WRITE_ENTRY, RTEMS_RECORD_WRITE_EXIT,
  RTEMS_RECORD_WRITEV_ENTRY, RTEMS_RECORD_WRITEV_EXIT, RTEMS_RECORD_SYSTEM_238, RTEMS_RECORD_SYSTEM_239,
  RTEMS_RECORD_SYSTEM_240, RTEMS_RECORD_SYSTEM_241, RTEMS_RECORD_SYSTEM_242, RTEMS_RECORD_SYSTEM_243,
  RTEMS_RECORD_SYSTEM_244, RTEMS_RECORD_SYSTEM_245, RTEMS_RECORD_SYSTEM_246, RTEMS_RECORD_SYSTEM_247,
  RTEMS_RECORD_SYSTEM_248, RTEMS_RECORD_SYSTEM_249, RTEMS_RECORD_SYSTEM_250, RTEMS_RECORD_SYSTEM_251,
  RTEMS_RECORD_SYSTEM_252, RTEMS_RECORD_SYSTEM_253, RTEMS_RECORD_SYSTEM_254, RTEMS_RECORD_SYSTEM_255,
  RTEMS_RECORD_SYSTEM_256, RTEMS_RECORD_SYSTEM_257, RTEMS_RECORD_SYSTEM_258, RTEMS_RECORD_SYSTEM_259,
  RTEMS_RECORD_SYSTEM_260, RTEMS_RECORD_SYSTEM_261, RTEMS_RECORD_SYSTEM_262, RTEMS_RECORD_SYSTEM_263,
  RTEMS_RECORD_SYSTEM_264, RTEMS_RECORD_SYSTEM_265, RTEMS_RECORD_SYSTEM_266, RTEMS_RECORD_SYSTEM_267,
  RTEMS_RECORD_SYSTEM_268, RTEMS_RECORD_SYSTEM_269, RTEMS_RECORD_SYSTEM_270, RTEMS_RECORD_SYSTEM_271,
  RTEMS_RECORD_SYSTEM_272, RTEMS_RECORD_SYSTEM_273, RTEMS_RECORD_SYSTEM_274, RTEMS_RECORD_SYSTEM_275,
  RTEMS_RECORD_SYSTEM_276, RTEMS_RECORD_SYSTEM_277, RTEMS_RECORD_SYSTEM_278, RTEMS_RECORD_SYSTEM_279,
  RTEMS_RECORD_SYSTEM_280, RTEMS_RECORD_SYSTEM_281, RTEMS_RECORD_SYSTEM_282, RTEMS_RECORD_SYSTEM_283,
  RTEMS_RECORD_SYSTEM_284, RTEMS_RECORD_SYSTEM_285, RTEMS_RECORD_SYSTEM_286, RTEMS_RECORD_SYSTEM_287,
  RTEMS_RECORD_SYSTEM_288, RTEMS_RECORD_SYSTEM_289, RTEMS_RECORD_SYSTEM_290, RTEMS_RECORD_SYSTEM_291,
  RTEMS_RECORD_SYSTEM_292, RTEMS_RECORD_SYSTEM_293, RTEMS_RECORD_SYSTEM_294, RTEMS_RECORD_SYSTEM_295,
  RTEMS_RECORD_SYSTEM_296, RTEMS_RECORD_SYSTEM_297, RTEMS_RECORD_SYSTEM_298, RTEMS_RECORD_SYSTEM_299,
  RTEMS_RECORD_SYSTEM_300, RTEMS_RECORD_SYSTEM_301, RTEMS_RECORD_SYSTEM_302, RTEMS_RECORD_SYSTEM_303,
  RTEMS_RECORD_SYSTEM_304, RTEMS_RECORD_SYSTEM_305, RTEMS_RECORD_SYSTEM_306, RTEMS_RECORD_SYSTEM_307,
  RTEMS_RECORD_SYSTEM_308, RTEMS_RECORD_SYSTEM_309, RTEMS_RECORD_SYSTEM_310, RTEMS_RECORD_SYSTEM_311,
  RTEMS_RECORD_SYSTEM_312, RTEMS_RECORD_SYSTEM_313, RTEMS_RECORD_SYSTEM_314, RTEMS_RECORD_SYSTEM_315,
  RTEMS_RECORD_SYSTEM_316, RTEMS_RECORD_SYSTEM_317, RTEMS_RECORD_SYSTEM_318, RTEMS_RECORD_SYSTEM_319,
  RTEMS_RECORD_SYSTEM_320, RTEMS_RECORD_SYSTEM_321, RTEMS_RECORD_SYSTEM_322, RTEMS_RECORD_SYSTEM_323,
  RTEMS_RECORD_SYSTEM_324, RTEMS_RECORD_SYSTEM_325, RTEMS_RECORD_SYSTEM_326, RTEMS_RECORD_SYSTEM_327,
  RTEMS_RECORD_SYSTEM_328, RTEMS_RECORD_SYSTEM_329, RTEMS_RECORD_SYSTEM_330, RTEMS_RECORD_SYSTEM_331,
  RTEMS_RECORD_SYSTEM_332, RTEMS_RECORD_SYSTEM_333, RTEMS_RECORD_SYSTEM_334, RTEMS_RECORD_SYSTEM_335,
  RTEMS_RECORD_SYSTEM_336, RTEMS_RECORD_SYSTEM_337, RTEMS_RECORD_SYSTEM_338, RTEMS_RECORD_SYSTEM_339,
  RTEMS_RECORD_SYSTEM_340, RTEMS_RECORD_SYSTEM_341, RTEMS_RECORD_SYSTEM_342, RTEMS_RECORD_SYSTEM_343,
  RTEMS_RECORD_SYSTEM_344, RTEMS_RECORD_SYSTEM_345, RTEMS_RECORD_SYSTEM_346, RTEMS_RECORD_SYSTEM_347,
  RTEMS_RECORD_SYSTEM_348, RTEMS_RECORD_SYSTEM_349, RTEMS_RECORD_SYSTEM_350, RTEMS_RECORD_SYSTEM_351,
  RTEMS_RECORD_SYSTEM_352, RTEMS_RECORD_SYSTEM_353, RTEMS_RECORD_SYSTEM_354, RTEMS_RECORD_SYSTEM_355,
  RTEMS_RECORD_SYSTEM_356, RTEMS_RECORD_SYSTEM_357, RTEMS_RECORD_SYSTEM_358, RTEMS_RECORD_SYSTEM_359,
  RTEMS_RECORD_SYSTEM_360, RTEMS_RECORD_SYSTEM_361, RTEMS_RECORD_SYSTEM_362, RTEMS_RECORD_SYSTEM_363,
  RTEMS_RECORD_SYSTEM_364, RTEMS_RECORD_SYSTEM_365, RTEMS_RECORD_SYSTEM_366, RTEMS_RECORD_SYSTEM_367,
  RTEMS_RECORD_SYSTEM_368, RTEMS_RECORD_SYSTEM_369, RTEMS_RECORD_SYSTEM_370, RTEMS_RECORD_SYSTEM_371,
  RTEMS_RECORD_SYSTEM_372, RTEMS_RECORD_SYSTEM_373, RTEMS_RECORD_SYSTEM_374, RTEMS_RECORD_SYSTEM_375,
  RTEMS_RECORD_SYSTEM_376, RTEMS_RECORD_SYSTEM_377, RTEMS_RECORD_SYSTEM_378, RTEMS_RECORD_SYSTEM_379,
  RTEMS_RECORD_SYSTEM_380, RTEMS_RECORD_SYSTEM_381, RTEMS_RECORD_SYSTEM_382, RTEMS_RECORD_SYSTEM_383,
  RTEMS_RECORD_SYSTEM_384, RTEMS_RECORD_SYSTEM_385, RTEMS_RECORD_SYSTEM_386, RTEMS_RECORD_SYSTEM_387,
  RTEMS_RECORD_SYSTEM_388, RTEMS_RECORD_SYSTEM_389, RTEMS_RECORD_SYSTEM_390, RTEMS_RECORD_SYSTEM_391,
  RTEMS_RECORD_SYSTEM_392, RTEMS_RECORD_SYSTEM_393, RTEMS_RECORD_SYSTEM_394, RTEMS_RECORD_SYSTEM_395,
  RTEMS_RECORD_SYSTEM_396, RTEMS_RECORD_SYSTEM_397, RTEMS_RECORD_SYSTEM_398, RTEMS_RECORD_SYSTEM_399,
  RTEMS_RECORD_SYSTEM_400, RTEMS_RECORD_SYSTEM_401, RTEMS_RECORD_SYSTEM_402, RTEMS_RECORD_SYSTEM_403,
  RTEMS_RECORD_SYSTEM_404, RTEMS_RECORD_SYSTEM_405, RTEMS_RECORD_SYSTEM_406, RTEMS_RECORD_SYSTEM_407,
  RTEMS_RECORD_SYSTEM_408, RTEMS_RECORD_SYSTEM_409, RTEMS_RECORD_SYSTEM_410, RTEMS_RECORD_SYSTEM_411,
  RTEMS_RECORD_SYSTEM_412, RTEMS_RECORD_SYSTEM_413, RTEMS_RECORD_SYSTEM_414, RTEMS_RECORD_SYSTEM_415,
  RTEMS_RECORD_SYSTEM_416, RTEMS_RECORD_SYSTEM_417, RTEMS_RECORD_SYSTEM_418, RTEMS_RECORD_SYSTEM_419,
  RTEMS_RECORD_SYSTEM_420, RTEMS_RECORD_SYSTEM_421, RTEMS_RECORD_SYSTEM_422, RTEMS_RECORD_SYSTEM_423,
  RTEMS_RECORD_SYSTEM_424, RTEMS_RECORD_SYSTEM_425, RTEMS_RECORD_SYSTEM_426, RTEMS_RECORD_SYSTEM_427,
  RTEMS_RECORD_SYSTEM_428, RTEMS_RECORD_SYSTEM_429, RTEMS_RECORD_SYSTEM_430, RTEMS_RECORD_SYSTEM_431,
  RTEMS_RECORD_SYSTEM_432, RTEMS_RECORD_SYSTEM_433, RTEMS_RECORD_SYSTEM_434, RTEMS_RECORD_SYSTEM_435,
  RTEMS_RECORD_SYSTEM_436, RTEMS_RECORD_SYSTEM_437, RTEMS_RECORD_SYSTEM_438, RTEMS_RECORD_SYSTEM_439,
  RTEMS_RECORD_SYSTEM_440, RTEMS_RECORD_SYSTEM_441, RTEMS_RECORD_SYSTEM_442, RTEMS_RECORD_SYSTEM_443,
  RTEMS_RECORD_SYSTEM_444, RTEMS_RECORD_SYSTEM_445, RTEMS_RECORD_SYSTEM_446, RTEMS_RECORD_SYSTEM_447,
  RTEMS_RECORD_SYSTEM_448, RTEMS_RECORD_SYSTEM_449, RTEMS_RECORD_SYSTEM_450, RTEMS_RECORD_SYSTEM_451,
  RTEMS_RECORD_SYSTEM_452, RTEMS_RECORD_SYSTEM_453, RTEMS_RECORD_SYSTEM_454, RTEMS_RECORD_SYSTEM_455,
  RTEMS_RECORD_SYSTEM_456, RTEMS_RECORD_SYSTEM_457, RTEMS_RECORD_SYSTEM_458, RTEMS_RECORD_SYSTEM_459,
  RTEMS_RECORD_SYSTEM_460, RTEMS_RECORD_SYSTEM_461, RTEMS_RECORD_SYSTEM_462, RTEMS_RECORD_SYSTEM_463,
  RTEMS_RECORD_SYSTEM_464, RTEMS_RECORD_SYSTEM_465, RTEMS_RECORD_SYSTEM_466, RTEMS_RECORD_SYSTEM_467,
  RTEMS_RECORD_SYSTEM_468, RTEMS_RECORD_SYSTEM_469, RTEMS_RECORD_SYSTEM_470, RTEMS_RECORD_SYSTEM_471,
  RTEMS_RECORD_SYSTEM_472, RTEMS_RECORD_SYSTEM_473, RTEMS_RECORD_SYSTEM_474, RTEMS_RECORD_SYSTEM_475,
  RTEMS_RECORD_SYSTEM_476, RTEMS_RECORD_SYSTEM_477, RTEMS_RECORD_SYSTEM_478, RTEMS_RECORD_SYSTEM_479,
  RTEMS_RECORD_SYSTEM_480, RTEMS_RECORD_SYSTEM_481, RTEMS_RECORD_SYSTEM_482, RTEMS_RECORD_SYSTEM_483,
  RTEMS_RECORD_SYSTEM_484, RTEMS_RECORD_SYSTEM_485, RTEMS_RECORD_SYSTEM_486, RTEMS_RECORD_SYSTEM_487,
  RTEMS_RECORD_SYSTEM_488, RTEMS_RECORD_SYSTEM_489, RTEMS_RECORD_SYSTEM_490, RTEMS_RECORD_SYSTEM_491,
  RTEMS_RECORD_SYSTEM_492, RTEMS_RECORD_SYSTEM_493, RTEMS_RECORD_SYSTEM_494, RTEMS_RECORD_SYSTEM_495,
  RTEMS_RECORD_SYSTEM_496, RTEMS_RECORD_SYSTEM_497, RTEMS_RECORD_SYSTEM_498, RTEMS_RECORD_SYSTEM_499,
  RTEMS_RECORD_SYSTEM_500, RTEMS_RECORD_SYSTEM_501, RTEMS_RECORD_SYSTEM_502, RTEMS_RECORD_SYSTEM_503,
  RTEMS_RECORD_SYSTEM_504, RTEMS_RECORD_SYSTEM_505, RTEMS_RECORD_SYSTEM_506, RTEMS_RECORD_SYSTEM_507,
  RTEMS_RECORD_SYSTEM_508, RTEMS_RECORD_SYSTEM_509, RTEMS_RECORD_SYSTEM_510, RTEMS_RECORD_SYSTEM_511,
  RTEMS_RECORD_USER_0, RTEMS_RECORD_USER_1, RTEMS_RECORD_USER_2, RTEMS_RECORD_USER_3,
  RTEMS_RECORD_USER_4, RTEMS_RECORD_USER_5, RTEMS_RECORD_USER_6, RTEMS_RECORD_USER_7,
  RTEMS_RECORD_USER_8, RTEMS_RECORD_USER_9, RTEMS_RECORD_USER_10, RTEMS_RECORD_USER_11,
  RTEMS_RECORD_USER_12, RTEMS_RECORD_USER_13, RTEMS_RECORD_USER_14, RTEMS_RECORD_USER_15,
  RTEMS_RECORD_USER_16, RTEMS_RECORD_USER_17, RTEMS_RECORD_USER_18, RTEMS_RECORD_USER_19,
  RTEMS_RECORD_USER_20, RTEMS_RECORD_USER_21, RTEMS_RECORD_USER_22, RTEMS_RECORD_USER_23,
  RTEMS_RECORD_USER_24, RTEMS_RECORD_USER_25, RTEMS_RECORD_USER_26, RTEMS_RECORD_USER_27,
  RTEMS_RECORD_USER_28, RTEMS_RECORD_USER_29, RTEMS_RECORD_USER_30, RTEMS_RECORD_USER_31,
  RTEMS_RECORD_USER_32, RTEMS_RECORD_USER_33, RTEMS_RECORD_USER_34, RTEMS_RECORD_USER_35,
  RTEMS_RECORD_USER_36, RTEMS_RECORD_USER_37, RTEMS_RECORD_USER_38, RTEMS_RECORD_USER_39,
  RTEMS_RECORD_USER_40, RTEMS_RECORD_USER_41, RTEMS_RECORD_USER_42, RTEMS_RECORD_USER_43,
  RTEMS_RECORD_USER_44, RTEMS_RECORD_USER_45, RTEMS_RECORD_USER_46, RTEMS_RECORD_USER_47,
  RTEMS_RECORD_USER_48, RTEMS_RECORD_USER_49, RTEMS_RECORD_USER_50, RTEMS_RECORD_USER_51,
  RTEMS_RECORD_USER_52, RTEMS_RECORD_USER_53, RTEMS_RECORD_USER_54, RTEMS_RECORD_USER_55,
  RTEMS_RECORD_USER_56, RTEMS_RECORD_USER_57, RTEMS_RECORD_USER_58, RTEMS_RECORD_USER_59,
  RTEMS_RECORD_USER_60, RTEMS_RECORD_USER_61, RTEMS_RECORD_USER_62, RTEMS_RECORD_USER_63,
  RTEMS_RECORD_USER_64, RTEMS_RECORD_USER_65, RTEMS_RECORD_USER_66, RTEMS_RECORD_USER_67,
  RTEMS_RECORD_USER_68, RTEMS_RECORD_USER_69, RTEMS_RECORD_USER_70, RTEMS_RECORD_USER_71,
  RTEMS_RECORD_USER_72, RTEMS_RECORD_USER_73, RTEMS_RECORD_USER_74, RTEMS_RECORD_USER_75,
  RTEMS_RECORD_USER_76, RTEMS_RECORD_USER_77, RTEMS_RECORD_USER_78, RTEMS_RECORD_USER_79,
  RTEMS_RECORD_USER_80, RTEMS_RECORD_USER_81, RTEMS_RECORD_USER_82, RTEMS_RECORD_USER_83,
  RTEMS_RECORD_USER_84, RTEMS_RECORD_USER_85, RTEMS_RECORD_USER_86, RTEMS_RECORD_USER_87,
  RTEMS_RECORD_USER_88, RTEMS_RECORD_USER_89, RTEMS_RECORD_USER_90, RTEMS_RECORD_USER_91,
  RTEMS_RECORD_USER_92, RTEMS_RECORD_USER_93, RTEMS_RECORD_USER_94, RTEMS_RECORD_USER_95,
  RTEMS_RECORD_USER_96, RTEMS_RECORD_USER_97, RTEMS_RECORD_USER_98, RTEMS_RECORD_USER_99,
  RTEMS_RECORD_USER_100, RTEMS_RECORD_USER_101, RTEMS_RECORD_USER_102, RTEMS_RECORD_USER_103,
  RTEMS_RECORD_USER_104, RTEMS_RECORD_USER_105, RTEMS_RECORD_USER_106, RTEMS_RECORD_USER_107,
  RTEMS_RECORD_USER_108, RTEMS_RECORD_USER_109, RTEMS_RECORD_USER_110, RTEMS_RECORD_USER_111,
  RTEMS_RECORD_USER_112, RTEMS_RECORD_USER_113, RTEMS_RECORD_USER_114, RTEMS_RECORD_USER_115,
  RTEMS_RECORD_USER_116, RTEMS_RECORD_USER_117, RTEMS_RECORD_USER_118, RTEMS_RECORD_USER_119,
  RTEMS_RECORD_USER_120, RTEMS_RECORD_USER_121, RTEMS_RECORD_USER_122, RTEMS_RECORD_USER_123,
  RTEMS_RECORD_USER_124, RTEMS_RECORD_USER_125, RTEMS_RECORD_USER_126, RTEMS_RECORD_USER_127,
  RTEMS_RECORD_USER_128, RTEMS_RECORD_USER_129, RTEMS_RECORD_USER_130, RTEMS_RECORD_USER_131,
  RTEMS_RECORD_USER_132, RTEMS_RECORD_USER_133, RTEMS_RECORD_USER_134, RTEMS_RECORD_USER_135,
  RTEMS_RECORD_USER_136, RTEMS_RECORD_USER_137, RTEMS_RECORD_USER_138, RTEMS_RECORD_USER_139,
  RTEMS_RECORD_USER_140, RTEMS_RECORD_USER_141, RTEMS_RECORD_USER_142, RTEMS_RECORD_USER_143,
  RTEMS_RECORD_USER_144, RTEMS_RECORD_USER_145, RTEMS_RECORD_USER_146, RTEMS_RECORD_USER_147,
  RTEMS_RECORD_USER_148, RTEMS_RECORD_USER_149, RTEMS_RECORD_USER_150, RTEMS_RECORD_USER_151,
  RTEMS_RECORD_USER_152, RTEMS_RECORD_USER_153, RTEMS_RECORD_USER_154, RTEMS_RECORD_USER_155,
  RTEMS_RECORD_USER_156, RTEMS_RECORD_USER_157, RTEMS_RECORD_USER_158, RTEMS_RECORD_USER_159,
  RTEMS_RECORD_USER_160, RTEMS_RECORD_USER_161, RTEMS_RECORD_USER_162, RTEMS_RECORD_USER_163,
  RTEMS_RECORD_USER_164, RTEMS_RECORD_USER_165, RTEMS_RECORD_USER_166, RTEMS_RECORD_USER_167,
  RTEMS_RECORD_USER_168, RTEMS_RECORD_USER_169, RTEMS_RECORD_USER_170, RTEMS_RECORD_USER_171,
  RTEMS_RECORD_USER_172, RTEMS_RECORD_USER_173, RTEMS_RECORD_USER_174, RTEMS_RECORD_USER_175,
  RTEMS_RECORD_USER_176, RTEMS_RECORD_USER_177, RTEMS_RECORD_USER_178, RTEMS_RECORD_USER_179,
  RTEMS_RECORD_USER_180, RTEMS_RECORD_USER_181, RTEMS_RECORD_USER_182, RTEMS_RECORD_USER_183,
  RTEMS_RECORD_USER_184, RTEMS_RECORD_USER_185, RTEMS_RECORD_USER_186, RTEMS_RECORD_USER_187,
  RTEMS_RECORD_USER_188, RTEMS_RECORD_USER_189, RTEMS_RECORD_USER_190, RTEMS_RECORD_USER_191,
  RTEMS_RECORD_USER_192, RTEMS_RECORD_USER_193, RTEMS_RECORD_USER_194, RTEMS_RECORD_USER_195,
  RTEMS_RECORD_USER_196, RTEMS_RECORD_USER_197, RTEMS_RECORD_USER_198, RTEMS_RECORD_USER_199,
  RTEMS_RECORD_USER_200, RTEMS_RECORD_USER_201, RTEMS_RECORD_USER_202, RTEMS_RECORD_USER_203,
  RTEMS_RECORD_USER_204, RTEMS_RECORD_USER_205, RTEMS_RECORD_USER_206, RTEMS_RECORD_USER_207,
  RTEMS_RECORD_USER_208, RTEMS_RECORD_USER_209, RTEMS_RECORD_USER_210, RTEMS_RECORD_USER_211,
  RTEMS_RECORD_USER_212, RTEMS_RECORD_USER_213, RTEMS_RECORD_USER_214, RTEMS_RECORD_USER_215,
  RTEMS_RECORD_USER_216, RTEMS_RECORD_USER_217, RTEMS_RECORD_USER_218, RTEMS_RECORD_USER_219,
  RTEMS_RECORD_USER_220, RTEMS_RECORD_USER_221, RTEMS_RECORD_USER_222, RTEMS_RECORD_USER_223,
  RTEMS_RECORD_USER_224, RTEMS_RECORD_USER_225, RTEMS_RECORD_USER_226, RTEMS_RECORD_USER_227,
  RTEMS_RECORD_USER_228, RTEMS_RECORD_USER_229, RTEMS_RECORD_USER_230, RTEMS_RECORD_USER_231,
  RTEMS_RECORD_USER_232, RTEMS_RECORD_USER_233, RTEMS_RECORD_USER_234, RTEMS_RECORD_USER_235,
  RTEMS_RECORD_USER_236, RTEMS_RECORD_USER_237, RTEMS_RECORD_USER_238, RTEMS_RECORD_USER_239,
  RTEMS_RECORD_USER_240, RTEMS_RECORD_USER_241, RTEMS_RECORD_USER_242, RTEMS_RECORD_USER_243,
  RTEMS_RECORD_USER_244, RTEMS_RECORD_USER_245, RTEMS_RECORD_USER_246, RTEMS_RECORD_USER_247,
  RTEMS_RECORD_USER_248, RTEMS_RECORD_USER_249, RTEMS_RECORD_USER_250, RTEMS_RECORD_USER_251,
  RTEMS_RECORD_USER_252, RTEMS_RECORD_USER_253, RTEMS_RECORD_USER_254, RTEMS_RECORD_USER_255,
  RTEMS_RECORD_USER_256, RTEMS_RECORD_USER_257, RTEMS_RECORD_USER_258, RTEMS_RECORD_USER_259,
  RTEMS_RECORD_USER_260, RTEMS_RECORD_USER_261, RTEMS_RECORD_USER_262, RTEMS_RECORD_USER_263,
  RTEMS_RECORD_USER_264, RTEMS_RECORD_USER_265, RTEMS_RECORD_USER_266, RTEMS_RECORD_USER_267,
  RTEMS_RECORD_USER_268, RTEMS_RECORD_USER_269, RTEMS_RECORD_USER_270, RTEMS_RECORD_USER_271,
  RTEMS_RECORD_USER_272, RTEMS_RECORD_USER_273, RTEMS_RECORD_USER_274, RTEMS_RECORD_USER_275,
  RTEMS_RECORD_USER_276, RTEMS_RECORD_USER_277, RTEMS_RECORD_USER_278, RTEMS_RECORD_USER_279,
  RTEMS_RECORD_USER_280, RTEMS_RECORD_USER_281, RTEMS_RECORD_USER_282, RTEMS_RECORD_USER_283,
  RTEMS_RECORD_USER_284, RTEMS_RECORD_USER_285, RTEMS_RECORD_USER_286, RTEMS_RECORD_USER_287,
  RTEMS_RECORD_USER_288, RTEMS_RECORD_USER_289, RTEMS_RECORD_USER_290, RTEMS_RECORD_USER_291,
  RTEMS_RECORD_USER_292, RTEMS_RECORD_USER_293, RTEMS_RECORD_USER_294, RTEMS_RECORD_USER_295,
  RTEMS_RECORD_USER_296, RTEMS_RECORD_USER_297, RTEMS_RECORD_USER_298, RTEMS_RECORD_USER_299,
  RTEMS_RECORD_USER_300, RTEMS_RECORD_USER_301, RTEMS_RECORD_USER_302, RTEMS_RECORD_USER_303,
  RTEMS_RECORD_USER_304, RTEMS_RECORD_USER_305, RTEMS_RECORD_USER_306, RTEMS_RECORD_USER_307,
  RTEMS_RECORD_USER_308, RTEMS_RECORD_USER_309, RTEMS_RECORD_USER_310, RTEMS_RECORD_USER_311,
  RTEMS_RECORD_USER_312, RTEMS_RECORD_USER_313, RTEMS_RECORD_USER_314, RTEMS_RECORD_USER_315,
  RTEMS_RECORD_USER_316, RTEMS_RECORD_USER_317, RTEMS_RECORD_USER_318, RTEMS_RECORD_USER_319,
  RTEMS_RECORD_USER_320, RTEMS_RECORD_USER_321, RTEMS_RECORD_USER_322, RTEMS_RECORD_USER_323,
  RTEMS_RECORD_USER_324, RTEMS_RECORD_USER_325, RTEMS_RECORD_USER_326, RTEMS_RECORD_USER_327,
  RTEMS_RECORD_USER_328, RTEMS_RECORD_USER_329, RTEMS_RECORD_USER_330, RTEMS_RECORD_USER_331,
  RTEMS_RECORD_USER_332, RTEMS_RECORD_USER_333, RTEMS_RECORD_USER_334, RTEMS_RECORD_USER_335,
  RTEMS_RECORD_USER_336, RTEMS_RECORD_USER_337, RTEMS_RECORD_USER_338, RTEMS_RECORD_USER_339,
  RTEMS_RECORD_USER_340, RTEMS_RECORD_USER_341, RTEMS_RECORD_USER_342, RTEMS_RECORD_USER_343,
  RTEMS_RECORD_USER_344, RTEMS_RECORD_USER_345, RTEMS_RECORD_USER_346, RTEMS_RECORD_USER_347,
  RTEMS_RECORD_USER_348, RTEMS_RECORD_USER_349, RTEMS_RECORD_USER_350, RTEMS_RECORD_USER_351,
  RTEMS_RECORD_USER_352, RTEMS_RECORD_USER_353, RTEMS_RECORD_USER_354, RTEMS_RECORD_USER_355,
  RTEMS_RECORD_USER_356, RTEMS_RECORD_USER_357, RTEMS_RECORD_USER_358, RTEMS_RECORD_USER_359,
  RTEMS_RECORD_USER_360, RTEMS_RECORD_USER_361, RTEMS_RECORD_USER_362, RTEMS_RECORD_USER_363,
  RTEMS_RECORD_USER_364, RTEMS_RECORD_USER_365, RTEMS_RECORD_USER_366, RTEMS_RECORD_USER_367,
  RTEMS_RECORD_USER_368, RTEMS_RECORD_USER_369, RTEMS_RECORD_USER_370, RTEMS_RECORD_USER_371,
  RTEMS_RECORD_USER_372, RTEMS_RECORD_USER_373, RTEMS_RECORD_USER_374, RTEMS_RECORD_USER_375,
  RTEMS_RECORD_USER_376, RTEMS_RECORD_USER_377, RTEMS_RECORD_USER_378, RTEMS_RECORD_USER_379,
  RTEMS_RECORD_USER_380, RTEMS_RECORD_USER_381, RTEMS_RECORD_USER_382, RTEMS_RECORD_USER_383,
  RTEMS_RECORD_USER_384, RTEMS_RECORD_USER_385, RTEMS_RECORD_USER_386, RTEMS_RECORD_USER_387,
  RTEMS_RECORD_USER_388, RTEMS_RECORD_USER_389, RTEMS_RECORD_USER_390, RTEMS_RECORD_USER_391,
  RTEMS_RECORD_USER_392, RTEMS_RECORD_USER_393, RTEMS_RECORD_USER_394, RTEMS_RECORD_USER_395,
  RTEMS_RECORD_USER_396, RTEMS_RECORD_USER_397, RTEMS_RECORD_USER_398, RTEMS_RECORD_USER_399,
  RTEMS_RECORD_USER_400, RTEMS_RECORD_USER_401, RTEMS_RECORD_USER_402, RTEMS_RECORD_USER_403,
  RTEMS_RECORD_USER_404, RTEMS_RECORD_USER_405, RTEMS_RECORD_USER_406, RTEMS_RECORD_USER_407,
  RTEMS_RECORD_USER_408, RTEMS_RECORD_USER_409, RTEMS_RECORD_USER_410, RTEMS_RECORD_USER_411,
  RTEMS_RECORD_USER_412, RTEMS_RECORD_USER_413, RTEMS_RECORD_USER_414, RTEMS_RECORD_USER_415,
  RTEMS_RECORD_USER_416, RTEMS_RECORD_USER_417, RTEMS_RECORD_USER_418, RTEMS_RECORD_USER_419,
  RTEMS_RECORD_USER_420, RTEMS_RECORD_USER_421, RTEMS_RECORD_USER_422, RTEMS_RECORD_USER_423,
  RTEMS_RECORD_USER_424, RTEMS_RECORD_USER_425, RTEMS_RECORD_USER_426, RTEMS_RECORD_USER_427,
  RTEMS_RECORD_USER_428, RTEMS_RECORD_USER_429, RTEMS_RECORD_USER_430, RTEMS_RECORD_USER_431,
  RTEMS_RECORD_USER_432, RTEMS_RECORD_USER_433, RTEMS_RECORD_USER_434, RTEMS_RECORD_USER_435,
  RTEMS_RECORD_USER_436, RTEMS_RECORD_USER_437, RTEMS_RECORD_USER_438, RTEMS_RECORD_USER_439,
  RTEMS_RECORD_USER_440, RTEMS_RECORD_USER_441, RTEMS_RECORD_USER_442, RTEMS_RECORD_USER_443,
  RTEMS_RECORD_USER_444, RTEMS_RECORD_USER_445, RTEMS_RECORD_USER_446, RTEMS_RECORD_USER_447,
  RTEMS_RECORD_USER_448, RTEMS_RECORD_USER_449, RTEMS_RECORD_USER_450, RTEMS_RECORD_USER_451,
  RTEMS_RECORD_USER_452, RTEMS_RECORD_USER_453, RTEMS_RECORD_USER_454, RTEMS_RECORD_USER_455,
  RTEMS_RECORD_USER_456, RTEMS_RECORD_USER_457, RTEMS_RECORD_USER_458, RTEMS_RECORD_USER_459,
  RTEMS_RECORD_USER_460, RTEMS_RECORD_USER_461, RTEMS_RECORD_USER_462, RTEMS_RECORD_USER_463,
  RTEMS_RECORD_USER_464, RTEMS_RECORD_USER_465, RTEMS_RECORD_USER_466, RTEMS_RECORD_USER_467,
  RTEMS_RECORD_USER_468, RTEMS_RECORD_USER_469, RTEMS_RECORD_USER_470, RTEMS_RECORD_USER_471,
  RTEMS_RECORD_USER_472, RTEMS_RECORD_USER_473, RTEMS_RECORD_USER_474, RTEMS_RECORD_USER_475,
  RTEMS_RECORD_USER_476, RTEMS_RECORD_USER_477, RTEMS_RECORD_USER_478, RTEMS_RECORD_USER_479,
  RTEMS_RECORD_USER_480, RTEMS_RECORD_USER_481, RTEMS_RECORD_USER_482, RTEMS_RECORD_USER_483,
  RTEMS_RECORD_USER_484, RTEMS_RECORD_USER_485, RTEMS_RECORD_USER_486, RTEMS_RECORD_USER_487,
  RTEMS_RECORD_USER_488, RTEMS_RECORD_USER_489, RTEMS_RECORD_USER_490, RTEMS_RECORD_USER_491,
  RTEMS_RECORD_USER_492, RTEMS_RECORD_USER_493, RTEMS_RECORD_USER_494, RTEMS_RECORD_USER_495,
  RTEMS_RECORD_USER_496, RTEMS_RECORD_USER_497, RTEMS_RECORD_USER_498, RTEMS_RECORD_USER_499,
  RTEMS_RECORD_USER_500, RTEMS_RECORD_USER_501, RTEMS_RECORD_USER_502, RTEMS_RECORD_USER_503,
  RTEMS_RECORD_USER_504, RTEMS_RECORD_USER_505, RTEMS_RECORD_USER_506, RTEMS_RECORD_USER_507,
  RTEMS_RECORD_USER_508, RTEMS_RECORD_USER_509, RTEMS_RECORD_USER_510, RTEMS_RECORD_USER_511
}
 The record events.
 

Functions

RTEMS_INLINE_ROUTINE void rtems_record_prepare (rtems_record_context *context)
 Prepares to add and commit record items. More...
 
RTEMS_INLINE_ROUTINE void rtems_record_add (rtems_record_context *context, rtems_record_event event, rtems_record_data data)
 Adds a record item. More...
 
RTEMS_INLINE_ROUTINE void rtems_record_commit (rtems_record_context *context)
 Commits a set of record items. More...
 
void rtems_record_produce (rtems_record_event event, rtems_record_data data)
 Produces a record item. More...
 
void rtems_record_produce_2 (rtems_record_event event_0, rtems_record_data data_0, rtems_record_event event_1, rtems_record_data data_1)
 Produces two record items. More...
 
void rtems_record_produce_n (const rtems_record_item *items, size_t n)
 Produces n record items. More...
 
void rtems_record_drain (rtems_record_drain_visitor visitor, void *arg)
 Drains the record items on all processors. More...
 
ssize_t rtems_record_writev (int fd, bool *written)
 Drains the record items on all processors an writes them to the file descriptor. More...
 
void rtems_record_server (uint16_t port, rtems_interval period)
 Runs a record TCP server loop. More...
 
rtems_status_code rtems_record_start_server (rtems_task_priority priority, uint16_t port, rtems_interval period)
 Starts a record TCP server task. More...
 
void rtems_record_client_init (rtems_record_client_context *ctx, rtems_record_client_handler handler, void *arg)
 Initializes a record client. More...
 
rtems_record_client_status rtems_record_client_run (rtems_record_client_context *ctx, const void *buf, size_t n)
 Runs the record client to consume new stream data. More...
 
struct __attribute__ ((__packed__))
 The native record item. More...
 
const char * rtems_record_event_text (rtems_record_event event)
 

Variables

 rtems_record_item
 
 rtems_record_item_64
 

Detailed Description

Low-level event recording support.

Macro Definition Documentation

◆ RTEMS_RECORD_MAGIC

#define RTEMS_RECORD_MAGIC   0x82e14ec1

Magic number to identify a record item stream.

This is a random number.

◆ RTEMS_RECORD_THE_VERSION

#define RTEMS_RECORD_THE_VERSION   4

The record version.

The record version reflects the record event definitions. It is reported by the RTEMS_RECORD_VERSION event.

◆ RTEMS_RECORD_TIME_EVENT

#define RTEMS_RECORD_TIME_EVENT (   time,
  event 
)    ( ( ( time ) << RTEMS_RECORD_EVENT_BITS ) | ( event ) )

Builds a time event for the specified time stamp and event.

The events are stored in the record item with a time stamp. There are 22 bits allocated to the time stamp and 10 bits allocated to the event. The 22 bits are enough to get reliable time stamps on a system with a 4GHz CPU counter and a 1000Hz clock tick.

Typedef Documentation

◆ rtems_record_data

typedef unsigned long rtems_record_data

The record data integer type.

It is big enough to store 32-bit integers and pointers.

Function Documentation

◆ __attribute__()

struct __attribute__ ( (__packed__)  )

The native record item.

The 64-bit format record item.

◆ rtems_record_add()

RTEMS_INLINE_ROUTINE void rtems_record_add ( rtems_record_context context,
rtems_record_event  event,
rtems_record_data  data 
)

Adds a record item.

Parameters
contextThe record context initialized via rtems_record_prepare().
eventThe record event without a time stamp for the item.
dataThe record data for the item.

◆ rtems_record_client_init()

void rtems_record_client_init ( rtems_record_client_context ctx,
rtems_record_client_handler  handler,
void *  arg 
)

Initializes a record client.

The record client consumes a record item stream produces by the record server.

Parameters
ctxThe record client context to initialize.
handlerThe handler is invoked for each received record item.
argThe handler argument.

◆ rtems_record_client_run()

rtems_record_client_status rtems_record_client_run ( rtems_record_client_context ctx,
const void *  buf,
size_t  n 
)

Runs the record client to consume new stream data.

Parameters
ctxThe record client context.
bufThe buffer with new stream data.
nThe size of the buffer.

◆ rtems_record_commit()

RTEMS_INLINE_ROUTINE void rtems_record_commit ( rtems_record_context context)

Commits a set of record items.

Parameters
contextThe record context initialized via rtems_record_prepare().

◆ rtems_record_drain()

void rtems_record_drain ( rtems_record_drain_visitor  visitor,
void *  arg 
)

Drains the record items on all processors.

Calls the visitor function for each drained item set.

Parameters
visitorThe visitor function.
argThe argument for the visitor function.

◆ rtems_record_prepare()

RTEMS_INLINE_ROUTINE void rtems_record_prepare ( rtems_record_context context)

Prepares to add and commit record items.

This function disables interrupts.

Parameters
contextThe record context which must be used for the following rtems_record_add() and rtems_record_commit() calls. The record context may have an arbitrary content at function entry.
See also
rtems_record_produce().

◆ rtems_record_produce()

void rtems_record_produce ( rtems_record_event  event,
rtems_record_data  data 
)

Produces a record item.

Parameters
eventThe record event without a time stamp for the item.
dataThe record data for the item.

◆ rtems_record_produce_2()

void rtems_record_produce_2 ( rtems_record_event  event_0,
rtems_record_data  data_0,
rtems_record_event  event_1,
rtems_record_data  data_1 
)

Produces two record items.

Parameters
event_0The record event without a time stamp for the first item.
data_0The record data for the first item.
event_1The record event without a time stamp for the second item.
data_1The record data for the second item.

◆ rtems_record_produce_n()

void rtems_record_produce_n ( const rtems_record_item *  items,
size_t  n 
)

Produces n record items.

Parameters
itemThe record items without a time stamps.
nThe count of record items.

◆ rtems_record_server()

void rtems_record_server ( uint16_t  port,
rtems_interval  period 
)

Runs a record TCP server loop.

Parameters
portThe TCP port to listen in host byte order.
periodThe drain period in clock ticks.

◆ rtems_record_start_server()

rtems_status_code rtems_record_start_server ( rtems_task_priority  priority,
uint16_t  port,
rtems_interval  period 
)

Starts a record TCP server task.

Parameters
priorityThe task priority.
portThe TCP port to listen in host byte order.
periodThe drain period in clock ticks.

◆ rtems_record_writev()

ssize_t rtems_record_writev ( int  fd,
bool *  written 
)

Drains the record items on all processors an writes them to the file descriptor.

Parameters
fdThe file descriptor.
writtenSet to true if items were written to the file descriptor, otherwise set to false.
Return values
Thebytes written to the file descriptor.