Symbian^3 port

This commit is contained in:
Shinovon 2026-04-29 05:15:13 +05:00
parent 77cdaaf97e
commit 3eb71f2cc5
106 changed files with 2098 additions and 745 deletions

View file

@ -7,7 +7,9 @@
#include <sys/types.h>
#include <unistd.h>
#include <sys/time.h>
#ifndef __SYMBIAN32__
#include <sys/statvfs.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@ -38,7 +40,8 @@ re3_sem_open(void)
{
sem_t* sem = (sem_t*)malloc(sizeof(sem_t));
if (sem_init(sem, 0, 1) == -1) {
sem = SEM_FAILED;
free(sem);
sem = (sem_t*)SEM_FAILED;
}
return sem;
@ -135,7 +138,7 @@ CdStreamInitThread(void)
gCdStreamSema = RE3_SEM_OPEN("/semaphore_cd_stream");
if (gCdStreamSema == SEM_FAILED) {
if (gCdStreamSema == (sem_t*)SEM_FAILED) {
CDTRACE("failed to create stream semaphore");
ASSERT(0);
return;
@ -148,7 +151,7 @@ CdStreamInitThread(void)
{
gpReadInfo[i].pDoneSemaphore = RE3_SEM_OPEN("/semaphore_done%d", i);
if (gpReadInfo[i].pDoneSemaphore == SEM_FAILED)
if (gpReadInfo[i].pDoneSemaphore == (sem_t*)SEM_FAILED)
{
CDTRACE("failed to create sync semaphore");
ASSERT(0);
@ -158,7 +161,7 @@ CdStreamInitThread(void)
#ifdef ONE_THREAD_PER_CHANNEL
gpReadInfo[i].pStartSemaphore = RE3_SEM_OPEN("/semaphore_start%d", i);
if (gpReadInfo[i].pStartSemaphore == SEM_FAILED)
if (gpReadInfo[i].pStartSemaphore == (sem_t*)SEM_FAILED)
{
CDTRACE("failed to create start semaphore");
ASSERT(0);
@ -198,6 +201,7 @@ CdStreamInitThread(void)
void
CdStreamInit(int32 numChannels)
{
#if !defined __SYMBIAN32__
struct statvfs fsInfo;
if((statvfs("models/gta3.img", &fsInfo)) < 0)
@ -206,6 +210,7 @@ CdStreamInit(int32 numChannels)
ASSERT(0);
return;
}
#endif
#ifdef __linux__
_gdwCdStreamFlags = O_RDONLY | O_NOATIME;
#else
@ -219,8 +224,10 @@ CdStreamInit(int32 numChannels)
debug("Using no buffered loading for streaming\n");
}
*/
#if !defined __SYMBIAN32__
void *pBuffer = (void *)RwMallocAlign(CDSTREAM_SECTOR_SIZE, (RwUInt32)fsInfo.f_bsize);
ASSERT( pBuffer != nil );
#endif
gNumImages = 0;
@ -234,8 +241,10 @@ CdStreamInit(int32 numChannels)
CdStreamInitThread();
#if !defined __SYMBIAN32__
ASSERT( pBuffer != nil );
RwFreeAlign(pBuffer);
#endif
}
uint32
@ -531,6 +540,7 @@ void *CdStreamThread(void *param)
free(gpReadInfo);
gpReadInfo = nil;
pthread_exit(nil);
return NULL;
}
bool