Index: src/amiga-funcarray.inc ================================================================== --- src/amiga-funcarray.inc +++ src/amiga-funcarray.inc @@ -43,12 +43,12 @@ (CONST_APTR)glue_OFListItemPrevious, (CONST_APTR)glue_OFListItemObject, (CONST_APTR)glue_OFSizeOfTypeEncoding, (CONST_APTR)glue_OFAlignmentOfTypeEncoding, (CONST_APTR)glue_OFOnce, -(CONST_APTR)glue_OFPBKDF2, -(CONST_APTR)glue_OFScrypt, +(CONST_APTR)glue_OFPBKDF2Wrapper, +(CONST_APTR)glue_OFScryptWrapper, (CONST_APTR)glue_OFSalsa20_8Core, (CONST_APTR)glue_OFScryptBlockMix, (CONST_APTR)glue_OFScryptROMix, (CONST_APTR)glue_OFSocketAddressParseIP, (CONST_APTR)glue_OFSocketAddressParseIPv4, Index: src/amiga-glue.h ================================================================== --- src/amiga-glue.h +++ src/amiga-glue.h @@ -71,12 +71,12 @@ extern OFListItem _Nullable glue_OFListItemPrevious PPC_PARAMS(OFListItem _Nonnull listItem); extern id _Nonnull glue_OFListItemObject PPC_PARAMS(OFListItem _Nonnull listItem); extern size_t glue_OFSizeOfTypeEncoding PPC_PARAMS(const char *type); extern size_t glue_OFAlignmentOfTypeEncoding PPC_PARAMS(const char *type); extern void glue_OFOnce PPC_PARAMS(OFOnceControl *_Nonnull control, OFOnceFunction _Nonnull func); -extern void glue_OFPBKDF2 PPC_PARAMS(OFPBKDF2Parameters parameters); -extern void glue_OFScrypt PPC_PARAMS(OFScryptParameters parameters); +extern void glue_OFPBKDF2Wrapper PPC_PARAMS(const OFPBKDF2Parameters *_Nonnull parameters); +extern void glue_OFScryptWrapper PPC_PARAMS(const OFScryptParameters *_Nonnull parameters); extern void glue_OFSalsa20_8Core PPC_PARAMS(uint32_t *_Nonnull buffer); extern void glue_OFScryptBlockMix PPC_PARAMS(uint32_t *_Nonnull output, const uint32_t *_Nonnull input, size_t blockSize); extern void glue_OFScryptROMix PPC_PARAMS(uint32_t *buffer, size_t blockSize, size_t costFactor, uint32_t *tmp); extern OFSocketAddress glue_OFSocketAddressParseIP PPC_PARAMS(OFString *IP, uint16_t port); extern OFSocketAddress glue_OFSocketAddressParseIPv4 PPC_PARAMS(OFString *IP, uint16_t port); Index: src/amiga-glue.m ================================================================== --- src/amiga-glue.m +++ src/amiga-glue.m @@ -265,23 +265,23 @@ OFOnce(control, func); } void __saveds -glue_OFPBKDF2 PPC_PARAMS(OFPBKDF2Parameters parameters) +glue_OFPBKDF2Wrapper PPC_PARAMS(const OFPBKDF2Parameters *_Nonnull parameters) { - M68K_ARG(OFPBKDF2Parameters, parameters, a0) + M68K_ARG(const OFPBKDF2Parameters *_Nonnull, parameters, a0) - OFPBKDF2(parameters); + OFPBKDF2Wrapper(parameters); } void __saveds -glue_OFScrypt PPC_PARAMS(OFScryptParameters parameters) +glue_OFScryptWrapper PPC_PARAMS(const OFScryptParameters *_Nonnull parameters) { - M68K_ARG(OFScryptParameters, parameters, a0) + M68K_ARG(const OFScryptParameters *_Nonnull, parameters, a0) - OFScrypt(parameters); + OFScryptWrapper(parameters); } void __saveds glue_OFSalsa20_8Core PPC_PARAMS(uint32_t *_Nonnull buffer) { Index: src/amiga-library.h ================================================================== --- src/amiga-library.h +++ src/amiga-library.h @@ -12,10 +12,12 @@ * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "macros.h" +#import "OFPBKDF2.h" +#import "OFScrypt.h" #ifdef OF_MORPHOS # include # define OF_M68K_ARG(type, name, reg) type name = (type)REG_##reg; #else @@ -95,7 +97,10 @@ char *_Nullable (*_Nonnull setlocale)(int, const char *_Nullable); int (*_Nonnull _Unwind_Backtrace)(int (*_Nonnull)(void *_Nonnull, void *_Null_unspecified), void *_Null_unspecified); }; -extern bool OFInit(unsigned int version, struct OFLibC *libC, FILE **sF); +extern bool OFInit(unsigned int version, struct OFLibC *_Nonnull libC, + FILE *_Nonnull *_Nonnull sF); extern unsigned long *OFHashSeedRef(void); +extern void OFPBKDF2Wrapper(const OFPBKDF2Parameters *_Nonnull parameters); +extern void OFScryptWrapper(const OFScryptParameters *_Nonnull parameters); Index: src/amiga-library.m ================================================================== --- src/amiga-library.m +++ src/amiga-library.m @@ -636,10 +636,22 @@ int _Unwind_Backtrace(int (*callback)(void *, void *), void *data) { return libC._Unwind_Backtrace(callback, data); } + +void +OFPBKDF2Wrapper(const OFPBKDF2Parameters *parameters) +{ + OFPBKDF2(*parameters); +} + +void +OFScryptWrapper(const OFScryptParameters *parameters) +{ + OFScrypt(*parameters); +} #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" static CONST_APTR functionTable[] = { #ifdef OF_MORPHOS Index: src/amiga-library.xml ================================================================== --- src/amiga-library.xml +++ src/amiga-library.xml @@ -101,16 +101,18 @@ OFPBKDF2.h - - + + OFScrypt.h - - + + Index: src/linklib/init.m ================================================================== --- src/linklib/init.m +++ src/linklib/init.m @@ -398,5 +398,20 @@ DESTRUCTOR_P(ObjFW, 4000) { dtor(); } #endif + +extern void OFPBKDF2Wrapper(const OFPBKDF2Parameters *parameters); +extern void OFScryptWrapper(const OFScryptParameters *parameters); + +void +OFPBKDF2(OFPBKDF2Parameters *parameters) +{ + OFPBKDF2Wrapper(¶meters); +} + +void +OFScrypt(OFScryptParameters *parameters) +{ + OFScryptWrapper(¶meters); +} Index: src/linklib/linklib.m ================================================================== --- src/linklib/linklib.m +++ src/linklib/linklib.m @@ -546,40 +546,40 @@ __extension__ ((void (*)(OFOnceControl *_Nonnull, OFOnceFunction _Nonnull))*(void **)(((uintptr_t)ObjFWBase) - 202))(control, func); #endif } void -OFPBKDF2(OFPBKDF2Parameters parameters) +OFPBKDF2Wrapper(const OFPBKDF2Parameters *_Nonnull parameters) { #if defined(OF_AMIGAOS_M68K) register struct Library *a6 __asm__("a6") = ObjFWBase; (void)a6; - ((void (*)(OFPBKDF2Parameters __asm__("a0")))(((uintptr_t)ObjFWBase) - 210))(parameters); + ((void (*)(const OFPBKDF2Parameters *_Nonnull __asm__("a0")))(((uintptr_t)ObjFWBase) - 210))(parameters); #elif defined(OF_MORPHOS) __asm__ __volatile__ ( "mr %%r12, %0" :: "r"(ObjFWBase) : "r12" ); - __extension__ ((void (*)(OFPBKDF2Parameters))*(void **)(((uintptr_t)ObjFWBase) - 208))(parameters); + __extension__ ((void (*)(const OFPBKDF2Parameters *_Nonnull))*(void **)(((uintptr_t)ObjFWBase) - 208))(parameters); #endif } void -OFScrypt(OFScryptParameters parameters) +OFScryptWrapper(const OFScryptParameters *_Nonnull parameters) { #if defined(OF_AMIGAOS_M68K) register struct Library *a6 __asm__("a6") = ObjFWBase; (void)a6; - ((void (*)(OFScryptParameters __asm__("a0")))(((uintptr_t)ObjFWBase) - 216))(parameters); + ((void (*)(const OFScryptParameters *_Nonnull __asm__("a0")))(((uintptr_t)ObjFWBase) - 216))(parameters); #elif defined(OF_MORPHOS) __asm__ __volatile__ ( "mr %%r12, %0" :: "r"(ObjFWBase) : "r12" ); - __extension__ ((void (*)(OFScryptParameters))*(void **)(((uintptr_t)ObjFWBase) - 214))(parameters); + __extension__ ((void (*)(const OFScryptParameters *_Nonnull))*(void **)(((uintptr_t)ObjFWBase) - 214))(parameters); #endif } void OFSalsa20_8Core(uint32_t *_Nonnull buffer)