Merge pull request #3715 from Lorkydey/feat/libkernel-wait
feat(libkernel): implement wait through guest waitpid
This commit is contained in:
commit
1a8fd39199
|
|
@ -287,6 +287,10 @@ int APS5_VABI waitpid_nid_postfix(int pid, int* status, int options) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
int APS5_VABI wait_nid_postfix(int* status) {
|
||||
return waitpid_nid_postfix(-1, status, 0);
|
||||
}
|
||||
|
||||
int APS5_VABI execvp_nid_postfix(const char* file, char* const* arguments) {
|
||||
(void)file;
|
||||
(void)arguments;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include <cstdlib>
|
||||
#include <initializer_list>
|
||||
extern "C" {
|
||||
int APS5_VABI wait_nid_postfix(int*);
|
||||
int APS5_VABI waitpid_nid_postfix(int, int*, int);
|
||||
int APS5_VABI getpid_nid_postfix(void);
|
||||
int* APS5_VABI __error_nid_postfix();
|
||||
|
|
@ -28,4 +29,12 @@ int main() {
|
|||
for (int options : {0x40, 0x41, 0x80, 0x100, 0x40000000, static_cast<int>(0x80000040u), static_cast<int>(0xffffffffu)})
|
||||
RequireFailure(pid, options, invalidArgument);
|
||||
}
|
||||
int status = untouched;
|
||||
*__error_nid_postfix() = invalidArgument;
|
||||
Require(wait_nid_postfix(&status) == -1);
|
||||
Require(*__error_nid_postfix() == noChild);
|
||||
Require(status == untouched);
|
||||
*__error_nid_postfix() = invalidArgument;
|
||||
Require(wait_nid_postfix(nullptr) == -1);
|
||||
Require(*__error_nid_postfix() == noChild);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue