XenevaOS
Loading...
Searching...
No Matches
x86_64_signal.h
Go to the documentation of this file.
1
30#ifndef __X86_64_SIGNAL_H__
31#define __X86_64_SIGNAL_H__
32
33#include <Hal\x86_64_cpu.h>
34#include <Hal\x86_64_sched.h>
35
36
37
38#pragma pack(push,1)
46#pragma pack(pop)
47
48/*
49* AuAllocateSignal -- allocate a new signal to the
50* destination thread
51* @param dest_thread -- destination thread
52* @param signum -- signal number
53*/
54extern void AuAllocateSignal(AuThread* dest_thread, int signum);
55
56/*
57* AuCheckSignal -- checks for pending signal
58* @param curr_thr -- pointer to thread structure
59* @param frame -- interrupt stack frame
60*/
61extern bool AuCheckSignal(AuThread* curr_thr, interrupt_stack_frame *frame);
62
63/*
64* AuGetSignal -- returns a signal from the queue
65* if there is present one
66* @param curr_thr -- Pointer to thread structure
67*/
68extern Signal *AuGetSignal(AuThread* curr_thr);
69
70/*
71* AuPrepareSignal -- prepare a thread to enter a signal handler
72* @param thr -- Pointer to the thread
73* @param frame -- interrupt stack frame
74* @param signal -- pointer to signal
75*/
76extern void AuPrepareSignal(AuThread* thr, interrupt_stack_frame* frame, Signal* signal);
77
78/*
79* AuSendSignal -- send a signal to a specific thread
80* @param tid -- thread id
81* @param signo -- signal number
82*/
83extern void AuSendSignal(uint16_t tid, int signo);
84
85/*
86* AuSignalRemoveAll -- remove all signal forcefully
87* @param thr -- thread to look for signals
88*/
89extern void AuSignalRemoveAll(AuThread* thr);
90#endif
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
Definition x86_64_sched.h:118
Definition x86_64_sched.h:52
Definition x86_64_cpu.h:76
Definition x86_64_signal.h:39
x86_64_cpu_regs_t * signalStack
Definition x86_64_signal.h:41
uint8_t threadState
Definition x86_64_signal.h:43
AuThreadFrame * signalState
Definition x86_64_signal.h:42
int signum
Definition x86_64_signal.h:40
bool returnSyscall
Definition x86_64_signal.h:44
Definition x86_64_cpu.h:101
Signal * AuGetSignal(AuThread *curr_thr)
Definition x86_64_signal.cpp:85
void AuPrepareSignal(AuThread *thr, interrupt_stack_frame *frame, Signal *signal)
Definition x86_64_signal.cpp:109
bool AuCheckSignal(AuThread *curr_thr, interrupt_stack_frame *frame)
Definition x86_64_signal.cpp:72
struct _signal_ Signal
void AuSendSignal(uint16_t tid, int signo)
Definition x86_64_signal.cpp:141
void AuSignalRemoveAll(AuThread *thr)
Definition x86_64_signal.cpp:171
void AuAllocateSignal(AuThread *dest_thread, int signum)
Definition x86_64_signal.cpp:49