summaryrefslogtreecommitdiff
path: root/sys/external/bsd/drm2/include/linux
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2021-12-19 11:49:57 +0000
committerriastradh <riastradh@NetBSD.org>2021-12-19 11:49:57 +0000
commitc51620cc8092f91de68ba01de0334012d645a07e (patch)
tree5d4bafd6e7f9cdeba9008f55a927f73024ee13ad /sys/external/bsd/drm2/include/linux
parentd90bc72869ff71532f38d83ddac2ffd8d08bb7ab (diff)
linux: Draft irq_work shims, in terms of a softint.
Doesn't actually run in hardirq context, but who's gonna notice...
Diffstat (limited to 'sys/external/bsd/drm2/include/linux')
-rw-r--r--sys/external/bsd/drm2/include/linux/irq_work.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/external/bsd/drm2/include/linux/irq_work.h b/sys/external/bsd/drm2/include/linux/irq_work.h
index 23c9e51771a..f40d7a7daa7 100644
--- a/sys/external/bsd/drm2/include/linux/irq_work.h
+++ b/sys/external/bsd/drm2/include/linux/irq_work.h
@@ -1,4 +1,4 @@
-/* $NetBSD: irq_work.h,v 1.5 2021/12/19 11:35:51 riastradh Exp $ */
+/* $NetBSD: irq_work.h,v 1.6 2021/12/19 11:49:57 riastradh Exp $ */
/*-
* Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -29,6 +29,7 @@
#ifndef _LINUX_IRQ_WORK_H
#define _LINUX_IRQ_WORK_H
+#include <sys/queue.h>
#include <sys/stdbool.h>
#include <asm/cpufeature.h>
@@ -38,11 +39,17 @@
#define irq_work_queue linux_irq_work_queue
struct irq_work {
+ SIMPLEQ_ENTRY(irq_work) iw_entry;
+ volatile unsigned iw_flags;
+
/* Linux API */
- void (*func)(struct irq_work *);
+ void (*func)(struct irq_work *);
};
void init_irq_work(struct irq_work *, void (*)(struct irq_work *));
bool irq_work_queue(struct irq_work *);
+void linux_irq_work_init(void);
+void linux_irq_work_fini(void);
+
#endif /* _LINUX_IRQ_WORK_H */