Skip to content

Commit e206d4f

Browse files
committed
refactor syscalls for devkitPPC r42
1 parent d91c59a commit e206d4f

3 files changed

Lines changed: 29 additions & 51 deletions

File tree

libogc/lock_supp.c

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,52 +14,60 @@
1414
#include <gcbool.h>
1515

1616

17-
int __libogc_lock_init(int *lock,int recursive)
17+
static void __libogc_lock_init(_LOCK_T *lock,int recursive)
1818
{
1919
s32 ret;
2020
mutex_t retlck = LWP_MUTEX_NULL;
2121

22-
if(!lock) return -1;
23-
22+
if(!lock) return;
23+
2424
*lock = 0;
2525
ret = LWP_MutexInit(&retlck,(recursive?TRUE:FALSE));
26-
if(ret==0) *lock = (int)retlck;
26+
if(ret==0) *lock = (_LOCK_T)retlck;
27+
28+
}
2729

28-
return ret;
30+
void __syscall_lock_init(_LOCK_T *lock)
31+
{
32+
__libogc_lock_init(lock,0);
2933
}
3034

31-
int __libogc_lock_close(int *lock)
35+
void __syscall_lock_init_recursive(_LOCK_T *lock)
36+
{
37+
__libogc_lock_init(lock,1);
38+
}
39+
40+
void __syscall_lock_close(_LOCK_T *lock)
3241
{
3342
s32 ret;
3443
mutex_t plock;
35-
36-
if(!lock || *lock==0) return -1;
37-
44+
45+
if(!lock || *lock==0) return;
46+
3847
plock = (mutex_t)*lock;
3948
ret = LWP_MutexDestroy(plock);
4049
if(ret==0) *lock = 0;
4150

42-
return ret;
4351
}
4452

45-
int __libogc_lock_acquire(int *lock)
53+
void __syscall_lock_acquire(_LOCK_T *lock)
4654
{
4755
mutex_t plock;
48-
49-
if(!lock || *lock==0) return -1;
56+
57+
if(!lock || *lock==0) return;
5058

5159
plock = (mutex_t)*lock;
52-
return LWP_MutexLock(plock);
60+
LWP_MutexLock(plock);
5361
}
5462

5563

56-
int __libogc_lock_release(int *lock)
64+
void __syscall_lock_release(int *lock)
5765
{
5866
mutex_t plock;
59-
60-
if(!lock || *lock==0) return -1;
67+
68+
if(!lock || *lock==0) return;
6169

6270
plock = (mutex_t)*lock;
63-
return LWP_MutexUnlock(plock);
71+
LWP_MutexUnlock(plock);
6472
}
6573

libogc/sbrk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
u32 MALLOC_MEM2 __attribute__((weak)) = 1;
1414
#endif
1515

16-
void* __libogc_sbrk_r( struct _reent *ptr, ptrdiff_t incr)
16+
void* _sbrk_r( struct _reent *ptr, ptrdiff_t incr)
1717
{
1818
u32 level;
1919
char *heap_end = 0;

libogc/system.c

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,6 @@ extern void __console_init_ex(void *conbuffer,int tgt_xstart,int tgt_ystart,int
209209
extern void timespec_subtract(const struct timespec *tp_start,const struct timespec *tp_end,struct timespec *result);
210210

211211

212-
extern int __libogc_lock_init(int *lock,int recursive);
213-
extern int __libogc_lock_close(int *lock);
214-
extern int __libogc_lock_release(int *lock);
215-
extern int __libogc_lock_acquire(int *lock);
216-
extern void __libogc_exit(int status);
217-
extern void * __libogc_sbrk_r(struct _reent *ptr, ptrdiff_t incr);
218212
extern int __libogc_gettod_r(struct _reent *ptr, struct timeval *tp, struct timezone *tz);
219213
extern int __libogc_nanosleep(const struct timespec *tb, struct timespec *rem);
220214
extern u64 gettime(void);
@@ -270,7 +264,7 @@ static __inline__ void __lwp_syswd_free(alarm_st *alarm)
270264
#define SOFTRESET_ADR *((vu32*)0xCC003024)
271265
void __reload(void) { SOFTRESET_ADR=0; }
272266

273-
void __libogc_exit(int status)
267+
void __syscall_exit(int status)
274268
{
275269
SYS_ResetSystem(SYS_SHUTDOWN,0,0);
276270
__lwp_thread_stopmultitasking(__reload);
@@ -295,7 +289,7 @@ void __reload(void)
295289
SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
296290
}
297291

298-
void __libogc_exit(int status)
292+
void __syscall_exit(int status)
299293
{
300294
if(__stub_found()) {
301295
SYS_ResetSystem(SYS_SHUTDOWN,0,0);
@@ -307,26 +301,6 @@ void __libogc_exit(int status)
307301
#endif
308302

309303

310-
void *__syscall_sbrk_r(struct _reent *ptr, ptrdiff_t incr) {
311-
return __libogc_sbrk_r(ptr, incr);
312-
}
313-
314-
int __syscall_lock_init(int *lock, int recursive) {
315-
return __libogc_lock_init(lock,recursive);
316-
}
317-
318-
int __syscall_lock_close(int *lock) {
319-
return __libogc_lock_close(lock);
320-
}
321-
322-
int __syscall_lock_release(int *lock) {
323-
return __libogc_lock_release(lock);
324-
}
325-
326-
int __syscall_lock_acquire(int *lock) {
327-
return __libogc_lock_acquire(lock);
328-
}
329-
330304
void __syscall_malloc_lock(struct _reent *ptr) {
331305
return __libogc_malloc_lock(ptr);
332306
}
@@ -335,10 +309,6 @@ void __syscall_malloc_unlock(struct _reent *ptr) {
335309
return __libogc_malloc_unlock(ptr);
336310
}
337311

338-
void __syscall_exit(int rc) {
339-
return __libogc_exit(rc);
340-
}
341-
342312
int __syscall_gettod_r(struct _reent *ptr, struct timeval *tp, struct timezone *tz){
343313
return __libogc_gettod_r(ptr,tp,tz);
344314
}

0 commit comments

Comments
 (0)