diff options
| author | 2026-08-26 17:56:52 -0400 | |
|---|---|---|
| committer | 2026-08-26 17:56:52 -0400 | |
| commit | 197d41a3e23cab35848f623c6133baccc62aacbe (patch) | |
| tree | 04943c1de9653de53615e10ced1eab07c2562325 /src/cache/backings/file_common.h | |
| parent | 6094c907b26e21f13373bae6bf3306dbae40af3c (diff) | |
| download | camu-197d41a3e23cab35848f623c6133baccc62aacbe.tar.gz camu-197d41a3e23cab35848f623c6133baccc62aacbe.tar.bz2 camu-197d41a3e23cab35848f623c6133baccc62aacbe.zip | |
OSD stuff and Android fixes
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/cache/backings/file_common.h')
| -rw-r--r-- | src/cache/backings/file_common.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/cache/backings/file_common.h b/src/cache/backings/file_common.h index 6650dd1..6dd4e96 100644 --- a/src/cache/backings/file_common.h +++ b/src/cache/backings/file_common.h @@ -27,7 +27,19 @@ static void file_backing_finalize(struct cch_backing *backing) static bool file_open_internal(struct cch_backing_file *file, str *path, size_t size) { s32 flags = (size != 0) ? NNWT_FILE_CREATE : NNWT_FILE_READONLY; - if (!nn_file_open(&file->file, path, flags)) return false; + if (al_str_cmp(path, &al_str_c("fd://"), 0, 5) == 0) { + str fd_str = al_str_substr(path, 5, path->length); + bool error; + s32 fd = (s32)al_str_to_long(&fd_str, 10, &error); + if (error) return false; + if (!nn_file_wrap_fd(&file->file, fd)) { + return false; + } + } else { + if (!nn_file_open(&file->file, path, flags)) { + return false; + } + } size_t filesize = file->file.size; if (!size) { file->backing.size = filesize; |