This repository has been archived by the owner on May 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmemory.h
86 lines (66 loc) · 2.96 KB
/
memory.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/************************************************************************
Лабораторная работа №1
Описание интерфейсных функций модели менеджера памяти
************************************************************************/
#include <stddef.h>
typedef char* VA; // Тип описывающий адрес блока
/**
@func _malloc
@brief Выделяет блок памяти определенного размера
@param [out] ptr адрес блока
@param [in] szBlock размер блока
@return код ошибки
@retval 0 успешное выполнение
@retval -1 неверные параметры
@retval -2 нехватка памяти
@retval 1 неизвестная ошибка
**/
int _malloc (VA* ptr, size_t szBlock);
/**
@func _free
@brief Удаление блока памяти
@param [in] ptr адрес блока
@return код ошибки
@retval 0 успешное выполнение
@retval -1 неверные параметры
@retval 1 неизвестная ошибка
**/
int _free (VA ptr);
/**
@func _read
@brief Чтение информации из блока памяти
@param [in] ptr адрес блока
@param [in] pBuffer адрес буфера куда копируется инфомация
@param [in] szBuffer размер буфера
@return код ошибки
@retval 0 успешное выполнение
@retval -1 неверные параметры
@retval -2 доступ за пределы блока
@retval 1 неизвестная ошибка
**/
int _read (VA ptr, void* pBuffer, size_t szBuffer);
/**
@func _write
@brief Запись информации в блок памяти
@param [in] ptr адрес блока
@param [in] pBuffer адрес буфера, куда копируется инфомация
@param [in] szBuffer размер буфера
@return код ошибки
@retval 0 успешное выполнение
@retval -1 неверные параметры
@retval -2 доступ за пределы блока
@retval 1 неизвестная ошибка
**/
int _write (VA ptr, void* pBuffer, size_t szBuffer);
/**
@func _init
@brief Инициализация модели менеджера памяти
@param [in] n количество страниц
@param [in] szPage размер страницы
В варианте 1 и 2 общий объем памяти расчитывается как n*szPage
@return код ошибки
@retval 0 успешное выполнение
@retval -1 неверные параметры
@retval 1 неизвестная ошибка
**/
int _init (int n, size_t szPage);