\doxysection{conspage.\+c}
\hypertarget{conspage_8c_source}{}\label{conspage_8c_source}\index{workspace/post-\/scarcity/src/memory/conspage.c@{workspace/post-\/scarcity/src/memory/conspage.c}}
\mbox{\hyperlink{conspage_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00001}00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00002}00002\ \textcolor{comment}{\ *\ conspage.c}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00003}00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00004}00004\ \textcolor{comment}{\ *\ Setup\ and\ tear\ down\ cons\ pages,\ and\ (FOR\ NOW)\ do\ primitive}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00005}00005\ \textcolor{comment}{\ *\ allocation/deallocation\ of\ cells.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00006}00006\ \textcolor{comment}{\ *\ NOTE\ THAT\ before\ we\ go\ multi-\/threaded,\ these\ functions\ must\ be}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00007}00007\ \textcolor{comment}{\ *\ aggressively}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00008}00008\ \textcolor{comment}{\ *\ thread\ safe.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00009}00009\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00010}00010\ \textcolor{comment}{\ *\ (c)\ 2017\ Simon\ Brooke\ <simon@journeyman.cc>}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00011}00011\ \textcolor{comment}{\ *\ Licensed\ under\ GPL\ version\ 2.0,\ or,\ at\ your\ option,\ any\ later\ version.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00012}00012\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00013}00013\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00014}00014\ \textcolor{preprocessor}{\#include\ <stdbool.h>}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00015}00015\ \textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00016}00016\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00017}00017\ \textcolor{preprocessor}{\#include\ <string.h>}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00018}00018\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{consspaceobject_8h}{memory/consspaceobject.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00020}00020\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{conspage_8h}{memory/conspage.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00021}00021\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{debug_8h}{debug.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00022}00022\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{dump_8h}{memory/dump.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{stack_8h}{memory/stack.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00024}00024\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{vectorspace_8h}{memory/vectorspace.h}}"{}}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00025}00025\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00026}00026\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00027}00027\ \textcolor{comment}{\ *\ Flag\ indicating\ whether\ conspage\ initialisation\ has\ been\ done.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00028}00028\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00029}\mbox{\hyperlink{conspage_8c_a6797b106f2c4921b50e4ec8f20d561f1}{00029}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{conspage_8c_a6797b106f2c4921b50e4ec8f20d561f1}{conspageinitihasbeencalled}}\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00030}00030\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00031}00031\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00032}00032\ \textcolor{comment}{\ *\ keep\ track\ of\ total\ cells\ allocated\ and\ freed\ to\ check\ for\ leakage.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00033}00033\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00034}\mbox{\hyperlink{conspage_8c_a9439a14783e93d3b50b984002c8b18cb}{00034}}\ uint64\_t\ \mbox{\hyperlink{conspage_8c_a9439a14783e93d3b50b984002c8b18cb}{total\_cells\_allocated}}\ =\ 0;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00035}\mbox{\hyperlink{conspage_8c_a0ab1cafb4664d438d2cd75ab587035f0}{00035}}\ uint64\_t\ \mbox{\hyperlink{conspage_8c_a0ab1cafb4664d438d2cd75ab587035f0}{total\_cells\_freed}}\ =\ 0;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00036}00036\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00037}00037\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00038}00038\ \textcolor{comment}{\ *\ the\ number\ of\ cons\ pages\ which\ have\ thus\ far\ been\ initialised.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00039}00039\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00040}\mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{00040}}\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}\ =\ 0;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00041}00041\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00042}00042\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00043}00043\ \textcolor{comment}{\ *\ The\ (global)\ pointer\ to\ the\ (global)\ freelist.\ Not\ sure\ whether\ this\ ultimately}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00044}00044\ \textcolor{comment}{\ *\ belongs\ in\ this\ file.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00045}00045\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00046}\mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{00046}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}}\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00047}00047\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00048}00048\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00049}00049\ \textcolor{comment}{\ *\ An\ array\ of\ pointers\ to\ cons\ pages.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00050}00050\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00051}\mbox{\hyperlink{conspage_8c_a7cce1a2d3dd8b5abe5e30622d94e6959}{00051}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{conspage_8h_structcons__page}{cons\_page}}\ *\mbox{\hyperlink{conspage_8c_a7cce1a2d3dd8b5abe5e30622d94e6959}{conspages}}[\mbox{\hyperlink{conspage_8h_a2656b2b52cfab9ff1a7f8cf63e5d111f}{NCONSPAGES}}];}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00052}00052\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00053}00053\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00054}00054\ \textcolor{comment}{\ *\ Make\ a\ cons\ page.\ Initialise\ all\ cells\ and\ prepend\ each\ to\ the\ freelist;}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00055}00055\ \textcolor{comment}{\ *\ if\ \`{}initialised\_cons\_pages`\ is\ zero,\ do\ not\ prepend\ cells\ 0\ and\ 1\ to\ the}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00056}00056\ \textcolor{comment}{\ *\ freelist\ but\ initialise\ them\ as\ NIL\ and\ T\ respectively.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00057}00057\ \textcolor{comment}{\ *\ \(\backslash\)todo\ we\ ought\ to\ handle\ cons\ space\ exhaustion\ more\ gracefully\ than\ just}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00058}00058\ \textcolor{comment}{\ *\ crashing;\ should\ probably\ return\ an\ exception\ instead,\ although\ obviously}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00059}00059\ \textcolor{comment}{\ *\ that\ exception\ would\ have\ to\ have\ been\ pre-\/built.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00060}00060\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00061}\mbox{\hyperlink{conspage_8c_a4c4c78e7fc8fb93ca030af51fba71c1c}{00061}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{conspage_8c_a4c4c78e7fc8fb93ca030af51fba71c1c}{make\_cons\_page}}(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00062}00062\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{conspage_8h_structcons__page}{cons\_page}}\ *result\ =\ malloc(\ \textcolor{keyword}{sizeof}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{conspage_8h_structcons__page}{cons\_page}}\ )\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00064}00064\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ result\ !=\ NULL\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00065}00065\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a7cce1a2d3dd8b5abe5e30622d94e6959}{conspages}}[\mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}]\ =\ result;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00066}00066\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00067}00067\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{conspage_8h_a384a2520aa9fc6aa1dc6528b2795edab}{CONSPAGESIZE}};\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00068}00068\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00069}00069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\mbox{\hyperlink{conspage_8c_a7cce1a2d3dd8b5abe5e30622d94e6959}{conspages}}[\mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}]-\/>\mbox{\hyperlink{conspage_8h_aa1b41597ee18aa5db40910014d12d762}{cell}}[i];}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00070}00070\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}\ ==\ 0\ \&\&\ i\ <\ 2\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00071}00071\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ i\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00072}00072\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00073}00073\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00074}00074\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ initialise\ cell\ as\ NIL}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00075}00075\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00076}00076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ strncpy(\ \&cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0],\ \mbox{\hyperlink{consspaceobject_8h_a4ff3cdaea0b60be45b7ced2d3df7ff83}{NILTAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00077}00077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ =\ \mbox{\hyperlink{consspaceobject_8h_aabf88ef23e0f4e66c392edae710c9469}{MAXREFERENCE}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00078}00078\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.car\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00079}00079\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.cdr\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00080}00080\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00081}00081\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Allocated\ special\ cell\ NIL\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00082}00082\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00083}00083\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00084}00084\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00085}00085\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ initialise\ cell\ as\ T}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00086}00086\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00087}00087\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ strncpy(\ \&cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0],\ \mbox{\hyperlink{consspaceobject_8h_a7e623fe04cb515172afdce971bb0ab0c}{TRUETAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00088}00088\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ =\ \mbox{\hyperlink{consspaceobject_8h_aabf88ef23e0f4e66c392edae710c9469}{MAXREFERENCE}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00089}00089\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.car\ =\ (\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00090}00090\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0,\ 1}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00091}00091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00092}00092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.cdr\ =\ (\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00093}00093\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0,\ 1}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00094}00094\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00095}00095\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00096}00096\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Allocated\ special\ cell\ T\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00097}00097\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00098}00098\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00099}00099\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00100}00100\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00101}00101\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ otherwise,\ standard\ initialisation}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00102}00102\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00103}00103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ strncpy(\ \&cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0],\ \mbox{\hyperlink{consspaceobject_8h_a4fabeca6b8b2a02eaf1e2de8b7ede1e9}{FREETAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00104}00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.car\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00105}00105\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.cdr\ =\ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00106}00106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}}.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}}\ =\ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00107}00107\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}}.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ =\ i;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00108}00108\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00109}00109\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00110}00110\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00111}00111\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}++;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00112}00112\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00113}00113\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00114}00114\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}FATAL:\ Failed\ to\ allocate\ memory\ for\ cons\ page\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00115}00115\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00116}00116\ \ \ \ \ \ \ \ \ exit(\ 1\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00117}00117\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00118}00118\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00119}00119\ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00120}00120\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00121}00121\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00122}00122\ \textcolor{comment}{\ *\ dump\ the\ allocated\ pages\ to\ this\ \`{}output`\ stream.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00123}00123\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00124}\mbox{\hyperlink{conspage_8c_a8078785bb1865878f934d02b28e600d9}{00124}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{conspage_8c_a8078785bb1865878f934d02b28e600d9}{dump\_pages}}(\ \mbox{\hyperlink{fopen_8h_structfcurl__data}{URL\_FILE}}\ *output\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00125}00125\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{conspage_8c_a5d208b62e1b9701d407cbb38daa2a225}{initialised\_cons\_pages}};\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00126}00126\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{fopen_8h_ac88d8de2499a3cdc3a4c7c4f5a4424e8}{url\_fwprintf}}(\ output,\ L\textcolor{stringliteral}{"{}\(\backslash\)nDUMPING\ PAGE\ \%d\(\backslash\)n"{}},\ i\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00128}00128\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ j\ =\ 0;\ j\ <\ \mbox{\hyperlink{conspage_8h_a384a2520aa9fc6aa1dc6528b2795edab}{CONSPAGESIZE}};\ j++\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00129}00129\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{dump_8c_a398fe0724ef6a1badc4b353bbdbc1c57}{dump\_object}}(\ output,\ (\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00130}00130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i,\ j}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00131}00131\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00132}00132\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00133}00133\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00134}00134\ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00135}00135\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00136}00136\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00137}00137\ \textcolor{comment}{\ *\ Frees\ the\ cell\ at\ the\ specified\ \`{}pointer`;\ for\ all\ the\ types\ of\ cons-\/space}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00138}00138\ \textcolor{comment}{\ *\ object\ which\ point\ to\ other\ cons-\/space\ objects,\ cascade\ the\ decrement.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00139}00139\ \textcolor{comment}{\ *\ Dangerous,\ primitive,\ low\ level.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00140}00140\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00141}00141\ \textcolor{comment}{\ *\ @pointer\ the\ cell\ to\ free}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00142}00142\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00143}\mbox{\hyperlink{conspage_8c_a7cf88f8487cd8fef12fdd78a2aaa6216}{00143}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{conspage_8c_a7cf88f8487cd8fef12fdd78a2aaa6216}{free\_cell}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00144}00144\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00145}00145\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00146}00146\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},\ L\textcolor{stringliteral}{"{}Freeing\ cell\ "{}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00147}00147\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa0ffa929ddbce890ce4f81264a211233}{debug\_dump\_object}}(\ pointer,\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00148}00148\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00149}00149\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\_tag}}(\ pointer,\ \mbox{\hyperlink{consspaceobject_8h_a4fc1fb4e748738d9cd5e6f7ead789f06}{FREETV}}\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00150}00150\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ ==\ 0\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00151}00151\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00152}00152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00153}00153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00154}00154\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00155}00155\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00156}00156\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_aa66d7497baaa8e7a255c448e8b08e5ee}{EXCEPTIONTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00157}00157\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.exception.\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00158}00158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.exception.frame\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00159}00159\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00160}00160\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a291e48d2612ab2b3b86fa677d13824b3}{FUNCTIONTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00161}00161\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.function.meta\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00162}00162\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00163}00163\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00164}00164\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.more\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00165}00165\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00166}00166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad4ddcddc7db74650f23a33d0e970db30}{LAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00167}00167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a7f953a7cdd4f2ce5eab1738da32536b3}{NLAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00168}00168\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.args\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00169}00169\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.lambda.body\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00170}00170\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00171}00171\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00172}00172\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.ratio.dividend\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00173}00173\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.ratio.divisor\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00174}00174\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00175}00175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_adaf34dffde713283cf269225ee0343a8}{READTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00176}00176\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad677447e4a46d52d256d0fe671e2d663}{WRITETV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00177}00177\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.meta\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00178}00178\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{fopen_8c_ae855f8141739dd05eb4a2319006d1177}{url\_fclose}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.stream.stream\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00179}00179\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00180}00180\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a0569cc92977f62ba26b81c00e661b973}{SPECIALTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00181}00181\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.special.meta\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00182}00182\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00183}00183\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00184}00184\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00185}00185\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\_ref}}(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00186}00186\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00187}00187\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a0e422043a4797ec1a81f7460486e09da}{VECTORPOINTTV}}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00188}00188\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{vectorspace_8c_a7d4b938413ff59e1e8c4e6966d86ad38}{free\_vso}}(\ pointer\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00189}00189\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00190}00190\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00191}00191\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(\ stderr,\ \textcolor{stringliteral}{"{}WARNING:\ Freeing\ object\ of\ type\ \%s!"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00192}00192\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ \textcolor{keywordtype}{char}\ *\ )\ \&(\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes\ )\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00193}00193\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00194}00194\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00195}00195\ \ \ \ \ \ \ \ \ \ \ \ \ strncpy(\ \&cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0],\ \mbox{\hyperlink{consspaceobject_8h_a4fabeca6b8b2a02eaf1e2de8b7ede1e9}{FREETAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00196}00196\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.car\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00197}00197\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.cdr\ =\ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00198}00198\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}}\ =\ pointer;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00199}00199\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a0ab1cafb4664d438d2cd75ab587035f0}{total\_cells\_freed}}++;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00200}00200\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00201}00201\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00202}00202\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}ERROR:\ Attempt\ to\ free\ cell\ with\ \%d\ dangling\ references\ at\ page\ \%d,\ offset\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00203}00203\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}},\ pointer.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}},\ pointer.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00204}00204\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00205}00205\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00206}00206\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00207}00207\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}ERROR:\ Attempt\ to\ free\ cell\ which\ is\ already\ FREE\ at\ page\ \%d,\ offset\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00208}00208\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ pointer.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}},\ pointer.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00209}00209\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00210}00210\ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00211}00211\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00212}00212\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00213}00213\ \textcolor{comment}{\ *\ Allocates\ a\ cell\ with\ the\ specified\ \`{}tag`.\ Dangerous,\ primitive,\ low}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00214}00214\ \textcolor{comment}{\ *\ level.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00215}00215\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00216}00216\ \textcolor{comment}{\ *\ @param\ tag\ the\ tag\ of\ the\ cell\ to\ allocate\ -\/\ must\ be\ a\ valid\ cons\ space\ tag.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00217}00217\ \textcolor{comment}{\ *\ @return\ the\ cons\ pointer\ which\ refers\ to\ the\ cell\ allocated.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00218}00218\ \textcolor{comment}{\ *\ \(\backslash\)todo\ handle\ the\ case\ where\ another\ cons\_page\ cannot\ be\ allocated;}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00219}00219\ \textcolor{comment}{\ *\ return\ an\ exception.\ Which,\ as\ we\ cannot\ create\ such\ an\ exception\ when}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00220}00220\ \textcolor{comment}{\ *\ cons\ space\ is\ exhausted,\ means\ we\ must\ construct\ it\ at\ init\ time.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00221}00221\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00222}\mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{00222}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ uint32\_t\ tag\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00223}00223\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ result\ =\ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00224}00224\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00225}00225\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00226}00226\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ result.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}}\ ==\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}.page\ \&\&\ result.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ ==\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}}.offset\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00227}00227\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a4c4c78e7fc8fb93ca030af51fba71c1c}{make\_cons\_page}}(\ \ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00228}00228\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{conspage_8c_a04ba7c874b05e9789d0aca9ee6b106a7}{allocate\_cell}}(\ tag\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00229}00229\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00230}00230\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ result\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00231}00231\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00232}00232\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ strncmp(\ \&cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes[0],\ \mbox{\hyperlink{consspaceobject_8h_a4fabeca6b8b2a02eaf1e2de8b7ede1e9}{FREETAG}},\ \mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\ )\ ==\ 0\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00233}00233\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_ae0a20197a96d9f07dac864b925cd0f32}{freelist}}\ =\ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.free.cdr;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00234}00234\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00235}00235\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ =\ tag;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00236}00236\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00237}00237\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a86988a65e0d3ece7990c032c159786d6}{count}}\ =\ 1;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00238}00238\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00239}00239\ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr\ =\ \mbox{\hyperlink{consspaceobject_8h_a263efce0e5cda1d387a1a43f94715445}{NIL}};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00240}00240\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00241}00241\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a9439a14783e93d3b50b984002c8b18cb}{total\_cells\_allocated}}++;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00242}00242\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00243}00243\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00244}00244\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Allocated\ cell\ of\ type\ '\%4.4s'\ at\ \%d,\ \%d\ \(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00245}00245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.bytes,\ result.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}},\ result.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00246}00246\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00247}00247\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},\ L\textcolor{stringliteral}{"{}WARNING:\ Allocating\ non-\/free\ cell!"{}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00248}00248\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00249}00249\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00250}00250\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00251}00251\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00252}00252\ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00253}00253\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00254}00254\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00255}00255\ \textcolor{comment}{\ *\ initialise\ the\ cons\ page\ system;\ to\ be\ called\ exactly\ once\ during\ startup.}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00256}00256\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00257}\mbox{\hyperlink{conspage_8c_aeb73441904896a283f5b57298479bc4a}{00257}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{conspage_8c_aeb73441904896a283f5b57298479bc4a}{initialise\_cons\_pages}}(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00258}00258\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{conspage_8c_a6797b106f2c4921b50e4ec8f20d561f1}{conspageinitihasbeencalled}}\ ==\ \textcolor{keyword}{false}\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00259}00259\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ \textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{conspage_8h_a2656b2b52cfab9ff1a7f8cf63e5d111f}{NCONSPAGES}};\ i++\ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00260}00260\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a7cce1a2d3dd8b5abe5e30622d94e6959}{conspages}}[i]\ =\ (\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{conspage_8h_structcons__page}{cons\_page}}\ *\ )\ NULL;}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00261}00261\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00262}00262\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00263}00263\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a4c4c78e7fc8fb93ca030af51fba71c1c}{make\_cons\_page}}(\ \ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00264}00264\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a6797b106f2c4921b50e4ec8f20d561f1}{conspageinitihasbeencalled}}\ =\ \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00265}00265\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00266}00266\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_ab99ea81093661d24ffaaa4e85cb2387a}{DEBUG\_ALLOC}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00267}00267\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}WARNING:\ initialise\_cons\_pages()\ called\ a\ second\ or\ subsequent\ time\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00268}00268\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00269}00269\ \}}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00270}00270\ }
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00271}\mbox{\hyperlink{conspage_8c_ab8d9d6417f194dca8d8322301cf37c7c}{00271}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{conspage_8c_ab8d9d6417f194dca8d8322301cf37c7c}{summarise\_allocation}}(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00272}00272\ \ \ \ \ fwprintf(\ stderr,}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00273}00273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}Allocation\ summary:\ allocated\ \%lld;\ deallocated\ \%lld;\ not\ deallocated\ \%lld.\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00274}00274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a9439a14783e93d3b50b984002c8b18cb}{total\_cells\_allocated}},\ \mbox{\hyperlink{conspage_8c_a0ab1cafb4664d438d2cd75ab587035f0}{total\_cells\_freed}},}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00275}00275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{conspage_8c_a9439a14783e93d3b50b984002c8b18cb}{total\_cells\_allocated}}\ -\/\ \mbox{\hyperlink{conspage_8c_a0ab1cafb4664d438d2cd75ab587035f0}{total\_cells\_freed}}\ );}
\DoxyCodeLine{\Hypertarget{conspage_8c_source_l00276}00276\ \}}

\end{DoxyCode}
