[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Web Updates: rump, libirqhelp, libmachdev, markup changes] document lib
From: |
address@hidden |
Subject: |
[Web Updates: rump, libirqhelp, libmachdev, markup changes] document libirqhelp |
Date: |
Mon, 14 Oct 2024 11:52:22 -0400 |
* hurd/documentation.mdwn: add link to libirqhelp
* hurd/libirqhelp.mdwn: new file
---
hurd/documentation.mdwn | 1 +
hurd/libirqhelp.mdwn | 53 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
create mode 100644 hurd/libirqhelp.mdwn
diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn
index 68914697..3a662ca4 100644
--- a/hurd/documentation.mdwn
+++ b/hurd/documentation.mdwn
@@ -78,6 +78,7 @@ is included in the section entitled
* [[libnetfs]] -- short introductory material
* [[libdiskfs]]
* [[libihash]]
+ * [[libirqhelp]]
* [[libpthread]]
* [[libfshelp]]
* [[libps]]
diff --git a/hurd/libirqhelp.mdwn b/hurd/libirqhelp.mdwn
new file mode 100644
index 00000000..201df2e3
--- /dev/null
+++ b/hurd/libirqhelp.mdwn
@@ -0,0 +1,53 @@
+[[!meta copyright="Copyright © 2024 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag stable_URL]]
+
+Damien Zammit authored libirqhelp, which lets userspace attach and
+handle interupts. Suppose, a user presses a key on his keyboard, then
+the keyboard can send an interrupt request (an IRQ), to the the
+processor. The CPU will try to interupt the program, so that a
+callback handler can run instead. A brief overview of `x86` interrupt
+information can be found on
+[[wikipedia|https://en.wikipedia.org/wiki/Interrupt_request]]. The
+[[osdev wiki|https://wiki.osdev.org/IOAPIC]] has more technical
+information. The source for `libirqhelp` can be found in
+`$hurd-src/libirqhelp/`.
+
+First you must call `irqhelp_init ();` Then you can install an
+interupt handler with this function:
+
+ struct irc *
+ irqhelp_install_interrupt_handler (int gsi, int bus, int dev,
+ int fun, void (*handler)(void*),
+ void
*context);
+
+If `gsi` is `-1`, then ACPI will look up the global system interrupt.
+If `bus`, `dev`, and `fun` are `-1`, then you must define `gsi`
+(global system interrupt). You then use the returned `struct irc *`
+to call the other functions.
+
+You have to use this next function at some point, and you can call it
+explicitly from another thread. `arg` is casted into a `struct irc *`.
+
+ void * irqhelp_server_loop (void *arg);
+
+You can enable an irq via:
+
+ void irqhelp_enable_irq (struct irq *irq);
+
+You can disable an irq via:
+
+ void irqhelp_disable_irq (struct irq *irq);
+
+You can deregister a handler via:
+
+ error_t irqhelp_remove_interrupt_handler (struct irq *irq);
--
2.45.2
- [Web Updates: rump, libirqhelp, libmachdev, markup changes 1/4] convert hurd-specific_api.mdwn to use markdown instead of html, address@hidden, 2024/10/12
- [Web Updates: rump, libirqhelp, libmachdev, markup changes 2/4] document libmachdev, address@hidden, 2024/10/12
- [Web Updates: rump, libirqhelp, libmachdev, markup changes 3/4] document libirqhelp, address@hidden, 2024/10/12
- [Web Updates: rump, libirqhelp, libmachdev, markup changes 4/4] Updated information about rump., address@hidden, 2024/10/12
- Re: [Web Updates: rump, libirqhelp, libmachdev, markup changes 1/4] convert hurd-specific_api.mdwn to use markdown instead of html, Samuel Thibault, 2024/10/13
- Prev by Date:
Re: [Web Updates: rump, libirqhelp, libmachdev, markup changes 3/4] document libirqhelp
- Next by Date:
[Web Updates: rump, libirqhelp, libmachdev, markup changes] Updated information about rump.
- Previous by thread:
Re: [Web Updates: rump, libirqhelp, libmachdev, markup changes 3/4] document libirqhelp
- Next by thread:
[Web Updates: rump, libirqhelp, libmachdev, markup changes 4/4] Updated information about rump.
- Index(es):