首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arm中的Hypervisor模式是什么?

arm中的Hypervisor模式是什么?
EN

Stack Overflow用户
提问于 2022-03-28 16:35:45
回答 1查看 198关注 0票数 1

在arch/arm/内核/Head.S中的宏safe_svcmode_maskall定义在arch/arm/include/assembler.h中,它是

代码语言:javascript
复制
.macro safe_svcmode_maskall reg:req
#if __LINUX_ARM_ARCH__ >= 6 && !defined(CONFIG_CPU_V7M)
    mrs \reg , cpsr
    eor \reg, \reg, #HYP_MODE
    tst \reg, #MODE_MASK
    bic \reg , \reg , #MODE_MASK
    ......

我发现有一个HYP_MODE,并通过一些简单的介绍了解到,它是虚拟机管理程序mode.But --我未能在armv7体系结构参考manual.Actually中得到它的详细介绍--我没有发现manual.It中的单词不能等同于svc模式,因为在代码上下文中也提到了svc模式。

此外,我注意到'reg‘是一个参数,在'reg’之后有':req‘,我知道了’req‘的意思是’reg‘不能是empty.But,我在gnu arm汇编程序手册中找不到':req’的定义。

这可能是简单的question.But,我想学习如何在官方手册中找到这些答案。(我仍然相信答案在manual.Maybe中,我没有选择相应的版本)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-28 17:20:52

最后一个问题

但我在gnu arm汇编程序手册中找不到':req‘的定义。

GNU汇编程序手册

您可以对宏参数进行限定,以指示所有调用是否必须指定一个非空白值(通过‘:req’),或者它是否接受所有剩余的参数(通过‘:vararg’)。您可以在名称后面加上‘=deflt’,为任何宏参数提供默认值。

举个例子,

代码语言:javascript
复制
.macro m p1:req, p2=0, p3:vararg

开始定义一个名为m的宏,至少有三个参数。第一个参数必须始终具有指定的值,而不是第二个参数,后者具有默认值。第三种形式将得到调用时指定的所有剩余参数。

第一个问题

我发现有一个HYP_MODE,并通过一些简单的介绍了解到,它是虚拟机管理程序mode.But --我未能在armv7体系结构参考manual.Actually中得到它的详细介绍--我没有发现manual.It中的单词不能等同于svc模式,因为在代码上下文中也提到了svc模式。

在一些CPU上有一个ARMV7A (不是ARM7M)的管理程序模式,但不是全部。

见:管理程序模式ARM虚拟化扩展

如果扩展不存在,那么在ARM7A上修改这个位还是可以的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71650696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档