mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-07-02 02:49:15 +00:00
refactor(kernel): change NIF to nif
This commit is contained in:
@ -268,14 +268,14 @@ typedef union
|
||||
// 1. Some compilers are finicky about this;
|
||||
// 2. Some people may want to convert this to C89;
|
||||
// 3. If you try to use it as C++, only C++20 supports compound literals
|
||||
static inline NIF double_with_bit_access get_bit_access(double x)
|
||||
static inline nif double_with_bit_access get_bit_access(double x)
|
||||
{
|
||||
double_with_bit_access dwba;
|
||||
dwba.F = x;
|
||||
return dwba;
|
||||
}
|
||||
|
||||
static inline NIF int get_sign_bit(double x)
|
||||
static inline nif int get_sign_bit(double x)
|
||||
{
|
||||
// The sign is stored in the highest bit
|
||||
return (int)(get_bit_access(x).U >> (DOUBLE_SIZE_IN_BITS - 1));
|
||||
@ -319,7 +319,7 @@ typedef struct
|
||||
// or alternatively, that '\0' can be passed to the function in the output
|
||||
// gadget. The former assumption holds within the printf library. It also
|
||||
// assumes that the output gadget has been properly initialized.
|
||||
static inline NIF void putchar_via_gadget(output_gadget_t *gadget, char c)
|
||||
static inline nif void putchar_via_gadget(output_gadget_t *gadget, char c)
|
||||
{
|
||||
printf_size_t write_pos = gadget->pos++;
|
||||
// We're _always_ increasing pos, so as to count how may characters
|
||||
@ -342,7 +342,7 @@ static inline NIF void putchar_via_gadget(output_gadget_t *gadget, char c)
|
||||
}
|
||||
|
||||
// Possibly-write the string-terminating '\0' character
|
||||
static inline NIF void append_termination_with_gadget(output_gadget_t *gadget)
|
||||
static inline nif void append_termination_with_gadget(output_gadget_t *gadget)
|
||||
{
|
||||
if (gadget->function != NULL || gadget->max_chars == 0)
|
||||
{
|
||||
@ -360,13 +360,13 @@ extern void putchar(char c);
|
||||
|
||||
// We can't use putchar_ as is, since our output gadget
|
||||
// only takes pointers to functions with an extra argument
|
||||
static inline NIF void putchar_wrapper(char c, void *unused)
|
||||
static inline nif void putchar_wrapper(char c, void *unused)
|
||||
{
|
||||
putchar(c);
|
||||
UNUSED(unused);
|
||||
}
|
||||
|
||||
static inline NIF output_gadget_t discarding_gadget(void)
|
||||
static inline nif output_gadget_t discarding_gadget(void)
|
||||
{
|
||||
output_gadget_t gadget;
|
||||
gadget.function = NULL;
|
||||
@ -377,7 +377,7 @@ static inline NIF output_gadget_t discarding_gadget(void)
|
||||
return gadget;
|
||||
}
|
||||
|
||||
static inline NIF output_gadget_t buffer_gadget(char *buffer, size_t buffer_size)
|
||||
static inline nif output_gadget_t buffer_gadget(char *buffer, size_t buffer_size)
|
||||
{
|
||||
printf_size_t usable_buffer_size = (buffer_size > PRINTF_MAX_POSSIBLE_BUFFER_SIZE) ? PRINTF_MAX_POSSIBLE_BUFFER_SIZE : (printf_size_t)buffer_size;
|
||||
output_gadget_t result = discarding_gadget();
|
||||
@ -389,7 +389,7 @@ static inline NIF output_gadget_t buffer_gadget(char *buffer, size_t buffer_size
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline NIF output_gadget_t function_gadget(void (*function)(char, void *), void *extra_arg)
|
||||
static inline nif output_gadget_t function_gadget(void (*function)(char, void *), void *extra_arg)
|
||||
{
|
||||
output_gadget_t result = discarding_gadget();
|
||||
result.function = function;
|
||||
@ -398,7 +398,7 @@ static inline NIF output_gadget_t function_gadget(void (*function)(char, void *)
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline NIF output_gadget_t extern_putchar_gadget(void)
|
||||
static inline nif output_gadget_t extern_putchar_gadget(void)
|
||||
{
|
||||
return function_gadget(putchar_wrapper, NULL);
|
||||
}
|
||||
@ -407,7 +407,7 @@ static inline NIF output_gadget_t extern_putchar_gadget(void)
|
||||
// @return The length of the string (excluding the terminating 0) limited by 'maxsize'
|
||||
// @note strlen uses size_t, but wes only use this function with printf_size_t
|
||||
// variables - hence the signature.
|
||||
static inline NIF printf_size_t strnlen_s_(const char *str, printf_size_t maxsize)
|
||||
static inline nif printf_size_t strnlen_s_(const char *str, printf_size_t maxsize)
|
||||
{
|
||||
const char *s;
|
||||
for (s = str; *s && maxsize--; ++s)
|
||||
@ -417,13 +417,13 @@ static inline NIF printf_size_t strnlen_s_(const char *str, printf_size_t maxsiz
|
||||
|
||||
// internal test if char is a digit (0-9)
|
||||
// @return true if char is a digit
|
||||
static inline NIF bool is_digit_(char ch)
|
||||
static inline nif bool is_digit_(char ch)
|
||||
{
|
||||
return (ch >= '0') && (ch <= '9');
|
||||
}
|
||||
|
||||
// internal ASCII string to printf_size_t conversion
|
||||
static NIF printf_size_t atou_(const char **str)
|
||||
static nif printf_size_t atou_(const char **str)
|
||||
{
|
||||
printf_size_t i = 0U;
|
||||
while (is_digit_(**str))
|
||||
@ -434,7 +434,7 @@ static NIF printf_size_t atou_(const char **str)
|
||||
}
|
||||
|
||||
// output the specified string in reverse, taking care of any zero-padding
|
||||
static NIF void out_rev_(output_gadget_t *output, const char *buf, printf_size_t len, printf_size_t width, printf_flags_t flags)
|
||||
static nif void out_rev_(output_gadget_t *output, const char *buf, printf_size_t len, printf_size_t width, printf_flags_t flags)
|
||||
{
|
||||
const printf_size_t start_pos = output->pos;
|
||||
|
||||
@ -465,7 +465,7 @@ static NIF void out_rev_(output_gadget_t *output, const char *buf, printf_size_t
|
||||
|
||||
// Invoked by print_integer after the actual number has been printed, performing necessary
|
||||
// work on the number's prefix (as the number is initially printed in reverse order)
|
||||
static NIF void print_integer_finalization(output_gadget_t *output, char *buf, printf_size_t len, bool negative, numeric_base_t base, printf_size_t precision, printf_size_t width, printf_flags_t flags)
|
||||
static nif void print_integer_finalization(output_gadget_t *output, char *buf, printf_size_t len, bool negative, numeric_base_t base, printf_size_t precision, printf_size_t width, printf_flags_t flags)
|
||||
{
|
||||
printf_size_t unpadded_len = len;
|
||||
|
||||
@ -549,7 +549,7 @@ static NIF void print_integer_finalization(output_gadget_t *output, char *buf, p
|
||||
}
|
||||
|
||||
// An internal itoa-like function
|
||||
static NIF void print_integer(output_gadget_t *output, printf_unsigned_value_t value, bool negative, numeric_base_t base, printf_size_t precision, printf_size_t width, printf_flags_t flags)
|
||||
static nif void print_integer(output_gadget_t *output, printf_unsigned_value_t value, bool negative, numeric_base_t base, printf_size_t precision, printf_size_t width, printf_flags_t flags)
|
||||
{
|
||||
char buf[PRINTF_INTEGER_BUFFER_SIZE];
|
||||
printf_size_t len = 0U;
|
||||
@ -608,7 +608,7 @@ static const double powers_of_10[NUM_DECIMAL_DIGITS_IN_INT64_T] = {
|
||||
// Break up a double number - which is known to be a finite non-negative number -
|
||||
// into its base-10 parts: integral - before the decimal point, and fractional - after it.
|
||||
// Taken the precision into account, but does not change it even internally.
|
||||
static struct NIF double_components get_components(double number, printf_size_t precision)
|
||||
static struct nif double_components get_components(double number, printf_size_t precision)
|
||||
{
|
||||
struct double_components number_;
|
||||
number_.is_negative = get_sign_bit(number);
|
||||
@ -745,7 +745,7 @@ static struct double_components get_normalized_components(bool negative, printf_
|
||||
}
|
||||
#endif // PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
|
||||
|
||||
static NIF void print_broken_up_decimal(
|
||||
static nif void print_broken_up_decimal(
|
||||
struct double_components number_, output_gadget_t *output, printf_size_t precision,
|
||||
printf_size_t width, printf_flags_t flags, char *buf, printf_size_t len)
|
||||
{
|
||||
@ -847,7 +847,7 @@ static NIF void print_broken_up_decimal(
|
||||
}
|
||||
|
||||
// internal ftoa for fixed decimal floating point
|
||||
static NIF void print_decimal_number(output_gadget_t *output, double number, printf_size_t precision, printf_size_t width, printf_flags_t flags, char *buf, printf_size_t len)
|
||||
static nif void print_decimal_number(output_gadget_t *output, double number, printf_size_t precision, printf_size_t width, printf_flags_t flags, char *buf, printf_size_t len)
|
||||
{
|
||||
struct double_components value_ = get_components(number, precision);
|
||||
print_broken_up_decimal(value_, output, precision, width, flags, buf, len);
|
||||
@ -920,7 +920,7 @@ static double pow10_of_int(int floored_exp10)
|
||||
return dwba.F;
|
||||
}
|
||||
|
||||
static NIF void print_exponential_number(output_gadget_t *output, double number, printf_size_t precision, printf_size_t width, printf_flags_t flags, char *buf, printf_size_t len)
|
||||
static nif void print_exponential_number(output_gadget_t *output, double number, printf_size_t precision, printf_size_t width, printf_flags_t flags, char *buf, printf_size_t len)
|
||||
{
|
||||
const bool negative = get_sign_bit(number);
|
||||
// This number will decrease gradually (by factors of 10) as we "extract" the exponent out of it
|
||||
@ -1043,7 +1043,7 @@ static NIF void print_exponential_number(output_gadget_t *output, double number,
|
||||
}
|
||||
#endif // PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
|
||||
|
||||
static NIF void print_floating_point(output_gadget_t *output, double value, printf_size_t precision, printf_size_t width, printf_flags_t flags, bool prefer_exponential)
|
||||
static nif void print_floating_point(output_gadget_t *output, double value, printf_size_t precision, printf_size_t width, printf_flags_t flags, bool prefer_exponential)
|
||||
{
|
||||
char buf[PRINTF_DECIMAL_BUFFER_SIZE];
|
||||
printf_size_t len = 0U;
|
||||
@ -1102,7 +1102,7 @@ static NIF void print_floating_point(output_gadget_t *output, double value, prin
|
||||
|
||||
// Advances the format pointer past the flags, and returns the parsed flags
|
||||
// due to the characters passed
|
||||
static NIF printf_flags_t parse_flags(const char **format)
|
||||
static nif printf_flags_t parse_flags(const char **format)
|
||||
{
|
||||
printf_flags_t flags = 0U;
|
||||
do
|
||||
@ -1135,7 +1135,7 @@ static NIF printf_flags_t parse_flags(const char **format)
|
||||
} while (true);
|
||||
}
|
||||
|
||||
static inline NIF void format_string_loop(output_gadget_t *output, const char *format, va_list args)
|
||||
static inline nif void format_string_loop(output_gadget_t *output, const char *format, va_list args)
|
||||
{
|
||||
#if PRINTF_CHECK_FOR_NUL_IN_FORMAT_SPECIFIER
|
||||
#define ADVANCE_IN_FORMAT_STRING(cptr_) \
|
||||
@ -1517,7 +1517,7 @@ static inline NIF void format_string_loop(output_gadget_t *output, const char *f
|
||||
}
|
||||
|
||||
// internal vsnprintf - used for implementing _all library functions
|
||||
static NIF int vsnprintf_impl(output_gadget_t *output, const char *format, va_list args)
|
||||
static nif int vsnprintf_impl(output_gadget_t *output, const char *format, va_list args)
|
||||
{
|
||||
// Note: The library only calls vsnprintf_impl() with output->pos being 0. However, it is
|
||||
// possible to call this function with a non-zero pos value for some "remedial printing".
|
||||
@ -1532,30 +1532,30 @@ static NIF int vsnprintf_impl(output_gadget_t *output, const char *format, va_li
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
NIF int vprintf(const char *format, va_list arg)
|
||||
nif int vprintf(const char *format, va_list arg)
|
||||
{
|
||||
output_gadget_t gadget = extern_putchar_gadget();
|
||||
return vsnprintf_impl(&gadget, format, arg);
|
||||
}
|
||||
|
||||
NIF int vsnprintf(char *s, size_t n, const char *format, va_list arg)
|
||||
nif int vsnprintf(char *s, size_t n, const char *format, va_list arg)
|
||||
{
|
||||
output_gadget_t gadget = buffer_gadget(s, n);
|
||||
return vsnprintf_impl(&gadget, format, arg);
|
||||
}
|
||||
|
||||
NIF int vsprintf(char *s, const char *format, va_list arg)
|
||||
nif int vsprintf(char *s, const char *format, va_list arg)
|
||||
{
|
||||
return vsnprintf(s, PRINTF_MAX_POSSIBLE_BUFFER_SIZE, format, arg);
|
||||
}
|
||||
|
||||
NIF int vfctprintf(void (*out)(char c, void *extra_arg), void *extra_arg, const char *format, va_list arg)
|
||||
nif int vfctprintf(void (*out)(char c, void *extra_arg), void *extra_arg, const char *format, va_list arg)
|
||||
{
|
||||
output_gadget_t gadget = function_gadget(out, extra_arg);
|
||||
return vsnprintf_impl(&gadget, format, arg);
|
||||
}
|
||||
|
||||
NIF int printf(const char *format, ...)
|
||||
nif int printf(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
@ -1564,7 +1564,7 @@ NIF int printf(const char *format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
NIF int sprintf(char *s, const char *format, ...)
|
||||
nif int sprintf(char *s, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
@ -1573,7 +1573,7 @@ NIF int sprintf(char *s, const char *format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
NIF int snprintf(char *s, size_t n, const char *format, ...)
|
||||
nif int snprintf(char *s, size_t n, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
@ -1582,7 +1582,7 @@ NIF int snprintf(char *s, size_t n, const char *format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
NIF int fctprintf(void (*out)(char c, void *extra_arg), void *extra_arg, const char *format, ...)
|
||||
nif int fctprintf(void (*out)(char c, void *extra_arg), void *extra_arg, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
|
Reference in New Issue
Block a user