Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
stdlib.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * Kintsugi OS KKLIBC source code
3 * File: kklibc/stdlib.h
4 * Title: Стандартный набор методов (заголовочный файл)
5 * Description: Заголовочный файл стандартной библиотеки Kintsugi OS.
6 * Определяет функции для работы со строками, памятью,
7 * преобразованиями и управления системой.
8 * ---------------------------------------------------------------------------*/
9#ifndef KKLIBC_STDLIB_H
10#define KKLIBC_STDLIB_H
11
12#include "ctypes.h"
13#include "stdio.h"
14
15unsigned long long __udivdi3(unsigned long long a, unsigned long long b);
16
17unsigned long long __umoddi3(unsigned long long a, unsigned long long b);
18
19/*******************************************************************************
20 * Преобразования данных
21 ******************************************************************************/
22
29void booltochar(u8 value, u8* str);
30
37void itoa(int num, char* str, int base);
38
45void utoa(u32 num, char* str, int base);
46
52void int_to_ascii(int n, char str[]);
53
59void hex_to_ascii(int n, char str[]);
60
66int strtoint(char* str);
67
73int hex_strtoint(char* str);
74
75/*******************************************************************************
76 * Работа со строками
77 ******************************************************************************/
78
84int strlen(char s[]);
85
91void strcpy(char* dest, char* src);
92
100char* strncpy(char* dest, const char* src, unsigned int n);
101
108int strcmp(char s1[], char s2[]);
109
117int strncmp(const char* s1, const char* s2, unsigned int n);
118
124void append(char s[], char n);
125
133char* strncat(char* dest, const char* src, unsigned int n);
134
139void backspace(char s[]);
140
145void reverse(char s[]);
146
153char* strchr(const char* s, int c);
154
161char* strstr(const char* haystack, const char* needle);
162
169u32 strspn(const u8* str1, const u8* str2);
170
178u32 strcspn(const u8* str1, const u8* str2);
179
186u8* strpbrk(const u8* str1, const u8* str2);
187
194char* strtok(char* src_str, char* delim);
195
202unsigned int is_delim(char c, char* delim);
203
204/*******************************************************************************
205 * Работа с памятью
206 ******************************************************************************/
207
215void* memcpy(void* dest, const void* src, unsigned int n);
216
223void memory_copy(u8* source, u8* dest, int nbytes);
224
232void* memset(void* s, int c, unsigned int n);
233
240void memory_set(u8* dest, u8 val, u32 len);
241
248void u32memory_set(u32* dest, u32 val, u32 len);
249
257void* memmove(void* dest, const void* src, u32 n);
258
266int memcmp(const void* ptr1, const void* ptr2, u32 n);
267
275void* memchr(const void* ptr, int c, u32 n);
276
277/*******************************************************************************
278 * Генерация псевдослучайных чисел
279 ******************************************************************************/
280
286u32 rand(u32* state);
287
295u32 rand_range(u32* state, u32 min, u32 max);
296
297/*******************************************************************************
298 * Форматированный вывод в буфер
299 ******************************************************************************/
300
308int sprintf(char* buf, const char* fmt, ...);
309
320int snprintf(char* buf, unsigned int size, const char* fmt, ...);
321
333unsigned int vsnprintf(char* buf, unsigned int size, const char* fmt, va_list args);
334
335/*******************************************************************************
336 * Управление системой
337 ******************************************************************************/
338
342void reboot();
343
348void wait(int ms);
349
350#endif
unsigned int u32
Definition ctypes.h:11
unsigned char u8
Definition ctypes.h:15
u32 size
Definition mem.h:0
char * va_list
Definition stdio.h:13
unsigned long long __umoddi3(unsigned long long a, unsigned long long b)
Definition stdlib.c:18
void * memcpy(void *dest, const void *src, unsigned int n)
Копирует блок памяти из src в dest.
Definition stdlib.c:247
int strncmp(const char *s1, const char *s2, unsigned int n)
Сравнивает первые n символов двух строк.
Definition stdlib.c:483
unsigned int vsnprintf(char *buf, unsigned int size, const char *fmt, va_list args)
Записывает форматированную строку в буфер с ограничением размера для va_list.
Definition stdlib.c:531
void memory_set(u8 *dest, u8 val, u32 len)
Заполняет блок памяти указанным байт-значением.
Definition stdlib.c:263
u32 rand_range(u32 *state, u32 min, u32 max)
Генерирует псевдослучайное число в заданном диапазоне.
Definition stdlib.c:208
void * memchr(const void *ptr, int c, u32 n)
Ищет первое вхождение символа в блоке памяти.
Definition stdlib.c:645
char * strncat(char *dest, const char *src, unsigned int n)
Объединяет не более n символов строки src к концу строки dest.
Definition stdlib.c:472
void append(char s[], char n)
Объединяет строку src к концу строки dest.
Definition stdlib.c:381
void memory_copy(u8 *source, u8 *dest, int nbytes)
Копирует n байт из source в dest. (Альтернатива memcpy)
Definition stdlib.c:256
void int_to_ascii(int n, char str[])
(legacy, используйте itoa) Преобразует целое число в строку ASCII.
Definition stdlib.c:280
int snprintf(char *buf, unsigned int size, const char *fmt,...)
Записывает форматированную строку в буфер с ограничением размера.
Definition stdlib.c:545
u32 strspn(const u8 *str1, const u8 *str2)
Вычисляет длину начального сегмента строки str1, состоящего только из символов строки str2.
Definition stdlib.c:553
char * strtok(char *src_str, char *delim)
Разбивает строку на токены по разделителю.
Definition stdlib.c:416
void * memset(void *s, int c, unsigned int n)
Заполняет блок памяти указанным значением.
Definition stdlib.c:238
u32 strcspn(const u8 *str1, const u8 *str2)
Вычисляет длину начального сегмента строки str1, который не содержит ни одного символа из строки str2...
Definition stdlib.c:577
u32 rand(u32 *state)
Генерирует псевдослучайное число используя линейный конгруэнтный метод.
Definition stdlib.c:216
char * strncpy(char *dest, const char *src, unsigned int n)
Копирует до n символов из строки src в dest.
Definition stdlib.c:460
int hex_strtoint(char *str)
Преобразует строку, представляющую шестнадцатеричное число, в целое число.
Definition stdlib.c:346
int memcmp(const void *ptr1, const void *ptr2, u32 n)
Сравнивает два блока памяти.
Definition stdlib.c:632
void reverse(char s[])
Разворачивает строку на месте.
Definition stdlib.c:363
int strtoint(char *str)
Преобразует строку, представляющую число, в целое число со знаком.
Definition stdlib.c:298
unsigned int is_delim(char c, char *delim)
Проверяет, является ли символ разделителем.
Definition stdlib.c:405
unsigned long long __udivdi3(unsigned long long a, unsigned long long b)
Definition stdlib.c:14
char * strstr(const char *haystack, const char *needle)
Ищет первое вхождение подстроки needle в строке haystack.
Definition stdlib.c:511
void u32memory_set(u32 *dest, u32 val, u32 len)
Заполняет блок памяти указанным 32-битным значением.
Definition stdlib.c:270
void reboot()
Перезагружает систему.
Definition stdlib.c:221
int sprintf(char *buf, const char *fmt,...)
Записывает форматированную строку в буфер.
Definition stdlib.c:536
int strlen(char s[])
Вычисляет длину строки.
Definition stdlib.c:373
int strcmp(char s1[], char s2[])
Сравнивает две строки.
Definition stdlib.c:395
void backspace(char s[])
Удаляет последний символ из строки (симуляция backspace).
Definition stdlib.c:387
void itoa(int num, char *str, int base)
Преобразует целое число со знаком в строку в указанной системе счисления.
Definition stdlib.c:106
void booltochar(u8 value, u8 *str)
Конвертирует булеву переменную в строку "true" или "false".
Definition stdlib.c:98
char * strchr(const char *s, int c)
Ищет первое вхождение символа в строке.
Definition stdlib.c:497
void hex_to_ascii(int n, char str[])
(legacy, используйте itoa) Преобразует целое число в шестнадцатеричную строку ASCII.
Definition stdlib.c:310
void utoa(u32 num, char *str, int base)
Преобразует целое число без знака в строку в указанной системе счисления.
Definition stdlib.c:146
u8 * strpbrk(const u8 *str1, const u8 *str2)
Ищет в строке str1 первый символ, который совпадает с любым символом из строки str2.
Definition stdlib.c:596
void * memmove(void *dest, const void *src, u32 n)
Перемещает блок памяти из src в dest. Области могут перекрываться.
Definition stdlib.c:612
void strcpy(char *dest, char *src)
Копирует строку из src в dest.
Definition stdlib.c:339
void wait(int ms)
Приостанавливает выполнение на указанное количество миллисекунд.
Definition stdlib.c:227