github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/freebsd/ktimer.txt (about)

     1  # Copyright 2020 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  include <time.h>
     5  include <signal.h>
     6  
     7  resource timerid[int32]
     8  
     9  type signalno int32[0:33]
    10  
    11  ktimer_create(id flags[clock_id], evp ptr[in, sigevent], timerid ptr[out, timerid])
    12  ktimer_delete(timerid timerid)
    13  ktimer_settime(timerid timerid, flags flags[timer_flags], value ptr[in, itimerspec], ovalue ptr[out, itimerspec])
    14  ktimer_gettime(timerid timerid, value ptr[out, itimerspec])
    15  ktimer_getoverrun(timerid timerid)
    16  
    17  define SIGEVENT_SIZE	sizeof(struct sigevent)
    18  
    19  sigevent {
    20  	notify	flags[sigev_notify, int32]
    21  	signo	signalno
    22  	val	sigval
    23  	u	sigevent_u
    24  } [size[SIGEVENT_SIZE]]
    25  
    26  sigevent_u [
    27  	tid		pid
    28  	thr		sigevent_thread
    29  	ke_flags	flags[evflags, int16]
    30  	spare		array[intptr, 8]
    31  ]
    32  
    33  sigevent_thread {
    34  	func	ptr[in, text[target]]
    35  	attr	buffer[in]
    36  }
    37  
    38  itimerspec {
    39  	interv	timespec
    40  	value	timespec
    41  }
    42  
    43  sigval [
    44  	sival_int	int32
    45  	sival_ptr	intptr
    46  	sigval_int	int32
    47  	sigval_ptr	intptr
    48  ]
    49  
    50  sigev_notify = SIGEV_NONE, SIGEV_SIGNAL, SIGEV_THREAD, SIGEV_KEVENT, SIGEV_THREAD_ID