diff options
Diffstat (limited to 'cpukit/include/rtems/recorddata.h')
-rw-r--r-- | cpukit/include/rtems/recorddata.h | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/cpukit/include/rtems/recorddata.h b/cpukit/include/rtems/recorddata.h new file mode 100644 index 0000000000..39d465aa7b --- /dev/null +++ b/cpukit/include/rtems/recorddata.h @@ -0,0 +1,155 @@ +/* + * 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 <stdint.h> + +#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 */ |