kernel
This commit is contained in:
parent
b59f84ee36
commit
cfab1d3ce7
83468 changed files with 37938688 additions and 0 deletions
linux-6.8.1/arch/um/include/linux
91
linux-6.8.1/arch/um/include/linux/time-internal.h
Normal file
91
linux-6.8.1/arch/um/include/linux/time-internal.h
Normal file
|
@ -0,0 +1,91 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2012 - 2014 Cisco Systems
|
||||
* Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
|
||||
*/
|
||||
|
||||
#ifndef __TIMER_INTERNAL_H__
|
||||
#define __TIMER_INTERNAL_H__
|
||||
#include <linux/list.h>
|
||||
#include <asm/bug.h>
|
||||
#include <shared/timetravel.h>
|
||||
|
||||
#define TIMER_MULTIPLIER 256
|
||||
#define TIMER_MIN_DELTA 500
|
||||
|
||||
#ifdef CONFIG_UML_TIME_TRAVEL_SUPPORT
|
||||
struct time_travel_event {
|
||||
unsigned long long time;
|
||||
void (*fn)(struct time_travel_event *d);
|
||||
struct list_head list;
|
||||
bool pending, onstack;
|
||||
};
|
||||
|
||||
void time_travel_sleep(void);
|
||||
|
||||
static inline void
|
||||
time_travel_set_event_fn(struct time_travel_event *e,
|
||||
void (*fn)(struct time_travel_event *d))
|
||||
{
|
||||
e->fn = fn;
|
||||
}
|
||||
|
||||
void __time_travel_propagate_time(void);
|
||||
|
||||
static inline void time_travel_propagate_time(void)
|
||||
{
|
||||
if (time_travel_mode == TT_MODE_EXTERNAL)
|
||||
__time_travel_propagate_time();
|
||||
}
|
||||
|
||||
void __time_travel_wait_readable(int fd);
|
||||
|
||||
static inline void time_travel_wait_readable(int fd)
|
||||
{
|
||||
if (time_travel_mode == TT_MODE_EXTERNAL)
|
||||
__time_travel_wait_readable(fd);
|
||||
}
|
||||
|
||||
void time_travel_add_irq_event(struct time_travel_event *e);
|
||||
void time_travel_add_event_rel(struct time_travel_event *e,
|
||||
unsigned long long delay_ns);
|
||||
bool time_travel_del_event(struct time_travel_event *e);
|
||||
#else
|
||||
struct time_travel_event {
|
||||
};
|
||||
|
||||
static inline void time_travel_sleep(void)
|
||||
{
|
||||
}
|
||||
|
||||
/* this is a macro so the event/function need not exist */
|
||||
#define time_travel_set_event_fn(e, fn) do {} while (0)
|
||||
|
||||
static inline void time_travel_propagate_time(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void time_travel_wait_readable(int fd)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void time_travel_add_irq_event(struct time_travel_event *e)
|
||||
{
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* not inlines so the data structure need not exist,
|
||||
* cause linker failures
|
||||
*/
|
||||
extern void time_travel_not_configured(void);
|
||||
#define time_travel_add_event_rel(...) time_travel_not_configured()
|
||||
#define time_travel_del_event(...) time_travel_not_configured()
|
||||
#endif /* CONFIG_UML_TIME_TRAVEL_SUPPORT */
|
||||
|
||||
/*
|
||||
* Without CONFIG_UML_TIME_TRAVEL_SUPPORT this is a linker error if used,
|
||||
* which is intentional since we really shouldn't link it in that case.
|
||||
*/
|
||||
void time_travel_ndelay(unsigned long nsec);
|
||||
#endif /* __TIMER_INTERNAL_H__ */
|
Loading…
Add table
Add a link
Reference in a new issue