mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-06 13:30:00 +00:00
50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#include "prx/libc/include/Api.hpp"
|
|
#include "prx/libkernel/include/Api.hpp"
|
|
#include "SceTypes.hpp"
|
|
#include <cstdint>
|
|
#include <cstdlib>
|
|
|
|
static void Require(bool condition) {
|
|
if (!condition) {
|
|
std::abort();
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
std::uintptr_t sem = 0;
|
|
Require(sem_init_nid_postfix(&sem, 0, 1) == 0);
|
|
|
|
*__error_nid_postfix() = 0;
|
|
Require(sem_getvalue_nid_postfix(&sem, nullptr) == -1);
|
|
Require(*__error_nid_postfix() == 22);
|
|
|
|
int value = -1;
|
|
Require(sem_getvalue_nid_postfix(&sem, &value) == 0);
|
|
Require(value == 1);
|
|
|
|
Require(sem_destroy_nid_postfix(&sem) == 0);
|
|
|
|
std::uintptr_t uninitSem = 0;
|
|
*__error_nid_postfix() = 0;
|
|
Require(sem_getvalue_nid_postfix(&uninitSem, nullptr) == -1);
|
|
Require(*__error_nid_postfix() == 22);
|
|
|
|
*__error_nid_postfix() = 0;
|
|
Require(sem_getvalue_nid_postfix(nullptr, nullptr) == -1);
|
|
Require(*__error_nid_postfix() == 22);
|
|
|
|
std::intptr_t ksemId = -1;
|
|
Require(ksem_init_nid_postfix(&ksemId, 1) == 0);
|
|
|
|
*__error_nid_postfix() = 0;
|
|
Require(ksem_getvalue_nid_postfix(ksemId, nullptr) == -1);
|
|
Require(*__error_nid_postfix() == 14);
|
|
|
|
*__error_nid_postfix() = 0;
|
|
Require(ksem_getvalue_nid_postfix(-1, nullptr) == -1);
|
|
Require(*__error_nid_postfix() == 22);
|
|
|
|
Require(ksem_destroy_nid_postfix(ksemId) == 0);
|
|
return 0;
|
|
}
|