/* * SPDX-License-Identifier: BSD-2-Clause * * Copyright (C) 2018 embedded brains GmbH * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RTEMS_RECORDDATA_H #define _RTEMS_RECORDDATA_H #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define RTEMS_RECORD_VERSION 1 #define RTEMS_RECORD_FORMAT_LE_32 0x11111111 #define RTEMS_RECORD_FORMAT_LE_64 0x22222222 #define RTEMS_RECORD_FORMAT_BE_32 0x33333333 #define RTEMS_RECORD_FORMAT_BE_64 0x44444444 typedef enum { /* There are 512 events reserved for the system */ RTEMS_RECORD_EVENT_OVERFLOW, RTEMS_RECORD_EVENT_VERSION, /* Keep in lexicographical order */ RTEMS_RECORD_EVENT_ACCEPT, RTEMS_RECORD_EVENT_BIND, RTEMS_RECORD_EVENT_CHOWN, RTEMS_RECORD_EVENT_CLOSE, RTEMS_RECORD_EVENT_CONNECT, RTEMS_RECORD_EVENT_FCHMOD, RTEMS_RECORD_EVENT_FCNTL, RTEMS_RECORD_EVENT_FDATASYNC, RTEMS_RECORD_EVENT_FSTAT, RTEMS_RECORD_EVENT_FSYNC, RTEMS_RECORD_EVENT_FTRUNCATE, RTEMS_RECORD_EVENT_HEAP_ALLOC, RTEMS_RECORD_EVENT_HEAP_FREE, RTEMS_RECORD_EVENT_HEAP_SIZE, RTEMS_RECORD_EVENT_HEAP_USAGE, RTEMS_RECORD_EVENT_INTERUPT_BEGIN, RTEMS_RECORD_EVENT_INTERUPT_END, RTEMS_RECORD_EVENT_INTERUPT_INSTALL, RTEMS_RECORD_EVENT_INTERUPT_REMOVE, RTEMS_RECORD_EVENT_IOCTL, RTEMS_RECORD_EVENT_KEVENT, RTEMS_RECORD_EVENT_KQUEUE, RTEMS_RECORD_EVENT_LINK, RTEMS_RECORD_EVENT_LSEEK, RTEMS_RECORD_EVENT_MKNOD, RTEMS_RECORD_EVENT_MMAP, RTEMS_RECORD_EVENT_MOUNT, RTEMS_RECORD_EVENT_OPEN, RTEMS_RECORD_EVENT_POLL, RTEMS_RECORD_EVENT_PROCESSOR, RTEMS_RECORD_EVENT_READ, RTEMS_RECORD_EVENT_READLINK, RTEMS_RECORD_EVENT_READV, RTEMS_RECORD_EVENT_RECV, RTEMS_RECORD_EVENT_RECVFROM, RTEMS_RECORD_EVENT_RECVMSG, RTEMS_RECORD_EVENT_RENAME, RTEMS_RECORD_EVENT_SELECT, RTEMS_RECORD_EVENT_SEND, RTEMS_RECORD_EVENT_SENDMSG, RTEMS_RECORD_EVENT_SENDTO, RTEMS_RECORD_EVENT_SOCKET, RTEMS_RECORD_EVENT_STATVFS, RTEMS_RECORD_EVENT_SYMLINK, RTEMS_RECORD_EVENT_THREAD_CREATED, RTEMS_RECORD_EVENT_THREAD_CREATED_BY, RTEMS_RECORD_EVENT_THREAD_DELETED, RTEMS_RECORD_EVENT_THREAD_DELETED_BY, RTEMS_RECORD_EVENT_THREAD_PRIO_CURRENT_HIGH, RTEMS_RECORD_EVENT_THREAD_PRIO_CURRENT_LOW, RTEMS_RECORD_EVENT_THREAD_PRIO_REAL_HIGH, RTEMS_RECORD_EVENT_THREAD_PRIO_REAL_LOW, RTEMS_RECORD_EVENT_THREAD_STACK_CURRENT, RTEMS_RECORD_EVENT_THREAD_STACK_SIZE, RTEMS_RECORD_EVENT_THREAD_STACK_USAGE, RTEMS_RECORD_EVENT_THREAD_SWITCH_IN, RTEMS_RECORD_EVENT_THREAD_SWITCH_OUT, RTEMS_RECORD_EVENT_THREAD_TERMINATED, RTEMS_RECORD_EVENT_UMA_ALLOC_PTR, RTEMS_RECORD_EVENT_UMA_ALLOC_ZONE, RTEMS_RECORD_EVENT_UMA_FREE_PTR, RTEMS_RECORD_EVENT_UMA_FREE_ZONE, RTEMS_RECORD_EVENT_UNLINK, RTEMS_RECORD_EVENT_UNMOUNT, RTEMS_RECORD_EVENT_UPTIME_HIGH, RTEMS_RECORD_EVENT_UPTIME_LOW, RTEMS_RECORD_EVENT_WORKSPACE_ALLOC, RTEMS_RECORD_EVENT_WORKSPACE_FREE, RTEMS_RECORD_EVENT_WORKSPACE_SIZE, RTEMS_RECORD_EVENT_WORKSPACE_USAGE, RTEMS_RECORD_EVENT_WRITE, RTEMS_RECORD_EVENT_WRITEV, /* There are 512 events reserved for the user */ RTEMS_RECORD_EVENT_USER = 512, RTEMS_RECORD_EVENT_LAST = 1023 } rtems_record_event; #define RTEMS_RECORD_TIME_EVENT( time, event ) ( ( ( time ) << 10 ) | ( event ) ) typedef unsigned long rtems_record_data; typedef struct __attribute__((__packed__)) { uint32_t event; rtems_record_data data; } rtems_record_item; typedef struct __attribute__((__packed__)) { uint32_t event; uint32_t data; } rtems_record_item_32; typedef struct __attribute__((__packed__)) { uint32_t event; uint64_t data; } rtems_record_item_64; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _RTEMS_RECORDDATA_H */