mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 15:36:25 +00:00
lib: convert xref_threadsched to xref_eventsched
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
3905fb7393
commit
5163a1c560
16
lib/event.c
16
lib/event.c
@ -793,7 +793,7 @@ char *event_timer_to_hhmmss(char *buf, int buf_size, struct event *t_timer)
|
||||
/* Get new thread. */
|
||||
static struct event *thread_get(struct event_master *m, uint8_t type,
|
||||
void (*func)(struct event *), void *arg,
|
||||
const struct xref_threadsched *xref)
|
||||
const struct xref_eventsched *xref)
|
||||
{
|
||||
struct event *thread = event_list_pop(&m->unuse);
|
||||
struct cpu_thread_history tmp;
|
||||
@ -947,7 +947,7 @@ done:
|
||||
}
|
||||
|
||||
/* Add new read thread. */
|
||||
void _event_add_read_write(const struct xref_threadsched *xref,
|
||||
void _event_add_read_write(const struct xref_eventsched *xref,
|
||||
struct event_master *m, void (*func)(struct event *),
|
||||
void *arg, int fd, struct event **t_ptr)
|
||||
{
|
||||
@ -1026,7 +1026,7 @@ void _event_add_read_write(const struct xref_threadsched *xref,
|
||||
}
|
||||
}
|
||||
|
||||
static void _event_add_timer_timeval(const struct xref_threadsched *xref,
|
||||
static void _event_add_timer_timeval(const struct xref_eventsched *xref,
|
||||
struct event_master *m,
|
||||
void (*func)(struct event *), void *arg,
|
||||
struct timeval *time_relative,
|
||||
@ -1080,7 +1080,7 @@ static void _event_add_timer_timeval(const struct xref_threadsched *xref,
|
||||
|
||||
|
||||
/* Add timer event thread. */
|
||||
void _event_add_timer(const struct xref_threadsched *xref,
|
||||
void _event_add_timer(const struct xref_eventsched *xref,
|
||||
struct event_master *m, void (*func)(struct event *),
|
||||
void *arg, long timer, struct event **t_ptr)
|
||||
{
|
||||
@ -1095,7 +1095,7 @@ void _event_add_timer(const struct xref_threadsched *xref,
|
||||
}
|
||||
|
||||
/* Add timer event thread with "millisecond" resolution */
|
||||
void _event_add_timer_msec(const struct xref_threadsched *xref,
|
||||
void _event_add_timer_msec(const struct xref_eventsched *xref,
|
||||
struct event_master *m, void (*func)(struct event *),
|
||||
void *arg, long timer, struct event **t_ptr)
|
||||
{
|
||||
@ -1110,7 +1110,7 @@ void _event_add_timer_msec(const struct xref_threadsched *xref,
|
||||
}
|
||||
|
||||
/* Add timer event thread with "timeval" resolution */
|
||||
void _event_add_timer_tv(const struct xref_threadsched *xref,
|
||||
void _event_add_timer_tv(const struct xref_eventsched *xref,
|
||||
struct event_master *m, void (*func)(struct event *),
|
||||
void *arg, struct timeval *tv, struct event **t_ptr)
|
||||
{
|
||||
@ -1118,7 +1118,7 @@ void _event_add_timer_tv(const struct xref_threadsched *xref,
|
||||
}
|
||||
|
||||
/* Add simple event thread. */
|
||||
void _event_add_event(const struct xref_threadsched *xref,
|
||||
void _event_add_event(const struct xref_eventsched *xref,
|
||||
struct event_master *m, void (*func)(struct event *),
|
||||
void *arg, int val, struct event **t_ptr)
|
||||
{
|
||||
@ -2055,7 +2055,7 @@ void event_call(struct event *thread)
|
||||
}
|
||||
|
||||
/* Execute thread */
|
||||
void _event_execute(const struct xref_threadsched *xref, struct event_master *m,
|
||||
void _event_execute(const struct xref_eventsched *xref, struct event_master *m,
|
||||
void (*func)(struct event *), void *arg, int val)
|
||||
{
|
||||
struct event *thread;
|
||||
|
26
lib/event.h
26
lib/event.h
@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/* Thread management routine header.
|
||||
/* Event management routine header.
|
||||
* Copyright (C) 1998 Kunihiro Ishiguro
|
||||
*/
|
||||
|
||||
@ -57,7 +57,7 @@ struct fd_handler {
|
||||
nfds_t copycount;
|
||||
};
|
||||
|
||||
struct xref_threadsched {
|
||||
struct xref_eventsched {
|
||||
struct xref xref;
|
||||
|
||||
const char *funcname;
|
||||
@ -120,7 +120,7 @@ struct event {
|
||||
struct timeval real;
|
||||
struct cpu_thread_history *hist; /* cache pointer to cpu_history */
|
||||
unsigned long yield; /* yield time in microseconds */
|
||||
const struct xref_threadsched *xref; /* origin location */
|
||||
const struct xref_eventsched *xref; /* origin location */
|
||||
pthread_mutex_t mtx; /* mutex for thread.c functions */
|
||||
bool ignore_timer_late;
|
||||
};
|
||||
@ -174,9 +174,9 @@ struct cpu_thread_history {
|
||||
|
||||
#define _xref_t_a(addfn, type, m, f, a, v, t) \
|
||||
({ \
|
||||
static const struct xref_threadsched _xref __attribute__( \
|
||||
static const struct xref_eventsched _xref __attribute__( \
|
||||
(used)) = { \
|
||||
.xref = XREF_INIT(XREFT_THREADSCHED, NULL, __func__), \
|
||||
.xref = XREF_INIT(XREFT_EVENTSCHED, NULL, __func__), \
|
||||
.funcname = #f, \
|
||||
.dest = #t, \
|
||||
.event_type = EVENT_##type, \
|
||||
@ -197,9 +197,9 @@ struct cpu_thread_history {
|
||||
|
||||
#define event_execute(m, f, a, v) \
|
||||
({ \
|
||||
static const struct xref_threadsched _xref __attribute__( \
|
||||
static const struct xref_eventsched _xref __attribute__( \
|
||||
(used)) = { \
|
||||
.xref = XREF_INIT(XREFT_THREADSCHED, NULL, __func__), \
|
||||
.xref = XREF_INIT(XREFT_EVENTSCHED, NULL, __func__), \
|
||||
.funcname = #f, \
|
||||
.dest = NULL, \
|
||||
.event_type = EVENT_EXECUTE, \
|
||||
@ -214,32 +214,32 @@ void thread_master_set_name(struct event_master *master, const char *name);
|
||||
extern void thread_master_free(struct event_master *m);
|
||||
extern void thread_master_free_unused(struct event_master *m);
|
||||
|
||||
extern void _event_add_read_write(const struct xref_threadsched *xref,
|
||||
extern void _event_add_read_write(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg, int fd,
|
||||
struct event **tref);
|
||||
|
||||
extern void _event_add_timer(const struct xref_threadsched *xref,
|
||||
extern void _event_add_timer(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg, long t,
|
||||
struct event **tref);
|
||||
|
||||
extern void _event_add_timer_msec(const struct xref_threadsched *xref,
|
||||
extern void _event_add_timer_msec(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg, long t,
|
||||
struct event **tref);
|
||||
|
||||
extern void _event_add_timer_tv(const struct xref_threadsched *xref,
|
||||
extern void _event_add_timer_tv(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg,
|
||||
struct timeval *tv, struct event **tref);
|
||||
|
||||
extern void _event_add_event(const struct xref_threadsched *xref,
|
||||
extern void _event_add_event(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg, int val,
|
||||
struct event **tref);
|
||||
|
||||
extern void _event_execute(const struct xref_threadsched *xref,
|
||||
extern void _event_execute(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*fn)(struct event *), void *arg, int val);
|
||||
|
||||
|
@ -149,7 +149,7 @@ out_err:
|
||||
cb->read.cb_error(cb->read.arg, cb->zmqsock);
|
||||
}
|
||||
|
||||
int _frrzmq_event_add_read(const struct xref_threadsched *xref,
|
||||
int _frrzmq_event_add_read(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*msgfunc)(void *arg, void *zmqsock),
|
||||
void (*partfunc)(void *arg, void *zmqsock,
|
||||
@ -257,7 +257,7 @@ out_err:
|
||||
cb->write.cb_error(cb->write.arg, cb->zmqsock);
|
||||
}
|
||||
|
||||
int _frrzmq_event_add_write(const struct xref_threadsched *xref,
|
||||
int _frrzmq_event_add_write(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*msgfunc)(void *arg, void *zmqsock),
|
||||
void (*errfunc)(void *arg, void *zmqsock),
|
||||
|
@ -59,9 +59,9 @@ extern void frrzmq_finish(void);
|
||||
|
||||
#define _xref_zmq_a(type, f, d, call) \
|
||||
({ \
|
||||
static const struct xref_threadsched _xref __attribute__( \
|
||||
static const struct xref_eventsched _xref __attribute__( \
|
||||
(used)) = { \
|
||||
.xref = XREF_INIT(XREFT_THREADSCHED, NULL, __func__), \
|
||||
.xref = XREF_INIT(XREFT_EVENTSCHED, NULL, __func__), \
|
||||
.funcname = #f, \
|
||||
.dest = #d, \
|
||||
.event_type = EVENT_##type, \
|
||||
@ -108,14 +108,14 @@ struct frrzmq_cb;
|
||||
* loop.
|
||||
*/
|
||||
extern int
|
||||
_frrzmq_event_add_read(const struct xref_threadsched *xref,
|
||||
_frrzmq_event_add_read(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*msgfunc)(void *arg, void *zmqsock),
|
||||
void (*partfunc)(void *arg, void *zmqsock,
|
||||
zmq_msg_t *msg, unsigned partnum),
|
||||
void (*errfunc)(void *arg, void *zmqsock), void *arg,
|
||||
void *zmqsock, struct frrzmq_cb **cb);
|
||||
extern int _frrzmq_event_add_write(const struct xref_threadsched *xref,
|
||||
extern int _frrzmq_event_add_write(const struct xref_eventsched *xref,
|
||||
struct event_master *master,
|
||||
void (*msgfunc)(void *arg, void *zmqsock),
|
||||
void (*errfunc)(void *arg, void *zmqsock),
|
||||
|
@ -20,7 +20,7 @@ extern "C" {
|
||||
enum xref_type {
|
||||
XREFT_NONE = 0,
|
||||
|
||||
XREFT_THREADSCHED = 0x100,
|
||||
XREFT_EVENTSCHED = 0x100,
|
||||
|
||||
XREFT_LOGMSG = 0x200,
|
||||
XREFT_ASSERT = 0x280,
|
||||
|
@ -40,7 +40,7 @@ tool available) could not be found. It should be included with the sources.
|
||||
|
||||
# constants, need to be kept in sync manually...
|
||||
|
||||
XREFT_THREADSCHED = 0x100
|
||||
XREFT_EVENTSCHED = 0x100
|
||||
XREFT_LOGMSG = 0x200
|
||||
XREFT_DEFUN = 0x300
|
||||
XREFT_INSTALL_ELEMENT = 0x301
|
||||
@ -110,7 +110,7 @@ class XrefThreadSched(ELFDissectStruct, XrelfoJson):
|
||||
struct = "xref_threadsched"
|
||||
|
||||
|
||||
Xref.containers[XREFT_THREADSCHED] = XrefThreadSched
|
||||
Xref.containers[XREFT_EVENTSCHED] = XrefThreadSched
|
||||
|
||||
|
||||
class XrefLogmsg(ELFDissectStruct, XrelfoJson):
|
||||
|
Loading…
Reference in New Issue
Block a user