diff options
Diffstat (limited to 'rgo/include/rgo.h')
-rw-r--r-- | rgo/include/rgo.h | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/rgo/include/rgo.h b/rgo/include/rgo.h index fe54e75..d05b4dd 100644 --- a/rgo/include/rgo.h +++ b/rgo/include/rgo.h @@ -4,51 +4,63 @@ If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> #include <sus.h> #if !defined(rgo_ver) -#define rgo_ver sus_typlit_u64(0x9) +#define rgo_ver rgo_typlit_u64(0xA) + +#define rgo_typlit_s10(_lit) ((int_least16_t)( _lit)) +#define rgo_typlit_s20(_lit) ((int_least32_t)( _lit)) +#define rgo_typlit_s40(_lit) ((int_least64_t)( _lit)) +#define rgo_typlit_s8( _lit) ((int_least8_t)( _lit)) +#define rgo_typlit_u10(_lit) ((uint_least16_t)(_lit)) +#define rgo_typlit_u20(_lit) ((uint_least32_t)(_lit)) +#define rgo_typlit_u40(_lit) ((uint_least64_t)(_lit)) +#define rgo_typlit_u8( _lit) ((uint_least8_t)( _lit)) +#define rgo_typlit_usz(_lit) ((size_t)( _lit)) #if defined(sus_lang_asm) + .extern rgo_fndbyte .extern rgo_fndchr -.extern rgo_getbinver +.extern rgo_memcmp .extern rgo_memcpy .extern rgo_memeq .extern rgo_memfill +.extern rgo_strcmp .extern rgo_strcpy .extern rgo_streq .extern rgo_strfill .extern rgo_strlen + #else #if defined(sus_lang_cxx) extern "C" { #endif -sus_attr_alloc sus_attr_allocsz(0x2) sus_attr_hot sus_attr_nothrw void * __rgo_memdup( void const * sus_restr ptr, sus_typ_usz num); -sus_attr_cold sus_attr_const sus_attr_nothrw sus_typ_u8 rgo_fastimpl( void); -sus_attr_hot sus_attr_nothrw sus_typ_usz rgo_fndbyte( void const * sus_restr ptr, sus_typ_usz num,sus_typ_u8 byte); -sus_attr_hot sus_attr_nothrw sus_typ_usz rgo_fndchr( char const * sus_restr str, char chr); -sus_attr_cold sus_attr_nothrw sus_typ_u64 rgo_getbinver(void); -sus_attr_hot sus_attr_nothrw void rgo_memcpy( void const * sus_restr in, sus_typ_usz num,void * sus_restr out); -sus_attr_hot sus_attr_nothrw sus_typ_u8 rgo_memeq( void const * sus_restr lptr,sus_typ_usz num,void const * sus_restr rptr); -sus_attr_hot sus_attr_nothrw void rgo_memfill( void * sus_restr ptr, sus_typ_usz num,sus_typ_u8 val); -sus_attr_hot sus_attr_nothrw sus_typ_usz rgo_strcpy( char const * sus_restr in, char * sus_restr out); -sus_attr_alloc sus_attr_hot sus_attr_nothrw char * rgo_strdup( char const * sus_restr str); -sus_attr_hot sus_attr_nothrw sus_typ_u8 rgo_streq( char const * sus_restr lstr,char const * sus_restr rstr); -sus_attr_hot sus_attr_nothrw void rgo_strfill( char * sus_restr lstr,char chr); -sus_attr_hot sus_attr_nothrw sus_typ_usz rgo_strlen( char const * sus_restr str); +extern bool const rgo_fastimpl; -#if defined(sus_lang_cxx) -} -#endif +sus_attr_alloc sus_attr_allocsz(0x2) sus_attr_hot sus_attr_nothrw void * rgo_memdup( void const * ptr, size_t num); +sus_attr_hot sus_attr_nothrw size_t rgo_fndbyte( void const * ptr, size_t num, uint_least8_t byte); +sus_attr_hot sus_attr_nothrw size_t rgo_fndchr( char const * str, char chr); +sus_attr_hot sus_attr_nothrw int_least8_t rgo_memcmp( void const * lstr,size_t num, void const * rstr); +sus_attr_hot sus_attr_nothrw void rgo_memcpy( void const * in, size_t num, void * out); +sus_attr_hot sus_attr_nothrw bool rgo_memeq( void const * lptr,size_t num, void const * rptr); +sus_attr_hot sus_attr_nothrw void rgo_memfill( void * ptr, size_t num, uint_least8_t val); +sus_attr_hot sus_attr_nothrw int_least8_t rgo_strcmp( char const * lstr,char const * rstr); +sus_attr_hot sus_attr_nothrw size_t rgo_strcpy( char const * in, char * out); +sus_attr_alloc sus_attr_hot sus_attr_nothrw char * rgo_strdup( char const * str); +sus_attr_hot sus_attr_nothrw bool rgo_streq( char const * lstr,char const * rstr); +sus_attr_hot sus_attr_nothrw void rgo_strfill( char * lstr,char chr); +sus_attr_hot sus_attr_nothrw size_t rgo_strlen( char const * str); -#if defined(sus_lang_cxx) -template<typename T> sus_attr_alloc sus_attr_allocsz(0x2) sus_attr_hot sus_attr_nothrw T * rgo_memdup(T const * sus_restr const _ptr,::sus_typ_usz const _num) -> T * {return static_cast<T *>(::__rgo_memdup(_ptr,_num));} -#else -#define rgo_memdup __rgo_memdup #endif +#if defined(sus_lang_cxx) +} #endif #endif |