mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 11:16:47 +00:00
* 解决由于spinlock.h中包含preempt_enable()带来的循环include问题 * new: 初步实现signal的数据结构 * new:signal相关数据结构 * fix: 解决bindings.rs报一堆警告的问题 * new: rust下的kdebug kinfo kwarn kBUG kerror宏 * 移动asm.h和cmpxchg.h * new: signal的发送(暂时只支持父子进程共享信号及处理函数)
11 lines
481 B
C
11 lines
481 B
C
#pragma once
|
|
#include <asm/asm.h>
|
|
// 保存当前rflags的值到变量x内并关闭中断
|
|
#define local_irq_save(x) __asm__ __volatile__("pushfq ; popq %0 ; cli" \
|
|
: "=g"(x)::"memory")
|
|
// 恢复先前保存的rflags的值x
|
|
#define local_irq_restore(x) __asm__ __volatile__("pushq %0 ; popfq" ::"g"(x) \
|
|
: "memory")
|
|
#define local_irq_disable() cli();
|
|
#define local_irq_enable() sti();
|