diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-11-09 16:27:23 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-11-09 17:27:11 +0200 |
| commit | a3e45d5dcaf1bf3a9e684b5fcc301413ec994a9b (patch) | |
| tree | ae319c8f389e7ca39bbdd4b114655f8604563305 /include/apos/ipi.h | |
| parent | 2b5533aefef026fe7bada314ebdb2651b809979a (diff) | |
| download | kmi-a3e45d5dcaf1bf3a9e684b5fcc301413ec994a9b.tar.gz kmi-a3e45d5dcaf1bf3a9e684b5fcc301413ec994a9b.zip | |
add basic IPI structure
Diffstat (limited to 'include/apos/ipi.h')
| -rw-r--r-- | include/apos/ipi.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/apos/ipi.h b/include/apos/ipi.h new file mode 100644 index 0000000..c895d58 --- /dev/null +++ b/include/apos/ipi.h @@ -0,0 +1,37 @@ +#ifndef APOS_IPI_H +#define APOS_IPI_H + +/** + * @file ipi.h + * + * IPI function definitions. + */ + +#include <apos/types.h> +#include <apos/uapi.h> +#include <apos/tcb.h> + +/** + * Clear potential IPI in \p t, and return its value. + * + * @param t \ref tcb to clear possible IPI status of. + * @return \ref true if \p was interrupted by IPI, \ref false otherwise. + */ +bool clear_ipi(struct tcb *t); + +/** + * Send IPI to \p t. Assumes \c running(t). + * + * @param t \ref tcb to send IPI to. + */ +void send_ipi(struct tcb *t); + +/** + * Handle IPI. + * + * @param t Thread who was interrupted by IPI. + * @return Possible arguments to IPI. + */ +struct sys_ret handle_ipi(struct tcb *t); + +#endif /* APOS_IPI_H */ |
