我想从程序集中调用类似 nanosleep 的东西,仅使用 SVC 调用。但仅使用我所拥有的有限信息,如何做到这一点并不明显,这个 macos 系统调用调用签名列表: https ://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls 。掌握
我试图弄清楚 C 在调用 nanosleep 时做了什么,我能够将其简化为:
struct timespec { long tv_sec; long tv_nsec; };
int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp)
__asm("_" "nanosleep" );
int main() {
struct timespec remaining, request = { 3, 1 };
int response = nanosleep(&request, &remaining); }
Run Code Online (Sandbox Code Playgroud)
我不确定那__asm
是做什么的,因为这看起来不像组装。不管怎样,我在苹果的 libc 源代码中找到了一个实现nanosleep
。它依赖于对 while 的调用clock_get_time
,而 libc 中未定义该调用。我在 XNU 源代码中发现了一个提及clock_get_time
,但这是在 .defs 文件中,我不知道它是什么,而且似乎没有实现。
无论如何,是否有一些关于 SVC 调用的更好文档,或者我可以在某个地方找到 libc SVC 实现的程序集?
非常感谢任何信息或想法。
由于使用 M1 mac,我收到一个错误,导致 terraform 初始化无法成功(见下文);这是由于 terraform 在不需要时尝试安装 hasicorp/template 提供程序引起的。为什么当没有任何资源需要时,hashicorp/模板提供程序会尝试安装?
\n\n\n\xe2\x94\x82 错误:不兼容的提供程序版本 \xe2\x94\x82 \xe2\x94\x82 提供程序\nregistry.terraform.io/hashicorp/template v2.2.0 没有\n适用于您当前平台 darwin_arm64 的软件包。
\n
此处记录:https://discuss.hashicorp.com/t/template-v2-2-0-does-not-have-a-package-available-mac-m1/35099
\n具体来说,即使我没有使用 template_file 或来自该提供程序的任何其他实体,terraform 仍然尝试安装 hashcorp/template 提供程序;我尝试删除 .terraform 和我的锁定文件,但仍然遇到此问题:
\nInitializing provider plugins...\n- terraform.io/builtin/terraform is built in to Terraform\n- Finding latest version of hashicorp/template...\n- Finding hashicorp/aws versions matching "~> 3.0"...\n- Finding latest version of hashicorp/random...\n
Run Code Online (Sandbox Code Playgroud)\n 任何人都知道如何安装 Pandas(并实际导入),而不是在 Rosetta 下才能使用 Apple 的分叉 TensorFlow 在本机 M1 模式下使用?我只能做一个或另一个,而我需要两者。如果我在 Rosetta TF 下安装将不起作用。如果我为 M1 安装 Apple 的 TF,则不会安装 Pandas。
我必须购买配备 M1 的 MacBook Air。正如我所见,它支持 React Native(npm、expo 等)。是的?
11.02 编辑:好的,解决了。谢谢你们!
apple-m1 ×4
arm64 ×1
assembly ×1
macos ×1
pandas ×1
python ×1
react-native ×1
system-calls ×1
tensorflow ×1
terraform ×1