#include <memory.h>
#include "types.h"
Include dependency graph for protos.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Defines | |
| #define | weakfindfather(x) ((typecuc *)(((!(((typecuc*)(x))->isapex))&&(((typecuc*)(x))->isleftmost))?((typecuc*)((typecuc*)(x))->leftbroorfather):(typecuc*)functionweakfindfather((typecorecrum *)(typecuc*)(x)))) |
| #define | clear(ptr, count) memset(ptr,0,count) |
| #define | movmem(src, dest, count) memmove(dest,src,count) |
| #define | rejuvinateifnotRESERVED(x) (((x)->age==RESERVED)?(int)(x):((x)->age = NEW)) |
| #define | rejuvinate(x) ((x)->age==RESERVED)?(reservnumber?--reservnumber:testforrejuvinate(x)):0,(x)->age = NEW |
| #define | getrightbro(x) routinegetrightbro(x) |
| #define | macrogetrightbro(x) ((rejuvinateifnotRESERVED (x), (x) = (x)->rightbro, ((x)? (rejuvinateifnotRESERVED (x)): 0),(x))) |
| #define | findrightbro(A) funcfindrightbro(A) |
| #define | max(a, b) (((a) > (b)) ? (a) : (b)) |
| #define | min(a, b) (((a) < (b)) ? (a) : (b)) |
| #define | movewisp(A, B) movmem((A),(B),sizeof(typewisp)) |
| #define | widsize(A) ((A)==GRAN?WIDSIZEGR:((A)==SPAN?WIDSIZESP:WIDSIZEPM)) |
| #define | dspsize(A) ((A)==GRAN?DSPSIZEGR:((A)==SPAN?DSPSIZESP:DSPSIZEPM)) |
Functions | |
| void | lookatalloc () |
| ??? | |
| int | checkalloc (char *c) |
| ??? | |
| int * | falloc (unsigned nbytes) |
| ??? | |
| void | ffree (char *ap) |
| ??? | |
| void | lookatalloc2 (HEADER *abaseallocated) |
| ??? | |
| int | checkforopen (Session *sess, Tumbler *tp, int type) |
| ??? | |
| void | logbertmodifiedforcrum (Session *sess, typecuc *crumptr) |
| ??? | |
| void | logbertmodified (Session *sess, Tumbler *tp) |
| ??? | |
| bool | doopen (Session *sess, IStreamAddr *tp, IStreamAddr *newtp, int type, int mode) |
| ??? | |
| bool | doclose (Session *sess, IStreamAddr *tp) |
| ??? | |
| void | closeberts (Session *sess) |
| ??? | |
| void | contextfree (Context *context) |
| ??? | |
| CrumContext * | createcrumcontext (typecorecrum *crumptr, typedsp *offsetptr) |
| ??? | |
| void | crumcontextfree (CrumContext *context) |
| ??? | |
| void | incontextlistnd (Context **clistptr, Context *c, int index) |
| ??? | |
| void | oncontextlistseq (Context **clistptr, Context *c) |
| ??? | |
| Context * | makecontextfromcbc (typecbc *crumptr, typewid *offsetptr) |
| ??? | |
| void | context2span (Context *context, typespan *restrictionspanptr, int idx1, typespan *foundspanptr, int idx2) |
| ??? | |
| bool | context2vstuff (Session *sess, Context *context, typeispan *ispanptr, typevstuffset *vstuffsetptr) |
| ??? | |
| void | initkluge (typecuc **granfptr, typecuc **spanfptr) |
| ??? | |
| void | inloaf (typecuc *father) |
| ??? | |
| void | inorgl (typecbc *granorglptr) |
| ??? | |
| void | inorglinternal (typecbc *granorglptr, typeuberrawdiskloaf *crumptr) |
| ??? | |
| void | diskexit () |
| ??? | |
| void | diskflush () |
| ??? | |
| void | writeenfilades () |
| ??? | |
| void | orglwrite (typecbc *orglcbcptr) |
| ??? | |
| void | subtreewrite (typecuc *father) |
| ??? | |
| void | restrictspecsetsaccordingtoispans (Session *sess, typeispanset ispanset, typespecset *specset1, typespecset *specset2) |
| ??? | |
| bool | intersectspansets (Session *sess, typespanset set1, typespanset set2, typespanset *set3, typeitemid spantype) |
| ??? | |
| void | makespanpairset (Session *sess, typeispanset ispanset, typespecset specset1, typespecset specset2, typespanpairset *pairsetptr) |
| ??? | |
| int * | eallocwithtag (unsigned nbytes, tagtype tag) |
| ??? | |
| void | efree (char *ptr) |
| ??? | |
| void | initgrimreaper () |
| ??? | |
| int | testforrejuvinate (typecorecrum *ptr) |
| ??? | |
| void | funcrejuvinate (typecorecrum *ptr) |
| ??? | |
| void | reserve (typecorecrum *ptr) |
| ??? | |
| void | testforreservedness (char *msg) |
| ??? | |
| void | subtreefree (typecorecrum *ptr) |
| ??? | |
| void | freecrum (typecorecrum *ptr) |
| ??? | |
| void | loaffree (typecuc *father) |
| ??? | |
| void | orglfree (typecuc *ptr) |
| ??? | |
| typecuc * | createenf (int enftype) |
| ??? | |
| typecorecrum * | createcrum (int crumheight, int enftype) |
| ??? | |
| void | initcrum (int crumheight, int enftype, typecorecrum *ptr) |
| ??? | |
| void | initqueues () |
| ??? | |
| int | findnumberofdamnsons (typediskloafptr diskptr) |
| ??? | |
| int | changerefcount (typediskloafptr diskptr, int delta) |
| ??? | |
| void | readloaf (typediskloaf *loafptr, typediskloafptr diskptr) |
| ??? | |
| void | actuallyreadrawloaf (typeuberrawdiskloaf *loafptr, int blocknumber) |
| ??? | |
| void | writeloaf (typediskloaf *loafptr, typediskloafptr diskptr, int newloaf) |
| ??? | |
| void | actuallywriteloaf (typeuberrawdiskloaf *loafptr, int diskblocknumber) |
| ??? | |
| bool | initenffile (const char *filename) |
| ??? | |
| void | closediskfile () |
| ??? | |
| typediskloafptr | diskalloc () |
| ??? | |
| void | diskfree (typediskloafptrdigit loafptr) |
| ??? | |
| void | diskset (typediskloafptrdigit loafptr) |
| ??? | |
| bool | readallocinfo (int fd) |
| ??? | |
| void | initheader () |
| ??? | |
| void | diskallocexit (int fd) |
| ??? | |
| void | writeallocinfo (int fd) |
| ??? | |
| bool | goodblock (typediskloafptrdigit diskptr) |
| ??? | |
| bool | dofinddocscontaining (Session *sess, typespecset specset, typelinkset *addresssetptr) |
| Find documents containing any of the material specified. | |
| bool | doappend (Session *sess, IStreamAddr *docptr, typetextset textset) |
| Append text to a document. | |
| bool | dorearrange (Session *sess, IStreamAddr *docisaptr, typecutseq *cutseqptr) |
| Transpose two regions of text within a document. | |
| bool | docopy (Session *sess, IStreamAddr *docisaptr, Tumbler *vsaptr, typespecset specset) |
| Virtually copy (transclude) some material into a document. | |
| bool | docopyinternal (Session *sess, IStreamAddr *docisaptr, Tumbler *vsaptr, typespecset specset) |
| Virtually copy (transclude) some material into a document. | |
| bool | doinsert (Session *sess, IStreamAddr *docisaptr, Tumbler *vsaptr, typetextset textset) |
| Insert a set of text strings into a document. | |
| void | checkspecandstringbefore () |
| ??? | |
| bool | dodeletevspan (Session *sess, IStreamAddr *docisaptr, typevspan *vspanptr) |
| Delete a range of text from a document. | |
| bool | domakelink (Session *sess, IStreamAddr *docisaptr, typespecset fromspecset, typespecset tospecset, IStreamAddr *linkisaptr) |
| Create a 2-endpoint link between parts of documents. | |
| bool | docreatelink (Session *sess, IStreamAddr *docisaptr, typespecset fromspecset, typespecset tospecset, typespecset threespecset, IStreamAddr *linkisaptr) |
| Create a 3-endpoint link between parts of documents. | |
| bool | dofollowlink (Session *sess, IStreamAddr *linkisaptr, typespecset *specsetptr, int whichend) |
| Return the specification set of one endpoint of a link. | |
| bool | docreatenewdocument (Session *sess, IStreamAddr *isaptr) |
| Create a new, empty document. | |
| bool | docreatenode_or_account (Session *sess, IStreamAddr *isaptr) |
| Create a new node or account identifier. | |
| bool | docreatenewversion (Session *sess, IStreamAddr *isaptr, IStreamAddr *wheretoputit, IStreamAddr *newisaptr) |
| Create a new version of a document and return its identifier. | |
| bool | doretrievedocvspan (Session *sess, IStreamAddr *docisaptr, typevspan *vspanptr) |
| Return the total span of text and links within a document. | |
| bool | doretrievedocvspanset (Session *sess, IStreamAddr *docisaptr, typevspanset *vspansetptr) |
| Return the total span of text and links within a document. | |
| bool | doretrievev (Session *sess, typespecset specset, typevstuffset *vstuffsetptr) |
| Return the text and links from set of places within a document. | |
| bool | dofindlinksfromtothree (Session *sess, typespecset fromvspecset, typespecset tovspecset, typespecset threevspecset, typeispan *orglrangeptr, typelinkset *linksetptr) |
| Return a list of links that meet a specific set of endpoint criteria. | |
| bool | dofindnumoflinksfromtothree (Session *sess, typespecset *fromvspecset, typespecset *tovspecset, typespecset *threevspecset, typeispan *orglrangeptr, int *numptr) |
| Return a count of links that meet a specific set of endpoint criteria. | |
| bool | dofindnextnlinksfromtothree (Session *sess, typevspec *fromvspecptr, typevspec *tovspecptr, typevspec *threevspecptr, typeispan *orglrangeptr, IStreamAddr *lastlinkisaptr, typelinkset *nextlinksetptr, int *nptr) |
| Return a subset of links that meet a specific set of endpoint criteria. | |
| bool | doretrieveendsets (Session *sess, typespecset specset, typespecset *fromsetptr, typespecset *tosetptr, typespecset *threesetptr) |
| Return a list of all link end-sets in the specification set. | |
| bool | doshowrelationof2versions (Session *sess, typespecset version1, typespecset version2, typespanpairset *relation) |
| ??? | |
| bool | specset2ispanset (Session *sess, typespec *specset, typeispanset *ispansetptr, int type) |
| bool | tumbler2spanset (Session *sess, IStreamAddr *tumblerptr, typespanset *spansetptr) |
| ??? | |
| void | makehint (int typeabove, int typebelow, int typeofatom, IStreamAddr *isaptr, typehint *hintptr) |
| ??? | |
| void | validhint (typehint *hintptr) |
| ??? | |
| bool | acceptablevsa (Tumbler *vsaptr, typeorgl orglptr) |
| ??? | |
| bool | insertendsetsinspanf (Session *sess, typespanf spanfptr, IStreamAddr *linkisaptr, typesporglset fromsporglset, typesporglset tosporglset, typesporglset threesporglset) |
| ??? | |
| bool | insertendsetsinorgl (Session *sess, Tumbler *linkisaptr, typeorgl link, Tumbler *fromvsa, typesporglset fromsporglset, Tumbler *tovsa, typesporglset tosporglset, Tumbler *threevsa, typesporglset threesporglset) |
| ??? | |
| bool | findnextlinkvsa (Session *sess, IStreamAddr *docisaptr, Tumbler *vsaptr) |
| ??? | |
| bool | setlinkvsas (Tumbler *fromvsaptr, Tumbler *tovsaptr, Tumbler *threevsaptr) |
| ??? | |
| bool | ispansetandspecsets2spanpairset (Session *sess, typeispanset ispanset, typespecset specset1, typespecset specset2, typespanpairset *pairsetptr) |
| ??? | |
| void | deletend (typecuc *fullcrumptr, Tumbler *origin, Tumbler *width, int index) |
| ??? | |
| void | rearrangend (typecuc *fullcrumptr, typecutseq *cutseqptr, int index) |
| ??? | |
| int | insertcutsectionnd (typecorecrum *ptr, typewid *offset, typeknives *knives) |
| ??? | |
| void | initsession (const char *database) |
| ??? | |
| bool | is2dcrum (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | getleftson (typecuc *ptr) |
| ??? | |
| typecorecrum * | routinegetrightbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | getrightmostbro (typecorecrum *ptr) |
| ??? | |
| typecuc * | getfather (typecorecrum *ptr) |
| ??? | |
| typecuc * | findfullcrum (typecorecrum *descendant) |
| ??? | |
| bool | isemptyenfilade (typecuc *ptr) |
| ??? | |
| typecuc * | functionweakfindfather (typecorecrum *ptr) |
| ??? | |
| typecuc * | findfather (typecorecrum *son) |
| ??? | |
| typecorecrum * | findleftbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | findleftmostbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | weakfindleftmostbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | funcfindrightbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | weakfindrightbro (typecorecrum *ptr) |
| ??? | |
| typecorecrum * | findrightmostbro (typecorecrum *leftbro) |
| ??? | |
| typecorecrum * | findleftson (typecuc *ptr) |
| ??? | |
| typecorecrum * | findrightmostson (typecuc *ptr) |
| ??? | |
| bool | toomanysons (typecuc *ptr) |
| ??? | |
| bool | toofewsons (typecuc *ptr) |
| ??? | |
| bool | roomformoresons (typecuc *ptr) |
| ??? | |
| void | levelpush (typecuc *fullcrumptr) |
| ??? | |
| void | levelpull (typecuc *fullcrumptr) |
| ??? | |
| void | disown (typecorecrum *crumptr) |
| ??? | |
| void | disownnomodify (typecorecrum *crumptr) |
| ??? | |
| void | adopt (typecorecrum *newcrum, int relative, typecorecrum *old) |
| ??? | |
| void | ivemodified (typecorecrum *ptr) |
| ??? | |
| bool | findorgl (Session *sess, typegranf granfptr, IStreamAddr *isaptr, typeorgl *orglptr, int type) |
| ??? | |
| bool | inserttextingranf (Session *sess, typegranf granfptr, typehint *hintptr, typetextset textset, typeispanset *ispansetptr) |
| ??? | |
| bool | createorglingranf (Session *sess, typegranf granfptr, typehint *hintptr, IStreamAddr *isaptr) |
| ??? | |
| bool | ispanset2vstuffset (Session *sess, typegranf granfptr, typeispanset ispanset, typevstuffset *vstuffsetptr) |
| ??? | |
| typeorgl | fetchorglgr (Session *sess, typegranf fullcrumptr, IStreamAddr *address) |
| ??? | |
| bool | inserttextgr (Session *sess, typegranf fullcrumptr, typehint *hintptr, typetextset textset, typeispanset *ispansetptr) |
| ??? | |
| bool | createorglgr (Session *sess, typegranf fullcrumptr, typehint *hintptr, IStreamAddr *isaptr) |
| ??? | |
| typevstuffset * | ispan2vstuffset (Session *sess, typegranf fullcrumptr, typeispan *ispanptr, typevstuffset *vstuffsetptr) |
| ??? | |
| void | init (bool safe) |
| ??? | |
| void | insertseq (typecuc *fullcrumptr, Tumbler *address, typegranbottomcruminfo *info) |
| ??? | |
| void | insertnd (Session *sess, typecuc *fullcrumptr, typewid *origin, typewid *width, type2dbottomcruminfo *infoptr, int index) |
| ??? | |
| void | makeroomonleftnd (typecuc *father, typedsp *offset, typewid *origin, typedsp *grasp) |
| ??? | |
| void | initincorealloctables () |
| ??? | |
| void | savepartialdiskalloctabletodisk () |
| ??? | |
| void | readpartialdiskalloctablefromdisk () |
| ??? | |
| void | addallocatedloaftopartialallocedtables (typediskloafptr dp, int size) |
| ??? | |
| typediskloafptr | partialdiskalloc (int size, int *newloafp) |
| ??? | |
| void | newpartialdiskfree (typediskloafptr diskloaf) |
| int | deallocateinloaf (typeuberdiskloaf *loafp, int insidediskblocknumber) |
| int | numberofliveunterloafs (typeuberdiskloaf *loafp) |
| ??? | |
| char * | findinsideloaf (typeuberdiskloaf *loafp, int ninsideloaf) |
| ??? | |
| void | makecutsnd (typecuc *fullcrumptr, typeknives *knives) |
| ??? | |
| void | newfindintersectionnd (typecuc *fullcrumptr, typeknives *knives, typecuc **ptrptr, typewid *offset) |
| ??? | |
| bool | cutinthiscrumnd (typecorecrum *ptr, typewid *offset, typeknives *knives) |
| bool | allcutswiththiscrumnd (typecorecrum *ptr, typewid *offset, typeknives *knives) |
| bool | appendpm (Session *sess, IStreamAddr *docisaptr, typetextset textset) |
| ??? | |
| bool | insertpm (Session *sess, Tumbler *orglisa, typeorgl orgl, Tumbler *vsaptr, typesporglset sporglset) |
| ??? | |
| bool | rearrangepm (Session *sess, Tumbler *docisaptr, typeorgl docorgl, typecutseq *cutseqptr) |
| ??? | |
| bool | deletevspanpm (Session *sess, Tumbler *docisaptr, typeorgl docorgl, typevspan *vspanptr) |
| ??? | |
| bool | retrievedocumentpartofvspanpm (Session *sess, typeorgl orgl, typevspan *vspanptr) |
| ??? | |
| bool | retrievevspanpm (Session *sess, typeorgl orgl, typevspan *vspanptr) |
| ??? | |
| bool | retrievevspansetpm (Session *sess, typeorgl orgl, typevspanset *vspansetptr) |
| ??? | |
| void | walkorglonvpm (Session *sess, typecorecrum *crumptr, Tumbler *voffset, typevspanset *vspansetptr) |
| void | cleanupvspanlist (Session *sess, typevspanset *vspansetptr) |
| typevspanset * | ispan2vspanset (Session *sess, typeorgl orgl, typeispan *ispanptr, typevspanset *vspansetptr) |
| ??? | |
| typeispanset * | vspanset2ispanset (Session *sess, typeorgl orgl, typevspanset vspanptr, typeispanset *ispansetptr) |
| ??? | |
| typeitem * | onitemlist (Session *sess, typeitem *itemptr, typeitemset *itemsetptr) |
| ??? | |
| bool | isemptyorgl (typeorgl fullcrumptr) |
| ??? | |
| void | puttumbler (FILE *outfile, Tumbler *tumblerptr) |
| ??? | |
| void | putitemset (Session *sess, typeitemset itemset) |
| ??? | |
| void | qinit (struct queue *qhead) |
| ??? | |
| void | qinsert (struct queue *qhead, struct queue *object) |
| void | qpush (struct queue *qhead, struct queue *object) |
| ??? | |
| queue * | qremove (struct queue *qhead) |
| ??? | |
| queue * | qnext (struct queue *qthis, struct queue *qhead) |
| queue * | qdchain (struct queue *qitem) |
| int | qlength (struct queue *qhead) |
| ??? | |
| bool | qvalid (struct queue *qhead) |
| void | recombine (typecuc *father) |
| ??? | |
| bool | ishouldbother (typecuc *dest, typecuc *src) |
| ??? | |
| int | comparecrumsdiagonally (typecorecrum *a, typecorecrum *b) |
| ??? | |
| void | fixincoresubtreewids (typecuc *ptr) |
| ??? | |
| CrumContext * | retrievecrums (typecuc *fullcrumptr, Tumbler *address, int index) |
| ??? | |
| Context * | retrieve (typecuc *fullcrumptr, Tumbler *address, int index) |
| ??? | |
| Context * | retrieverestricted (typecuc *fullcrumptr, typespan *span1ptr, int index1, typespan *span2ptr, int index2, IStreamAddr *docisaptr) |
| ??? | |
| Context * | retrieveinspan (typecuc *fullcrumptr, Tumbler *spanstart, Tumbler *spanend, int index) |
| ??? | |
| void | prologuend (typecorecrum *ptr, typedsp *offset, typedsp *grasp, typedsp *reach) |
| ??? | |
| int | whereoncrum (typecorecrum *ptr, typewid *offset, Tumbler *address, int index) |
| ??? | |
| bool | insertspanf (Session *sess, typespanf spanfptr, IStreamAddr *isaptr, typesporglset sporglset, int spantype) |
| ??? | |
| bool | findlinksfromtothreesp (Session *sess, typespanf spanfptr, typespecset fromvspecset, typespecset tovspecset, typespecset threevspecset, typeispan *orglrange, typelinkset *linksetptr) |
| ??? | |
| bool | findnumoflinksfromtothreesp (Session *sess, typespanf spanfptr, typespecset fromvspecset, typespecset tovspecset, typespecset threevspecset, typeispan *orglrange, int *numptr) |
| ??? | |
| bool | findnextnlinksfromtothreesp (Session *sess, typespecset fromvspecset, typespecset tovspecset, typespecset threevspecset, typeispan *orglrangeptr, IStreamAddr *lastlinkisaptr, typelinkset *nextlinksetptr, int *nptr) |
| ??? | |
| bool | finddocscontainingsp (Session *sess, typespanset ispanset, typelinkset *addresssetptr) |
| ??? | |
| bool | retrieveendsetsfromspanf (Session *sess, typespecset specset, typespecset *fromsetptr, typespecset *tosetptr, typespecset *threesetptr) |
| ??? | |
| bool | isinlinklist (typelinkset linkset, IStreamAddr *linkisaptr) |
| ??? | |
| void | onlinklist (Session *sess, typelinkset *linksetptr, IStreamAddr *linkisaptr) |
| ??? | |
| void | intersectlinksets (Session *sess, typelinkset linkset1, typelinkset linkset2, typelinkset linkset3, typelinkset *linkset4ptr) |
| ??? | |
| bool | splitcrumupwards (typecuc *father) |
| ??? | |
| void | splitcrum (typecuc *father) |
| ??? | |
| void | peelcrumoffnd (typecorecrum *ptr) |
| ??? | |
| bool | specset2sporglset (Session *sess, typespecset specset, typesporglset *sporglsetptr, int type) |
| ??? | |
| bool | link2sporglset (Session *sess, IStreamAddr *linkisa, typesporglset *sporglsetptr, int whichend, int type) |
| ??? | |
| bool | linksporglset2specset (Session *sess, IStreamAddr *homedoc, typesporglset sporglset, typespecset *specsetptr, int type) |
| ??? | |
| void | unpacksporgl (typesporglset sporglptr, Tumbler *streamptr, Tumbler *widthptr, type2dbottomcruminfo *infoptr) |
| ??? | |
| void | contextintosporgl (type2dcontext *context, Tumbler *linkid, typesporgl *sporglptr, int index) |
| ??? | |
| void | sporglset2linkset (Session *sess, typecuc *spanfptr, typesporglset sporglset, typelinkset *linksetptr, typeispan *homeset, int spantype) |
| ??? | |
| void | foo (char *msg) |
| ??? | |
| void | foospan (char *msg, typespan *span) |
| ??? | |
| void | foospanset (char *msg, typespan *spanset) |
| ??? | |
| void | dumpspanset (typespan *spanset) |
| ??? | |
| void | foocrum (char *msg, typecorecrum *crumptr) |
| ??? | |
| void | foohex (char *msg, int num) |
| ??? | |
| void | foodec (char *msg, int num) |
| ??? | |
| void | foocontext (char *msg, Context *context) |
| ??? | |
| void | foocontextlist (char *msg, Context *context) |
| ??? | |
| void | fooitemset (char *msg, typeitemset iptr) |
| ??? | |
| void | fooitem (char *msg, typeitem *iptr) |
| ??? | |
| void | footumbler (char *msg, Tumbler *tptr) |
| ??? | |
| void | foodsp (char *msg, typedsp *dptr, int enftype) |
| ??? | |
| void | foowid (char *msg, typewid *wptr, int enftype) |
| ??? | |
| void | dumpsubtree (typecuc *father) |
| ??? | |
| void | dumpwholesubtree (typecuc *father) |
| ??? | |
| void | assertspecisstring (typespecset specptr, char *string) |
| ??? | |
| bool | asserttreeisok (typecorecrum *ptr) |
| ??? | |
| void | assertsubtreeisok (typecorecrum *ptr) |
| ??? | |
| void | assertsonswispmatchesfather (typecuc *father) |
| ??? | |
| void | assertwidsarepositive (typecorecrum *ptr) |
| ??? | |
| void | dumpwholetree (typecorecrum *ptr) |
| ??? | |
| int | checkwholesubtree (typecuc *father) |
| ??? | |
| int | check (typecuc *ptr) |
| ??? | |
| void | dump (typecorecrum *ptr) |
| ??? | |
| void | yesdump (typecorecrum *ptr) |
| ??? | |
| void | dumphedr (typecorecrumhedr *ptr) |
| ??? | |
| void | dumpwid (typewid *widptr, int enftype) |
| ??? | |
| void | dumpdsp (typewid *dspptr, int enftype) |
| ??? | |
| void | dumpinfo (typegranbottomcruminfo *infoptr, int enftype) |
| ??? | |
| void | dumptumbler (Tumbler *tumblerptr) |
| ??? | |
| void | displaycutspm (typeknives *knivesptr) |
| ??? | |
| void | dumphint (typehint *hintptr) |
| ??? | |
| void | examine (Session *sess) |
| ??? | |
| void | showorgl (Session *sess) |
| ??? | |
| void | showsubtree (typecorecrum *father) |
| ??? | |
| void | showistream (typecuc *granfptr) |
| ??? | |
| void | showspanf (typecuc *spanfptr) |
| ??? | |
| void | doshowspanf (typecorecrum *crumptr, typedsp *offsetptr, int enfheight) |
| ??? | |
| void | showspanfcrum (typecorecrum *crumptr, typedsp *offsetptr, int enfheight) |
| ??? | |
| void | dumpmem (char *loc, unsigned count) |
| ??? | |
| bool | dumpgranfwids (Session *sess) |
| ??? | |
| void | showgranwids (typecorecrum *crum, int down, Tumbler *retptr) |
| ??? | |
| void | dumppoomwisps (typecorecrum *orgl) |
| ??? | |
| void | showpoomwisps (typecuc *crum, int down) |
| ??? | |
| void | dumpistreamgr (typecuc *crumptr) |
| ??? | |
| void | dodumpistreamgr (typecuc *crumptr, Tumbler *offsetptr) |
| ??? | |
| void | dumpmoleculegr (Tumbler *offsetptr, typecbc *cbcptr) |
| ??? | |
| void | dumpisagr (Tumbler *offsetptr) |
| ??? | |
| typecorecrum * | checkenftypes (typecuc *father, char *message) |
| ??? | |
| typecorecrum * | checkthebleedingcrum (typecorecrum *crumptr) |
| ??? | |
| void | teststack () |
| ??? | |
| char * | enftypestring (int type) |
| ??? | |
| typecorecrum * | sonoriginok (typecorecrum *father) |
| ??? | |
| void | dumpcontextlist (Context *context) |
| ??? | |
| void | dumpcontext (Context *context) |
| ??? | |
| void | dumpitemset (typeitemset itemset) |
| ??? | |
| void | dumpitem (typeitem *itemptr) |
| ??? | |
| void | dumpspan (typespan *spanptr) |
| ??? | |
| void | dumptext (typetext *textptr) |
| ??? | |
| bool | ioinfo (Session *sess) |
| ??? | |
| void | showenfilades (Session *sess) |
| ??? | |
| char * | itemidstring (typeitem *item) |
| ??? | |
| void | checkitem (char *msg, typeitem *ptr) |
| ??? | |
| void | checkpointer (char *msg, char *ptr) |
| ??? | |
| void | dumpspanpairset (typespanpairset spanpairset) |
| ??? | |
| void | dumpspanpair (typespanpair *spanpair) |
| ??? | |
| void | dumphexstuff (char *ptr) |
| ??? | |
| void | checknumofsons (typecuc *ptr) |
| ??? | |
| void | nchecknumofsons (typecuc *ptr) |
| ??? | |
| bool | tumblereq (Tumbler *a, Tumbler *b) |
| ??? | |
| bool | tumbleraccounteq (Tumbler *aptr, Tumbler *bptr) |
| ??? | |
| int | tumblercmp (Tumbler *aptr, Tumbler *bptr) |
| ??? | |
| int | intervalcmp (Tumbler *left, Tumbler *right, Tumbler *address) |
| ??? | |
| bool | tumblercheckptr (Tumbler *ptr, int *crumptr) |
| ??? | |
| bool | tumblercheck (Tumbler *ptr) |
| ??? | |
| bool | is1story (Tumbler *tumblerptr) |
| ??? | |
| int | nstories (Tumbler *tumblerptr) |
| ??? | |
| int | tumblerlength (Tumbler *tumblerptr) |
| ??? | |
| int | lastdigitintumbler (Tumbler *tumblerptr) |
| ??? | |
| void | tumblerjustify (Tumbler *tumblerptr) |
| ??? | |
| void | tumblercopy (Tumbler *fromptr, Tumbler *toptr) |
| ??? | |
| void | tumblermax (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| void | functiontumbleradd (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| void | tumblersub (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| void | absadd (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| void | strongsub (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| void | weaksub (Tumbler *aptr, Tumbler *bptr, Tumbler *cptr) |
| ??? | |
| int | tumblerintdiff (Tumbler *aptr, Tumbler *bptr) |
| ??? | |
| void | tumblerincrement (Tumbler *aptr, int rightshift, int bint, Tumbler *cptr) |
| ??? | |
| void | tumblertruncate (Tumbler *aptr, int bint, Tumbler *cptr) |
| ??? | |
| void | prefixtumbler (Tumbler *aptr, int bint, Tumbler *cptr) |
| ??? | |
| void | beheadtumbler (Tumbler *aptr, Tumbler *bptr) |
| ??? | |
| void | docidandvstream2tumbler (Tumbler *docid, Tumbler *vstream, Tumbler *tumbleptr) |
| ??? | |
| int | tumblerptrtofixed (humber p, Tumbler *tptr) |
| ??? | |
| int | tumblerfixedtoptr (Tumbler *ptr, humber p) |
| ??? | |
| humber | fooalloc (unsigned int size) |
| void | foofree (humber ptr) |
| humber | humberput (int i, humber humberfoo, unsigned int *lengthofhumberptr) |
| ??? | |
| humber | humber3put (int i, humber humberfoo, unsigned int *lengthofhumberptr) |
| ??? | |
| unsigned int | functionintof (humber h) |
| ??? | |
| unsigned int | intlengthoflength (unsigned int i) |
| ??? | |
| unsigned int | functionlengthof (humber ptr) |
| ??? | |
| humber | mantissaof (humber ptr) |
| void | dspadd (typedsp *a, typewisp *b, typedsp *c, int enftype) |
| ??? | |
| void | dspsub (typedsp *a, typewisp *b, typedsp *c, int enftype) |
| ??? | |
| bool | setwispupwards (typecuc *ptr, int testflag) |
| ??? | |
| void | setwispsofsons (typecuc *ptr) |
| bool | setwisp (typecorecrum *ptr) |
| ??? | |
| void | setwidnd (typecuc *father) |
| ??? | |
| bool | iszerolock (Tumbler *lock, unsigned loxize) |
| ??? | |
| bool | lockeq (Tumbler *lock1, Tumbler *lock2, unsigned loxize) |
| ??? | |
| void | lockadd (Tumbler *lock1, Tumbler *lock2, Tumbler *lock3, unsigned loxize) |
| ??? | |
| void | locksubtract (Tumbler *lock1, Tumbler *lock2, Tumbler *lock3, unsigned loxize) |
| ??? | |
| bool | lockis1story (Tumbler *lock, unsigned loxize) |
| ??? | |
| void | etag () |
| void | efreewithtag () |
| void * | operator new (size_t nbytes, Session *sess) |
| ??? | |
| humber | humberput () |
| humber | humber3put () |
| void | move2dinfo (type2dbottomcruminfo *A, type2dbottomcruminfo *B) |
| void | moveinfo (typebottomcruminfo *A, typebottomcruminfo *B) |
| bool | isthisusersdocument (Session *sess, Tumbler *tp) |
| ??? | |
| void | hgetfromloaf (int *ip, char *lp) |
(to be defined)
Definition in file protos.h.
|
|
|
Definition at line 812 of file protos.h. Referenced by assertwidsarepositive(), dspadd(), dspsub(), dumpdsp(), graphdsp(), graphoffset(), isanextensionnd(), isemptyenfilade(), isemptyorgl(), and setwispnd(). |
|
|
|
Definition at line 790 of file protos.h. Referenced by eatbrossubtreeseq(), findcbcinarea2d(), findcbcinspanseq(), findcbcnd(), findcbcseq(), findcbcseqcrum(), findlastcbcseq(), fixdspsofbroschildren(), fixincoresubtreewids(), getorderedsons(), getrightmostbro(), recombinend(), setwidnd(), setwidseq(), setwispnd(), and takeovernephewsseq(). |
|
|
Definition at line 792 of file protos.h. Referenced by recombineseq(). |
|
|
Definition at line 800 of file protos.h. Referenced by lookatalloc2(), and new_players(). |
|
|
|
|
|
Definition at line 810 of file protos.h. Referenced by createcrumcontext(), findcbcinspanseq(), firstinsertionnd(), insertcbcnd(), insertseq(), makecontextfromcbc(), peelcrumoffnd(), peeloffcorrectson(), peelsoncorrectly(), prologuecontextnd(), setwidnd(), setwidseq(), setwispnd(), and slicecbcpm(). |
|
|
Definition at line 763 of file protos.h. Referenced by changeunterrefcount(), context2vtext(), fillupcbcseq(), findandallocateinsidediskblocknumber(), hgetinfo(), hputinfo(), inserttextgr(), move2dinfo(), moveinfo(), onitemlist(), readloaf(), tumblerfixedtoptr(), and writeloaf(). |
|
|
Definition at line 783 of file protos.h. Referenced by createorglgr(), crumcontextfree(), eatbrossubtreend(), fetchorglgr(), findleftson(), inorglinternal(), insertcbcnd(), insertseq(), makecontextfromcbc(), orglwritepart2(), peelcrumoffnd(), and splitcrumseq(). |
|
|
Definition at line 781 of file protos.h. Referenced by findfather(), findleftbro(), findleftmostbro(), findleftson(), findrightmostbro(), funcfindrightbro(), getfather(), getleftbro(), getleftson(), ivemodified(), and routinegetrightbro(). |
|
|
Definition at line 760 of file protos.h. Referenced by disown(), disownnomodify(), findfather(), isreapable(), and reap(). |
|
|
Definition at line 811 of file protos.h. Referenced by assertwidsarepositive(), dumpwid(), findvsatoappend(), graphwid(), hgetwiddsp(), hputwiddsp(), isemptyenfilade(), isemptyorgl(), makeroomonleftnd(), setwidnd(), setwidseq(), setwispnd(), and slicecbcpm(). |
|
||||||||||||||||
|
??? (to be defined) Definition at line 665 of file tumble.cxx. References Tumbler::exp, Tumbler::mantissa, movetumbler, NPLACES, Tumbler::sign, tdigit, Tumbler::varandnotfixed, and Tumbler::xvartumbler. Referenced by functiontumbleradd().
00669 {
00670 int i, j;
00671 //UNUSED int place;
00672 int temp;
00673 tdigit *ansmant;
00674 tdigit *bmant, *amant;
00675 Tumbler answer;
00676
00677 i = j = 0;
00678 amant = aptr->mantissa;
00679 bmant = bptr->mantissa;
00680 answer.xvartumbler = 0;
00681 answer.varandnotfixed = 0;
00682 answer.sign = 0;
00683 ansmant = answer.mantissa;
00684
00685 if (aptr->exp == bptr->exp) {
00686 answer.exp = aptr->exp;
00687 ansmant[0] = amant[0] + bmant[0];
00688 i = j = 1;
00689
00690 } else if (aptr->exp > bptr->exp) {
00691 answer.exp = aptr->exp;
00692 temp = aptr->exp - bptr->exp;
00693 while (i < temp) {
00694 ansmant[j++] = amant[i++];
00695 }
00696 ansmant[j++] = amant[i++] + bmant[0];
00697 i = 1;
00698
00699 } else {
00700 answer.exp = bptr->exp;
00701 temp = bptr->exp - aptr->exp;
00702 while (i <= temp) {
00703 ansmant[j++] = bmant[i++];
00704 }
00705 }
00706
00707 while (j <= NPLACES - 1)
00708 ansmant[j++] = bmant[i++];
00709
00710 movetumbler(&answer, cptr);
00711 }
|
|
||||||||||||
|
??? ??? Definition at line 220 of file do2.cxx. References L. Referenced by docopy(), and docopyinternal().
00223 {
00224 L("--acceptablevsa is a NOP--\n");
00225 return true;
00226 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 279 of file disk.cxx. References assert, DISKPTRNULL, dumpsubtree(), enffiledes, enffileread, goodblock(), L, nolread, and NUMBYTESINLOAF. Referenced by actuallyreadrawloaffromhash(), changerefcount(), findnumberofdamnsons(), partialdiskalloc(), readloaf(), readpartialdiskalloctablefromdisk(), and writeloaf().
00282 {
00283 /* L("entering actuallyreadloaf diskblocknumber = %d\n",blocknumber); */
00284 if (!loafptr || blocknumber == DISKPTRNULL) {
00285 #ifndef DISTRIBUTION
00286 L("loafptr = %d\n", blocknumber);
00287 if (loafptr)
00288 dumpsubtree((typecuc *) loafptr);
00289 assert(0); // bad readloaf call
00290 #else
00291 assert(0); // bad call
00292 #endif
00293 }
00294
00295 if (!enffileread) {
00296 if (close(enffiledes) != 0)
00297 perror("close failed in readloaf");
00298
00299 if ((enffiledes = open("enf.enf", O_RDWR, 0)) == -1) {
00300 perror("open");
00301 assert(0); // open
00302 }
00303 enffileread = true;
00304 }
00305
00306 if (!goodblock(blocknumber)) {
00307 #ifndef DISTRIBUTION
00308 L("loaf = %x\n", blocknumber);
00309 L("unallocated block in readloaf.\n");
00310 #endif
00311 abort();
00312 }
00313
00314 if (lseek(enffiledes, (long)blocknumber * NUMBYTESINLOAF, 0) < 0) {
00315 #ifndef DISTRIBUTION
00316 perror("lseek in readloaf");
00317 #endif
00318 assert(0); // lseek failed
00319 }
00320
00321 int nbytes = read(enffiledes, (char *) loafptr, sizeof(*loafptr));
00322 assert(nbytes > 0); // Incorrect Usage of Assertion
00323
00324 // dumphexstuff(loafptr);
00325 // if ((int) loafptr->xdbcloaf.xdbchedr.refcount < 0) {
00326 // assert(0); // readloaf read a loaf with refcount < 0
00327 // }
00328 ++nolread;
00329
00330 // return true;
00331 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 410 of file disk.cxx. References assert, DISKPTRNULL, enffiledes, goodblock(), nolwrote, and NUMBYTESINLOAF. Referenced by changerefcount(), savepartialdiskalloctabletodisk(), and writeloaf().
00414 {
00415 if (!loafptr || diskblocknumber == DISKPTRNULL /* || (int) loafptr->xdbcloaf.xdbchedr.refcount < 0 */ )
00416 assert(0); // bad call
00417
00418 assert(goodblock(diskblocknumber)); // ERROR: unallocated block
00419
00420 if (lseek(enffiledes, (long)diskblocknumber * NUMBYTESINLOAF, 0) < 0) {
00421 perror("lseek");
00422 assert(0); // lseek failed
00423 }
00424
00425 int nbytes = write(enffiledes, (char *)loafptr, sizeof(*loafptr));
00426 assert(nbytes >= 0); // Incorrect Usage of Assert
00427
00428 ++nolwrote;
00429 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 339 of file multiloaf.cxx. References addtofreediskstructures(), typediskloafptr::diskblocknumber, freediskentry::freespaceinloaf, freediskentry::partialdiskblocknumber, and SIZEOFUBERDISKHEADER. Referenced by uniqueoutloaf().
00342 {
00343 freediskentry stuff;
00344
00345 /* L("addallocatedloaftopartialallocedtables entering\n"); */
00346 stuff.partialdiskblocknumber = htonl(dp.diskblocknumber);
00347 stuff.freespaceinloaf = htons(sizeof(typeuberrawdiskloaf) - size - SIZEOFUBERDISKHEADER);
00348 addtofreediskstructures(&stuff);
00349 /* L("addallocatedloaftopartialallocedtables exiting\n"); */
00350 }
|
|
||||||||||||||||
|
??? (to be defined) Definition at line 715 of file genf.cxx. References assert, typecorecrumhedr::cenftype, findfather(), findleftbro(), findleftson(), findrightbro, findrightmostson(), typecuc::height, typecorecrumhedr::height, LEFTBRO, typecorecrumhedr::leftbroorfather, LEFTMOSTSON, typecuc::leftson, NULL, typecuc::numberofsons, typecorecrumhedr::rightbro, RIGHTBRO, RIGHTMOSTSON, and typecorecrum. Referenced by createenf(), insertcbcnd(), insertseq(), levelpush(), newpeelcrumoffnd(), peelcrumoffnd(), peeloffcorrectson(), peelsoncorrectly(), slicecbcpm(), splitcrumseq(), takenephewnd(), takeovernephewsseq(), and varunpackloaf().
00719 {
00720 typecuc *father = NULL;
00721 typecorecrum *left = NULL, *right = NULL;
00722
00723 assert(newcc && old); // ERROR: adopt with NULL
00724 assert(newcc != old); // ERROR: adopt with both crums same
00725
00726 // assert(!isfullcrum(newcc); // adopt called with fullcrum
00727
00728 newcc->cenftype = old->cenftype; // make crum know what kind it is
00729
00730 switch (relative) {
00731 case LEFTMOSTSON:
00732 father = (typecuc *) old;
00733 left = NULL;
00734 right = findleftson(father);
00735 break;
00736
00737 case RIGHTMOSTSON:
00738 father = (typecuc *) old;
00739 if (father->leftson) left = findrightmostson(father);
00740 else left = NULL;
00741 right = NULL;
00742 break;
00743
00744 case RIGHTBRO:
00745 assert(newcc->height == old->height); // ERROR: adopt 1
00746 left = old;
00747 father = findfather(left);
00748 right = findrightbro(left);
00749 break;
00750
00751 case LEFTBRO:
00752 assert(newcc->height == old->height); // ERROR: adopt 2
00753 right = old;
00754 father = findfather(right);
00755 left = findleftbro(right);
00756 break;
00757
00758 default:
00759 assert(false); // ERROR: bad relative
00760 }
00761
00762 assert(father); // ERROR: adopt without a father!
00763 assert(father->height == newcc->height + 1); // ERROR: height mismatch in adopt
00764
00765 if (left) {
00766 left->rightbro = newcc;
00767 newcc->leftbroorfather = left;
00768 newcc->isleftmost = false;
00769 } else {
00770 father->leftson = newcc;
00771 newcc->leftbroorfather = (typecorecrum *) father;
00772 newcc->isleftmost = true;
00773 }
00774
00775 newcc->rightbro = right;
00776 if (right) {
00777 right->leftbroorfather = newcc;
00778 right->isleftmost = false;
00779 }
00780
00781 ++father->numberofsons;
00782 }
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
??? (to be defined)
Definition at line 188 of file orglinks.cxx. References doinsert(), findorgl(), findvsatoappend(), granf, typecorecrum, typeorgl, typetextset, and WRITEBERT. Referenced by doappend().
00189 : User's session context 00190 IStreamAddr *doc_isa, 00191 typetextset textset) 00192 { 00193 /* 00194 * Walk the granfilade to find and lock the ORGL for the specified document. 00195 */ 00196 typeorgl orglptr; 00197 if (!findorgl(sess, granf, doc_isa, &orglptr, WRITEBERT)) 00198 return false; 00199 00200 /* 00201 * Compute the highest stream address in use within the document, at which 00202 * to append the new content. 00203 */ 00204 Tumbler vsa; 00205 findvsatoappend((typecorecrum *) orglptr, &vsa); 00206 00207 return doinsert(sess, doc_isa, &vsa, textset); 00208 } |
|
|
??? (to be defined) Definition at line 626 of file test.cxx. References assert, typediskloafptr::diskblocknumber, DISKPTRNULL, dump(), dumpwholetree(), L, typecuc::numberofsons, setwisp(), typecuc::sonorigin, and typecorecrum. Referenced by assertsubtreeisok().
00628 {
00629 #ifndef DISTRIBUTION
00630 //UNUSED typecorecrum *son;
00631
00632 if (father->numberofsons == 0) {
00633 if (father->sonorigin.diskblocknumber != DISKPTRNULL)
00634 return;
00635
00636 L("zerosons in assert\n");
00637 return;
00638 }
00639
00640 if (setwisp((typecorecrum *) father)) {
00641 L("assert wisp matched father failed \n");
00642 dump((typecorecrum *) father);
00643 dumpwholetree((typecorecrum *) father);
00644
00645 assert(0); // father didn't match sons wid and disp
00646 }
00647 #endif
00648 }
|
|
||||||||||||
|
??? (to be defined) <Input: User's session context Definition at line 527 of file test.cxx. References debug, doretrievev(), Session::free(), L, typetext::length, typetext::string, typespecset, typevstuffset, and typevstuff::xxxtext.
00530 {
00531 #ifndef DISTRIBUTION
00532 Session sessfoo;
00533 typevstuffset vstuffset;
00534 //UNUSED int i;
00535 int savedebug;
00536
00537 L("assertspecisstring entering \n");
00538 savedebug = debug;
00539
00540 /* debug = false; */
00541
00542 //Now done via a ctor:: inittask(&sessfoo);
00543
00544 doretrievev(&sessfoo, specptr, &vstuffset);
00545
00546 // for(i=0;(i<vstuffset->length)&&(string[i] == vstuffset->string[i]);i++) ; if(i != vstuffset->length){
00547 // L("in assertspecisstring failedstring1 =%s string2 =%s
00548 // %d\n",string,vstuffset->string,vstuffset->length); debug = true; fooitem("spec is ",specptr); fooitem("\nvstuff is
00549 // ",vstuffset); // crash bang boom // assert(0); /* assertspecisstring asserton failed \n */; } L("in
00550 // assertspecisstring succeded %s \n",string);
00551
00552 L("in assertspecisstring string2 =%s %d\n", vstuffset->xxxtext.string, vstuffset->xxxtext.length);
00553 sessfoo.free();
00554 debug = savedebug;
00555 L("assertspecisstring leaving \n");
00556 #endif
00557 }
|
|
|
??? (to be defined) Definition at line 588 of file test.cxx. References typecorecrumhedr::age, assert, assertsonswispmatchesfather(), assertwidsarepositive(), dump(), typecorecrumhedr::height, RESERVED, reservnumber, typecorecrumhedr::rightbro, and typecorecrum. Referenced by asserttreeisok().
00590 {
00591 #ifndef DISTRIBUTION
00592 typecorecrum *son;
00593
00594 if (!ptr)
00595 assert(0); // assertsubtreeok failed null ptr
00596
00597 assertwidsarepositive(ptr);
00598 if (!reservnumber) {
00599 if (ptr->age == RESERVED) {
00600 dump(ptr);
00601 assert(0); // incorrect reserved in assertsubtreeisok
00602 }
00603 }
00604
00605 if (ptr->height == 0)
00606 return;
00607
00608 // if (toomanysons(ptr)) { // dump(ptr); L("fatherhas too many sons\n"); // //assert(0); "foo"// }
00609
00610 assertsonswispmatchesfather((typecuc *) ptr);
00611 for (son = ((typecuc *) ptr)->leftson /* findleftson//getleftson//(ptr) */ ;
00612 son; son = son->rightbro) {
00613 assertsubtreeisok(son);
00614 }
00615 #endif
00616 }
|
|
|
??? (to be defined) Definition at line 567 of file test.cxx. References assertsubtreeisok(), findfather(), isfullcrum(), L, and typecorecrum. Referenced by docopy(), docopyinternal(), makecutsnd(), setwispupwards(), and splitcrumupwards().
00569 {
00570 // L("--asserttreeisok is a NOP--\n");
00571 // return (true);
00572
00573 L("entering asserttreeisok\n");
00574 for (; !isfullcrum(ptr); ptr = (typecorecrum *) findfather(ptr)); assertsubtreeisok(ptr)
00575 ;
00576
00577 return(true);
00578 }
|
|
|
??? (to be defined) Definition at line 658 of file test.cxx. References typecorecrumhedr::cdsp, typecorecrumhedr::cenftype, typecorecrumhedr::cwid, typewid::dsas, dspsize, GRAN, tumblercheckptr(), typecorecrum, and widsize. Referenced by assertsubtreeisok().
00660 {
00661 #ifndef DISTRIBUTION
00662 int nstreams, i;
00663
00664 int enftype = ptr->cenftype;
00665
00666 if (enftype == GRAN)
00667 return;
00668
00669 nstreams = widsize(enftype);
00670 for (i = 0; i < nstreams; ++i) {
00671 tumblercheckptr(&(ptr->cwid.dsas[i]), (int *) ptr);
00672 }
00673
00674 nstreams = dspsize(enftype);
00675 for (i = 0; i < nstreams; ++i) {
00676 tumblercheckptr(&(ptr->cdsp.dsas[i]), (int *) ptr);
00677 }
00678 #endif
00679 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 986 of file tumble.cxx. References Tumbler::exp, Tumbler::mantissa, movetumbler, and tumblerjustify(). Referenced by findaddressofsecondcutforinsert(), finddocscontainingsp(), and sporglset2linksetinrange().
00989 {
00990 Tumbler temp;
00991
00992 movetumbler(aptr, &temp);
00993 ++temp.exp;
00994
00995 if (aptr->exp == 0)
00996 temp.mantissa[0] = 0;
00997
00998 tumblerjustify(&temp);
00999 movetumbler(&temp, bptr);
01000 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 221 of file disk.cxx. References actuallyreadrawloaf(), actuallywriteloaf(), assert, changeunterrefcount(), typediskloafptr::diskblocknumber, diskfree(), DISKPTRNULL, findinsideloaf(), typediskloafptr::insidediskblocknumber, and numberofliveunterloafs(). Referenced by deletewithgarbageddescendents(), orglwritepart2(), and subtreewriterecurs().
00224 {
00225 if (diskptr.diskblocknumber == DISKPTRNULL)
00226 assert(0); // null diskptr in changerefcount
00227
00228 typeuberrawdiskloaf loaf;
00229 actuallyreadrawloaf(&loaf, diskptr.diskblocknumber);
00230
00231 char *loafp = findinsideloaf((typeuberdiskloaf *) &loaf, diskptr.insidediskblocknumber);
00232 int refcount = changeunterrefcount((typediskloaf *) &loaf, loafp, delta);
00233 int numberofunterloafs = numberofliveunterloafs((typeuberdiskloaf *) &loaf);
00234
00235 if (refcount > 0 && numberofunterloafs > 0)
00236 actuallywriteloaf( /* sizeof(typediskloaf), */ &loaf, diskptr.diskblocknumber);
00237 else
00238 diskfree(diskptr.diskblocknumber);
00239
00240 return refcount;
00241 }
|
|
|
??? (to be defined) Definition at line 828 of file test.cxx. References assert, dump(), typecuc::height, typecuc::leftson, and NULL. Referenced by checkwholesubtree(), ishouldbother(), and makeithcutonson().
00830 {
00831 return 0;
00832
00833 #ifdef UnDeeFiNeD
00834 if (ptr->height == 0) {
00835 return 0;
00836 }
00837
00838 if (ptr->leftson == NULL /* &&ptr->sonorigin.diskblocknumber==-1 */
00839 && ptr->modified) {
00840 dump(ptr);
00841 assert(0); // in check
00842 } else {
00843 return 0;
00844 }
00845
00846 assert(0); // check: can't get there
00847 return 0;
00848 #endif
00849 }
|
|
|
??? (to be defined) Definition at line 186 of file alloc.cxx. References assert, base, debug, flag, HEADER, L, header::s, statusofalloc(), validallocthinge(), and zzalloctop.
00188 {
00189 HEADER *r, *oldr;
00190 unsigned size;
00191
00192 if (!flag)
00193 return /*BUG: original code returned nothing, I guess I'll return a zero*/ 0;
00194
00195 if (debug && *c)
00196 L("%s", c);
00197
00198 unsigned oldsize = 0;
00199 for (oldr = r = base.s.ptr; flag && (r != &base) && (r != (HEADER *) zzalloctop); r = r + r->s.size) {
00200 size = r->s.size;
00201 validallocthinge((char *) r);
00202 if (r->s.size == 0 && r != (HEADER *) zzalloctop) {
00203 L("checkalloc glorphed with ptr = %x bottom = %x top = %x\n", (int) r, (int) zzallocbot, (int) zzalloctop);
00204 statusofalloc("");
00205 assert(0); // found zero size in alloced stuff
00206 return 1;
00207 }
00208 oldr = r;
00209 oldsize = size;
00210 }
00211 return true;
00212 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 1850 of file test.cxx. References grimreaper, L, NULL, and typecorecrum.
01853 {
01854 #ifndef DISTRIBUTION
01855 //UNUSED typecorecrum *ptr;
01856
01857 if (grimreaper == NULL)
01858 L("grimreaper tests null");
01859
01860 return (typecorecrum *) father;
01861
01862 // if (!father) {
01863 // fputs(stderr, message);
01864 // assert(0); // ARGH!! null father ptr
01865 // }
01866 //
01867 // if (!father->height)
01868 // return father;
01869 //
01870 // if (father->cenftype == SPAN) {
01871 // if (father->cwid.dsas[ORGLRANGE].exp == 0 && father->cwid.dsas[ORGLRANGE].mantissa[0] > 2) {
01872 // dumpsubtree(father);
01873 // fputs(stderr, message);
01874 // assert(0); // I think the wid is too big
01875 // }
01876 // }
01877 //
01878 // for (ptr * = father->leftson; ptr; ptr = ptr->rightbro) {
01879 // if (ptr->cenftype != GRAN && ptr->cenftype != POOM && ptr->cenftype != SPAN) {
01880 // fputs(stderr, message);
01881 // assert(0); // bad enftype
01882 // }
01883 //
01884 // if (ptr->cenftype != father->cenftype) {
01885 // fputs(stderr, message);
01886 // assert(0); // enftype mismatch
01887 // }
01888 //
01889 // checkenftypes(ptr, message);
01890 // }
01891 // return father;
01892 #endif
01893 }
|
|
||||||||||||||||
|
??? (to be defined)
Definition at line 176 of file bert.cxx. References berttable, bertentry::documentid, hashoftumbler(), isthisusersdocument(), conscell::next, NOBERTREQUIRED, READBERT, bertentry::sess, conscell::stuff, tumblereq(), bertentry::type, and WRITEBERT. Referenced by doopen(), and findorgl().
00177 : User's session context 00178 Tumbler *tp, 00179 int type) 00180 { 00181 int foundnonread = false; 00182 00183 if (type == NOBERTREQUIRED) 00184 return 1; /* Random > 0 */ 00185 00186 conscell *p; 00187 for (p = berttable[hashoftumbler(tp)]; p && p->stuff; p = p->next) { 00188 bertentry *bert = p->stuff; 00189 00190 if (tumblereq(tp, &bert->documentid)) { 00191 if (sess == bert->sess) { 00192 switch (bert->type) { 00193 case READBERT: 00194 return (type == READBERT) ? READBERT : /* WRITE */ -1; 00195 case WRITEBERT: 00196 return WRITEBERT; 00197 } 00198 } else { 00199 if (bert->type != READBERT) { 00200 foundnonread = true; 00201 } 00202 } 00203 } 00204 } 00205 00206 if (!foundnonread && (type == READBERT || isthisusersdocument(sess, tp))) 00207 return 0; 00208 else 00209 return -1; 00210 } |
|
||||||||||||
|
??? (to be defined) Definition at line 2249 of file test.cxx. References assert, checkpointer(), debug, dumpitem(), L, puttumbler(), SPORGLID, TEXTID, typevspan, VSPANID, and VSPECID. Referenced by Session::freeitemset(), and onitemlist().
02252 {
02253 #ifndef DISTRIBUTION
02254 //UNUSED char buf[100];
02255
02256 checkpointer(msg, (char *) ptr);
02257 if (!ptr)
02258 return;
02259
02260 if (debug) {
02261 L(msg);
02262 dumpitem(ptr);
02263 }
02264
02265 if (((typeitemheader *) ptr)->itemid < TEXTID || ((typeitemheader *) ptr)->itemid > SPORGLID) {
02266 L(msg);
02267 assert(0); // Bad itemtype
02268 }
02269
02270 /* checkpointer (sprintf (buf, "%s ptr->next: ", msg), ((typeitemheader *)ptr)->next); */
02271 if (((typeitemheader *) ptr)->itemid == VSPANID) {
02272 if (((typevspan *) ptr)->stream.mantissa[0] != 1 && ((typevspan *) ptr)->stream.mantissa[0] != 2) {
02273 L(msg);
02274 puttumbler(stderr, &((typevspan *) ptr)->stream);
02275 L(" ");
02276 assert(0); // Bad span stream address
02277 }
02278 }
02279 if (((typeitemheader *) ptr)->itemid == VSPECID) {
02280 checkitem(msg, (typeitem *) ((typevspec *) ptr)->vspanset);
02281 if (((typevspec *) ptr)->vspanset->itemid != VSPANID)
02282 assert(0); // vspanset doesn't have proper itemid
02283 }
02284 #endif
02285 }
|
|
|
??? (to be defined) Definition at line 2406 of file test.cxx. References dumpsubtree(), typecuc::height, L, typecuc::leftson, typecuc::numberofsons, and typecuc::rightbro.
02408 {
02409 #ifndef DISTRIBUTION
02410 typecuc *np;
02411
02412 int i = 0;
02413 if (!ptr || !ptr->height)
02414 return;
02415
02416 for (np = (typecuc *) ptr->leftson; np; np = (typecuc *) np->rightbro, i++)
02417 ;
02418
02419 if (i != ptr->numberofsons) {
02420 dumpsubtree(ptr);
02421 L("i = %d numberofsons = %d\n", i, ptr->numberofsons);
02422
02423 for (np = (typecuc *) ptr->leftson; np; np = (typecuc *) np->rightbro, i++) {
02424 /* dump(np) */ ;
02425 }
02426 L("numberofson mismach in checknumofsons\n");
02427 }
02428 #endif
02429 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 2295 of file test.cxx. Referenced by checkitem(), Session::free(), and Session::freeexplicit().
02298 {
02299 return;
02300
02301 // if (!ptr) {
02302 // if (debug) {
02303 // L(msg);
02304 // L("NULL pointer\n");
02305 // }
02306 // return;
02307 // }
02308 //
02309 // if (((unsigned) ptr) & 1) {
02310 // L(msg);
02311 // assert(0); // Pointer non-aligned
02312 // }
02313 //
02314 // if (ptr > (char *) 0x1bffff) {
02315 // L(msg);
02316 //
02317 // if (ptr < (char *) 0x1e0000)
02318 // L("Pointer in framebuffer\n");
02319 //
02320 // assert(0); // Pointer in high-mem
02321 // }
02322 //
02323 // if (ptr < (char *) 0x40000) {
02324 // L(msg);
02325 // assert(0); // Pointer to hardware protected low memory
02326 // }
02327 //
02328 // if (ptr < &end //etext//) {
02329 // L(msg);
02330 // assert(0); // Pointer below end
02331 // }
02332 }
|
|
|
???
Definition at line 357 of file do1.cxx. References L. Referenced by insertnd().
00358 {
00359 L("--checkspecandstringbefore is a NOP--\n");
00360 }
|
|
|
??? (to be defined) Definition at line 1903 of file test.cxx. References grimreaper, L, NULL, and typecorecrum.
01905 {
01906 #ifndef DISTRIBUTION
01907 if (grimreaper == NULL)
01908 L("grimreaper tests null");
01909
01910 return crumptr;
01911
01912 // assert(crumptr != NULL); // checkbleeding NULL crum
01913 //
01914 // if (crumptr->cenftype != GRAN && crumptr->cenftype != SPAN && crumptr->cenftype != POOM) {
01915 // L("Bad enftype in check the bleeding crum\n\n\n");
01916 // dump(crumptr);
01917 // assert(0); // Bad enftype
01918 // }
01919 //
01920 // if (!crumptr->isapex&&crumptr->leftbroorfather..disowned.. && crumptr->cenftype != crumptr->leftbroorfather->cenftype) {
01921 // dump(crumptr);
01922 // L("\n\n\n and here comes the spanf \n");
01923 // dumpsubtree(spanf);
01924 // dump(crumptr);
01925 // assert(0); // Enftype mismatch
01926 // }
01927 //
01928 // if (crumptr->cenftype !=GRAN) {
01929 // if (!tumblercheck(&crumptr->cdsp.dsas[V]))
01930 // assert(0); // cleckbleeding disp V
01931 //
01932 // if (!tumblercheck(&crumptr->cdsp.dsas[I]))
01933 // assert(0); // cleckbleeding disp I
01934 // }
01935 // return crumptr;
01936 #endif
01937 }
|
|
|
??? (to be defined) Definition at line 788 of file test.cxx. References check(), dumpsubtree(), typecuc::height, L, typecuc::leftson, and typecorecrumhedr::rightbro. Referenced by makegappm().
00790 {
00791 #ifndef DISTRIBUTION
00792 //UNUSED typecorecrum *ptr;
00793
00794 return 0;
00795
00796 #ifdef UndEfIneD
00797 if (!father)
00798 return 0;
00799
00800 if (check(father)) {
00801 L("found something bad in checkwholesubtree\n");
00802 dumpsubtree(father);
00803
00804 // assert(0); // in checkwholesubtree
00805 return 1;
00806 }
00807
00808 if (father->height <= 0)
00809 return 0;
00810
00811 for (ptr = father->leftson; ptr; ptr = ptr->rightbro)
00812 if (checkwholesubtree(ptr))
00813 return 1;
00814
00815 return 0;
00816 #endif
00817 #endif
00818 }
|
|
||||||||||||
|
|
|
|
??? (to be defined)
Definition at line 401 of file bert.cxx. References berttable, bertentry::created, deleteversion(), bertentry::documentid, efree(), L, bertentry::modified, conscell::next, NULL, NUMBEROFBERTTABLE, bertentry::sess, and conscell::stuff. Referenced by quitxanadu(), and xanadu().
00402 : User's session context
00403 {
00404 #ifndef DISTRIBUTION
00405 L("closeberts: sess = 0x%08lX\n", (int) sess);
00406 #endif
00407
00408 conscell *oldptr = NULL;
00409 int i;
00410 for (i = 0; i < NUMBEROFBERTTABLE; i++) {
00411 conscell *p;
00412 for (p = berttable[i]; p && p->stuff; p = p->next) {
00413 bertentry *bert = p->stuff;
00414 if (bert->sess == sess) {
00415 int status = bert->modified && bert->created;
00416 if (status)
00417 deleteversion(&bert->documentid);
00418
00419 efree((char *)p->stuff);
00420
00421 conscell *temp;
00422 if (oldptr == NULL) {
00423 temp = berttable[i];
00424 berttable[i] = berttable[i]->next;
00425 efree((char *) temp);
00426 return;
00427 } else {
00428 temp = oldptr->next;
00429 oldptr->next = p->next;
00430 efree((char *) temp);
00431 return;
00432 }
00433 }
00434 oldptr = p;
00435 }
00436 }
00437 }
|
|
|
??? (to be defined) Definition at line 480 of file disk.cxx. References assert, diskallocexit(), and enffiledes. Referenced by flagquitting(), indiskexit(), and main().
00481 {
00482 diskallocexit(enffiledes);
00483 if (close(enffiledes) != 0) {
00484 perror("close in closediskfile");
00485 assert(0); // close failed
00486 }
00487 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 503 of file recombine.cxx. References typecorecrumhedr::cdsp, typewid::dsas, tumbleradd, tumblercmp(), and typecorecrum. Referenced by splitcrumsp().
00506 {
00507 Tumbler amagnitude, bmagnitude;
00508
00509 tumbleradd(&a->cdsp.dsas[0], &a->cdsp.dsas[1], &amagnitude);
00510 tumbleradd(&b->cdsp.dsas[0], &b->cdsp.dsas[1], &bmagnitude);
00511 return (tumblercmp(&amagnitude, &bmagnitude));
00512 }
|
|
||||||||||||||||||||||||
|
??? (to be defined) Definition at line 393 of file context.cxx. References typewid::dsas, GREATER, index2itemid(), typespan::itemid, LESS, movetumbler, typespan::next, NULL, prologuecontextnd(), typespan::stream, tumbleradd, tumblercmp(), tumblerincrement(), tumblerintdiff(), tumblersub(), typedsp, and typespan::width. Referenced by span2spanset().
00399 {
00400 Tumbler upperbound, lowerbound;
00401 typedsp grasp, reach;
00402
00403 /* int i; */
00404
00405 /* foo("entering context2span\n"); */
00406 /* foocontext("context = \n",context); */
00407 /* foospanset("restrictionspan = \n",restrictionspanptr); */
00408
00409 movetumbler(&restrictionspanptr->stream, &lowerbound);
00410 tumbleradd(&lowerbound, &restrictionspanptr->width, &upperbound);
00411 prologuecontextnd(context, &grasp, &reach);
00412 /* footumbler("lowerbound = \n",&lowerbound); */
00413 /* footumbler("upperbound = \n",&upperbound); */
00414 if (tumblercmp(&grasp.dsas[idx1], &lowerbound) == LESS) {
00415 /* foo("LESSER\n"); */
00416 /* foodsp("grasp = \n",&grasp,POOM); */
00417 tumblerincrement(&grasp.dsas[idx2], 0, (int) tumblerintdiff(&lowerbound, &grasp.dsas[idx1]), &grasp.dsas[idx2]);
00418 /* foodsp("grasp = \n",&grasp,POOM); */
00419 }
00420 if (tumblercmp(&reach.dsas[idx1], &upperbound) == GREATER) {
00421 /* foo("GREATER\n"); */
00422 /* foodsp("reach = \n",&reach,POOM); */
00423 tumblerincrement(&reach.dsas[idx2], 0, /* i= */
00424 -tumblerintdiff(&reach.dsas[idx1], &upperbound), &reach.dsas[idx2]);
00425 /* foodec("tumblerintdiff = ",i); */
00426 /* foodsp("reach = \n",&reach,POOM); */
00427 }
00428 /* foodsp("grasp = \n",&grasp,POOM); */
00429 /* foodsp("reach = \n",&reach,POOM); */
00430 movetumbler(&grasp.dsas[idx2], &foundspanptr->stream);
00431 tumblersub(&reach.dsas[idx2], &grasp.dsas[idx2], &foundspanptr->width);
00432 /* footumbler("foundspanwidth = \n",&foundspanptr->width); */
00433 foundspanptr->itemid = index2itemid(idx2, context);
00434 foundspanptr->next = NULL;
00435 /* foospanset("leaving context2span with foundspan = \n",foundspanptr); */
00436 }
|
|
||||||||||||||||||||
|
??? (to be defined)
Definition at line 493 of file context.cxx. References ADDRESSID, context2vtext(), Context::contextinfo, typewid::dsas, foo(), foocontext(), typebottomcruminfo::granbottomcruminfo, GRANORGL, GRANTEXT, typegranbottomcruminfo::infotype, movetumbler, NULL, TEXTID, ContextBase::totaloffset, typeispan, typelink, typevstuffset, and WIDTH. Referenced by ispan2vstuffset().
00494 : User's session context 00495 Context *context, 00496 typeispan *ispanptr, 00497 typevstuffset *vstuffsetptr) 00498 { 00499 typevstuffset vstuffset = NULL; 00500 00501 #ifndef DISTRIBUTION 00502 foo("context2stuff\n"); 00503 #endif 00504 00505 int contextinfotype = context->contextinfo.granbottomcruminfo.infotype; 00506 00507 if (contextinfotype != GRANTEXT && contextinfotype != GRANORGL) 00508 return false; 00509 00510 switch (contextinfotype) { 00511 case GRANTEXT: 00512 vstuffset = (typevstuffset) new(sess) typetext; 00513 // vstuffset = (typevstuffset) sess->alloc(sizeof(typetext)); 00514 00515 ((typeitemheader *) vstuffset)->next = NULL; 00516 #ifndef DISTRIBUTION 00517 foocontext("context after item= ", context); 00518 #endif 00519 ((typeitemheader *) vstuffset)->itemid = TEXTID; 00520 context2vtext(context, ispanptr, vstuffset); 00521 if (((typetext *) vstuffset)->length == 0) 00522 return false; 00523 break; 00524 00525 case GRANORGL: 00526 vstuffset = (typevstuffset) new(sess) typeaddress; 00527 // vstuffset = (typevstuffset) sess->alloc(sizeof(typeaddress)); 00528 00529 ((typeitemheader *) vstuffset)->next = NULL; 00530 #ifndef DISTRIBUTION 00531 foocontext("context after item= ", context); 00532 #endif 00533 ((typeitemheader *) vstuffset)->itemid = ADDRESSID; 00534 movetumbler(&context->totaloffset.dsas[WIDTH], &((typelink *) vstuffset)->address); 00535 } 00536 00537 *vstuffsetptr = vstuffset; 00538 return true; 00539 } |
|
|
??? (to be defined) Definition at line 136 of file context.cxx. References c2dontextnum, contextnum, ContextBase::contexttype, efree(), GRAN, and ContextBase::nextcontext. Referenced by finddocscontainingsp(), isaexistsgr(), ispan2vstuffset(), link2sporglset(), retrievesporglsetinrange(), span2spanset(), and sporglset2linksetinrange().
00138 {
00139 Context *c;
00140
00141 for (; (c = context) != 0;) {
00142 if (c->contexttype == GRAN) {
00143 --contextnum;
00144 } else {
00145 --c2dontextnum;
00146 }
00147
00148 context = (Context *) context->nextcontext;;
00149 efree((char *)c);
00150 }
00151 }
|
|
||||||||||||||||||||
|
??? (to be defined) Definition at line 360 of file sporgl.cxx. References assert, type2dcontext::context2dinfo, type2dcontext::contextwid, typewid::dsas, type2dbottomcruminfo::homedoc, iszerotumbler, typesporgl::itemid, movetumbler, typesporgl::next, NULL, typesporgl::sporgladdress, SPORGLID, typesporgl::sporglorigin, typesporgl::sporglwidth, and type2dcontext::totaloffset. Referenced by link2sporglset(), and retrievesporglsetinrange().
00365 {
00366 sporglptr->itemid = SPORGLID;
00367 sporglptr->next = NULL;
00368 movetumbler(/* linkid */ &context->context2dinfo.homedoc, &sporglptr->sporgladdress);
00369
00370 /* ^^^^^ zzz foo kluge 11/23/84 ^^^^^ */
00371
00372 movetumbler(&context->totaloffset.dsas[index], &sporglptr->sporglorigin);
00373
00374 if (iszerotumbler(&context->contextwid.dsas[index]))
00375 assert(0); // zero wid in contextintosporgl
00376
00377 movetumbler(&context->contextwid.dsas[index], &sporglptr->sporglwidth);
00378 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 865 of file credel.cxx. References createcruminternal(), grimreaper, typecorecrumhedr::nextcrum, NULL, typecorecrumhedr::prevcrum, and typecorecrum. Referenced by createenf(), initkluge(), inorglinternal(), insertcbcnd(), insertseq(), levelpush(), makecutsbackuptohere(), peelcrumoffnd(), peeloffcorrectson(), peelsoncorrectly(), splitcrumseq(), and varunpackloaf().
00868 {
00869 typecorecrum *ptr = createcruminternal(crumheight, enftype, (typecorecrum *) NULL);
00870
00871 if (grimreaper) {
00872 ptr->nextcrum = grimreaper;
00873 ptr->prevcrum = grimreaper->prevcrum;
00874 grimreaper->prevcrum->nextcrum = ptr;
00875 grimreaper->prevcrum = ptr;
00876 } else
00877 grimreaper = ptr->nextcrum = ptr->prevcrum = ptr;
00878
00879 return ptr;
00880 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 161 of file context.cxx. References CrumContext::corecrum, crumcontextnum, CRUMCONTEXTTAG, eallocwithtag(), movewisp, CrumContext::nextcrumcontext, NULL, reserve(), CrumContext::totaloffset, typecorecrum, and typedsp. Referenced by findcbcseqcrum().
00164 {
00165 reserve(crumptr);
00166 CrumContext *ret = (CrumContext *) eallocwithtag(sizeof(CrumContext), CRUMCONTEXTTAG);
00167 ret->nextcrumcontext = NULL;
00168 ret->corecrum = (typecbc *) crumptr;
00169 movewisp(offsetptr, &ret->totaloffset);
00170 ++crumcontextnum;
00171 return ret;
00172 }
|
|
|
??? (to be defined) Definition at line 833 of file credel.cxx. References adopt(), typecuc::cenftype, createcrum(), GRAN, GRANNULL, ivemodified(), SON, and typecorecrum. Referenced by createorglgr(), and initsession().
00835 {
00836 typecuc *fullcrumptr = (typecuc *) createcrum(1, enftype);
00837
00838 fullcrumptr->cenftype = enftype;
00839 fullcrumptr->isapex = true;
00840 fullcrumptr->isleftmost = true;
00841
00842 typecorecrum *ptr = createcrum(0, enftype);
00843
00844 adopt(ptr, SON, (typecorecrum *) fullcrumptr);
00845 if (enftype == GRAN)
00846 ((typecbc *) ptr)->cinfo.infotype = GRANNULL; /* KLUGE will this work?? */
00847
00848 ivemodified(ptr);
00849
00850 /* if(enftype == GRAN){ levelpush(fullcrumptr); adopt (createcrum(0,enftype), RIGHTBRO, fullcrumptr->leftson);
00851 * adopt(createcrum(0,enftype),SON,fullcrumptr->leftson->rightbro); ptr = fullcrumptr->leftson->leftson;
00852 * tumblerincrement(&(ptr->cwid.dsas[WIDTH]),2,1,&(ptr->cwid.dsas[WIDTH])); setwispupwards(ptr,1); } */
00853
00854 return fullcrumptr;
00855 }
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
??? (to be defined)
Definition at line 156 of file granf1.cxx. References createorglgr(). Referenced by docreatelink(), docreatenewdocument(), docreatenewversion(), docreatenode_or_account(), and domakelink().
00157 : User's session context 00158 typegranf granfptr, 00159 typehint *hintptr, 00160 IStreamAddr *isaptr) 00161 { 00162 return createorglgr(sess, /* GRR not defd (typecuc*) */ granfptr, hintptr, isaptr); 00163 } |
|
|
??? (to be defined) Definition at line 182 of file context.cxx. References CrumContext::corecrum, crumcontextnum, efree(), CrumContext::nextcrumcontext, rejuvinate, and typecorecrum. Referenced by fetchorglgr(), and insertseq().
00184 {
00185 CrumContext *c;
00186
00187 for (; (c = context) != 0; context = context->nextcrumcontext, efree((char *)c)) {
00188 rejuvinate((typecorecrum *) c->corecrum);
00189 --crumcontextnum;
00190 }
00191 }
|
|
||||||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||||||||||
|
??? (to be defined) Definition at line 119 of file edit.cxx. References assert, typeknives::blades, typecorecrumhedr::cdsp, clear, deletecutsectionnd(), typeknives::dimension, disown(), typewid::dsas, findleftson(), findrightbro, makecutsnd(), movetumbler, typeknives::nblades, newfindintersectionnd(), NULL, prologuend(), recombine(), setwispupwards(), subtreefree(), tumbleradd, tumblersub(), typecorecrum, and typedsp. Referenced by deletevspanpm().
00124 {
00125 typeknives knives;
00126 typewid offset, grasp, reach;
00127 typecuc *father, *ptr, *next;
00128 typewid foffset, fgrasp;
00129
00130 clear(&offset, sizeof(offset)); /* fullcrum alway has zero offset */
00131 prologuend((typecorecrum *) fullcrumptr, &offset, &grasp, &reach);
00132 movetumbler(origin, &knives.blades[0]);
00133 tumbleradd(origin, width, &knives.blades[1]);
00134 knives.nblades = 2;
00135 knives.dimension = index;
00136 makecutsnd(fullcrumptr, &knives);
00137 newfindintersectionnd(fullcrumptr, &knives, &father, &foffset);
00138 prologuend((typecorecrum *) father, &foffset, &fgrasp, (typedsp *) NULL);
00139 for (ptr = (typecuc *) findleftson(father); ptr; ptr = next) {
00140 next = (typecuc *) findrightbro((typecorecrum *) ptr);
00141 switch (deletecutsectionnd((typecorecrum *) ptr, &fgrasp, &knives)) {
00142 case -1:
00143 assert(0); // deletend can't classify crum
00144 case 0:
00145 break;
00146 case 1:
00147 disown((typecorecrum *) ptr);
00148 subtreefree((typecorecrum *) ptr);
00149 break;
00150 case 2:
00151 tumblersub(&ptr->cdsp.dsas[index], width, &ptr->cdsp.dsas[index]);
00152 /* This will get set to modified in setwisp */
00153 break;
00154 default:
00155 assert(0); // unexpected cutsection
00156 }
00157 }
00158 setwispupwards(father, 1);
00159 recombine(father);
00160 }
|
|
||||||||||||||||||||
|
??? (to be defined)
Definition at line 324 of file orglinks.cxx. References deletend(), iszerotumbler, logbertmodified(), typespan::stream, typevspan, V, and typespan::width. Referenced by dodeletevspan().
00325 : User's session context 00326 Tumbler *docisaptr, 00327 typeorgl docorgl, 00328 typevspan *vspanptr) 00329 { 00330 if (iszerotumbler(&vspanptr->width)) 00331 return false; 00332 00333 deletend((typecuc *) docorgl, &vspanptr->stream, &vspanptr->width, V); 00334 logbertmodified(sess, docisaptr); 00335 00336 return true; 00337 } |
|
|
??? (to be defined) Definition at line 114 of file diskalloc.cxx. References assert, Diskheader::bitmap, BITMAPSIZE, typediskloafptr::diskblocknumber, diskheader, typediskloafptr::insidediskblocknumber, mask, maximumsetupsize, and maximumsetupsizehasbeenhit. Referenced by partialdiskalloc(), and savepartialdiskalloctabletodisk().
00117 {
00118 int i, j;
00119 typediskloafptr ret;
00120
00121 for (i = 0; i < BITMAPSIZE && !diskheader.bitmap[i]; ++i)
00122 ;
00123
00124 if (i == BITMAPSIZE)
00125 assert(0); // Out of diskalloc bitmap space
00126
00127 for (j = 0; j < 8; ++j) {
00128 if (diskheader.bitmap[i] & mask[j]) {
00129 diskheader.bitmap[i] = diskheader.bitmap[i] & ~mask[j];
00130 break;
00131 }
00132 }
00133 ret.diskblocknumber = i * 8 + j;
00134 ret.insidediskblocknumber = 0 /* 1 */ ;
00135
00136 if (maximumsetupsize && ret.diskblocknumber >= maximumsetupsize)
00137 maximumsetupsizehasbeenhit = true;
00138
00139 return ret;
00140 }
|
|
|
??? (to be defined) Definition at line 244 of file diskalloc.cxx. References diskheader, Diskheader::hasenftops, savepartialdiskalloctabletodisk(), and writeallocinfo(). Referenced by closediskfile().
00246 {
00247 diskheader.hasenftops = true;
00248 savepartialdiskalloctabletodisk();
00249 writeallocinfo(fd);
00250 }
|
|
|
??? (to be defined) Definition at line 130 of file corediskout.cxx. References indiskexit(). Referenced by frontenddied(), and quitxanadu().
00131 {
00132 indiskexit();
00133 }
|
|
|
??? (to be defined) Definition at line 144 of file corediskout.cxx. References granf, initkluge(), spanf, and writeenfilades(). Referenced by main().
00145 {
00146 writeenfilades();
00147 initkluge((typecuc **) &granf, (typecuc **) &spanf);
00148 }
|
|
|
??? (to be defined) Definition at line 151 of file diskalloc.cxx. References assert, Diskheader::bitmap, diskheader, DISKPTRNULL, goodblock(), mask, and typediskloafptrdigit. Referenced by changerefcount(), and readpartialdiskalloctablefromdisk().
00153 {
00154 if (loafptr == DISKPTRNULL)
00155 return;
00156
00157 if (!goodblock(loafptr))
00158 assert(0); // Unallocated block in diskfree
00159
00160 diskheader.bitmap[loafptr / 8] = diskheader.bitmap[loafptr / 8] | mask[loafptr % 8];
00161 }
|
|
|
??? (to be defined) Definition at line 171 of file diskalloc.cxx. References assert, Diskheader::bitmap, diskheader, DISKPTRNULL, goodblock(), mask, and typediskloafptrdigit. Referenced by deletefullcrumandgarbageddescendents().
00173 {
00174 if (loafptr == DISKPTRNULL)
00175 return;
00176
00177 if (!goodblock(loafptr))
00178 assert(0); // Unallocated block in diskfree
00179
00180 diskheader.bitmap[loafptr / 8] = diskheader.bitmap[loafptr / 8] & ~mask[loafptr % 8];
00181 }
|
|
|
??? (to be defined) Definition at line 625 of file genf.cxx. References assert, disownnomodify(), dump(), isfullcrum(), ivemodified(), typecorecrum, and weakfindfather. Referenced by deletend(), eatbrossubtreend(), eatbrossubtreeseq(), newpeelcrumoffnd(), peelcrumoffnd(), splitcrumseq(), subtreefree(), takenephewnd(), takeovernephewsnd(), and takeovernephewsseq().
00627 {
00628 typecuc *father;
00629
00630 if (isfullcrum(crumptr)) {
00631 #ifndef DISTRIBUTION
00632 dump(crumptr);
00633 assert(0); // can't disownnomodify fullcrum
00634 #else
00635 assert(0);
00636 #endif
00637 }
00638
00639 if (!(father = weakfindfather(crumptr))) {
00640 #ifndef DISTRIBUTION
00641 dump(crumptr);
00642 assert(0); // disownnomodify called without a father
00643 #else
00644 assert(0);
00645 #endif
00646 }
00647
00648 disownnomodify(crumptr);
00649 ivemodified((typecorecrum *) father);
00650 }
|
|
|
??? (to be defined) Definition at line 660 of file genf.cxx. References assert, dump(), findleftbro(), findrightbro, isfullcrum(), typecorecrumhedr::leftbroorfather, typecuc::leftson, NULL, typecuc::numberofsons, typecorecrumhedr::rightbro, typecorecrum, and weakfindfather. Referenced by disown(), and loaffree().
00662 {
00663 typecuc *father;
00664 typecorecrum *left, *right;
00665
00666 if (isfullcrum(crumptr)) {
00667 #ifndef DISTRIBUTION
00668 dump(crumptr);
00669 assert(0); // can't disownnomodify fullcrum
00670 #else
00671 assert(0);
00672 #endif
00673 }
00674
00675 if (!(father = weakfindfather((typecorecrum *) crumptr))) {
00676 #ifndef DISTRIBUTION
00677 dump((typecorecrum *) crumptr);
00678 assert(0); // disownnomodify called without a father
00679 #else
00680 assert(0);
00681 #endif
00682 }
00683
00684 right = findrightbro(crumptr);
00685 father->numberofsons -= 1;
00686
00687 if (crumptr->isleftmost) {
00688 father->leftson = right;
00689 if (right) {
00690 right->leftbroorfather = (typecorecrum *) father;
00691 right->isleftmost = true;
00692 }
00693 } else { /* has left brother */
00694 left = findleftbro(crumptr);
00695 left->rightbro = right;
00696 if (right) {
00697 right->leftbroorfather = left;
00698 }
00699 }
00700 crumptr->leftbroorfather = crumptr->rightbro = NULL;
00701 /* ivemodified(father) ; *//*for now till we remove this */
00702 }
|
|
|
??? (to be defined) Definition at line 1365 of file test.cxx. References typeknives::blades, L, typeknives::nblades, and puttumbler(). Referenced by makeithcutonson().
|
|
||||||||||||||||
|
Append text to a document. Append a set of text strings onto the end of the text space of a document, returning an indicator of success.
Definition at line 148 of file do1.cxx. References appendpm(), and typetextset. Referenced by sourceunixcommand().
00149 : User's session context 00150 IStreamAddr *doc_isa, 00151 typetextset textset) 00152 { 00153 return appendpm(sess, doc_isa, textset); 00154 } |
|
||||||||||||||||
|
??? (to be defined) Definition at line 1010 of file tumble.cxx. References Tumbler::mantissa, movetumbler, and NPLACES. Referenced by makespanpair().
|
|
||||||||||||
|
??? (to be defined)
Definition at line 548 of file bert.cxx. References dumptumbler(), ERR_CLOSE_WO_OPEN, Session::errorcode, L, and removefromopen(). Referenced by docreatenewversion(), and myclose().
00549 : User's session context 00550 IStreamAddr *tp) 00551 { 00552 #ifndef DISTRIBUTION 00553 L("doclose: sess = %d tp = ", (int) sess); 00554 dumptumbler(tp); 00555 L("\n"); 00556 #endif 00557 00558 if (!removefromopen(sess, tp)) { 00559 sess->errorcode = ERR_CLOSE_WO_OPEN; // Attempted close of a document that was never opened 00560 return false; 00561 } 00562 00563 return true; /* for now, so as to not upset front-end */ 00564 } |
|
||||||||||||||||||||
|
Virtually copy (transclude) some material into a document. The material determined by the specification set provided is copied to the document at the V-stream address given.
Definition at line 193 of file do1.cxx. References acceptablevsa(), asserttreeisok(), DOCISPAN, findorgl(), granf, graphwholetree(), insertpm(), insertspanf(), L, NOBERTREQUIRED, putitemset(), puttumbler(), spanf, specset2ispanset(), typecorecrum, typeispanset, typeorgl, typespecset, and WRITEBERT. Referenced by copy(), docreatelink(), doinsert(), and domakelink().
00194 : User's session context 00195 IStreamAddr *docisaptr, 00196 Tumbler *vsaptr, 00197 typespecset specset) 00198 { 00199 bool f; 00200 00201 L("(specset2ispanset p=0x%08X)\n", (int) specset); putitemset(sess, (typeitem *) specset); L(")\n"); 00202 00203 // Convert the specification set into a set of spans into the I-stream. 00204 typeispanset ispanset; 00205 f = specset2ispanset(sess, specset, &ispanset, NOBERTREQUIRED); 00206 if (!f) { 00207 L("(specset2ispanset FAILED)\n"); 00208 return false; 00209 } 00210 00211 L("ispanset is 0x%08X\n", (int) ispanset); 00212 L("(specset2ispanset ispanset="); putitemset(sess, (typeitem *) ispanset); L(")\n"); 00213 L("(findorgl for docisa="); puttumbler(stdout, docisaptr); L(")\n"); 00214 00215 /* 00216 * Walk the granfilade to locate and lock, for writing, the document to receive 00217 * the copied material. 00218 */ 00219 00220 // Locate the document's ORGL within the Granfilade and 00221 // obtain a write lock on it. 00222 typeorgl docorgl; 00223 f = findorgl(sess, granf, docisaptr, &docorgl, WRITEBERT); 00224 if (!f) { 00225 L("(attempt to findorgl FAILED)\n"); 00226 return false; 00227 } 00228 00229 /* 00230 * Validate the V-stream address at which to insert the content for reasonableness. 00231 */ 00232 L("(acceptablevsa)\n"); 00233 f = acceptablevsa(vsaptr, docorgl); 00234 if (!f) { 00235 L("(acceptablevsa FAILED)\n"); 00236 return false; 00237 } 00238 00239 L("(asserttreeisok)\n"); 00240 f = asserttreeisok((typecorecrum *) docorgl); 00241 if (!f) { 00242 L("(asserttreeisok FAILED)\n"); 00243 return false; 00244 } 00245 00246 // L("---- Dump of Entire Granfilade Before Copy ----\n"); 00247 // dumpwholetree((typecorecrum *) granf); 00248 graphwholetree("/var/tmp/granf_before.dot", (typecorecrum *) granf, "Granfilade before Copy"); 00249 00250 // L("---- End of Dump of Entire Granfilade Before Copy ----\n"); 00251 00252 // L("---- Dump of Entire Spanfilade Before Copy ----\n"); 00253 // dumpwholetree((typecorecrum *) spanf); 00254 graphwholetree("/var/tmp/spanf_before.dot", (typecorecrum *) spanf, "Spanfilade before Copy"); 00255 // L("---- End of Dump of Entire Spanfilade Before Copy ----\n"); 00256 00257 /* 00258 * 00259 */ 00260 00261 /* the meat of docopy: */ 00262 L("(insertpm)\n"); 00263 f = insertpm(sess, docisaptr, docorgl, vsaptr, (typesporglitem *) ispanset); 00264 if (!f) { 00265 L("(insertpm FAILED)\n"); 00266 return false; 00267 } 00268 00269 L("(insertspanf)\n"); 00270 f = insertspanf(sess, spanf, docisaptr, (typesporglitem *) ispanset, DOCISPAN); 00271 if (!f) { 00272 L("(insertspanf FAILED)\n"); 00273 return false; 00274 } 00275 00276 L("(asserttreeisok)\n"); 00277 f = asserttreeisok((typecorecrum *) docorgl); 00278 if (!f) { 00279 L("(asserttreeisok FAILED)\n"); 00280 return false; 00281 } 00282 00283 // L("---- Dump of Entire Granfilade After Copy ----\n"); 00284 // dumpwholetree((typecorecrum *) granf); 00285 graphwholetree("/var/tmp/granf_after.dot", (typecorecrum *) granf, "Granfilade after Copy"); 00286 // L("---- End of Dump of Entire Granfilade After Copy ----\n"); 00287 00288 // L("---- Dump of Entire Spanfilade After Copy ----\n"); 00289 // dumpwholetree((typecorecrum *) spanf); 00290 graphwholetree("/var/tmp/spanf_after.dot", (typecorecrum *) spanf, "Spanfilade after Copy"); 00291 // L("---- End of Dump of Entire Spanfilade After Copy ----\n"); 00292 00293 return true; 00294 } |
|
||||||||||||||||||||
|
Virtually copy (transclude) some material into a document. The material determined by the specification set provided is copied to the document at the V-stream address given.
Definition at line 304 of file do1.cxx. References acceptablevsa(), asserttreeisok(), DOCISPAN, findorgl(), granf, insertpm(), insertspanf(), NOBERTREQUIRED, spanf, specset2ispanset(), typecorecrum, typeispanset, typeorgl, and typespecset. Referenced by docreatenewversion().
00305 : User's session context 00306 IStreamAddr *docisaptr, 00307 Tumbler *vsaptr, 00308 typespecset specset) 00309 { 00310 typeispanset ispanset; 00311 00312 typeorgl docorgl; 00313 00314 // Convert the specification set into a set of spans into the I-stream. 00315 return (specset2ispanset(sess, specset, &ispanset, NOBERTREQUIRED) 00316 00317 && findorgl(sess, granf, docisaptr, &docorgl, NOBERTREQUIRED) 00318 && acceptablevsa(vsaptr, docorgl) 00319 && asserttreeisok((typecorecrum *) docorgl) 00320 00321 /* the meat of docopy: */ 00322 && insertpm(sess, docisaptr, docorgl, vsaptr, (typesporglitem *) ispanset) 00323 00324 && insertspanf(sess, spanf, docisaptr, (typesporglitem *) ispanset, DOCISPAN) 00325 && asserttreeisok((typecorecrum *) docorgl) 00326 ); 00327 } |
|
||||||||||||||||||||||||||||
|
Create a 3-endpoint link between parts of documents. Create a link within the specified document, -from- a set of spans, -to- a set of spans, -of type- a set of spans.
Definition at line 428 of file do1.cxx. References ATOM, createorglingranf(), docopy(), DOCUMENT, findnextlinkvsa(), findorgl(), granf, insertendsetsinorgl(), insertendsetsinspanf(), LINKATOM, makehint(), NOBERTREQUIRED, setlinkvsas(), spanf, specset2sporglset(), tumbler2spanset(), typeorgl, typespanset, typespecset, and typesporglset. Referenced by createlink().
00429 : User's session context 00430 IStreamAddr *docisaptr, 00431 typespecset fromspecset, 00432 typespecset tospecset, 00433 typespecset threespecset, 00434 IStreamAddr *linkisaptr) 00435 { 00436 Tumbler linkvsa, fromvsa, tovsa, threevsa; 00437 typespanset ispanset; 00438 typesporglset fromsporglset; 00439 typesporglset tosporglset; 00440 typesporglset threesporglset; 00441 typeorgl link; 00442 00443 typehint hint; 00444 makehint(DOCUMENT, ATOM, LINKATOM, docisaptr, &hint); 00445 00446 return createorglingranf(sess, granf, &hint, linkisaptr) 00447 && tumbler2spanset(sess, linkisaptr, &ispanset) 00448 && findnextlinkvsa(sess, docisaptr, &linkvsa) 00449 && docopy(sess, docisaptr, &linkvsa, (typespec *) ispanset) 00450 && findorgl(sess, granf, linkisaptr, &link, /* WRITEBERT ECH 7-1 */ NOBERTREQUIRED) 00451 && specset2sporglset(sess, fromspecset, &fromsporglset, NOBERTREQUIRED) 00452 && specset2sporglset(sess, tospecset, &tosporglset, NOBERTREQUIRED) 00453 && specset2sporglset(sess, threespecset, &threesporglset, NOBERTREQUIRED) 00454 && setlinkvsas(&fromvsa, &tovsa, &threevsa) 00455 && insertendsetsinorgl(sess, linkisaptr, link, &fromvsa, fromsporglset, &tovsa, tosporglset, &threevsa, 00456 threesporglset) 00457 && insertendsetsinspanf(sess, spanf, linkisaptr, fromsporglset, tosporglset, threesporglset) 00458 ; 00459 } |
|
||||||||||||
|
Create a new, empty document. Create a new, empty and unopened document within the user's document space and return its identifier. Create a new document under the account and node of the user who issued the request. Return the global identifier for the document. This request creates the document but does not open it for access; you must issue an open request (see below) to access the data in the new document.
Definition at line 493 of file do1.cxx. References Session::account, ACCOUNT, createorglingranf(), DOCUMENT, granf, and makehint(). Referenced by createnewdocument(), and sourceunixcommand().
00494 : User's session context 00495 IStreamAddr *isaptr) 00496 { 00497 typehint hint; 00498 makehint(ACCOUNT, DOCUMENT, 0, &sess->account, &hint); 00499 00500 return createorglingranf(sess, granf, &hint, isaptr); 00501 } |
|
||||||||||||||||||||
|
Create a new version of a document and return its identifier. Create a new version of a document and return its identifier. The new version of the document will contain a virtual copy of the original.
Definition at line 553 of file do1.cxx. References ACCOUNT, assert, BERTMODEONLY, createorglingranf(), typevspec::docisa, doclose(), docopyinternal(), DOCUMENT, doopen(), doretrievedocvspanfoo(), granf, isthisusersdocument(), typevspec::itemid, makehint(), movetumbler, typevspec::next, NULL, typespan::stream, tumbleraccounteq(), typevspan, typevspec::vspanset, VSPECID, and WRITEBERT. Referenced by createnewversion(), and doopen().
00554 : User's session context 00555 IStreamAddr *isaptr, 00556 IStreamAddr *wheretoputit, 00557 IStreamAddr *newisaptr) 00558 { 00559 IStreamAddr newtp; /* for internal open */ 00560 00561 // Test for ownership to do the right thing for explicit creation of new 00562 // version of someone else's document 00563 typehint hint; 00564 if (tumbleraccounteq(isaptr, wheretoputit) && isthisusersdocument(sess, isaptr)) { 00565 makehint(DOCUMENT, DOCUMENT, 0, isaptr /* wheretoputit */ , &hint); 00566 } else { 00567 // This does the right thing for a new version of someone else's 00568 // document, as it duplicates the behavior of docreatenewdocument 00569 makehint(ACCOUNT, DOCUMENT, 0, wheretoputit, &hint); 00570 } 00571 00572 if (!createorglingranf(sess, granf, &hint, newisaptr)) 00573 return false; 00574 00575 // Determine the full span of the parent document, to know the range to 00576 // copy into the newly created version. 00577 00578 typevspan vspan; 00579 if (!doretrievedocvspanfoo(sess, isaptr, &vspan)) 00580 return false; 00581 00582 typevspec vspec; 00583 vspec.next = NULL; 00584 vspec.itemid = VSPECID; 00585 movetumbler(isaptr, &vspec.docisa); 00586 vspec.vspanset = &vspan; 00587 00588 // BERTMODEONLY to prevent recursive createnewversions 00589 if (!doopen(sess, newisaptr, &newtp, WRITEBERT, BERTMODEONLY)) 00590 assert(0); // Couldn't do internal doopen for new doc in docreatenewversion 00591 00592 // Map (copy virtually) the entire content of the original document into 00593 // V-stream of the newly created version. 00594 docopyinternal(sess, newisaptr, &vspan.stream, (typespec *) &vspec); 00595 doclose(sess, newisaptr); 00596 00597 return true; 00598 } |
|
||||||||||||
|
Create a new node or account identifier. Create a new node or account identifier, globally, and return its identifier. Declare that id-account is a legal account or node. If id-account is an account tumbler, then the backend creates the account. If it is a node tumbler, then the backend reassigns its own address to id-account.
Definition at line 515 of file do1.cxx. References createorglingranf(), granf, makehint(), NODE, and tumblercopy(). Referenced by createnode_or_account().
00516 : User's session context 00517 IStreamAddr *isaptr) 00518 { 00519 IStreamAddr isa; 00520 tumblercopy(isaptr, &isa); 00521 00522 typehint hint; 00523 makehint(NODE, NODE, 0, /* &sess->account */ &isa, &hint); 00524 00525 return createorglingranf(sess, granf, &hint, &isa); 00526 } |
|
||||||||||||||||
|
Delete a range of text from a document. Remove the specified span of text from a document, shuffling down the text that follows that position.
Definition at line 370 of file do1.cxx. References deletevspanpm(), findorgl(), granf, typeorgl, typevspan, and WRITEBERT. Referenced by deletevspan().
00371 : User's session context 00372 IStreamAddr *docisaptr, 00373 typevspan *vspanptr) 00374 { 00375 typeorgl docorgl; 00376 00377 if (findorgl(sess, granf, docisaptr, &docorgl, WRITEBERT)) 00378 return deletevspanpm(sess, docisaptr, docorgl, vspanptr); 00379 00380 return false; 00381 } |
|
||||||||||||
|
??? (to be defined) Definition at line 1761 of file test.cxx. References typecuc::cwid, typewid::dsas, dumpmoleculegr(), findleftson(), typecuc::height, typecorecrumhedr::rightbro, tumbleradd, typecorecrum, and WIDTH. Referenced by dumpistreamgr().
01764 {
01765 #ifndef DISTRIBUTION
01766 typecorecrum *ptr;
01767
01768 if (crumptr->height == 0) {
01769 dumpmoleculegr(offsetptr, (typecbc *) crumptr);
01770 tumbleradd(offsetptr, &crumptr->cwid.dsas[WIDTH], offsetptr);
01771 return;
01772 }
01773
01774 for (ptr = findleftson(crumptr); ptr; ptr = ptr->rightbro)
01775 dodumpistreamgr((typecuc *) ptr, offsetptr);
01776 #endif
01777 }
|
|
||||||||||||||||
|
Find documents containing any of the material specified. Return a list of all documents containing any of the material specified by the V-stream specification set, regardless of where the native copies are located.
Definition at line 126 of file do1.cxx. References finddocscontainingsp(), NOBERTREQUIRED, specset2ispanset(), typeispanset, typelinkset, and typespecset. Referenced by finddocscontaining().
00127 : User's session context 00128 typespecset specset, 00129 typelinkset *addresssetptr) 00130 { 00131 typeispanset ispanset; 00132 00133 // Convert the specification set into a set of spans into the I-stream. 00134 return specset2ispanset(sess, specset, &ispanset, NOBERTREQUIRED) 00135 00136 // Search for documents containing those spans 00137 && finddocscontainingsp(sess, ispanset, addresssetptr); 00138 } |
|
||||||||||||||||||||||||||||
|
Return a list of links that meet a specific set of endpoint criteria. Return a list of all links which are (1) from any or all part of the -from- set, (2) to any or all part of the -to- set and -three- set, and (3) in the home of ORGLs. This is an AND-relation in that all qualifications must be met.
Definition at line 675 of file do1.cxx. References findlinksfromtothreesp(), spanf, typeispan, typelinkset, and typespecset. Referenced by findlinksfromtothree().
00676 : User's session context 00677 typespecset fromvspecset, 00678 typespecset tovspecset, 00679 typespecset threevspecset, 00680 typeispan *orglrangeptr, 00681 typelinkset *linksetptr) 00682 { 00683 return findlinksfromtothreesp(sess, spanf, fromvspecset, tovspecset, threevspecset, orglrangeptr, linksetptr); 00684 } |
|
||||||||||||||||||||||||||||||||||||
|
Return a subset of links that meet a specific set of endpoint criteria. Return a subset of all links which are (1) from any or all part of the -from- set, (2) to any or all part of the -to- set and -three- set, and (3) in the home of ORGLs. This is an AND-relation in that all qualifications must be met.
Definition at line 717 of file do1.cxx. References findnextnlinksfromtothreesp(), typeispan, and typelinkset. Referenced by findnextnlinksfromtothree().
00718 : User's session context 00719 typevspec *fromvspecptr, 00720 typevspec *tovspecptr, 00721 typevspec *threevspecptr, 00722 typeispan *orglrangeptr, 00723 IStreamAddr *lastlinkisaptr, 00724 typelinkset *nextlinksetptr, 00725 int *nptr) 00726 { 00727 return findnextnlinksfromtothreesp(sess, (typespec *) fromvspecptr, 00728 (typespec *) tovspecptr, (typespec *) threevspecptr, 00729 orglrangeptr, lastlinkisaptr, nextlinksetptr, nptr); 00730 } |
|
||||||||||||||||||||||||||||
|
Return a count of links that meet a specific set of endpoint criteria. Return a count of all links which are (1) from any or all part of the -from- set, (2) to any or all part of the -to- set and -three- set, and (3) in the home of ORGLs. This is an AND-relation in that all qualifications must be met.
Definition at line 695 of file do1.cxx. References findnumoflinksfromtothreesp(), spanf, typeispan, and typespecset. Referenced by findnumoflinksfromtothree().
00696 : User's session context 00697 typespecset *fromvspecset, 00698 typespecset *tovspecset, 00699 typespecset *threevspecset, 00700 typeispan *orglrangeptr, 00701 int *numptr) 00702 { 00703 /*BUG: there is some inconsistency re arg 'fromvspecset' as whether it is (typespec *)[fn below] or (typespec **)[passed-in] */ 00704 return findnumoflinksfromtothreesp(sess, spanf, (typespec *) fromvspecset, (typespec *) tovspecset, (typespec *) threevspecset, orglrangeptr, numptr); 00705 } |
|
||||||||||||||||||||
|
Return the specification set of one endpoint of a link.
Definition at line 466 of file do1.cxx. References link2sporglset(), linksporglset2specset(), NOBERTREQUIRED, typespecset, and typesporglset. Referenced by followlink().
00467 : User's session context 00468 IStreamAddr *linkisaptr, 00469 typespecset *specsetptr, 00470 int whichend) 00471 { 00472 typesporglset sporglset; 00473 00474 return link2sporglset(sess, linkisaptr, &sporglset, whichend, NOBERTREQUIRED) 00475 && linksporglset2specset(sess, &((typesporgl *) sporglset)->sporgladdress, sporglset, specsetptr, NOBERTREQUIRED); 00476 } |
|
||||||||||||||||||||
|
Insert a set of text strings into a document. Insert a set of text strings into the specified place within a document, shoving down the text following that position.
Definition at line 337 of file do1.cxx. References ATOM, docopy(), DOCUMENT, granf, inserttextingranf(), makehint(), TEXTATOM, typespanset, and typetextset. Referenced by appendpm(), and insert().
00338 : User's session context 00339 IStreamAddr *docisaptr, 00340 Tumbler *vsaptr, 00341 typetextset textset) 00342 { 00343 typehint hint; 00344 makehint(DOCUMENT, ATOM, TEXTATOM, docisaptr, &hint); 00345 00346 typespanset ispanset; 00347 return inserttextingranf(sess, granf, &hint, textset, &ispanset) 00348 00349 && docopy(sess, docisaptr, vsaptr, (typespec *) ispanset); 00350 } |
|
||||||||||||||||||||||||
|
Create a 2-endpoint link between parts of documents. Create a link within the specified document, -from- a set of spans, -to- a set of spans.
Definition at line 391 of file do1.cxx. References ATOM, createorglingranf(), docopy(), DOCUMENT, findnextlinkvsa(), findorgl(), granf, insertendsetsinorgl(), insertendsetsinspanf(), LINKATOM, makehint(), NOBERTREQUIRED, NULL, setlinkvsas(), spanf, specset2sporglset(), tumbler2spanset(), typeorgl, typespanset, typespecset, typesporglset, and WRITEBERT.
00392 : User's session context 00393 IStreamAddr *docisaptr, 00394 typespecset fromspecset, 00395 typespecset tospecset, 00396 IStreamAddr *linkisaptr) 00397 { 00398 Tumbler linkvsa, fromvsa, tovsa; 00399 typespanset ispanset; 00400 typesporglset fromsporglset; 00401 typesporglset tosporglset; 00402 typeorgl link; 00403 00404 typehint hint; 00405 makehint(DOCUMENT, ATOM, LINKATOM, docisaptr, &hint); 00406 00407 return createorglingranf(sess, granf, &hint, linkisaptr) 00408 && tumbler2spanset(sess, linkisaptr, &ispanset) 00409 && findnextlinkvsa(sess, docisaptr, &linkvsa) 00410 && docopy(sess, docisaptr, &linkvsa, (typespec *) ispanset) 00411 && findorgl(sess, granf, linkisaptr, &link, WRITEBERT) 00412 && specset2sporglset(sess, fromspecset, &fromsporglset, NOBERTREQUIRED) 00413 && specset2sporglset(sess, tospecset, &tosporglset, NOBERTREQUIRED) 00414 && setlinkvsas(&fromvsa, &tovsa, NULL) 00415 && insertendsetsinorgl(sess, linkisaptr, link, &fromvsa, fromsporglset, &tovsa, tosporglset, NULL, NULL) 00416 && insertendsetsinspanf(sess, spanf, linkisaptr, fromsporglset, tosporglset, NULL) 00417 ; 00418 } |
|
||||||||||||||||||||||||
|
??? (to be defined)
Definition at line 465 of file bert.cxx. References Session::account, addtoopen(), assert, BERTMODECOPY, BERTMODECOPYIF, BERTMODEONLY, checkforopen(), docreatenewversion(), ERR_OPEN_COPY, Session::errorcode, incrementopen(), L, NOBERTREQUIRED, tumblercopy(), and WRITEBERT. Referenced by docreatenewversion(), and myopen().
00466 : User's session context 00467 IStreamAddr *tp, 00468 IStreamAddr *newtp, 00469 int type, 00470 int mode) 00471 { 00472 L("Entered doopen()\n"); 00473 00474 if (type == NOBERTREQUIRED) 00475 return true; 00476 00477 L("type != NOBERTREQUIRED\n"); 00478 00479 if (mode == BERTMODECOPY) { 00480 L("mode == BERTMODECOPY, trying to copy document\n"); 00481 00482 if (docreatenewversion(sess, tp, &sess->account, newtp)) { 00483 addtoopen(sess, newtp, true, type); 00484 return true; 00485 } else { 00486 sess->errorcode = ERR_OPEN_COPY; // Attempt to make a copy to open failed 00487 return false; 00488 } 00489 } 00490 00491 L("about to call checkforopen()\n"); 00492 00493 int openState = checkforopen(sess, tp, type); 00494 00495 L("returned from call to checkforopen(), openState = %d\n", openState); 00496 00497 if (openState == 0) { 00498 L("already open in R/O, just trying to inc open count\n"); 00499 00500 addtoopen(sess, tp, false, type); 00501 tumblercopy(tp, newtp); 00502 return true; 00503 } 00504 00505 switch (mode) { 00506 case BERTMODECOPYIF: 00507 if (openState == -1) { // Document not already open 00508 if (docreatenewversion(sess, tp, &sess->account, newtp)) { 00509 addtoopen(sess, newtp, true, type); 00510 } else { 00511 sess->errorcode = ERR_OPEN_COPY; // Attempt to make a copy to open failed 00512 return false; 00513 } 00514 00515 } else if (type != WRITEBERT && openState != WRITEBERT) { // Open another Shared Read-Open Reference 00516 incrementopen(sess, tp); 00517 tumblercopy(tp, newtp); 00518 00519 } else { // Document is already open, Open a new copy 00520 docreatenewversion(sess, tp, &sess->account, newtp); 00521 addtoopen(sess, newtp, true, type); 00522 } 00523 return true; 00524 00525 case BERTMODEONLY: 00526 if (openState == -1 || type == WRITEBERT || openState == WRITEBERT) { 00527 return false; 00528 } else { 00529 incrementopen(sess, tp); 00530 tumblercopy(tp, newtp); 00531 return true; 00532 } 00533 00534 default: 00535 assert(0); // DEFAULT CASE IN DOOPEN 00536 return false; 00537 } 00538 } |
|
||||||||||||||||
|
Transpose two regions of text within a document. Transpose two regions of text, using a set of 'cuts' within a document. Cuts are V-stream addresses within a particular document. There can be three of four entries in the cut set. If three cuts are supplied, the two regions being transposed are from cut 1 to cut 2, and from cut 2 to cut 3, assuming cut 1 < cut 2 < cut 3. If four cuts are supplied, the regions are from cut 1 to cut 2, and from cut 3 to cut 4, again assuming cut 1 < cut 2 < cut 3 < cut 4.
Definition at line 169 of file do1.cxx. References findorgl(), granf, rearrangepm(), typeorgl, and WRITEBERT. Referenced by rearrange().
00170 : User's session context 00171 IStreamAddr *docisaptr, 00172 typecutseq *cutseqptr) 00173 { 00174 // ORGL element on the Granfilade representing the particular document 00175 typeorgl docorgl; 00176 00177 // Locate the document's ORGL within the Granfilade and 00178 // obtain a write lock on it. 00179 return findorgl(sess, granf, docisaptr, &docorgl, WRITEBERT) 00180 00181 // Actually perform the rearrangement of text. 00182 && rearrangepm(sess, docisaptr, docorgl, cutseqptr); 00183 } |
|
||||||||||||||||
|
Return the total span of text and links within a document. Return a V-stream span representing the full size of both the text and link streams.
Definition at line 608 of file do1.cxx. References findorgl(), granf, READBERT, retrievevspanpm(), typeorgl, and typevspan. Referenced by findnextlinkvsa(), and retrievedocvspan().
00609 : User's session context 00610 IStreamAddr *docisaptr, 00611 typevspan *vspanptr) 00612 { 00613 typeorgl docorgl; 00614 00615 return findorgl(sess, granf, docisaptr, &docorgl, READBERT) 00616 && retrievevspanpm(sess, docorgl, vspanptr); 00617 } |
|
||||||||||||||||
|
Return the total span of text and links within a document. Return a set of V-stream spans, one representing the full size of the text stream, and one representing the full size of the link stream. To-Fix: This function should not fail on an empty doc but instead return an empty result set. It also should return a set for each type of data, even when there are none of that type.
Definition at line 630 of file do1.cxx. References findorgl(), granf, isemptyorgl(), READBERT, retrievevspansetpm(), typeorgl, and typevspanset. Referenced by retrievedocvspanset().
00631 : User's session context 00632 IStreamAddr *docisaptr, 00633 typevspanset *vspansetptr) 00634 { 00635 typeorgl docorgl; 00636 00637 if (findorgl(sess, granf, docisaptr, &docorgl, READBERT)) { 00638 if (!isemptyorgl(docorgl)) { 00639 if (retrievevspansetpm(sess, docorgl, vspansetptr)) { 00640 return true; 00641 } 00642 } 00643 } 00644 return false; 00645 } |
|
||||||||||||||||||||||||
|
Return a list of all link end-sets in the specification set.
Definition at line 737 of file do1.cxx. References retrieveendsetsfromspanf(), and typespecset. Referenced by retrieveendsets().
00738 : User's session context 00739 typespecset specset, 00740 typespecset *fromsetptr, 00741 typespecset *tosetptr, 00742 typespecset *threesetptr) 00743 { 00744 return retrieveendsetsfromspanf(sess, specset, fromsetptr, tosetptr, threesetptr); 00745 } |
|
||||||||||||||||
|
Return the text and links from set of places within a document. Return actual content from a document.
Definition at line 654 of file do1.cxx. References granf, ispanset2vstuffset(), READBERT, specset2ispanset(), typeispanset, typespecset, and typevstuffset. Referenced by assertspecisstring(), and retrievev().
00655 : User's session context 00656 typespecset specset, 00657 typevstuffset *vstuffsetptr) 00658 { 00659 typeispanset ispanset; 00660 00661 // Convert the specification set into a set of spans into the I-stream. 00662 return specset2ispanset(sess, specset, &ispanset, READBERT) 00663 && ispanset2vstuffset(sess, granf, ispanset, vstuffsetptr); 00664 } |
|
||||||||||||||||||||
|
??? Return a list of ordered pairs of the spans of the two spec sets that correspond
Definition at line 754 of file do1.cxx. References intersectspansets(), ISPANID, ispansetandspecsets2spanpairset(), NULL, READBERT, specset2ispanset(), typeispanset, typespanpairset, and typespecset. Referenced by showrelationof2versions().
00755 : User's session context 00756 typespecset version1, 00757 typespecset version2, 00758 typespanpairset *relation) 00759 { 00760 typeispanset version1ispans = NULL; 00761 typeispanset version2ispans = NULL; 00762 typeispanset commonispans = NULL; 00763 00764 // Convert the specification set into a set of spans into the I-stream. 00765 return specset2ispanset(sess, version1, &version1ispans, READBERT) 00766 && specset2ispanset(sess, version2, &version2ispans, READBERT) 00767 && intersectspansets(sess, version1ispans, version2ispans, &commonispans, ISPANID) 00768 && ispansetandspecsets2spanpairset(sess, commonispans, version1, version2, relation); 00769 } |
|
||||||||||||||||
|
??? (to be defined) Definition at line 1472 of file test.cxx. References typecorecrumhedr::cdsp, typecorecrumhedr::cenftype, dspadd(), findleftson(), typecorecrumhedr::height, NULL, typecorecrumhedr::rightbro, showspanfcrum(), typecorecrum, and typedsp. Referenced by showspanf().
01476 {
01477 #ifndef DISTRIBUTION
01478 typecorecrum *ptr = NULL;
01479 typedsp loffset;
01480
01481 showspanfcrum(crumptr, offsetptr, enfheight);
01482 if (crumptr->height <= 0)
01483 return;
01484
01485 dspadd(offsetptr, &crumptr->cdsp, &loffset, crumptr->cenftype);
01486 for (ptr = findleftson((typecuc *) crumptr); ptr; ptr = ptr->rightbro)
01487 doshowspanf(ptr, &loffset, enfheight);
01488 #endif
01489 }
|
|
||||||||||||||||||||
|
??? (to be defined) Definition at line 89 of file wisp.cxx. References typewid::dsas, dspsize, lockadd(), typedsp, and typewisp. Referenced by doshowspanf(), findcbcinarea2d(), findcbcinspanseq(), findcbcseq(), findcbcseqcrum(), fixdspsofbroschildren(), graphcrum(), insertcbcnd(), insertseq(), makecontextfromcbc(), newpeelcrumoffnd(), prologuecontextnd(), prologuend(), setwispnd(), showspanfcrum(), slicecbcpm(), and takenephewnd().
|
|
||||||||||||||||||||
|
??? (to be defined) Definition at line 109 of file wisp.cxx. References typewid::dsas, dspsize, locksubtract(), typedsp, and typewisp. Referenced by fixdspsofbroschildren(), insertcbcnd(), newpeelcrumoffnd(), setwispnd(), and takenephewnd().
00114 {
00115 locksubtract(a->dsas, b->dsas, c->dsas, (unsigned)dspsize(enftype));
00116 }
|
|
|
??? (to be defined) Definition at line 860 of file test.cxx. References typecorecrumhedr::cenftype, dumphedr(), dumpinfo(), typecorecrumhedr::height, L, and typecorecrum. Referenced by assertsonswispmatchesfather(), assertsubtreeisok(), check(), checkmodifiednotthere(), disown(), disownnomodify(), dumpsubtree(), dumpwholesubtree(), findleftson(), foocrum(), funcrejuvinate(), inorglinternal(), isreapable(), makecontextfromcbc(), makegappm(), makeithcutonson(), slicecbcpm(), subtreewriterecurs(), testforreservedness(), tumblercheckptr(), varpackloaf(), varunpackloaf(), and yesdump().
00862 {
00863 #ifndef DISTRIBUTION
00864 L("\n");
00865 dumphedr(ptr);
00866
00867 if (ptr->height) {
00868 L("sonorigin = %x insideloaf %x leftson = %x #sons = %x\n",
00869 ((typecuc *) ptr)->sonorigin.diskblocknumber, ((typecuc *) ptr)->sonorigin.insidediskblocknumber,
00870 (int) ((typecuc *) ptr)->leftson, ((typecuc *) ptr)->numberofsons);
00871 } else {
00872 dumpinfo(&((typecbc *) ptr)->cinfo, ptr->cenftype);
00873 }
00874 #endif
00875 }
|
|
|
??? (to be defined) Definition at line 2042 of file test.cxx. References Context::contextinfo, ContextBase::contexttype, ContextBase::contextwid, debug, dumpdsp(), dumpinfo(), dumpwid(), enftypestring(), L, NULL, and ContextBase::totaloffset. Referenced by analyzeanddebug(), dumpcontextlist(), foocontext(), and makecontextfromcbc().
02044 {
02045 #ifndef DISTRIBUTION
02046 L(" context %x:\n", (int) context);
02047
02048 if (context == NULL) {
02049 L("NULL context\n");
02050 return;
02051 }
02052
02053 L(" contexttype %s\n", enftypestring(context->contexttype));
02054 L(" totaloffset ");
02055 dumpdsp(&context->totaloffset, context->contexttype);
02056
02057 L(" contextwid ");
02058 dumpwid(&context->contextwid, context->contexttype);
02059
02060 if (debug > 1) {
02061 L(" contextinfo ");
02062 dumpinfo((typegranbottomcruminfo *) &context->contextinfo, context->contexttype);
02063 }
02064 #endif
02065 }
|
|
|
??? (to be defined) Definition at line 2017 of file test.cxx. References dumpcontext(), L, and ContextBase::nextcontext. Referenced by foocontextlist().
02019 {
02020 #ifndef DISTRIBUTION
02021 L("contextlist :\n");
02022
02023 if (!context) {
02024 L(" contextlist NULL\n");
02025 return;
02026 }
02027
02028 for (; context; context = (Context *) context->nextcontext) {
02029 dumpcontext(context);
02030 }
02031 #endif
02032 }
|
|
||||||||||||
|
??? (to be defined) Definition at line 1218 of file test.cxx. References typewid::dsas, dspsize, L, and puttumbler(). Referenced by dumpcontext(), dumphedr(), and foodsp().
01221 {
01222 #ifndef DISTRIBUTION
01223 int i;
01224
01225 /* if (enftype == GRAN) return; */
01226 int nstreams = dspsize(enftype);
01227 L("dsp = < ");
01228 for (i = 0; i < nstreams; ++i) {
01229 if (i > 0)
01230 L(" , ");
01231 puttumbler(stderr, &dspptr->dsas[i]);
01232 }
01233 L(" >\n");
01234 #endif
01235 }
|
|
|
??? (to be defined)
Definition at line 1572 of file test.cxx. References granf, Session::inp, L, puttumbler(), showgranwids(), tumblereq(), typecorecrum, and WIDTH.
01573 : User's session context
01574 {
01575 #ifndef DISTRIBUTION
01576 Tumbler subtreewid;
01577 //UNUSED int fullheight;
01578
01579 /* fullheight = ((typecorecrum *)granf)->height; */
01580 showgranwids((typecorecrum *) granf, 0, &subtreewid);
01581 if (!tumblereq(&subtreewid, &((typecorecrum *) granf)->cwid.dsas[WIDTH])) {
01582
01583 L("Granfilade fullcrum wid and widded enfilade don\'t match.\n");
01584 L("gran fullcrum wid ");
01585 puttumbler(stderr, &((typecorecrum *) granf)->cwid.dsas[WIDTH]);
01586
01587 L("\nreturned wid from subtree ");
01588 puttumbler(stderr, &subtreewid);
01589
01590 L("\nHit \"<return>\" to continue, \"a<return>\" to abort ");
01591 if (getc(sess->inp) == 'a')
01592 abort();
01593 }
01594 L("\n");
01595 #endif
01596 return true;
01597 }
|
|
|
??? (to be defined) Definition at line 1117 of file test.cxx. References typecorecrumhedr::age, typecorecrumhedr::cdsp, typecorecrumhedr::cenftype, typecorecrumhedr::cwid, dumpdsp(), dumpwid(), GRAN, typecorecrumhedr::height, L, typecorecrumhedr::leftbroorfather, typecorecrumhedr::nextcrum, POOM, typecorecrumhedr::rightbro, and SPAN. Referenced by dump().
01119 {
01120 #ifndef DISTRIBUTION
01121 char *temp;
01122
01123 switch (ptr->cenftype) {
01124 case GRAN: temp = "GRAN"; break;
01125 case SPAN: temp = "SPAN"; break;
01126 case POOM: temp = "POOM"; break;
01127 default: temp = "????"; L(" %d ", ptr->cenftype); break;
01128 }
01129
01130 const char *full = (ptr->isapex ? "full" : "");
01131
01132 // ===GRAN fullcrum height=0
01133 // 00000000 < coreaddr@xxxxxxxx > 00000000
01134 // | age=dd modified=1 next@xxxxxxxx
01135 // | dsp = < 0 >
01136 // | wid = < 1.7.0.9.0.1.0.1 >
01137 // \ v /
01138 // 00000000
01139
01140 // /--GRAN fullcrum h=0
01141 // 00000000 < coreaddr@xxxxxxxx > 00000000
01142 // | age=dd modified=1 next@xxxxxxxx
01143 // | dsp = < 0 >
01144 // | wid = < 1.7.0.9.0.1.0.1 >
01145 // \ v /
01146 // 00000000
01147
01148
01149
01150 L("%s %scrum core location = %x\n", temp, full, (int) ptr);
01151 L("height = %x nextcrum = %x modified = %x\n", ptr->height, (int) ptr->nextcrum, ptr->modified);
01152 L(" age = %x ", ptr->age);
01153 L("isleftmost = %x leftbro = %x rightbro = %x\n", ptr->isleftmost, (int) ptr->leftbroorfather, (int) ptr->rightbro);
01154
01155 dumpdsp(&ptr->cdsp, ptr->cenftype);
01156 dumpwid(&ptr->cwid, ptr->cenftype);
01157 #endif
01158 }
|
|
|
??? (to be defined) Definition at line 2384 of file test.cxx. References L. Referenced by findandallocateinsidediskblocknumber(), and varunpackloaf().
|
|
|
??? (to be defined) Definition at line 1388 of file test.cxx. References typehint::atomtype, typehint::hintisa, L, puttumbler(), typehint::subtype, and typehint::supertype.
|
|
||||||||||||
|
??? (to be defined) Definition at line 1294 of file test.cxx. References assert, typegranorgl::diskorglptr, GRAN, GRANNULL, GRANORGL, typegranbottomcruminfo::granstuff, GRANTEXT, typegranbottomcruminfo::infotype, L, typegranorgl::orglptr, typegranstuff::orglstuff, puttumbler(), typegrantext::textstring, and typegranstuff::textstuff. Referenced by dump(), and dumpcontext().
01297 {
01298 #ifndef DISTRIBUTION
01299 if (enftype == GRAN) {
01300 switch (infoptr->infotype) {
01301 case GRANTEXT:
01302 L("text: %s\n", infoptr->granstuff.textstuff.textstring);
01303 break;
01304 case GRANORGL:
01305 L(" diskorgl %x, ", infoptr->granstuff.orglstuff.diskorglptr);
01306 L("orgl %x\n ", (int) infoptr->granstuff.orglstuff.orglptr);
01307 break;
01308 case GRANNULL:
01309 L("GRANNULL info\n");
01310 break;
01311 default:
01312 L("empty infotype: %d\n", infoptr->infotype);
01313 assert(0); // bad in dumpinfo
01314 }
01315 } else {
01316 L("home document: ");
01317 puttumbler(stderr, &((type2dbottomcruminfo *) infoptr)->homedoc);
01318 L("\n");
01319 }
01320 #endif
01321 }
|
|
|
??? (to be defined) Definition at line 1815 of file test.cxx. References Tumbler::exp, L, Tumbler::mantissa, movetumbler, NPLACES, nstories(), puttumbler(), and TABSTOP.
01817 {
01818 #ifndef DISTRIBUTION
01819 int i, j, k;
01820 Tumbler offset;
01821
01822 movetumbler(offsetptr, &offset);
01823
01824 i = nstories(&offset) - offset.exp;
01825 i += i - 1;
01826 for (j = 0; j < NPLACES; ++j)
01827 for (k = offset.mantissa[j]; k /= 10; ++i)
01828 ;
01829
01830 i = TABSTOP - i;
01831 if (i < 2) {
01832 L("too long");
01833 i = 8;
01834 } else
01835 puttumbler(stderr, &offset);
01836
01837 while (i--)
01838 L(" ");
01839 #endif
01840 }
|
|
|
??? (to be defined) Definition at line 1739 of file test.cxx. References debug, dodumpistreamgr(), and tumblerclear. Referenced by showistream().
01741 {
01742 #ifndef DISTRIBUTION
01743 Tumbler offset;
01744
01745 if (debug < 5)
01746 return;
01747
01748 tumblerclear(&offset);
01749 dodumpistreamgr(crumptr, &offset);
01750 #endif
01751 }
|
|