FreeBSD kernel kern code
kern_et.c File Reference
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/sbuf.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
#include <sys/queue.h>
#include <sys/timeet.h>
Include dependency graph for kern_et.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
 SLIST_HEAD (et_eventtimers_list, eventtimer)
 
 MTX_SYSINIT (et_eventtimers_init, &et_eventtimers_mtx, "et_mtx", MTX_DEF)
 
 SYSCTL_NODE (_kern, OID_AUTO, eventtimer, CTLFLAG_RW|CTLFLAG_MPSAFE, 0, "Event timers")
 
static SYSCTL_NODE (_kern_eventtimer, OID_AUTO, et, CTLFLAG_RW|CTLFLAG_MPSAFE, 0, "")
 
int et_register (struct eventtimer *et)
 
int et_deregister (struct eventtimer *et)
 
void et_change_frequency (struct eventtimer *et, uint64_t newfreq)
 
struct eventtimer * et_find (const char *name, int check, int want)
 
int et_init (struct eventtimer *et, et_event_cb_t *event, et_deregister_cb_t *deregister, void *arg)
 
int et_start (struct eventtimer *et, sbintime_t first, sbintime_t period)
 
int et_stop (struct eventtimer *et)
 
int et_ban (struct eventtimer *et)
 
int et_free (struct eventtimer *et)
 
static int sysctl_kern_eventtimer_choice (SYSCTL_HANDLER_ARGS)
 
 SYSCTL_PROC (_kern_eventtimer, OID_AUTO, choice, CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, 0, 0, sysctl_kern_eventtimer_choice, "A", "Present event timers")
 

Variables

static struct et_eventtimers_list eventtimers = SLIST_HEAD_INITIALIZER(et_eventtimers)
 
struct mtx et_eventtimers_mtx
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ et_ban()

int et_ban ( struct eventtimer *  et)

Definition at line 221 of file kern_et.c.

◆ et_change_frequency()

void et_change_frequency ( struct eventtimer *  et,
uint64_t  newfreq 
)

Definition at line 128 of file kern_et.c.

References cpu_et_frequency().

Here is the call graph for this function:

◆ et_deregister()

int et_deregister ( struct eventtimer *  et)

Definition at line 106 of file kern_et.c.

References eventtimers, and sysctl_remove_oid().

Here is the call graph for this function:

◆ et_find()

struct eventtimer * et_find ( const char *  name,
int  check,
int  want 
)

Definition at line 138 of file kern_et.c.

References eventtimers, and name.

Referenced by cpu_initclocks_bsp(), and sysctl_kern_eventtimer_timer().

Here is the caller graph for this function:

◆ et_free()

int et_free ( struct eventtimer *  et)

Definition at line 230 of file kern_et.c.

Referenced by sysctl_kern_eventtimer_timer().

Here is the caller graph for this function:

◆ et_init()

int et_init ( struct eventtimer *  et,
et_event_cb_t *  event,
et_deregister_cb_t *  deregister,
void *  arg 
)

Definition at line 160 of file kern_et.c.

Referenced by cpu_initclocks_bsp(), and sysctl_kern_eventtimer_timer().

Here is the caller graph for this function:

◆ et_register()

int et_register ( struct eventtimer *  et)

Definition at line 56 of file kern_et.c.

References bootverbose, eventtimers, and printf().

Here is the call graph for this function:

◆ et_start()

int et_start ( struct eventtimer *  et,
sbintime_t  first,
sbintime_t  period 
)

Definition at line 182 of file kern_et.c.

Referenced by loadtimer().

Here is the caller graph for this function:

◆ et_stop()

int et_stop ( struct eventtimer *  et)

Definition at line 209 of file kern_et.c.

Referenced by configtimer(), and doconfigtimer().

Here is the caller graph for this function:

◆ MTX_SYSINIT()

MTX_SYSINIT ( et_eventtimers_init  ,
et_eventtimers_mtx,
"et_mtx"  ,
MTX_DEF   
)

◆ SLIST_HEAD()

SLIST_HEAD ( et_eventtimers_list  ,
eventtimer   
)

◆ sysctl_kern_eventtimer_choice()

static int sysctl_kern_eventtimer_choice ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 242 of file kern_et.c.

References eventtimers, sbuf_data(), sbuf_delete(), sbuf_finish(), sbuf_len(), sbuf_new(), sbuf_printf(), and sbuf_putc().

Here is the call graph for this function:

◆ SYSCTL_NODE() [1/2]

SYSCTL_NODE ( _kern  ,
OID_AUTO  ,
eventtimer  ,
CTLFLAG_RW|  CTLFLAG_MPSAFE,
,
"Event timers"   
)

◆ SYSCTL_NODE() [2/2]

static SYSCTL_NODE ( _kern_eventtimer  ,
OID_AUTO  ,
et  ,
CTLFLAG_RW|  CTLFLAG_MPSAFE,
,
""   
)
static

◆ SYSCTL_PROC()

SYSCTL_PROC ( _kern_eventtimer  ,
OID_AUTO  ,
choice  ,
CTLTYPE_STRING|CTLFLAG_RD|  CTLFLAG_MPSAFE,
,
,
sysctl_kern_eventtimer_choice  ,
"A"  ,
"Present event timers"   
)

Variable Documentation

◆ et_eventtimers_mtx

struct mtx et_eventtimers_mtx

Definition at line 43 of file kern_et.c.

◆ eventtimers

struct et_eventtimers_list eventtimers = SLIST_HEAD_INITIALIZER(et_eventtimers)
static

Definition at line 41 of file kern_et.c.

Referenced by et_deregister(), et_find(), et_register(), and sysctl_kern_eventtimer_choice().