diff options
Diffstat (limited to 'include/user/paf.h')
-rw-r--r-- | include/user/paf.h | 123 |
1 files changed, 103 insertions, 20 deletions
diff --git a/include/user/paf.h b/include/user/paf.h index f01190e..2cf7444 100644 --- a/include/user/paf.h +++ b/include/user/paf.h @@ -1,32 +1,115 @@ #ifndef _PSP2_PAF_H_ #define _PSP2_PAF_H_ +#include <stdarg.h> +#include <wchar.h> #include <psp2/types.h> +#include <psp2/ces/error.h> #ifdef __cplusplus extern "C" { #endif -void sce_paf_private_free(void *ptr); -void *sce_paf_private_malloc(SceSize size); -void *sce_paf_private_bzero(void *ptr, SceSize num); -void *sce_paf_private_memchr(const void *ptr, int value, SceSize num); -int sce_paf_private_memcmp(const void *ptr1, const void *ptr2, SceSize num); -int sce_paf_private_bcmp(const void *ptr1, const void *ptr2, SceSize num); -void *sce_paf_private_memcpy(void *destination, const void *source, SceSize num); -void *sce_paf_private_memcpy2(void *destination, const void *source, SceSize num); -void *sce_paf_private_memmove(void *destination, const void *source, SceSize num); -void *sce_paf_private_bcopy(void *destination, const void *source, SceSize num); -void *sce_paf_private_memset(void *ptr, int value, SceSize num); -int sce_paf_private_snprintf(char *s, SceSize n, const char *format, ...); -int sce_paf_private_strcasecmp(const char *str1, const char *str2); -char *sce_paf_private_strchr(const char *str, int character); -int sce_paf_private_strcmp(const char *str1, const char *str2); -size_t sce_paf_private_strlen(const char *str); -int sce_paf_private_strncasecmp(const char *str1, const char *str2, SceSize num); -int sce_paf_private_strncmp(const char *str1, const char *str2, SceSize num); -char *sce_paf_private_strncpy(char *destination, const char *source, SceSize num); -char *sce_paf_private_strrchr(const char *str, int character); +typedef struct ScePafString { + char *data; + SceSize length; +} ScePafString; + +typedef struct ScePafWString { + SceWChar16 *data; + SceSize length; +} ScePafWString; + +/** + * std C functions + */ + +void sce_paf_free(void *ptr); +void *sce_paf_malloc(SceSize size); +void *sce_paf_bzero(void *ptr, SceSize num); +void *sce_paf_memchr(const void *ptr, int value, SceSize num); +int sce_paf_memcmp(const void *ptr1, const void *ptr2, SceSize num); +int sce_paf_bcmp(const void *ptr1, const void *ptr2, SceSize num); +void *sce_paf_memcpy(void *destination, const void *source, SceSize num); +void *sce_paf_memcpy2(void *destination, const void *source, SceSize num); +void *sce_paf_memmove(void *destination, const void *source, SceSize num); +void *sce_paf_bcopy(void *destination, const void *source, SceSize num); +void *sce_paf_memset(void *ptr, int value, SceSize num); +int sce_paf_snprintf(char *s, SceSize n, const char *format, ...); +int sce_paf_strcasecmp(const char *str1, const char *str2); +char *sce_paf_strchr(const char *str, int character); +int sce_paf_strcmp(const char *str1, const char *str2); +size_t sce_paf_strlen(const char *str); +int sce_paf_strncasecmp(const char *str1, const char *str2, SceSize num); +int sce_paf_strncmp(const char *str1, const char *str2, SceSize num); +char *sce_paf_strncpy(char *destination, const char *source, SceSize num); +char *sce_paf_strrchr(const char *str, int character); + +/** + * wchar functions + */ + +/* __attribute__((__format__(__wprintf__, 3, 4))) */ +int sce_paf_swprintf(wchar_t *buffer, size_t bufsz, const wchar_t *format, ...); + +int sce_paf_vswprintf(wchar_t *buffer, size_t bufsz, const wchar_t *format, va_list vlist); + +wint_t sce_paf_towlower(wint_t wc); + +wchar_t *sce_paf_wcscat(wchar_t *dest, const wchar_t *src); +wchar_t *sce_paf_wcsncat(wchar_t *dest, const wchar_t *src, size_t count); +wchar_t *sce_paf_wcscpy(wchar_t *dest, const wchar_t *src); +wchar_t *sce_paf_wcsncpy(wchar_t *dest, const wchar_t *src, size_t count); + +int sce_paf_wcscasecmp(const wchar_t *s1, const wchar_t *s2); +wchar_t *sce_paf_wcschr(const wchar_t *str, wchar_t ch); +int sce_paf_wcscmp(const wchar_t *lhs, const wchar_t *rhs); +size_t sce_paf_wcscspn(const wchar_t *dest, const wchar_t *src); +size_t sce_paf_wcslen(const wchar_t *str); +int sce_paf_wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n); +int sce_paf_wcsncmp(const wchar_t *lhs, const wchar_t *rhs, size_t count); +size_t sce_paf_wcsnlen(const wchar_t *s, size_t maxlen); +wchar_t *sce_paf_wcspbrk(const wchar_t *dest, const wchar_t *str); +wchar_t *sce_paf_wcsrchr(const wchar_t *str, wchar_t ch); +size_t sce_paf_wcsspn(const wchar_t *dest, const wchar_t *src); + +wchar_t *sce_paf_wmemchr(const wchar_t *ptr, wchar_t ch, size_t count); +int sce_paf_wmemcmp(const wchar_t *lhs, const wchar_t *rhs, size_t count); +wchar_t *sce_paf_wmemcpy(wchar_t *dest, const wchar_t *src, size_t count); +wchar_t *sce_paf_wmemmove(wchar_t *dest, const wchar_t *src, size_t count); + +/** + * CES functions + */ + +#define SCE_PAF_CES_ALLOW_ILLEGAL_CODE 0x2 +#define SCE_PAF_CES_ALLOW_OUT_OF_CODE_RANGE 0x4 +#define SCE_PAF_CES_ALLOW_INVALID_ENCODE 0x8 +#define SCE_PAF_CES_ALLOW_SRC_BUFFER_END 0x10 + +/* UTF8 to UTF16 */ + +SceSSize scePafCesUtf8ToUtf16(const ScePafString *utf8, ScePafWString *utf16); + +SceSSize scePafCesUtf8ToUtf16WithFlag(const ScePafString *utf8, ScePafWString *utf16, SceUInt32 flags); + +SceSSize scePafCesUtf8CharToUtf16(const char *utf8, ScePafWString *utf16); + +SceSSize scePafCesUtf8CharToUtf16WithFlag(const char *utf8, ScePafWString *utf16, SceUInt32 flags); + +ScePafWString *scePafCesUtf8CharToUtf16WithAlloc(const char *utf8, ScePafWString *utf16); + +/* UTF16 to UTF8 */ + +SceSSize scePafCesUtf16ToUtf8(const ScePafWString *utf16, ScePafString *utf8); + +SceSSize scePafCesUtf16ToUtf8WithFlag(const ScePafWString *utf16, ScePafString *utf8, SceUInt32 flags); + +SceSSize scePafCesUtf16CharToUtf8(const SceWChar16 *utf16, ScePafString *utf8); + +SceSSize scePafCesUtf16CharToUtf8WithFlag(const SceWChar16 *utf16, ScePafString *utf8, SceUInt32 flags); + +ScePafString *scePafCesUtf16CharToUtf8WithAlloc(const SceWChar16 *utf16, ScePafString *utf8); #ifdef __cplusplus } |