android - (mips) arm/arm64 上的 Cacheflush 函数
问题描述
作为项目的一部分,我尝试使用ninja buildsystem为 arm64 编译 Android10 (a Pixel 3) 的 .c 文件。此 .c 文件是已成功使用的 PoC 的一部分(因此,它应该可以以某种方式工作)。
现在的问题是:此文件包含对“cacheflush”函数的引用,该函数已为bionic/MIPS定义良好,但不适用于arm64。错误信息是:error: use of undeclared identifier 'cacheflush'
正如我所说,该示例被引用为工作。我已经安装了项目中列出的 android ndk/sdk 和其他依赖项。我还测试了包括不同的头文件(例如 cacheflush.h 和 unistd.h)
任何人都可以帮我让这个功能工作吗?非常感谢!
解决方案
我也在为 poc 使用“cacheflush”,如果你在基于 linux 的分发中键入“man cacheflush”,你可以在概要中看到这样的注释:
注意:在某些架构上,这个系统调用没有 glibc 包装器;见注释。
所以我猜ARM架构中没有cacheflush功能。
您可以在 ARM 指令集参考中搜索执行相同工作的指令(如 x86 中的 clflush)。
推荐阅读
- laravel - Laravel 文件系统 sftp 为新文件夹设置 umask
- html - 如何为不同的浏览器组合相同的css样式
- reactjs - Firebase 数据库获取新数据时发送电子邮件
- php - 如何使用 Twitter API 1.1 和 PHP 获取超过一个月的推文
- python - Python 信号事件终止 time.sleep()
- html - HTML表格设计
- html - CSS垂直对齐段落到div
- reactjs - 如何使用服务器端渲染在反应中添加 og 元标记?
- c - 不在字符串中使用空终止有什么影响?
- android - 一个 AppWidget 布局可以使用两个 Activity 吗?