Sherlock520 2015-12-01 01:02 采纳率: 0%
浏览 634

call smp_/**/name; \这个是什么函数? 还有pushl$-1是什么意思?

#define BUILD_INTERRUPT(name, nr) \
ENTRY(name) \
RING0_INT_FRAME; \
pushl $~(nr); \
CFI_ADJUST_CFA_OFFSET 4; \
SAVE_ALL; \
TRACE_IRQS_OFF \
movl %esp,%eax; \
call smp_/**/name; \
jmp ret_from_intr; \
CFI_ENDPROC

还有一个问题,pushl$-1是什么意思?
先谢谢大家~~

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 21:32
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    smp_* 是 Linux 内核中定义的中断处理函数。name 可以是任何你想调用的函数。

    pushl $-1 是一个 Linux 中断处理程序中的伪指令,它用于在执行中断处理时将寄存器 lr 的值设置为当前的地址,并且在下一条指令后将寄存器 lr 的值恢复到原来的位置。这通常用于在中断处理程序中保存和恢复寄存器的内容。

    关于 ENTRY, RING0_INT_FRAME, CFI_ADJUST_CFA_OFFSET, TRACE_IRQS_OFF, CFI_ADJUST_CFA_OFFSET, SAVE_ALL, jmp ret_from_intrret_from_intr 这些语句,请查阅相关的 Linux 内核文档或参考手册,因为它们可能包含特定于内核版本的信息。

    评论

报告相同问题?

悬赏问题

  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项