我需要在锁定/解锁上下文之外的用户空间中调用 do_futex() 的功能。即,我不需要互斥体,而是内核调用do_futex 的确切语义。
似乎它应该在用户空间中可用,因为其目的是尽量减少系统调用的数量,但我无法与之链接。
还是有系统调用?
更新:
我目前正在使用 syscall(__NR_futex, ...) 来运行 do_futex()。但
- 我必须包括才能获得 __NR_futex,这很难看
- 我必须包含才能获得 FUTEX_WAIT 和 FUTEX_WAKE,但我仍然没有获得 EWOULDBLOCK,或者 WAKE 的最大线程数
有连贯的包装吗?