Skip to content

Commit 1a32b6c

Browse files
committed
update docstrings
1 parent c84a331 commit 1a32b6c

File tree

12 files changed

+267
-13
lines changed

12 files changed

+267
-13
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
commit c84a331ecb6a9547e255a833f04024ec20e0ac1d
2+
Author: Alexeev Bronislav <[email protected]>
3+
Date: Thu Aug 28 15:39:31 2025 +0700
4+
5+
update docstrings and small changes in architecture
6+
17
commit fe56d138e16ac2875812c876bd9059d8c80e9e72
28
Author: Alexeev Bronislav <[email protected]>
39
Date: Wed Aug 27 04:47:13 2025 +0700

src/kernel/cpu/idt.h

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
/* Селекторы сегментов */
77
#define KERNEL_CS 0x08
8+
#define IDT_ENTRIES 256
89

910
/* Как определяется каждый элемент прерывания (обработчик) */
1011
typedef struct {
@@ -13,26 +14,35 @@ typedef struct {
1314
u8 always0;
1415
/*
1516
Бит 7 первого байта: "Присутствует прерывание"
16-
Биты 6-5: Уровень привилегий вызывающего абонента (0=ядро..3=пользователь)
17-
Бит 4: Устанавливается равным 0 для элементов прерывания
18-
Биты 3-0: биты 1110 = десятичное число 14 = "32-разрядный элемент прерывания"*/
17+
Биты 6-5: Уровень привилегий вызывающего абонента (0=ядро..3=пользователь)
18+
Бит 4: Устанавливается равным 0 для элементов прерывания
19+
Биты 3-0: биты 1110 = десятичное число 14 = "32-разрядный элемент прерывания"*/
1920
u8 flags;
2021
u16 high_offset; /* Higher 16 bits of handler function address */
2122
} __attribute__((packed)) idt_gate_t;
2223

23-
/* A pointer to the array of interrupt handlers.
24-
* Assembly instruction 'lidt' will read it */
24+
/* Указатель на массив обработчиков прерывания.
25+
Ассемблерная инструкция 'lidt' читает это. */
2526
typedef struct {
2627
u16 limit;
2728
u32 base;
2829
} __attribute__((packed)) idt_register_t;
2930

30-
#define IDT_ENTRIES 256
3131
extern idt_gate_t idt[IDT_ENTRIES];
3232
extern idt_register_t idt_reg;
3333

34-
/* Functions implemented in idt.c */
34+
/**
35+
* @brief Заготовка обработчика IDT
36+
*
37+
* @param n
38+
* @param handler
39+
**/
3540
void set_idt_gate(int n, u32 handler);
41+
42+
/**
43+
* @brief Заготовка IDT
44+
*
45+
**/
3646
void set_idt();
3747

3848
#endif

src/kernel/cpu/isr.h

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,41 @@ extern void irq15();
7070
#define IRQ14 46
7171
#define IRQ15 47
7272

73-
/* Struct which aggregates many registers */
73+
/* Структура для аггрегации регистров */
7474
typedef struct {
7575
u32 ds; /* сегмент данных */
7676
u32 edi, esi, ebp, esp, ebx, edx, ecx, eax; /* запушен pusha. */
7777
u32 int_no, err_code; /* Число прерывания и код ошибки */
7878
u32 eip, cs, eflags, useresp, ss; /* запушить процессором автоматически */
7979
} registers_t;
8080

81+
/**
82+
* @brief Обработка ISR
83+
*
84+
**/
8185
void isr_install();
86+
87+
/**
88+
* @brief Обработчик ISR
89+
*
90+
* @param r регистры
91+
**/
8292
void isr_handler(registers_t r);
93+
94+
/**
95+
* @brief установка IRQ
96+
*
97+
**/
8398
void irq_install();
99+
84100
typedef void (*isr_t)(registers_t);
101+
102+
/**
103+
* @brief Регистрация обработчика прерывания
104+
*
105+
* @param n номер прерывания
106+
* @param handler обработчик
107+
**/
85108
void register_interrupt_handler(u8 n, isr_t handler);
86109

87110
#endif

src/kernel/cpu/ports.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33

44
#include "../kklibc/ctypes.h"
55

6-
// unsigned char port_byte_in (u16 port);
7-
// void port_byte_out (u16 port, u8 data);
6+
/**
7+
* @brief Out ports
8+
*
9+
* @param port порт
10+
* @param data данные
11+
**/
812
void outports(u16 port, u16 data);
9-
// unsigned short port_word_in (u16 port);
10-
// void port_word_out (u16 port, u16 data);
1113

1214
#endif

src/kernel/cpu/timer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33

44
#include "../kklibc/ctypes.h"
55

6+
/**
7+
* @brief Инициализация таймера
8+
*
9+
* @param freq частота
10+
**/
611
void init_timer(u32 freq);
712

813
#endif

src/kernel/drivers/keyboard.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@
77

88
#include "../kklibc/ctypes.h"
99

10+
/**
11+
* @brief Инициализация драйвера клавиатуры
12+
*
13+
**/
1014
void init_keyboard();

src/kernel/drivers/lowlevel_io.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,33 @@
44
* Title: Заголовочный файл для drivers/lowlevel_io.c
55
*/
66

7+
/**
8+
* @brief Port byte in
9+
*
10+
* @param port порт
11+
**/
712
unsigned char port_byte_in(unsigned short port);
13+
14+
/**
15+
* @brief Port byte out
16+
*
17+
* @param port порт
18+
* @param data данные
19+
**/
820
void port_byte_out(unsigned short port, unsigned char data);
21+
22+
/**
23+
* @brief Poort word in
24+
*
25+
* @param port порт
26+
* @return unsigned char
27+
**/
928
unsigned char port_word_in(unsigned short port);
29+
30+
/**
31+
* @brief Port word out
32+
*
33+
* @param port порт
34+
* @param data данные
35+
**/
1036
void port_word_out(unsigned short port, unsigned short data);

src/kernel/drivers/screen.h

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,78 @@
9090
#define REG_SCREEN_DATA 0x3d5
9191

9292
/* Публичное API ядра */
93+
94+
/**
95+
* @brief Получение оффсета курсора
96+
*
97+
* @return int
98+
**/
9399
int get_cursor_offset();
100+
101+
/**
102+
* @brief Стандартная очистка экрана
103+
*
104+
**/
94105
void clear_screen();
106+
107+
/**
108+
* @brief Очистка и заполнение экраном halted cpu
109+
*
110+
**/
95111
void halted_cpu_screen_clear();
112+
113+
/**
114+
* @brief Вывод текста в определенном месте
115+
*
116+
* @param message сообщение
117+
* @param col колонка
118+
* @param row ряд
119+
* @param color цвет
120+
**/
96121
void kprint_at(char* message, int col, int row, int color);
122+
123+
/**
124+
* @brief Вывод текста
125+
*
126+
* @param message сообщение
127+
**/
97128
void kprint(char* message);
129+
130+
/**
131+
* @brief Вывод текста с новой строкой
132+
*
133+
* @param message сообщение
134+
**/
98135
void kprintln(char* message);
136+
137+
/**
138+
* @brief Цветной вывод с новой строкой
139+
*
140+
* @param message сообщение
141+
* @param color цвет
142+
**/
99143
void kprintln_colored(char* message, int color);
144+
145+
/**
146+
* @brief Цветной вывод
147+
*
148+
* @param message сообщение
149+
* @param color цвет
150+
**/
100151
void kprint_colored(char* message, int color);
152+
153+
/**
154+
* @brief Вывод символа backspace
155+
*
156+
**/
101157
void kprint_backspace();
158+
159+
/**
160+
* @brief Красный экран для паники ядра
161+
*
162+
* @param title заголовок
163+
* @param description описание
164+
**/
102165
void panic_red_screen(char* title, char* description);
103166

104167
#endif

src/kernel/kernel/kernel.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#ifndef KERNEL_H
22
#define KERNEL_H
33

4+
/**
5+
* @brief Обработка пользовательского ввода в шелле
6+
*
7+
* @param input
8+
**/
49
void user_input(char* input);
510

611
extern int shell_cursor_offset;

src/kernel/kernel/sysinfo.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
#include "../kklibc/ctypes.h"
55

6+
/**
7+
* @brief Структура информации о системе
8+
*
9+
**/
610
typedef struct {
711
u32 total_memory;
812
u32 free_memory;
@@ -15,8 +19,24 @@ typedef struct {
1519
} system_info_t;
1620

1721
// Функции для получения информации
22+
23+
/**
24+
* @brief Детектирование процессора
25+
*
26+
**/
1827
void detect_cpu(void);
28+
29+
/**
30+
* @brief Детектирование памяти
31+
*
32+
**/
1933
void detect_memory(void);
34+
35+
/**
36+
* @brief Получение системной информации
37+
*
38+
* @return system_info_t*
39+
**/
2040
system_info_t* get_system_info();
2141

2242
#endif

0 commit comments

Comments
 (0)