sync code with last improvements from OpenBSD

This commit is contained in:
purplerain 2023-10-08 20:10:59 +00:00
parent 3252c81e6b
commit cb73df2d98
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
8 changed files with 82 additions and 34 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: kern_clockintr.c,v 1.58 2023/09/25 00:29:31 cheloha Exp $ */
/* $OpenBSD: kern_clockintr.c,v 1.59 2023/10/08 21:08:00 cheloha Exp $ */
/*
* Copyright (c) 2003 Dale Rahn <drahn@openbsd.org>
* Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org>
@ -41,6 +41,8 @@ void clockqueue_pend_delete(struct clockintr_queue *, struct clockintr *);
void clockqueue_pend_insert(struct clockintr_queue *, struct clockintr *,
uint64_t);
void clockqueue_reset_intrclock(struct clockintr_queue *);
void intrclock_rearm(struct intrclock *, uint64_t);
void intrclock_trigger(struct intrclock *);
uint64_t nsec_advance(uint64_t *, uint64_t, uint64_t);
/*
@ -492,6 +494,18 @@ clockqueue_reset_intrclock(struct clockintr_queue *cq)
intrclock_trigger(&cq->cq_intrclock);
}
void
intrclock_rearm(struct intrclock *ic, uint64_t nsecs)
{
ic->ic_rearm(ic->ic_cookie, nsecs);
}
void
intrclock_trigger(struct intrclock *ic)
{
ic->ic_trigger(ic->ic_cookie);
}
/*
* Advance *next in increments of period until it exceeds now.
* Returns the number of increments *next was advanced.

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ifq.c,v 1.51 2023/10/05 11:08:56 bluhm Exp $ */
/* $OpenBSD: ifq.c,v 1.52 2023/10/08 07:44:52 claudio Exp $ */
/*
* Copyright (c) 2015 David Gwynne <dlg@openbsd.org>
@ -529,14 +529,6 @@ ifq_hdatalen(struct ifqueue *ifq)
return (len);
}
void
ifq_set_maxlen(struct ifqueue *ifq, unsigned int maxlen)
{
mtx_enter(&ifq->ifq_mtx);
ifq->ifq_maxlen = maxlen;
mtx_leave(&ifq->ifq_mtx);
}
unsigned int
ifq_purge(struct ifqueue *ifq)
{

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ifq.h,v 1.39 2023/10/05 11:08:56 bluhm Exp $ */
/* $OpenBSD: ifq.h,v 1.40 2023/10/08 07:44:52 claudio Exp $ */
/*
* Copyright (c) 2015 David Gwynne <dlg@openbsd.org>
@ -435,7 +435,6 @@ void ifq_deq_commit(struct ifqueue *, struct mbuf *);
void ifq_deq_rollback(struct ifqueue *, struct mbuf *);
struct mbuf *ifq_dequeue(struct ifqueue *);
int ifq_hdatalen(struct ifqueue *);
void ifq_set_maxlen(struct ifqueue *, unsigned int);
void ifq_mfreem(struct ifqueue *, struct mbuf *);
void ifq_mfreeml(struct ifqueue *, struct mbuf_list *);
unsigned int ifq_purge(struct ifqueue *);
@ -449,8 +448,9 @@ int ifq_deq_sleep(struct ifqueue *, struct mbuf **, int, int,
const char *, volatile unsigned int *,
volatile unsigned int *);
#define ifq_len(_ifq) READ_ONCE((_ifq)->ifq_len)
#define ifq_empty(_ifq) (ifq_len(_ifq) == 0)
#define ifq_len(_ifq) ((_ifq)->ifq_len)
#define ifq_empty(_ifq) (ifq_len(_ifq) == 0)
#define ifq_set_maxlen(_ifq, _l) ((_ifq)->ifq_maxlen = (_l))
static inline int
ifq_is_priq(struct ifqueue *ifq)
@ -490,8 +490,8 @@ int ifiq_input(struct ifiqueue *, struct mbuf_list *);
int ifiq_enqueue(struct ifiqueue *, struct mbuf *);
void ifiq_add_data(struct ifiqueue *, struct if_data *);
#define ifiq_len(_ifiq) READ_ONCE(ml_len(&(_ifiq)->ifiq_ml))
#define ifiq_empty(_ifiq) (ifiq_len(_ifiq) == 0)
#define ifiq_len(_ifiq) ml_len(&(_ifiq)->ifiq_ml)
#define ifiq_empty(_ifiq) ml_empty(&(_ifiq)->ifiq_ml)
#endif /* _KERNEL */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: clockintr.h,v 1.20 2023/09/17 15:24:35 cheloha Exp $ */
/* $OpenBSD: clockintr.h,v 1.21 2023/10/08 21:08:00 cheloha Exp $ */
/*
* Copyright (c) 2020-2022 Scott Cheloha <cheloha@openbsd.org>
*
@ -47,18 +47,6 @@ struct intrclock {
void (*ic_trigger)(void *);
};
static inline void
intrclock_rearm(struct intrclock *ic, uint64_t nsecs)
{
ic->ic_rearm(ic->ic_cookie, nsecs);
}
static inline void
intrclock_trigger(struct intrclock *ic)
{
ic->ic_trigger(ic->ic_cookie);
}
/*
* Schedulable clock interrupt callback.
*