\doxysection{workspace/post-\/scarcity/src/memory/vectorspace.c File Reference}
\hypertarget{vectorspace_8c}{}\label{vectorspace_8c}\index{workspace/post-\/scarcity/src/memory/vectorspace.c@{workspace/post-\/scarcity/src/memory/vectorspace.c}}
{\ttfamily \#include $<$math.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$wchar.\+h$>$}\newline
{\ttfamily \#include $<$wctype.\+h$>$}\newline
{\ttfamily \#include "{}memory/conspage.\+h"{}}\newline
{\ttfamily \#include "{}memory/consspaceobject.\+h"{}}\newline
{\ttfamily \#include "{}debug.\+h"{}}\newline
{\ttfamily \#include "{}memory/hashmap.\+h"{}}\newline
{\ttfamily \#include "{}memory/stack.\+h"{}}\newline
{\ttfamily \#include "{}memory/vectorspace.\+h"{}}\newline
{\ttfamily \#include "{}ops/intern.\+h"{}}\newline
Include dependency graph for vectorspace.\+c\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{vectorspace_8c__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{vectorspace_8c_a7d4b938413ff59e1e8c4e6966d86ad38}{free\+\_\+vso}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer)
\begin{DoxyCompactList}\small\item\em for vector space pointers, free the actual vector-\/space object. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{vectorspace_8c_a680df55eeac54d8e9b14be3b414db236}{make\+\_\+vec\+\_\+pointer}} (struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}address, uint32\+\_\+t tag)
\begin{DoxyCompactList}\small\item\em Make a \doxylink{consspaceobject_8h_structcons__space__object}{cons\+\_\+space\+\_\+object} which points to the \doxylink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object} with this {\ttfamily tag} at this {\ttfamily address}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{vectorspace_8c_af82611898537d85117224ce5d4c5eeb5}{make\+\_\+vso}} (uint32\+\_\+t tag, uint64\+\_\+t payload\+\_\+size)
\begin{DoxyCompactList}\small\item\em Allocate a vector space object with this {\ttfamily payload\+\_\+size} and {\ttfamily tag}, and return a {\ttfamily \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} which points to an object whigh points to it. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\Hypertarget{vectorspace_8c_a7d4b938413ff59e1e8c4e6966d86ad38}\label{vectorspace_8c_a7d4b938413ff59e1e8c4e6966d86ad38} 
\index{vectorspace.c@{vectorspace.c}!free\_vso@{free\_vso}}
\index{free\_vso@{free\_vso}!vectorspace.c@{vectorspace.c}}
\doxysubsubsection{\texorpdfstring{free\_vso()}{free\_vso()}}
{\footnotesize\ttfamily void free\+\_\+vso (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer }\end{DoxyParamCaption})}



for vector space pointers, free the actual vector-\/space object. 

Dangerous! 

Definition at line \mbox{\hyperlink{vectorspace_8c_source_l00123}{123}} of file \mbox{\hyperlink{vectorspace_8c_source}{vectorspace.\+c}}.



References \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{intern_8c_source_l00110}{free\+\_\+hashmap()}}, \mbox{\hyperlink{stack_8c_source_l00224}{free\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00053}{get\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{vectorspace_8h_source_l00030}{HASHTV}}, \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{stack_8h_source_l00031}{STACKFRAMETV}}, and \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}.



Referenced by \mbox{\hyperlink{conspage_8c_source_l00143}{free\+\_\+cell()}}.

\Hypertarget{vectorspace_8c_a680df55eeac54d8e9b14be3b414db236}\label{vectorspace_8c_a680df55eeac54d8e9b14be3b414db236} 
\index{vectorspace.c@{vectorspace.c}!make\_vec\_pointer@{make\_vec\_pointer}}
\index{make\_vec\_pointer@{make\_vec\_pointer}!vectorspace.c@{vectorspace.c}}
\doxysubsubsection{\texorpdfstring{make\_vec\_pointer()}{make\_vec\_pointer()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+vec\+\_\+pointer (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}}]{address,  }\item[{uint32\+\_\+t}]{tag }\end{DoxyParamCaption})}



Make a \doxylink{consspaceobject_8h_structcons__space__object}{cons\+\_\+space\+\_\+object} which points to the \doxylink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object} with this {\ttfamily tag} at this {\ttfamily address}. 

@address the address of the \doxylink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object} to point to. @tag the vector-\/space tag of the particular type of vector-\/space object, NOT {\ttfamily VECTORPOINTTV}.

\begin{DoxyReturn}{Returns}
a \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer} to the object, or NIL if the object could not be allocated due to memory exhaustion. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{vectorspace_8c_source_l00042}{42}} of file \mbox{\hyperlink{vectorspace_8c_source}{vectorspace.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00262}{VECTORPOINTTV}}.



Referenced by \mbox{\hyperlink{vectorspace_8c_source_l00075}{make\+\_\+vso()}}.

\Hypertarget{vectorspace_8c_af82611898537d85117224ce5d4c5eeb5}\label{vectorspace_8c_af82611898537d85117224ce5d4c5eeb5} 
\index{vectorspace.c@{vectorspace.c}!make\_vso@{make\_vso}}
\index{make\_vso@{make\_vso}!vectorspace.c@{vectorspace.c}}
\doxysubsubsection{\texorpdfstring{make\_vso()}{make\_vso()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+vso (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag,  }\item[{uint64\+\_\+t}]{payload\+\_\+size }\end{DoxyParamCaption})}



Allocate a vector space object with this {\ttfamily payload\+\_\+size} and {\ttfamily tag}, and return a {\ttfamily \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} which points to an object whigh points to it. 

@tag the vector-\/space tag of the particular type of vector-\/space object, NOT {\ttfamily VECTORPOINTTAG}. @payload\+\_\+size the size of the payload required, in bytes.

\begin{DoxyReturn}{Returns}
a \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer} to the object, or NIL if the object could not be allocated due to memory exhaustion. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{vectorspace_8c_source_l00075}{75}} of file \mbox{\hyperlink{vectorspace_8c_source}{vectorspace.\+c}}.



References \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{vectorspace_8c_source_l00042}{make\+\_\+vec\+\_\+pointer()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{vector\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{vectorspace_8h_source_l00080}{vector\+\_\+space\+\_\+header\+::size}}, \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}, and \mbox{\hyperlink{vectorspace_8h_source_l00078}{vector\+\_\+space\+\_\+header\+::vecp}}.



Referenced by \mbox{\hyperlink{stack_8c_source_l00075}{make\+\_\+empty\+\_\+frame()}}, and \mbox{\hyperlink{intern_8c_source_l00137}{make\+\_\+hashmap()}}.

