Kintsugi OS 0.2.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
15/*******************************************************************************
16 * Преобразования данных
17 ******************************************************************************/
18
25void booltochar(u8 value, u8* str);
26
33void itoa(int num, char* str, int base);
34
41void utoa(u32 num, char* str, int base);
42
48void int_to_ascii(int n, char str[]);
49
55void hex_to_ascii(int n, char str[]);
56
62int strtoint(char* str);
63
69int hex_strtoint(char* str);
70
71/*******************************************************************************
72 * Работа со строками
73 ******************************************************************************/
74
80int strlen(char s[]);
81
87void strcpy(char* dest, char* src);
88
96char* strncpy(char* dest, const char* src, unsigned int n);
97
104int strcmp(char s1[], char s2[]);
105
113int strncmp(const char* s1, const char* s2, unsigned int n);
114
120void append(char s[], char n);
121
129char* strncat(char* dest, const char* src, unsigned int n);
130
135void backspace(char s[]);
136
141void reverse(char s[]);
142
149char* strchr(const char* s, int c);
150
157char* strstr(const char* haystack, const char* needle);
158
165u32 strspn(const u8* str1, const u8* str2);
166
174u32 strcspn(const u8* str1, const u8* str2);
175
182u8* strpbrk(const u8* str1, const u8* str2);
183
190char* strtok(char* src_str, char* delim);
191
198unsigned int is_delim(char c, char* delim);
199
200/*******************************************************************************
201 * Работа с памятью
202 ******************************************************************************/
203
211void* memcpy(void* dest, const void* src, unsigned int n);
212
219void memory_copy(u8* source, u8* dest, int nbytes);
220
228void* memset(void* s, int c, unsigned int n);
229
236void memory_set(u8* dest, u8 val, u32 len);
237
244void u32memory_set(u32* dest, u32 val, u32 len);
245
253void* memmove(void* dest, const void* src, u32 n);
254
262int memcmp(const void* ptr1, const void* ptr2, u32 n);
263
271void* memchr(const void* ptr, int c, u32 n);
272
273/*******************************************************************************
274 * Генерация псевдослучайных чисел
275 ******************************************************************************/
276
282u32 rand(u32* state);
283
291u32 rand_range(u32* state, u32 min, u32 max);
292
293/*******************************************************************************
294 * Форматированный вывод в буфер
295 ******************************************************************************/
296
304int sprintf(char* buf, const char* fmt, ...);
305
316int snprintf(char* buf, unsigned int size, const char* fmt, ...);
317
329int vsnprintf(char* buf, unsigned int size, const char* fmt, va_list args);
330
331/*******************************************************************************
332 * Управление системой
333 ******************************************************************************/
334
338void reboot();
339
344void wait(int ms);
345
346#endif
unsigned int u32
Definition ctypes.h:11
unsigned char u8
Definition ctypes.h:15
char * va_list
Definition stdio.h:13
void * memcpy(void *dest, const void *src, unsigned int n)
Копирует блок памяти из src в dest.
Definition stdlib.c:239
int strncmp(const char *s1, const char *s2, unsigned int n)
Сравнивает первые n символов двух строк.
Definition stdlib.c:475
void memory_set(u8 *dest, u8 val, u32 len)
Заполняет блок памяти указанным байт-значением.
Definition stdlib.c:255
u32 rand_range(u32 *state, u32 min, u32 max)
Генерирует псевдослучайное число в заданном диапазоне.
Definition stdlib.c:200
void * memchr(const void *ptr, int c, u32 n)
Ищет первое вхождение символа в блоке памяти.
Definition stdlib.c:696
char * strncat(char *dest, const char *src, unsigned int n)
Объединяет не более n символов строки src к концу строки dest.
Definition stdlib.c:464
void append(char s[], char n)
Объединяет строку src к концу строки dest.
Definition stdlib.c:373
void memory_copy(u8 *source, u8 *dest, int nbytes)
Копирует n байт из source в dest. (Альтернатива memcpy)
Definition stdlib.c:248
void int_to_ascii(int n, char str[])
(legacy, используйте itoa) Преобразует целое число в строку ASCII.
Definition stdlib.c:272
int snprintf(char *buf, unsigned int size, const char *fmt,...)
Записывает форматированную строку в буфер с ограничением размера.
Definition stdlib.c:596
u32 strspn(const u8 *str1, const u8 *str2)
Вычисляет длину начального сегмента строки str1, состоящего только из символов строки str2.
Definition stdlib.c:604
char * strtok(char *src_str, char *delim)
Разбивает строку на токены по разделителю.
Definition stdlib.c:408
void * memset(void *s, int c, unsigned int n)
Заполняет блок памяти указанным значением.
Definition stdlib.c:230
u32 strcspn(const u8 *str1, const u8 *str2)
Вычисляет длину начального сегмента строки str1, который не содержит ни одного символа из строки str2...
Definition stdlib.c:628
u32 rand(u32 *state)
Генерирует псевдослучайное число используя линейный конгруэнтный метод.
Definition stdlib.c:208
char * strncpy(char *dest, const char *src, unsigned int n)
Копирует до n символов из строки src в dest.
Definition stdlib.c:452
int hex_strtoint(char *str)
Преобразует строку, представляющую шестнадцатеричное число, в целое число.
Definition stdlib.c:338
int memcmp(const void *ptr1, const void *ptr2, u32 n)
Сравнивает два блока памяти.
Definition stdlib.c:683
int vsnprintf(char *buf, unsigned int size, const char *fmt, va_list args)
Записывает форматированную строку в буфер с ограничением размера для va_list.
Definition stdlib.c:524
void reverse(char s[])
Разворачивает строку на месте.
Definition stdlib.c:355
int strtoint(char *str)
Преобразует строку, представляющую число, в целое число со знаком.
Definition stdlib.c:290
unsigned int is_delim(char c, char *delim)
Проверяет, является ли символ разделителем.
Definition stdlib.c:397
char * strstr(const char *haystack, const char *needle)
Ищет первое вхождение подстроки needle в строке haystack.
Definition stdlib.c:503
void u32memory_set(u32 *dest, u32 val, u32 len)
Заполняет блок памяти указанным 32-битным значением.
Definition stdlib.c:262
void reboot()
Перезагружает систему.
Definition stdlib.c:213
int sprintf(char *buf, const char *fmt,...)
Записывает форматированную строку в буфер.
Definition stdlib.c:587
int strlen(char s[])
Вычисляет длину строки.
Definition stdlib.c:365
int strcmp(char s1[], char s2[])
Сравнивает две строки.
Definition stdlib.c:387
void backspace(char s[])
Удаляет последний символ из строки (симуляция backspace).
Definition stdlib.c:379
void itoa(int num, char *str, int base)
Преобразует целое число со знаком в строку в указанной системе счисления.
Definition stdlib.c:98
void booltochar(u8 value, u8 *str)
Конвертирует булеву переменную в строку "true" или "false".
Definition stdlib.c:90
char * strchr(const char *s, int c)
Ищет первое вхождение символа в строке.
Definition stdlib.c:489
void hex_to_ascii(int n, char str[])
(legacy, используйте itoa) Преобразует целое число в шестнадцатеричную строку ASCII.
Definition stdlib.c:302
void utoa(u32 num, char *str, int base)
Преобразует целое число без знака в строку в указанной системе счисления.
Definition stdlib.c:138
u8 * strpbrk(const u8 *str1, const u8 *str2)
Ищет в строке str1 первый символ, который совпадает с любым символом из строки str2.
Definition stdlib.c:647
void * memmove(void *dest, const void *src, u32 n)
Перемещает блок памяти из src в dest. Области могут перекрываться.
Definition stdlib.c:663
void strcpy(char *dest, char *src)
Копирует строку из src в dest.
Definition stdlib.c:331
void wait(int ms)
Приостанавливает выполнение на указанное количество миллисекунд.
Definition stdlib.c:219