<!DOCTYPE LINUXDOC SYSTEM>

<!-- This SGML file generated by cxref. -->
<!-- cxref program (c) Andrew M. Bishop 1995,96,97,98. -->

<article>

<title>Cross reference for datatype.h of cxref.
<author>cxref

<sect>File datatype.h
<bf>RCS Header: /home/amb/cxref/RCS/datatype.h 1.14 1999/01/24 16:53:48 amb Exp </bf>
<p>

  C Cross Referencing &amp; Documentation tool. Version 1.5.
<newline>
  Definition of the different variables types that are used.
<p>
<p>
<descrip>
<tag>Included in:</tag>
<itemize>
<item>comment.c
<item>cxref.c
<item>cxref.h
<item>file.c
<item>func.c
<item>html.c
<item>latex.c
<item>preproc.c
<item>rtf.c
<item>sgml.c
<item>slist.c
<item>type.c
<item>var.c
<item>warn-raw.c
<item>xref.c
</itemize>
</descrip>

<sect1>Preprocessor definitions

<p>
 To stop multiple inclusions. 
<p>
<tt>#define DATA_TYPE_H</tt><newline>
<p>
  A function to add a pointer to the end of a linked list.
<p>
<tt>#define AddToLinkedList( dst, type, src )</tt><newline>
<descrip>
<tag><tt>dst</tt></tag>
The destination, where the pointer is to be added to.
<tag><tt>type</tt></tag>
The type of the pointer.
<tag><tt>src</tt></tag>
The pointer that is to be added to the end of the linked list.
</descrip>

<sect1>Typedef File

<p>
 A pointer type to file information. 
<p>
<tt>typedef struct _File* File</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _File
</itemize>
</descrip>

<sect1>Typedef Include

<p>
 A pointer type to &num;include information. 
<p>
<tt>typedef struct _Include* Include</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _Include
</itemize>
</descrip>

<sect1>Typedef Define

<p>
 A pointer type to &num;define information. 
<p>
<tt>typedef struct _Define* Define</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _Define
</itemize>
</descrip>

<sect1>Typedef Typedef

<p>
 A pointer type to typedef information. 
<p>
<tt>typedef struct _Typedef* Typedef</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _Typedef
</itemize>
</descrip>

<sect1>Typedef Variable

<p>
 A pointer type to variable information. 
<p>
<tt>typedef struct _Variable* Variable</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _Variable
</itemize>
</descrip>

<sect1>Typedef Function

<p>
 A pointer type to function information. 
<p>
<tt>typedef struct _Function* Function</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _Function
</itemize>
</descrip>

<sect1>Typedef StructUnion

<p>
 A pointer type to struct and union information. 
<p>
<tt>typedef struct _StructUnion* StructUnion</tt><newline>
<descrip>
<tag>See:</tag>
<itemize>
<item>Type struct _StructUnion
</itemize>
</descrip>

<sect1>Typedef StringList

<p>
 A data structure to contain lists of strings, eg functions that are called. 
<p>
<tt>typedef struct _StringList* StringList</tt><newline>
<itemize>
<item><tt>struct _StringList</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>int n;      </tt> The number of strings in the list. <newline>
<item><tt>char** s;      </tt> The strings. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Typedef StringList2

<p>
 A data structure to contain two lists of strings, eg arguments and comments. 
<p>
<tt>typedef struct _StringList2* StringList2</tt><newline>
<itemize>
<item><tt>struct _StringList2</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>int n;      </tt> The number of strings in the list. <newline>
<item><tt>char** s1;      </tt> The first set of strings. <newline>
<item><tt>char** s2;      </tt> The second set of strings. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _File

<p>
 A data structure to contain a complete file worth of information. 
<p>
<itemize>
<item><tt>struct _File</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The file comment. <newline>
<item><tt>char* name;      </tt> The name of the file. <newline>
<item><tt>Include includes;      </tt> A linked list of include files. <newline>
<item><tt>Define defines;      </tt> A linked list of &num;defines. <newline>
<item><tt>Typedef typedefs;      </tt> A linked list of type definitions. <newline>
<item><tt>Variable variables;      </tt> A linked list of variable definitions. <newline>
<item><tt>Function functions;      </tt> A linked list of function prototypes. <newline>
<item><tt>StringList inc_in;      </tt> The files that this file is included in. <newline>
<item><tt>StringList2 f_refs;      </tt> The functions that are referenced. <newline>
<item><tt>StringList2 v_refs;      </tt> The variables that are referenced. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _Include

<p>
 A data structure to contain information about a &num;include. 
<p>
<itemize>
<item><tt>struct _Include</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the include file. <newline>
<item><tt>char* name;      </tt> The name of the included file. <newline>
<item><tt>int scope;      </tt> The type of file, LOCAL or GLOBAL. <newline>
<item><tt>Include includes;      </tt> The files that are include by this file. <newline>
<item><tt>Include next;      </tt> A pointer to the next item. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _Define

<p>
 A data structure to contain information about a &num;define. 
<p>
<itemize>
<item><tt>struct _Define</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the &num;define. <newline>
<item><tt>char* name;      </tt> The name that is defined. <newline>
<item><tt>char* value;      </tt> The value that is defined (if simple). <newline>
<item><tt>StringList2 args;      </tt> The arguments to the &num;define function. <newline>
<item><tt>int lineno;      </tt> The line number that this definition appears on. <newline>
<item><tt>Define next;      </tt> A pointer to the next item. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _Typedef

<p>
 A data structure to contain the information for a typedef. 
<p>
<itemize>
<item><tt>struct _Typedef</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the type definition. <newline>
<item><tt>char* name;      </tt> The name of the defined type. <newline>
<item><tt>char* type;      </tt> The type of the definition. <newline>
<item><tt>StructUnion sutype;      </tt> The type of the definition if it is a locally declared struct / union. <newline>
<item><tt>Typedef typexref;      </tt> The type of the definition if it is not locally declared or a repeat definition. <newline>
<item><tt>int lineno;      </tt> The line number that this type definition appears on. <newline>
<item><tt>Typedef next;      </tt> A pointer to the next item. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _Variable

<p>
 A data structure to contain the information for a variable. 
<p>
<itemize>
<item><tt>struct _Variable</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the variable. <newline>
<item><tt>char* name;      </tt> The name of the variable. <newline>
<item><tt>char* type;      </tt> The type of the variable. <newline>
<item><tt>int scope;      </tt> The scope of the variable, STATIC, GLOBAL or EXTERNAL <newline>
<item><tt>char* defined;      </tt> The name of the file that the variable is defined in as global if extern here. <newline>
<item><tt>char* incfrom;      </tt> The name of the file that the variable is included from if any. <newline>
<item><tt>StringList2 visible;      </tt> The names of the files that the variable is visible in. <newline>
<item><tt>StringList2 used;      </tt> The names of the files that the variable is used in. <newline>
<item><tt>int lineno;      </tt> The line number that this variable definition appears on. <newline>
<item><tt>Variable next;      </tt> A pointer to the next item. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _Function

<p>
 A data structure to contain information for a function definition. 
<p>
<itemize>
<item><tt>struct _Function</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the function. <newline>
<item><tt>char* name;      </tt> The name of the function. <newline>
<item><tt>char* type;      </tt> The return type of the function. <newline>
<item><tt>char* cret;      </tt> A comment for the returned value. <newline>
<item><tt>char* protofile;      </tt> The name of the file where the function is prototyped <newline>
<item><tt>char* incfrom;      </tt> The name of the file that the function is included from if any. <newline>
<item><tt>StringList2 args;      </tt> The arguments to the function. <newline>
<item><tt>int scope;      </tt> The scope of the function, LOCAL or GLOBAL. <newline>
<item><tt>StringList protos;      </tt> The functions that are prototyped within this function. <newline>
<item><tt>StringList2 calls;      </tt> The functions that are called from this function. <newline>
<item><tt>StringList2 called;      </tt> The names of the functions that call this one. <newline>
<item><tt>StringList2 used;      </tt> The places that the function is used, (references not direct calls). <newline>
<item><tt>StringList2 v_refs;      </tt> The variables that are referenced from this function. <newline>
<item><tt>StringList2 f_refs;      </tt> The functions that are referenced from this function. <newline>
<item><tt>int lineno;      </tt> The line number that this function definition appears on. <newline>
<item><tt>Function next;      </tt> A pointer to the next item. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

<sect1>Type struct _StructUnion

<p>
 A data structure to contain a structure definition to allow structures to be matched to their typedefs (if any). 
<p>
<itemize>
<item><tt>struct _StructUnion</tt><newline>
<itemize>
<item><tt>{</tt><newline>
<item><tt>char* comment;      </tt> The comment for the struct or union or simple component. <newline>
<item><tt>char* name;      </tt> The name of the struct or union or simple component. <newline>
<item><tt>int n_comp;      </tt> The number of sub-components (if none then it is simple). <newline>
<item><tt>StructUnion* comps;      </tt> The sub-components. <newline>
<item><tt>}</tt><newline>
</itemize>
</itemize>

</article>
