(retro_dirent.c) Add PS3 codepaths
This commit is contained in:
parent
eb8ca30a6c
commit
9ef5570fcc
|
@ -26,6 +26,10 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __CELLOS_LV2__
|
||||||
|
#include <cell/cell_fs.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boolean.h>
|
#include <boolean.h>
|
||||||
|
|
||||||
struct RDIR
|
struct RDIR
|
||||||
|
@ -36,6 +40,10 @@ struct RDIR
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP)
|
||||||
SceUID directory;
|
SceUID directory;
|
||||||
SceIoDirent entry;
|
SceIoDirent entry;
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
CellFsErrno error;
|
||||||
|
int directory;
|
||||||
|
CellFsDirent entry;
|
||||||
#else
|
#else
|
||||||
DIR *directory;
|
DIR *directory;
|
||||||
const struct dirent *entry;
|
const struct dirent *entry;
|
||||||
|
@ -58,6 +66,8 @@ struct RDIR *retro_opendir(const char *name)
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP)
|
||||||
rdir->directory = sceIoDopen(name);
|
rdir->directory = sceIoDopen(name);
|
||||||
rdir->entry = NULL;
|
rdir->entry = NULL;
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
rdir->error = cellFsOpendir(name, &rdir->directory);
|
||||||
#else
|
#else
|
||||||
rdir->directory = opendir(name);
|
rdir->directory = opendir(name);
|
||||||
rdir->entry = NULL;
|
rdir->entry = NULL;
|
||||||
|
@ -72,6 +82,8 @@ bool retro_dirent_error(struct RDIR *rdir)
|
||||||
return (rdir->directory == INVALID_HANDLE_VALUE);
|
return (rdir->directory == INVALID_HANDLE_VALUE);
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP)
|
||||||
return (rdir->directory < 0);
|
return (rdir->directory < 0);
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
return (rdir->error != CELL_FS_SUCCEEDED);
|
||||||
#else
|
#else
|
||||||
return !(rdir->directory);
|
return !(rdir->directory);
|
||||||
#endif
|
#endif
|
||||||
|
@ -83,6 +95,10 @@ int retro_readdir(struct RDIR *rdir)
|
||||||
return (FindNextFile(rdir->directory, &rdir->entry) != 0);
|
return (FindNextFile(rdir->directory, &rdir->entry) != 0);
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP)
|
||||||
return (sceIoDread(rdir->directory, &rdir->entry) > 0);
|
return (sceIoDread(rdir->directory, &rdir->entry) > 0);
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
uint64_t nread;
|
||||||
|
rdir->error = cellFsReaddir(rdir->directory, &rdir->entry, &nread);
|
||||||
|
return (nread != 0);
|
||||||
#else
|
#else
|
||||||
return ((rdir->entry = readdir(rdir->directory)) != NULL);
|
return ((rdir->entry = readdir(rdir->directory)) != NULL);
|
||||||
#endif
|
#endif
|
||||||
|
@ -92,7 +108,7 @@ const char *retro_dirent_get_name(struct RDIR *rdir)
|
||||||
{
|
{
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
return rdir->entry.cFileName;
|
return rdir->entry.cFileName;
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP) || defined(__CELLOS_LV2__)
|
||||||
return rdir->entry.d_name;
|
return rdir->entry.d_name;
|
||||||
#else
|
#else
|
||||||
return rdir->entry->d_name;
|
return rdir->entry->d_name;
|
||||||
|
@ -130,6 +146,9 @@ bool retro_dirent_is_dir(struct RDIR *rdir, const char *path)
|
||||||
#elif defined(VITA)
|
#elif defined(VITA)
|
||||||
return PSP2_S_ISDIR(entry->d_stat.st_mode);
|
return PSP2_S_ISDIR(entry->d_stat.st_mode);
|
||||||
#endif
|
#endif
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
CellFsDirent *entry = (CellFsDirent*)&rdir->entry;
|
||||||
|
return (entry->d_type == CELL_FS_TYPE_DIRECTORY);
|
||||||
#elif defined(DT_DIR)
|
#elif defined(DT_DIR)
|
||||||
const struct dirent *entry = (const struct dirent*)rdir->entry;
|
const struct dirent *entry = (const struct dirent*)rdir->entry;
|
||||||
if (entry->d_type == DT_DIR)
|
if (entry->d_type == DT_DIR)
|
||||||
|
@ -163,6 +182,8 @@ void retro_closedir(struct RDIR *rdir)
|
||||||
FindClose(rdir->directory);
|
FindClose(rdir->directory);
|
||||||
#elif defined(VITA) || defined(PSP)
|
#elif defined(VITA) || defined(PSP)
|
||||||
sceIoDclose(rdir->directory);
|
sceIoDclose(rdir->directory);
|
||||||
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
rdir->error = cellFsClosedir(rdir->directory);
|
||||||
#else
|
#else
|
||||||
if (rdir->directory)
|
if (rdir->directory)
|
||||||
closedir(rdir->directory);
|
closedir(rdir->directory);
|
||||||
|
|
Loading…
Reference in New Issue