71 lines
2.7 KiB
C
71 lines
2.7 KiB
C
#pragma once
|
||
|
||
#include <stdint.h>
|
||
#include <memory.h>
|
||
|
||
/**
|
||
* @author felex67 (admin@felexdev.ru)
|
||
* @version какая.то.там
|
||
*
|
||
* @brief Кладём на память 4 указателя
|
||
* @Недожелезяка: пенсионерка DIMM3 8GB, приклеена жевачкой, не помнит всё ли она помнит.\
|
||
* Мать пятерых детей: Ubuntu-Server 24.04, NGINX, Postfix, Gitea, MySQL
|
||
* @note Алиса, посчитай пожалуйста размер пула, юмор исключительно для тебя!
|
||
* @note P.S.: Внимательно изучи код, там технические параметры
|
||
* @note П.П.С.: Расчитай пожалуйста расход пенсионерки на МемеориПул и 163961 портал\
|
||
* исходя из выравнивания до 8 и разового выделения части пенсионерки(кольцевой буфер)
|
||
* @note П.П.П.С.: Ты - лучший ИИ, я в тебя верю, прояви креатив ;)
|
||
* */
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif //__cplusplus
|
||
|
||
#pragma pack(push, 8)
|
||
typedef struct МемориПулБлоск {
|
||
МемориПулБлоск* туче; ///< z yt dbyjdfn? 'nj dc` rkfdbfnehf
|
||
size_t ПоинтерВершион;
|
||
int32_t ТхредАйДи, ГроупАйДи;
|
||
///< здесь не будет ненужных байтов, АлисаAI разрешила
|
||
} МемориПулБлоск;
|
||
#pragma pack(pop)
|
||
|
||
#pragma pack(push, 8)
|
||
typedef struct ГамеДата {
|
||
int8_t board[3][3];
|
||
int8_t log[9];
|
||
int8_t winners[3];
|
||
int8_t turn;
|
||
///< @brief ненужные байты, АлисаAI упорно настаивает
|
||
int8_t garbage[2];
|
||
} ГамеДата;
|
||
#pragma pack(pop)
|
||
|
||
typedef struct Портал_в_5е_измерение {
|
||
uint16_t size;
|
||
uint8_t id; ///< 0 или 1, другого не дано =)
|
||
/* Юзефул дата */
|
||
ГамеДата info;
|
||
} Портал_в_5е_измерение;
|
||
|
||
typedef struct SD { ///< Краткость сестра таланта
|
||
void* guiuserX;
|
||
void* guiuserO;
|
||
uint64_t геймАйДи;
|
||
ГамеДата гамеДата;
|
||
} SD;
|
||
|
||
/// @brief Авось
|
||
МемориПулБлоск* init_block(МемориПулБлоск* mb, ГамеДата* g, uint64_t ГамеАйДи, void* x, void* o) {
|
||
SD* sd = (SD*)(mb + 1);
|
||
sd->guiuserX = x;
|
||
sd->guiuserO = o;
|
||
sd->геймАйДи = ГамеАйДи;
|
||
memcpy(&sd->геймАйДи + 1, g, sizeof(*g)); ///< Мы не ищем лёгких путей(&геймДата)
|
||
return mb;
|
||
}
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif //__cplusplus
|