mcst-linux-kernel/linux-kernel-5.10/include/uapi/linux/mcst_rt.h

87 lines
2.8 KiB
C

/*
* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
* Copyright (c) 2023 MCST
*/
#ifndef _UAPI_LINUX_MCST_RT_H
#define _UAPI_LINUX_MCST_RT_H
#define RT_BIT_HZ_RT 2 /* no tickless (tick_nohz_enabled=off) */
#define RT_BIT_NO_CPU_BLNC 4 /* scheduler no migration, no balancing */
#define RT_BIT_NO_RD_AHEAD 7 /* turn off on read ahead or warn if any */
#define RT_BIT_NO_IO_SCHED 8 /* turn off on IO schediling (elevator) */
#define RT_BIT_MLOCK_DONE 14 /* prohibit new mmap() & PF occurence */
#define RT_BIT_NO_FORK 16 /* warning if forking */
#define RT_BIT_PGFLT_RTWRN 17 /* warn if page fault in rt task */
#define RT_BIT_PGFLT_WRN 18 /* warn if page fault in any task */
#define RT_BIT_NO_SETTIME 19 /* settimeofday() return EPRERM for root */
#define RT_BIT_DEBUG 31 /* for tmp debugging
in timer interrupt */
#define RTS_NO_CPU_BLNC (1 << RT_BIT_NO_CPU_BLNC)
#define RTS_NO_RD_AHEAD (1 << RT_BIT_NO_RD_AHEAD)
#define RTS_NO_IO_SCHED (1 << RT_BIT_NO_IO_SCHED)
#define RTS_HZ_RT (1 << RT_BIT_HZ_RT)
#define VM_MLOCK_DONE (1 << RT_BIT_MLOCK_DONE)
#define RTS_NO_FORK (1 << RT_BIT_NO_FORK)
#define RTS_PGFLT_RTWRN (1 << RT_BIT_PGFLT_RTWRN)
#define RTS_PGFLT_WRN (1 << RT_BIT_PGFLT_WRN)
#define RTS_NO_SETTIME (1 << RT_BIT_NO_SETTIME)
#define RTS_DEBUG (1 << RT_BIT_DEBUG)
/* MCST_RT soft flags: */
#define RTS_SOFT__RT (RTS_NO_CPU_BLNC | RTS_NO_RD_AHEAD |\
RTS_NO_IO_SCHED | RTS_HZ_RT)
/* MCST_RT hard flags: */
#define RTS_HARD__RT RTS_SOFT__RT | RTS_FLUSH_ALL | RTS_PGFLT_WRN | RTS_PGFLT_WRN
#define RTS__SOFT_RT RTS_SOFT__RT
#define EL_GET_CPUS_NUM 100
#define EL_MY_CPU_ID 101
#define EL_CPU_BIND_DEPRICATED 102
#define EL_TICK_TIME 105
#define EL_RTS_MODE 106
#define EL_SET_RTS_ACTIVE 107
#define EL_GET_RTS_ACTIVE 108
#define EL_GET_CPUS_MASK 115
#define SPARC_GET_USEC 116
#define EL_SET_IRQ_MASK 120
#define EL_SET_NET_RT 126
#define EL_UNSET_NET_RT 127
#define EL_GET_CPU_FREQ 135
#define EL_ATOMIC_ADD 141
#define EL_SET_MLOCK_CONTROL 153
#define EL_UNSET_MLOCK_CONTROL 154
/* #ifdef EL_TIMERFD_USING */
#define EL_OPEN_TIMERFD 161
#define EL_TIMERFD_SETTIME 162
/* #endif EL_TIMERFD_USING */
#define EL_SYNC_CYCLS 163
#define EL_GET_TIMES 165
#define EL_USER_TICK 166
#define EL_RT_CPU 167
#define EL_SCLKR_READ 168
#define EL_MISC_TO_DEBUG 500
/* offsets of times in long long array for EL_GET_TIMES */
#define EL_GET_TIMES_WAKEUP 0
#define EL_GET_TIMES_SCHED_ENTER 1
#define EL_GET_TIMES_SCHED_LOCK 2
#define EL_GET_TIMES_WOKEN 3
#define EL_GET_TIMES_LAST_PRMT_ENAB 4
#define EL_GET_TIMES_INTR_W_DEPRECATED 5
#define EL_GET_TIMES_INTR_S_DEPRECATED 6
#define EL_GET_TIMES_CNTXB 7
#define EL_GET_TIMES_CNTXE 8
#define EL_GET_TIMES_INTR_SC 9
/* this is start number for el_posix support sys_calls */
#define PTHREAD_INTRF_START 500
#endif /* _UAPI_LINUX_MCST_RT_H */