#ifndef PRYSTRIY_H
#define PRYSTRIY_H
#include "mavka/tsil.h"
#define ФОчистити 0
#define ФКолірТекстуЧервоний 1
#define ФКолірТекстуЗелений 2
#define ФКолірТекстуСиній 3
#define ФКолірТекстуЖовтий 4
typedef struct ЕлементШляхуПристроюМавки ЕлементШляхуПристроюМавки;
struct ЕлементШляхуПристроюМавки {
природне розмір;
п8* дані;
};
typedef логічне (*КористувацькийПристрійМавкиЧитатиКД)(
природне розмір_перед,
п8* дані_перед,
природне* вихід_розміру,
п8** вихід_даних,
природне дозволити_історію,
природне* кінець_файлу);
extern void змінити_користувацький_пристрій_мавки_читати_кд(
КористувацькийПристрійМавкиЧитатиКД нова_функція);
extern логічне пристрій_мавки_отримати_версію(природне* вихід_розміру,
п8** вихід_даних);
// втілено в Цілі
extern логічне пристрій_мавки_перекодувати_ю8_в_кд(
природне розмір,
п8* дані,
природне* вихід_розміру,
п8** вихід_даних,
природне* вихід_позиції_помилки);
// втілено в Цілі, вертає null-terminated
extern логічне пристрій_мавки_перекодувати_кд_в_ю8(
природне розмір,
п8* дані,
природне* вихід_розміру,
п8** вихід_даних,
природне* вихід_позиції_помилки);
extern void пристрій_мавки_вивести_формат(природне значення);
extern void пристрій_мавки_вивести_сирі_дані(природне розмір, п8* дані);
extern void пристрій_мавки_вивести_кд(природне розмір, п8* дані);
extern void пристрій_мавки_надрукувати_кд(природне розмір, п8* дані);
extern void пристрій_мавки_вивести_шлях(природне розмір, п8* дані);
extern void пристрій_мавки_надрукувати_шлях(природне розмір, п8* дані);
extern void пристрій_мавки_вивести_ю8(природне розмір, п8* дані);
extern void пристрій_мавки_надрукувати_ю8(природне розмір, п8* дані);
extern п8* пристрій_мавки_виділити_сиру_памʼять(природне розмір);
extern п8* пристрій_мавки_перевиділити_сиру_памʼять(п8* значення,
природне новий_розмір);
extern void пристрій_мавки_звільнити_сиру_памʼять(п8* значення);
extern void пристрій_мавки_вийти(ц32 код_виходу);
extern логічне пристрій_мавки_прочитати_файл(природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_перетворити_п64_в_кд(п64 значення,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_перетворити_ц64_в_кд(ц64 значення,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_перетворити_р64_в_кд(
р64 значення,
природне* вихід_розміру,
п8** вихід_даних,
ціле* вихід_розміру_експоненти);
extern п64 пристрій_мавки_піднести_до_степеня_п64(п64 значення, п64 степінь);
extern ц64 пристрій_мавки_піднести_до_степеня_ц64(ц64 значення, ц64 степінь);
extern р64 пристрій_мавки_піднести_до_степеня_р64(р64 значення, р64 степінь);
extern логічне пристрій_мавки_перевірити_чи_шлях_існує_і_є_файлом(
природне розмір_шляху,
п8* дані_шляху);
extern логічне пристрій_мавки_перевірити_чи_шлях_закінчується_як_модуль_мавки(
природне розмір_шляху,
п8* дані_шляху);
extern логічне пристрій_мавки_отримати_абсолютний_шлях(природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_отримати_теку_шляху(природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних,
природне рівень);
extern логічне пристрій_мавки_отримати_теку_до_паків(природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_отримати_назву_модуля_з_шляху(
природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_збити_шлях_до_модуля(
природне кількість_елементів,
ЕлементШляхуПристроюМавки* елементи,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_отримати_відносний_шлях(природне розмір_шляху,
п8* дані_шляху,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_перевірити_чи_шлях_починається_на(
природне розмір_шляху,
п8* дані_шляху,
природне розмір_початку,
п8* дані_початку);
extern логічне пристрій_мавки_отримати_шлях_до_паку_з_шляху_теки_модулів(
природне розмір_шляху,
п8* дані_шляху,
природне розмір_шляху_до_паків,
п8* дані_шляху_до_паків,
природне* вихід_розміру,
п8** вихід_даних);
extern логічне пристрій_мавки_читати_кд(природне розмір_перед,
п8* дані_перед,
природне* вихід_розміру,
п8** вихід_даних,
природне дозволити_історію,
природне* кінець_файлу);
extern логічне пристрій_мавки_отримати_поточний_шлях_процесу(
природне* вихід_розміру,
п8** вихід_даних);
#endif // PRYSTRIY_H