46 lines
2.1 KiB
TeX
46 lines
2.1 KiB
TeX
\subsection{The R\"unlist}
|
|
The R\"unlist is part of the LNS R\"unbuffer system. It is a stack of
|
|
r\"unbuffers. When started, the last r\"unbuffer of the stack is executed.
|
|
While this is happening it is
|
|
possible to modify, delete and add r\"unbuffers to the stack.
|
|
|
|
The R\"unlist is characterized by the following data structure:
|
|
\begin{verbatim}
|
|
typedef struct {
|
|
pObjectDescriptor pDes;
|
|
int iList;
|
|
} RuenStack, *pRuenStack;
|
|
\end{verbatim}
|
|
The fields are:
|
|
\begin{description}
|
|
\item[pDes] A pointer to the usual SICS object descriptor.
|
|
\item[iList] A lld--list of r\"unbuffers.
|
|
\end{description}
|
|
|
|
Interaction with the R\"unlist happens through the interface functions given
|
|
below. If not stated otherwise functions return 1 on success, 0 on failure.
|
|
Most functions take as first parameter a pointer to a r\"unlist structure.
|
|
\begin{description}
|
|
\item[pRuenStack CreateRuenStack(void)] creates a new r\"unlist. Returns the
|
|
pointer to a new r\"unlist structure on success, NULL on failure.
|
|
\item[void DeleteRuenStack(void *self)] deletes a r\"unlist.
|
|
\item[int RuenStackAdd(pRuenStack self,pRuenBuffer pVictim)] puts
|
|
r\"unbuffer pVictim on top of the r|'unlist.
|
|
\item[int RuenStackUnlink(pRuenStack self, int iLine)] removes r\"unbuffer
|
|
number iLine from the r\"unlist. This command does NOT delete the
|
|
r\"unbuffer.
|
|
\item[int RuenStackInsert(pRuenStack self, int iLine, pRuenBuffer pVictim)]
|
|
inserts r\"unbuffer pVictim after line iLine into the r\"unlist.
|
|
\item[int RuenStackList(pRuenStack self, SConnection *pCon)] list the
|
|
contents of the r\"unlist onto the connection pCon.
|
|
\item[int RuenStackRun(pRuenStack self,SConnection *pCon, SicsInterp
|
|
*pSics)] executes the r\"unlist. Ends when the r\"unlist is empty.
|
|
\item[int RuenStackBatch(pRuenStack self,SConnection *pCon, SicsInterp
|
|
*pSics)] executes the r\"unlist. If the list is empty RuenStackBatch
|
|
continues and checks for new r\"unbuffers being added to the list.
|
|
\item[int RuenStackAction(SConnection *pCon, SicsInterp *pSics, void *pData,\\
|
|
int argc, char *argv[])] The object wrapper function
|
|
for the R\"unlist.
|
|
\end{description}
|
|
|