Skip to content

Commit 725a9f4

Browse files
committed
Consolidate malloc lock implementation
1 parent 7363966 commit 725a9f4

4 files changed

Lines changed: 14 additions & 77 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ OGCOBJ := \
140140
message.o card.o aram.o depackrnc.o decrementer_handler.o \
141141
depackrnc1.o dsp.o si.o tpl.o ipc.o ogc_crt0.o \
142142
console_font_8x16.o timesupp.o lock_supp.o newlibc.o usbgecko.o usbmouse.o \
143-
sbrk.o malloc_lock.o kprintf.o stm.o ios.o es.o isfs.o usb.o network_common.o \
143+
sbrk.o kprintf.o stm.o ios.o es.o isfs.o usb.o network_common.o \
144144
sdgecko_io.o sdgecko_buf.o gcsd.o argv.o network_wii.o wiisd.o conf.o usbstorage.o \
145145
texconv.o wiilaunch.o mic.o system_report.o mmce.o threads_supp.o
146146

libogc/lock_supp.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
lock_supp.c -- devkitPPC lock support
44
5-
Copyright (C) 2025 - 2026 Extrems' Corner.org
5+
Copyright (C) 2026 Extrems' Corner.org
66
77
This software is provided 'as-is', without any express or implied
88
warranty. In no event will the authors be held liable for any
@@ -32,6 +32,8 @@ distribution.
3232
#include <sys/iosupport.h>
3333
#include <sys/lock.h>
3434

35+
__LOCK_INIT_RECURSIVE(static, __malloc_recursive_mutex);
36+
3537
static mutex_t GetMutex(_LOCK_T *lock, bool recursive)
3638
{
3739
if (*lock == __LOCK_INITIALIZER)
@@ -128,3 +130,13 @@ int __SYSCALL(cond_wait_recursive)(_COND_T *cond, _LOCK_RECURSIVE_T *lock, uint6
128130

129131
return LWP_CondTimedWait(GetCond(cond), GetMutex(&lock->lock, true), &tv);
130132
}
133+
134+
void __SYSCALL(malloc_lock)(struct _reent *ptr)
135+
{
136+
__SYSCALL(lock_acquire_recursive)(&__malloc_recursive_mutex);
137+
}
138+
139+
void __SYSCALL(malloc_unlock)(struct _reent *ptr)
140+
{
141+
__SYSCALL(lock_release_recursive)(&__malloc_recursive_mutex);
142+
}

libogc/malloc_lock.c

Lines changed: 0 additions & 73 deletions
This file was deleted.

libogc/system.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ extern void __lwp_sema_init(void);
150150
extern void __exi_init(void);
151151
extern void __si_init(void);
152152
extern void __irq_init(void);
153-
extern void __memlock_init(void);
154153

155154
extern void __realmode(void(*)(void));
156155
extern void __configMEM1_16MB(void);
@@ -1037,7 +1036,6 @@ void SYS_Init(void)
10371036
__si_init();
10381037
__lwp_thread_coreinit();
10391038
__lwp_sysinit();
1040-
__memlock_init();
10411039
__lwp_mqbox_init();
10421040
__lwp_sema_init();
10431041
__lwp_mutex_init();

0 commit comments

Comments
 (0)