summaryrefslogtreecommitdiff
path: root/src/os/__osAtomicDec.c
blob: fa9b9d5875e8df7da706c2dfdaec2a068f3b0613 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "libultra_internal.h"

s32 __osAtomicDec(u32* a0) {
    s32 sp1c;
    s32 sp18;
    sp1c = __osDisableInt();

    if (*a0 != 0) {
        (*a0)--;
        sp18 = 1;
    } else {
        sp18 = 0;
    }

    __osRestoreInt(sp1c);
    return sp18;
}