sync with OpenBSD -current
This commit is contained in:
parent
0ad7fbc84b
commit
aee4243932
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: kern_clockintr.c,v 1.67 2024/02/12 22:07:33 cheloha Exp $ */
|
/* $OpenBSD: kern_clockintr.c,v 1.68 2024/02/24 01:43:32 cheloha Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003 Dale Rahn <drahn@openbsd.org>
|
* Copyright (c) 2003 Dale Rahn <drahn@openbsd.org>
|
||||||
* Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org>
|
* Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org>
|
||||||
@ -36,11 +36,11 @@ void clockintr_hardclock(struct clockrequest *, void *, void *);
|
|||||||
void clockintr_schedule_locked(struct clockintr *, uint64_t);
|
void clockintr_schedule_locked(struct clockintr *, uint64_t);
|
||||||
void clockqueue_intrclock_install(struct clockintr_queue *,
|
void clockqueue_intrclock_install(struct clockintr_queue *,
|
||||||
const struct intrclock *);
|
const struct intrclock *);
|
||||||
|
void clockqueue_intrclock_reprogram(struct clockintr_queue *);
|
||||||
uint64_t clockqueue_next(const struct clockintr_queue *);
|
uint64_t clockqueue_next(const struct clockintr_queue *);
|
||||||
void clockqueue_pend_delete(struct clockintr_queue *, struct clockintr *);
|
void clockqueue_pend_delete(struct clockintr_queue *, struct clockintr *);
|
||||||
void clockqueue_pend_insert(struct clockintr_queue *, struct clockintr *,
|
void clockqueue_pend_insert(struct clockintr_queue *, struct clockintr *,
|
||||||
uint64_t);
|
uint64_t);
|
||||||
void clockqueue_reset_intrclock(struct clockintr_queue *);
|
|
||||||
void intrclock_rearm(struct intrclock *, uint64_t);
|
void intrclock_rearm(struct intrclock *, uint64_t);
|
||||||
void intrclock_trigger(struct intrclock *);
|
void intrclock_trigger(struct intrclock *);
|
||||||
uint64_t nsec_advance(uint64_t *, uint64_t, uint64_t);
|
uint64_t nsec_advance(uint64_t *, uint64_t, uint64_t);
|
||||||
@ -338,7 +338,7 @@ clockintr_cancel_locked(struct clockintr *cl)
|
|||||||
if (ISSET(cq->cq_flags, CQ_INTRCLOCK)) {
|
if (ISSET(cq->cq_flags, CQ_INTRCLOCK)) {
|
||||||
if (was_next && !TAILQ_EMPTY(&cq->cq_pend)) {
|
if (was_next && !TAILQ_EMPTY(&cq->cq_pend)) {
|
||||||
if (cq == &curcpu()->ci_queue)
|
if (cq == &curcpu()->ci_queue)
|
||||||
clockqueue_reset_intrclock(cq);
|
clockqueue_intrclock_reprogram(cq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -410,7 +410,7 @@ clockintr_schedule_locked(struct clockintr *cl, uint64_t expiration)
|
|||||||
if (ISSET(cq->cq_flags, CQ_INTRCLOCK)) {
|
if (ISSET(cq->cq_flags, CQ_INTRCLOCK)) {
|
||||||
if (cl == TAILQ_FIRST(&cq->cq_pend)) {
|
if (cl == TAILQ_FIRST(&cq->cq_pend)) {
|
||||||
if (cq == &curcpu()->ci_queue)
|
if (cq == &curcpu()->ci_queue)
|
||||||
clockqueue_reset_intrclock(cq);
|
clockqueue_intrclock_reprogram(cq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cl == cq->cq_running)
|
if (cl == cq->cq_running)
|
||||||
@ -507,7 +507,7 @@ clockqueue_pend_insert(struct clockintr_queue *cq, struct clockintr *cl,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
clockqueue_reset_intrclock(struct clockintr_queue *cq)
|
clockqueue_intrclock_reprogram(struct clockintr_queue *cq)
|
||||||
{
|
{
|
||||||
uint64_t exp, now;
|
uint64_t exp, now;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: kern_tc.c,v 1.82 2023/02/04 19:19:36 cheloha Exp $ */
|
/* $OpenBSD: kern_tc.c,v 1.83 2024/02/23 23:01:15 cheloha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000 Poul-Henning Kamp <phk@FreeBSD.org>
|
* Copyright (c) 2000 Poul-Henning Kamp <phk@FreeBSD.org>
|
||||||
@ -96,7 +96,7 @@ static struct timehands th1 = {
|
|||||||
static struct timehands th0 = {
|
static struct timehands th0 = {
|
||||||
.th_counter = &dummy_timecounter,
|
.th_counter = &dummy_timecounter,
|
||||||
.th_scale = UINT64_MAX / 1000000,
|
.th_scale = UINT64_MAX / 1000000,
|
||||||
.th_offset = { .sec = 1, .frac = 0 },
|
.th_offset = { .sec = 0, .frac = 0 },
|
||||||
.th_generation = 1,
|
.th_generation = 1,
|
||||||
.th_next = &th1
|
.th_next = &th1
|
||||||
};
|
};
|
||||||
@ -117,7 +117,7 @@ static SLIST_HEAD(, timecounter) tc_list = SLIST_HEAD_INITIALIZER(tc_list);
|
|||||||
* examining kernel core dumps.
|
* examining kernel core dumps.
|
||||||
*/
|
*/
|
||||||
volatile time_t naptime = 0;
|
volatile time_t naptime = 0;
|
||||||
volatile time_t time_second = 1;
|
volatile time_t time_second = 0;
|
||||||
volatile time_t time_uptime = 0;
|
volatile time_t time_uptime = 0;
|
||||||
|
|
||||||
static int timestepwarnings;
|
static int timestepwarnings;
|
||||||
|
Loading…
Reference in New Issue
Block a user