From c9b124744de2c641d89afc4218f6e82e0a8c9496 Mon Sep 17 00:00:00 2001 From: felex67 Date: Thu, 7 May 2026 10:02:18 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B0=20IDE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/CMake Overview | 0 .vs/ProjectSettings.json | 3 -- .vs/VSWorkspaceState.json | 15 ------- ...a2e3e4bc-8599-4af9-a20e-df25e9747ced.vsidx | Bin 46971 -> 0 bytes .vs/fxalloc.slnx/v18/.wsuo | Bin 17920 -> 0 bytes .vs/fxalloc.slnx/v18/Browse.VC.db | Bin 581632 -> 0 bytes .vs/fxalloc.slnx/v18/DocumentLayout.json | 12 ----- .vs/slnx.sqlite | Bin 90112 -> 0 bytes .vscode/settings.json | 3 ++ PROGRESS.md | 2 +- README.md | 2 +- TODO.md | 2 +- headers/_FXAlloc.h | 41 ++++++++++++++---- 13 files changed, 38 insertions(+), 42 deletions(-) delete mode 100644 .vs/CMake Overview delete mode 100644 .vs/ProjectSettings.json delete mode 100644 .vs/VSWorkspaceState.json delete mode 100644 .vs/fxalloc.slnx/FileContentIndex/a2e3e4bc-8599-4af9-a20e-df25e9747ced.vsidx delete mode 100644 .vs/fxalloc.slnx/v18/.wsuo delete mode 100644 .vs/fxalloc.slnx/v18/Browse.VC.db delete mode 100644 .vs/fxalloc.slnx/v18/DocumentLayout.json delete mode 100644 .vs/slnx.sqlite create mode 100644 .vscode/settings.json diff --git a/.vs/CMake Overview b/.vs/CMake Overview deleted file mode 100644 index e69de29..0000000 diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json deleted file mode 100644 index 8f0d733..0000000 --- a/.vs/ProjectSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "CurrentProjectSetting": "x64-Debug" -} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json deleted file mode 100644 index c141193..0000000 --- a/.vs/VSWorkspaceState.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "OutputFoldersPerTargetSystem": { - "Local Machine": [ - "out\\build\\x64-Debug", - "out\\install\\x64-Debug" - ] - }, - "ExpandedNodes": [ - "", - "\\includes", - "\\src" - ], - "SelectedNode": "\\src\\FXAlloc.c", - "PreviewInSolutionExplorer": false -} \ No newline at end of file diff --git a/.vs/fxalloc.slnx/FileContentIndex/a2e3e4bc-8599-4af9-a20e-df25e9747ced.vsidx b/.vs/fxalloc.slnx/FileContentIndex/a2e3e4bc-8599-4af9-a20e-df25e9747ced.vsidx deleted file mode 100644 index 9d3eb68f202f7790216768c8d7b65fa103aaac6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46971 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 diff --git a/.vs/fxalloc.slnx/v18/Browse.VC.db b/.vs/fxalloc.slnx/v18/Browse.VC.db deleted file mode 100644 index b34e063ee76ac2b9e3b99b007895fe112895100c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581632 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 z zAt9$Ggm?rgl#7q4nTv~3pq?=e$&vt!qtzrz*OCb5plCGF>JZgRu)q)+!%ayk&cLBb zhzleRe=jDHoDLyr!H)#ouj^R+L)uPOIkZ>cHtEpbB!`VsTz?YJv$~GUM_}_=3}eKHj4yhD4P{@&rxuH{_L#rg&z>4p^w|Ab6sKb>UJ20?TvmH0a<1>^NKp&sU>7qr7qbtl9r(^IF zLV?Yp#E)unkqSx8B6V?C&Hi+O3X;lFUN93-C3OXpBdQwfHSu0uwxIxxiKZ0ymd-VG zv0Za6-f~RMS9A=_rK?KFJqxP7V46!M=yWcQV$x<#O0h!rlFIHzUH=V(`)*ywsv_mG zOV?jl#IFpZRHzW-VunfqCFNYyYC!!-Bg{TsT#1qMWnDa_3{n?QD?=UTy|H;vrYUF^ zx%c2jped1>2W#?Br6y{m=tteAvbdztOdHcUO@uU>9LE9bHqCi<;)JeEkcd6S6K366 zRoz`YYaU0TucN7{ON5Qr z6TMo<(>}bil;uIEKsMu$7l6D4*hIDR$-E}qnmDP84K!nRi6}+k5;{?FQJav>X;R|d zES>LDMM0Iq3QIO8r4wxiW@?%^jP`(NY2ps5V@_JtKz=ov*JFO_q-N{l7(zaTaxAPA zjKc-(+aw$w1Xr4cs)YkhZd#|&;(;z))Ec2^NuWz$VtEmNHt8b&GQwh=0&`x6j6rw? zv_?P(wS^WL)S81N`dD_*M2l8fd64o-1x-*jfik7UVg{^oQH{+po$`*#;*8d+9F;6h zU;)7?N3cdQi;{J2sRvy&a&siIlNvdvNKl)GxqhRnEh25cdOHv%P2L76a@6{^M~v1K zZDR%*+Dfgpi`IZLphSy4#@dH^1D&FQmIV|GywC!T#R4T{@jX}oK{1JXERkTM?x5U` z5eFp7UNT9=5Ha3$tb$;J73*cXTL!5Qu-8zio`5eF3#_FS=^3$>Q``ccsfuXgR@JM3 zo9x7Tk-!p5jH*l}gr@PgO;L1;%cyFUey2cJfgVMJUxCFKO&)-FT3kRV*+(lgSfFr< zUMgXy=ul-Lub|mV&Qk97tE%f1=TzE_6`TpclZ%IpLY2DHNiUSStRn@g5E@ajfbvnV z173Tod%96XauMqn{dfj!Y9el@EV`%{N&*>P&?Bnj6Ikt-e-!Sh`&h1VP$farCT>&h z2DK`9ab0o%88McTBo<0Uqo$un5olrvRr4G0ekZEtG{E9TPZEpuwAwTQ4`@!P+b%3R z#YsF8L(RcG3Y>Fs2i_aBCQfk?odD{UT->YZ3am~Uui*AcgE2}1t0$TOEy6|%U_^6^ zYWxKCy~Owek+7DsbZ0d+c398SM89S)X^B?huBq-u6nKZJNpNG8OI0g0vF8!VI%KJQ z(QAAbdBlR8x%j1CD`ywI7#IamGmYqys=YmkQX!l>RZSBQsZsEgcR1aP z-Vs!PWXZXeqCxw5F@>gvR`TXz)GYgrQr@gUgUkl0y+wqM>Eiko7_PKpU6bBL(^_NpL;Hp7)PSs{gm7Igt#co9nGM4bD>bOLgsv20y zqpG117;{0-9J^$&uot7^b7%r@620N5n^X-@YvR-nE`lk9$Sbf=Zx6Z)b16{PqDrD? zQ_F!=Ps|lTs-Nc}4NWUXC#aRQ+J_ZFv~LdTb*AVqUM6e7@EpDP=q1q-IH>_pogpe1 zy~^k)P#8{nXQ}maE*=GQ^=_eh(aQmbsTsVod(k{owTj^-q~7)kYFTmBSe437<<8*k z0rWJNQCi(pS{Srt@upLwPPO(5SYm{r38)>QkD?krU9@tULMtlwz%Lr%%2A5SY^KmB z8H<{_T!)lDO2vT%PF#^l=&;_HjuFfuz*H|fdTO=wsYJ*tX#U2~?#P2^Z_uBPQ-|BG zK)FPO@+qYQ+*O;8rb?}nO6oDGiL9a_s@tKONU(7!6!dqPvhEP=>ixw!sxEp|8Hy-c zZSsKnh6Pk7jYv?$&bw)-p%M%a7sxPyDt3u{;$=40U@0*=^=jjgjOgZ(>Rs4S$e{MP zM31T)PO5<@WVEJc3;QsoL=#?Bi{%iqf^ndeS}3)iE5&^pbpd6ox|Avhm5{Nxt7A#r zz1TQ%%wFY1-i@|pae#U;G-|qV8~qqeGz6!F$LSqJb7d|FBgKRSdnYtup;EyRc8qd` zpr}D2C`Gg8JTrl^rIw6_Aqg7l4x<4>xywaVEgHngE9hp-Wo6ZCpyg2Q0v3-!)w#G6 zIB8;lu1c*slQa!i>(KbiNfmv8-f2`5T*gW9zSo?FV9h*96P$iY7o$MYMD5N+ zOhnM36)jt9qD{jjM5Hk(qJ5JLRgz|hNNREryeLJtYC3Mbh0ICnyy$hyDv-#yj{8I5 zFh&j(K_@bmM*Y*PGSRmKkx~h(@jNWK)Gd?n*3*V;#K8?ZQ&JyRr)Zdhi5))%e#_Tji>& zr=@fHsj9*fIb3S1s;b=$STtABc-&YbrvR?%DvH%r<*sv)X!U@9JS48(w5qJCcDZWd z=BYs%XtkXjC{f0;T7%nNUsGA-K|EN=Cx1v^b+rpC_V7q4hR<49Qa}|R>42r%)et66 zu!m>l2B8pKMM^1!pDM%#3&@AB>guW*l8Ybg5x|~2R8#UP`N;9r@*V)Zjm zDy7v5S#c#K4e93B4d_9Nf8_)zag-{hDEE#_)%!?&?;Vw@pK~cvxFh~^jTIHn-;=$# zF&R6Go1r8CRR(Md+D9zZKAuiG4p2AKM6c3Q(d2IIJz8fk!~;qhFGX96KFyJTF-D3F z^4==l+*a>XT6fsE+pEj`*9{G?byEBWHk9R+15*D@=;*kd$?9q;URTOt>mB0yhsm)= zLOYK%;7((+g!J_mACUT+&=!N~PF>QsyvTT3>NutfZ)dB_kc(TTj*pX399_ZznR(LS zyV5S9VFn#OoUuV@e7=rCPY4~STgh^h6e{j3yBwq{;9RVzL5gwOl^k1zL!Bsw`BatE zan2WeatTU~O4ueuh|h|_Zca$LyMm%lBlwHTD~sGZCU$lNP{ zAQuND)BuqsxwwV$qzY_3#imp;w?Y(Y0bbcgnWGFZo-^vfl^rI}#U`ToCdCj!zTq7v z7xI0@h-@SLJxu{;g#-1B2ss}n^!WH2S>Iy_b3uDZz81^BMZxQkJeAkQUR7A|cCV0h z2%20ss4`XRq$i~QbyO@^R#JsPm62!=K}F?wNF@#X+f~4v}r#s4aldNY(f?vO8#Vkoz(GRX9^U6_Fw)rmFHUWgYreNyM%rv_6V6CMPo!Y zYVl#Jj^ytiv~KEEz0yWC263Q0!&f-T(>SF|wQ&KJAvk)SR36TQCq_i5p@gsRE%^eQ3$9vzoA^Oj1bYUQwlsrak<1J zDxWB7=K(5pe0ds?9~Ao2(8Y3!!;+MG2@pIFX1QfAR)B3YeiULD9L%0x5%nMJ==$sw>Um5)GRU}<_UN98`I&_b{X)4g<`8>z_he#XCNrNP-NUHv zOb(1}Q{J02(J38+=2NpKHcQ8l`Q+6^mvn41pKuOfi(WOKx|m4MPZ$X%{l1-*MhYXE z*dd*^i(eDloQ6v+lvs5~I+>ZcfSlApE70wTUz&m1pH7D>M)js;K9z=KZqnVCAlnob z(8REC%*Mykr19s5`l3rHN{!Gllrjmgu!jmNhD(=}g9pmA!ifvN@KHQO*Gd}IF7vy7 zcn<0!OX}ZF4JRd_AL`1aFN{r2Lgx_Lu@2m!HP8=V^`bieGUi23(kH56gN|G1fAba% zc5&JPdZ7|Z@^TX2U568Nb=L{!6fO-*kUHm90Ubw4vEvL-dKRIjz*pvwI4N3$V<9^Y zg+`~?01aPF;NTh}!qF1lp+4je2TU!Y0Iy@DE9w3yq!sa`#?o}OrX4XRaf%IUy0Dg1 z66;0fLI$EUWB9H&g74OprYY%|(?NnNd_FyHUit-B3`Fp`Z5SF6=Nw%a0eyZt>fnU_ zxeK4(qi=;FdY>jI$JAl8CgB{v{P5%yDP#5u#7zp{&cqZ%P9l}{lzEw)ogIKfL{ve2 z6RMrlDO~G>I1jj87m_nGW9o>}ty&#@0FSOXE0o6uq0eNAVzY3}rDhX!4MLr6sNA{% zPU!Pf&`!mT4^{XMbbJDt%qIF^af{25fFvTm$0aY0sY3%J;FF%Cb6qvUZGBA;PZ5Wt zTZ>={3CE>u0=lUB z&~ddO5aHY&zEP<@6KCA?rH(Ib&>bp=@BlP^oIydgpE9m{X!BGe@8AzV5-s` zxXELZ^6GO}O&STD$9L=yI-t9)kEx>Qg0fPjUR_fLSE#VZJRb6DM1bUL>Rf|EILFfC zRERE|7n6ysQXpQ3dP-W=QrEMp=Hc8}ROl&GDjdKOF5_x1Iv}v!tq$w#(B$+O^ty5G zL?F?0E~hd(b$)yvwd*oH@70V0m9>VmN8n_JfO5HU%%DYgTX(7<&fSLYbd8jK+i++> zigqdKn`AJp*TsO8bcY-sFz3XjSBQKgHF-*t8poF^=YcPq!pG<5;j~lJAD$y!`&!L) zK8X*~lWsC{>UelzJWUDPq)B|MnzW`{9iHj2xyhMCJV}p7boX38PUTD{=$)ebJxC3` zS#!;fO-$nrK>|X$q#6(B4gsxo9BdGd#O%cUWf(ULeF3=8M4`3_r}2e8AZ^g0^(`-F z9wF6eG_ja4(U-&E;ui8;a_$nW(T27O?P0`H59sPuMeB>&Y1B2Rh7$oemqsXYR8;75 z6I6fDIzsUq@zZ$)N^_M49eNyN6Z#n18agbZr|Ikmw5#Pzc7l#Fw8Ja;@#>y5?&plF zH_0jXxf?+c&C4`C<2@0l>Zg{zPUwzIb}C6}>?R$39bE^K(CU=)6RI)na~q8zjvnHu z8`Q_8V?L42;!K1Eo%i}PUYK`j98lX9mq6x2&gO>LM4kggpsx1z>HipiCQdhH8 zRH6xw<8rtJpyH&1!$qA9x(Yn(cL>#CK*b%IbK>Mhb#^QZlw%p(iAU99orbd!GQBWC zMUO5N-Nn>MqJc}laXaItW_71JmvQqGNsN(`S4}_RdQ<2gZm(#fC66SRn zaF{Q$LpV~n@`qlQEqJE^4#x;VUZKQs8#-15&-!JYlfW@V2O3A}iO>_Hm&UzOn{YQ1 zj#6sQg>iHw3&6Ee;O4rldO>jnfN+Rmbo~zFO+|jtMj<~A>t*fH#ZHHMUtQ>p-7~4V zbMe`+OAtFCT;|94AQ2}?dWDW}E5cl<;gl)*I<(yBOj1?AK@37r-t&**5^W^32d@Vj zD!MO+4%q1^7}PS&adDdNH^M%)PJ(5~yjm{IV?_e18ES@(wNtFX;3#gLS~|t0fmoz5 zR^i0HO4rNz7wLXMRJQ%PtTFCZEO>2kd|tsaV_jkFGegL_ddFy?Wtm{u`xdm+}*@^2xUS1HALS{HVTyG1`% z<*sAt7}4P3Lt3pvJa8=w8Al{9#t~Yr5Q#I=U--xYRv{4pD}zX(TB#DZ=KbEVmV=ZRs-Ny)XO8T&dg~UKCEqlWo7MjekcS`>?%94`s zB%;KU^>wv$LMx-PjpE)!?j1J)PF5byXs$yB^Ckm36g<##IF=l{Kzv9MovU z!4Je;*IJ8z-L=i0_G(Xc9bFlPGa$9K^)+s{x2dYR-d$OT<0ClH(OTV7U*oB*_qgh+ zy;xPkc@G?RS?8^73by!M8%CnFUVMhRV|}%^;i+@KMe{Svg+6c+_sw0SxlqZhrEJP_ zqe(*X2!HAD9>e;gvApIOSA%A{+{_po7skHJ4@sAfMBmo9Qp2}0jX@wz9u^P(-sW%* zhdGM|a~K?{;Sk0GRu_*UJbHDyz0EN{W_8=Hbjs*XaZ{P<3(YQ2b5h4`bXCHURlSN3 zUd?HAx8?nUaH5^37G9uvmvqUhYC=^VrZJyvsP$LZU=7bz=|zpK#hM>ZKs8oU?L?ie zuA&var_QOxCob-_jPBnJ#jRHLxVUeY;#SM0T--NHajSJ`F7BJ9xYYtb7x&Fl+-m29 zi~Hs%?nO@}v=&=v7nyDa*Xn!~b-0~VgZ?6J0LRV&jM(YWbv#QAH(TMaL(?1%{KeX$ z(}}+>+!Kyp&5i%vc*f@w@YNAb!mX4`YYFI=e4zMc(X4izyz286JP@Wx&&C& zYIWYZfVCdTUlqY}DsIQJ?k=Tosqj}tz+_n6*+%y^7H(uLT*Zj3X#T2*d3zl8bq`BpdlL8qN>`KEIVi+syBzQ4t{eDf{ebUKr7`L@5)#%sri=gf8$%ea{){Blh^)u?T^1GjI|B^ zqA)ej^hE;oMd6wje}%KD3-|wfpKAWUo6j`;`=&1IKVxsf@pr55F|ZFNzyz286L{wn z;63xTml3hz>q*wei&*jXBx_?;QPJ|jU!X&I@2IO8D=NJI@WKkID$bjPQtH3fkN3fM z-j$zx!3iB;65TF!A**xoIQnJsH7}t@gC<3rf0}=q7D&(nO^XyM&<2;F=mY5^Xi_9-^Jsw-MRGuMK+q<+ zUjFFJKDZB3mQFrjuDOq}SLDn$GvEB?`)22{kJ9zUx-153t@aKl2V>L-Mbp$T1%nht zO=|z~ALTQKk1p*y`9qt&ANF;UnytMuK!nljMCKHFefTrOBSY7GAM?I6_$`mqeckzS z$7_zFQF4tSliu$#=wNP(} z1));tCxmjve0D7#EG*CGpAK#uE040@7sQ{Hu$ou;tGUeW zi2apgj!@1>d4x(tupG>-EH09|F0bUWrF`ha?;Z98SeAZ~mAPs|v{&8!+pj6JmYrM7 z_o=zxcTwfi1F;~KG2gZPm3%R{S}ZJOi?@Q;^0$K7^|h74GR}4>zr2RE!vEJ77cXhK zthQUX>w?%er`Bau5z+|7{6fB%U(V%A!3{k{zA4w`{qn_b0L~(0B*E>rzB*4pU<|qJ zeBKf@pI^)yQMxiJz~vj+V(x0Tcrlttgt`jbxavt3I*rEu^$ypl*Xp9sF9U0P=;^Lu zD=~QKHP&OZJTFR8y;^UODt58j#cVd%BWG0E43IcVXNMA6@}nDA#IqcAC9%eqZR|i6Kv*g8izZ_?4n5&o!H3JIC?cVx?Dg)ywRH!&Wb| zM<1Gx$>;28u_vBLbER~9w`ijac8ymL=<)ylPQJFki+f4Er_zhiJ#VePBT6#2vs(_5 z&SR~xgnLrlUlB`Wy`I1mA^I*-EKx6(-E;Z;0ghKSaClx!?GgGs-{_Cs7Kt00TNXM`| z)iSyYtJN{O+3=CQtX^)ns>ex8n(VU26UeiAli3ZqvdXo^rd%Q2wmojJZ~NJ$%sH5v z(k?~@4E@f|m+*j>zqZ zy4|M|69eX9QBSdiN`HmjM<{HhJVLpC;6wMWy3|fOXLQmgT6R4LtPWz2Ho1sB>SV5> z>TFo~F-9VXwt>;tDg783Pm#|Fh6E4R!xtpNrW~9r^bP|TIZ0lrN@DxAh=)Z+&#R3V zgY)@??E2zbkngk=kCpXq8asK*=?O%p=!0p+O-iCH*PC04Piy0CHN<7Lr(QY5jFjQN zn&2>}4XrxdfyW=GZz+}|J%`6=Vnq_4>xfM}YP0@yTI|Lad9jI&{}N6aI=Di60#j4; zT~WzX(@p#1u;j6!g_=xG3wg^d?FQHA;C8fG=Q^INjr#ofIN-lZq3<({|HuBXa>+5^%9;Y*Lm@S zWI8^h3Cwls4Z$KM&0G#{l$CYOnUc)4<<71qOQzxG*ql14whH0YO}w|^_uV<~a#6X_ zd9m8rTI1SVqAacBiMlrFl&*>U8|6u-i+TbT$krP!gX~@8TAijGy?4_wKt1^pCz;+W zvFdhHNnOB~Vxq{0lTn_H#FH^Lo=S&VF2)P2m`p^(a3+yTiZM1;i-zNoRGf_`GgwGW z#MyK#8DXo{OooqgnM4#Pi&tY&KABFj(R74o<9t$JxhNN5V?sI=uhzJz5Es}~HC7c8 zLX4!3vhiq2VAB~c&ZgqgT2zci6G=YGW~#MxrkdedF(crd!l@X}DVAhoVyYTVrE7@@ zpJMrBG@VTGJey2$X*QnWlPs4J!fdoE)?&$wkgnFSP_-6MC*mnKTosd8Cn1Up#+BtG zQK1$~2%?zDutFvpiSh}7&7=|>&IwC$sYHy8))MJtwN|Z#Qz=%c@u@^6l3~*VhZV2J zdA2IV6Ko`z5TaGSmaJhOVj_}A#>E;NPoxRVT7*rfqBV>lRZAo|F_Xk(L?IoC$1^E5 z7EUBEQ9i}!aFcKoVF?(nT^dR{OD!Mjp`Ko8hQoQ(Pz0KmZ5;0U!VbfB+Bx z0zd!=00AHX1nx)Rl+zia@nVZ|^{jeLmm}bI#%SXLl%iM@@zoN%=olSvhP+0^JSTJG zE+?zXny#iCLjOjMd9Aq)(atGaTkRoN-VbRRjXU%VOxMkv_hE?vJmp89LSIB*M|aSx z_p1cN0RbQY1b_e#00KY&2mk>f00e*l5C8&in836%N0tN*yI^F1#NX#S4%dY93A*PZ z4(F8fN&1irI2q*O^ys_XRLbjh-zeQ|wV#!CIbOsU(97cNGg7Om3(cH!Qwc1jP0I9Z<}EU( z9>ICz5~Vgjp{JXia#K?zjB5(j)?PRK+*vmjqP_0i68EgQSeImJR^F4l(UWJ?WV5#= zz9op=@H3~~)Onn2b_+i;YpdC68&T&1YL2^YQGrpBcN??Y)3Yw#6$8w&~2 zEZ>bDn{ZPTM9=*u@7L2zj;mViwp%;9veXSfJ?5sSu@(zYXBF)Ha5u#%lEUlWdA`*a zX153R@H3;T-nG4*>JGj&-V}9u#G08Y5mFOX^m4X6dVUiOE{F2E*H-3NW_JWVIN-;5 z;nu}ZMA~iOCY1Du(P6dOantBQfgvL6b>ruW%`fFmnVj*tsYh|dYH{UCF<&Z~qNcoV z>VguL$FU2AMRU5zK{s^{7hZ4jjgDZHJ>em`4!XB7a{Pc7z5Gcx5%;?13;6k3rZOHG zzzv1Nt(Kvudd%gfGB`H7Sjgoo_<>k!`T0s|HNUuM)^ozC7O9z!p7^u_1I39A>(OII zX_XI7pa+rt|MSc=gR&|flP<}2uP%tz6unIEAkW*QBnPoftQ#aw2- zfL92%nN8+D(fgP?sK|7f@1S{H`IocB5dw6fL`^foiv@@Y^Z(CMU&XJ^ej{e9HzEWLVGMPGs zFORoQhR>2{ZEkypah|7*3GHbjZCwHhkRa=_$K;@Mf+kBH6C@{Xd1Kt~oTl}q27Zjh zXv-L%mkUL2*&|IreKeujR6 zeuS?A_&)j``Y!qx^v~$4=qu>2(3jAkqo+|7mC+LVQ}jpp2?3wR_X>OxeH^`nK8$_^ z?IQ{8pe$o|I6OvVtblIQ=wfPRX;#q6Oo=w*gx z{t*2E!=q0z|BAf+SDBxp-#~YnR~SF@Nz_8`XClnsqZMWyEil)ZFQXKC4@2G-2p=E- z1b_e#00KY&2mk>f00e*l5O})~7jXB81`YkK0$i0eFU+TNcyt)#JT@Q(+S zKUS}WBiA%-Z1fM0DY5z;3#XJ4jm`eSQH%KY;D{n%Z1{W7 zuxpCyZuv8=Y09+cuYkiDl;fES<_kW~0dze#0MryWje;UWKTqOeSZO z;dm@c_WvE|*D3Tj_y8Xu00e*l5C8%|00;m9AOHk_01yBIK;YpM$hg*7S`^Zecs!G0 zW8p-CjVJjCo2iLmHjz&9d?pbK$0A{U7O&6$9ci4>o2k~)nQDe-#f-qS@o*}}a?x0l zjftshG?lI;B790usn7q({{Ik)QRs*0+xUL}KSRHdK7sG*Z=hRf0SChe2mk>f00e*l z5C8%|00;m9AOHk_z&n+|D1M~?P1Ei%hm$--Km6qleiXkl*8X(63mvVHH<5`ExNqYy#{y#PH zwyF~-0|bBo5C8%|00;m9AOHk_01yBIKmZ85$ppy$Kg|E%WT=oG5C8%|00;m9AOHk_ z01yBIKmZ5;fwvg}nE$`c8U)k<0zd!=00AHX1b_e#00KY&2mk>f@DK>7@BjM(g}#Bl z@DQ?xEP((J00KY&2mk>f00e*l5C8%|00;nqlM^`S@KRoyicl0ikXz!O6-%Nl*PC0? z>@!lU>AFZO(N{>cEbi48`f%9!t3{z|?WTrC!svc+4$Yx!Hj?E2bDVHsz;lwV%M zTH*iei;I`ETvpqy+jT)~n^WsDst9R>VtyfC%rEEirQn91BHxtj@_zYZHvnf5GLqnS zTVI_gATWkpc0O;3n$IuhjVN6i72xuXY%zB=Tf7)eBtl(&YsHtd&uf>_Gnzb?s4`gv(FsE z z?}(Dj?d+C=r1MxSEa9FM_gBOcS+6JXM2NnN6id{LCHYmzK@U(B^J&exzFfGz-aYf^ zGTlTb^U~wAis5sN9-^vj>qxq>H^jDt9j&M5ze^2z0-+Fn?@7fD^~}`lt-rih8?;86 zEKrXyH_|aIPqmD$!fJJlZZ>>mFRPc^t?F?SlP0_D@dWa$-eh(|uB>uxu_;$bw{4Fb z?Av~JDRT~{rnHNZ0YksD^Cf&bQ&g}gAhvuk=k^4i#XaA?(es(SP%FAOrK$fjiF>sA zXhR@-vLkXkqHg!8#KeGkSkzN2q0(Pr_Yn#kDUVRDANbI{t1h*Z&KaGwiI!c@0jq=9 zqfIVik2;yFs5%=~evFaGp>1IFbxJ=*##7{Tf+4|!_3#CWuqg-U3cbU?MNX1es*>2g zE#hI3(erAf#o&B?A-le~7UVl^#baf?o5oJwa(V)hDf(bqaT9Igs`#`v-d3lwE~`ED z$|+`~4ENOphdFI%)!`02{y2S0u^j0+JVp~MlK5OlY~oRy^{3NfH@3)&O>F#^aLUlZ z71|S+nxgNDN}if-+8>7{j}0xw7|E+7u`MWsqE&aSOG47dQ*}<2%+ja4IGEQIR! zzwc&Y?JD+}+4|853pHppK z6;aRLBnjyvEYb3IaG|)e)KjYAwRkLo?K?|GGek@BQ8hJwldy%-Y_I0p0Extt50-i3 zI`cp znL~6GFFV96%MQx;uqf6<+!^p}eHyy`d?z9ny~v=j9PIWk zhx8o}v9sx}JXzPJv^A&47!PcI6v&>Asb{foS{yo4gUt`v{5a7{#{-VQ^nHzY-sT6n z|KEXM^oQU72XFg(OV>M~FdzT~fB+Bx0zd!=00AHX1b_e#00Ix0fbteV_5FY9{QoBu z`WgDkLoOAv2LeC<2mk>f00e*l5C8%|00;m9AOHm3S^_R7MLV2M%1f^Qr+xoT;eYS} z0zd!=00AHX1b_e#00O^|1YY#gK8p6PXFjn+tq&xl;dr$waIBb0iEKQbsj<~aD$Vlg z7#~fDVq6ewC9z${kBs?%D9m;04FTUD@{GvKA0)S1%qWjFv4l&Nf-rMA7*XyNm?_Dv zHn%0>07V|B*h|LQd9m8rGQx0Zg>Q?>6IjS2E!JfoN6tjU(IgvAu;KVxID9!Cz8ucX zX5xuxJe+yoO!p2?oV3-f)weorB|W)kizGIRF-f*tE#+1sB9Obhxw)%WMcUk~;X5?( zlQj5eH#eJNr`_7y+~oP)T^zB;H5x5`)Ar~vbNPaDmlD3q3g4-VbKWrSLwVB*A*A1+ zzQ&W!)JLBkT7eVf-TTnB8NJeF1Gix}n#o`|P0ZPlz&GVeVxh^m@I%@}nY3GtYe=FY zaFvtt?RKk;W8`+n6rtRnFXMaLh^^TY-Q=Vkhwpi791@xB$StMh!=+02X>wSjRC>);YWqF+N!oTN-FU?$uX7}~%^lT~-!=4@2JbPxoF5w6F z?U&>>MnF`G1aHi(1~n#^F9mTskXvchZ;FvzHhkXiyF+@mxw-i)n@^?kq-R@T=Sa_% zOUH82L_QzKPiY|g|1^3XU;qCL+0{d(fB+Bx0zd!=00AHX1b_e#00KY&2)xq?xSX_i G;Qs)YV*t7U diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b4d8c35 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools" +} \ No newline at end of file diff --git a/PROGRESS.md b/PROGRESS.md index 2b127a2..07e942a 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -1,4 +1,4 @@ -# ccpp/fxalloc/PROGRESS.md +# FXAlloc PROGRESS.md ## Формат * Даты следуют в обратном хронологическом порядке diff --git a/README.md b/README.md index 5326977..2161b70 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ccpp/fxalloc/README.md +# FXAlloc README.md # Описание diff --git a/TODO.md b/TODO.md index 24f9c8a..27d503a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,4 @@ -# ccpp/fxalloc/TODO.md +# FXAlloc TODO.md ## Информация * Файл для отслеживания текущих задач модуля **FXAlloc** diff --git a/headers/_FXAlloc.h b/headers/_FXAlloc.h index 88b471c..38cc9f0 100644 --- a/headers/_FXAlloc.h +++ b/headers/_FXAlloc.h @@ -9,6 +9,29 @@ #endif +#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 201112L) + #error "C11 standard is required for _Atomic support" +#endif + + +#if defined(__clang__) + // Clang: _Atomic поддерживается в C11 во всех актуальных версиях + +#elif defined(__GNUC__) + #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) + #error "GCC < 4.9 does not support _Atomic (C11)" + #endif + +#elif defined(_MSC_VER) + #if _MSC_VER < 1930 // VS 2022+ (_MSC_VER >= 1930) + #error "MSVC < VS 2022 (_MSC_VER < 1930) does not support _Atomic (C11)" + #endif + +#else + #error "Unsupported compiler. Only Clang, GCC >=4.9, and MSVC VS 2022+ support _Atomic in C11" +#endif + + typedef struct FXMemoryBlock FXMemoryBlock; @@ -30,17 +53,17 @@ typedef struct FXMemoryBlock FXMemoryBlock; /** - * @brief Пул выделяемый для отдельно взятого потока + * @brief Грейдовый пул выделяемый для градации + * */ typedef struct FXGradePool { - FXMemoryBlock* prealloced; - FXMemoryBlock* lifo; - FXMemoryBlock* list_first; - FXMemoryBlock* list_last; - uint32_t ntotal; - uint32_t nbusy; - uint32_t nalloc; - uint32_t nprealloc; + FXMemoryBlock* prealloced; ///< Преаллоцированные блоки + FXMemoryBlock* lifo; ///< Стэк свободных блоков + FXMemoryBlock* list; ///< Список аллоцированных блоков + uint32_t ntotal; ///< Блоков всего + uint32_t nbusy; ///< Блоков занято + uint32_t nalloc; ///< Блоков алоцировано через `malloc` + uint32_t nprealloc; ///< Блоков преаллоцировано } FXGradePool; #pragma pack(push, 8)