libsrc/corediskout.cxx File Reference

orglwrite and subtree write are called from reap in credel.cxx More...

#include <memory.h>
#include <stdlib.h>
#include "udanax.h"

Include dependency graph for corediskout.cxx:

Include dependency graph

Go to the source code of this file.

Defines

#define hputinloaf(hp, lp, tp)   ((void)humberput((int)(hp),(humber)(lp),(unsigned int *)(tp)),(lp)=((char*)lp)+*(tp))

Functions

void subtreewriterecurs (Session *sess, typecuc *father)
 ???

void orglwritepart2 (Session *sess, typecbc *orglcbcptr)
 ???

bool decrementusers ()
 ???

void indiskexit ()
 ???

void diskexit ()
 ???

void diskflush ()
 ???

void writeenfilades ()
 ???

void hputwiddsp (typecuc *ptr, char **loafptrptr)
 ???

void hputinfo (typecbc *ptr, char **loafptrptr)
 ???

int varpackloaf (typecuc *father, typediskloaf *xloafptr, int refcount, int flag)
 ???

int packloaf (typecuc *father, typediskloaf *loafptr, int refcount, int flag)
 ???

void uniqueoutloaf (typecuc *father, int refcount)
 ???

void checkmodifiednotthere (typecuc *father, char *string)
 ???

void deletewithgarbageddescendents (typediskloafptr diskptr, typecuc *father, bool deletefullcrumflag)
 ???

void deletefullcrumandgarbageddescendents (typediskloafptr diskptr, bool deletefullcrumflag, typediskloaf *loafp, typediskloafptr newdiskptr)
 ???

void orglwrite (typecbc *orglcbcptr)
 ???

void subtreewrite (typecuc *father)
 ???


Variables

int noishouldbother
int notakenephewnd
int noeatbrosnd
typegranf granf
typespanf spanf
typediskloaf zzzeroloaf
typeuberdiskloaf zzzerouberloaf


Detailed Description

orglwrite and subtree write are called from reap in credel.cxx

(to be defined)

Definition in file corediskout.cxx.


Define Documentation

#define hputinloaf hp,
lp,
tp   )     ((void)humberput((int)(hp),(humber)(lp),(unsigned int *)(tp)),(lp)=((char*)lp)+*(tp))
 

Definition at line 191 of file corediskout.cxx.

Referenced by varpackloaf().


Function Documentation

void checkmodifiednotthere typecuc father,
char *  string
[static]
 

???

(to be defined)

Definition at line 430 of file corediskout.cxx.

References assert, dump(), L, and typecuc::leftson.

Referenced by subtreewriterecurs().

00433 {
00434     return;
00435 
00436 #ifndef DISTRIBUTION
00437 #ifdef UnDeFineD
00438     if (father->modified && (!father->leftson) /* &&father->sonor.diskblocknumber== * DISKPTRNULL */ ) {
00439         dump(father);
00440         L("in %s subtreewrite", string);
00441         assert(0); // in   subtreewriterecurs bad crum
00442     }
00443 #endif
00444 #endif
00445 }

bool decrementusers  ) 
 

???

(to be defined)

Definition at line 292 of file be.cxx.

00293 {
00294     return false;
00295 }

void deletefullcrumandgarbageddescendents typediskloafptr  diskptr,
bool  deletefullcrumflag,
typediskloaf loafp,
typediskloafptr  newdiskptr
[static]
 

???

(to be defined)

Definition at line 529 of file corediskout.cxx.

References typecbc::cinfo, deletewithgarbageddescendents(), typediskloafptr::diskblocknumber, typegranorgl::diskorglptr, DISKPTRNULL, diskset(), GRAN, GRANORGL, typegranbottomcruminfo::granstuff, typegranbottomcruminfo::infotype, initcrum(), inorglinternal(), typecuc::leftbroorfather, NULL, typegranorgl::orglptr, typegranstuff::orglstuff, typecorecrum, and writeloaf().

Referenced by deletewithgarbageddescendents(), and orglwritepart2().

00534 {
00535     if (diskptr.diskblocknumber == DISKPTRNULL)
00536         return;
00537 
00538 /* kluge up a bottum crum, use it to read in granf, similarly for spanf */
00539 /* tempcbc = (typecbc *)createcrum(0,GRAN); */
00540 
00541     typecbc crum;
00542     typecbc *tempcbc = &crum;
00543     initcrum(0, GRAN, (typecorecrum *) &crum);
00544 
00545     tempcbc->cinfo.infotype                        = GRANORGL;
00546     tempcbc->cinfo.granstuff.orglstuff.diskorglptr = diskptr;
00547 
00548     typeuberrawdiskloaf crum2;
00549     if (deletefullcrumflag) {
00550         inorglinternal(tempcbc, &crum2);
00551         /* reserve(tempcbc); */
00552     } else {
00553         inorglinternal(tempcbc, &crum2);
00554         /* reserve(tempcbc); */
00555         diskset(newdiskptr.diskblocknumber);
00556         writeloaf(loafp, newdiskptr, false);
00557     }
00558 
00559     tempcbc->cinfo.granstuff.orglstuff.orglptr->leftbroorfather = NULL;
00560     deletewithgarbageddescendents(diskptr, (typecuc *) tempcbc, deletefullcrumflag);
00561     /* kluge SKIMP reserve and rejuvinate added 11-23-86 */
00562 }

void deletewithgarbageddescendents typediskloafptr  diskptr,
typecuc father,
bool  deletefullcrumflag
[static]
 

???

(to be defined)

Definition at line 572 of file corediskout.cxx.

References typecuc::cenftype, changerefcount(), deletefullcrumandgarbageddescendents(), findleftson(), findrightbro, GRAN, GRANFDISKLOCATION, GRANORGL, typecbc::height, typecuc::height, NULL, SPANFDISKLOCATION, and typecorecrum.

Referenced by deletefullcrumandgarbageddescendents().

00576 {
00577     typecbc *ptr;
00578     typediskloafptr ignoreddiskptr;
00579 
00580     if (father->height > 0)
00581         ptr = (typecbc *) findleftson(father);
00582 
00583 /* if !flag changerefcount and then possibly recurse */
00584     if (!deletefullcrumflag || !changerefcount(diskptr, -1)) {
00585         if (father->height > 0) {
00586             for (; ptr; ptr = (typecbc *) findrightbro((typecorecrum *) ptr)) {
00587                 if (ptr->height > 0)
00588                     deletewithgarbageddescendents(((typecuc *) ptr)->sonorigin, (typecuc *) ptr, true);
00589             }
00590         } else if (father->cenftype == GRAN && ((typecbc *) father)->cinfo.infotype == GRANORGL
00591                    && ((typecbc *) father)->cinfo.granstuff.orglstuff.orglincore
00592                    && ((typecbc *) father)->cinfo.granstuff.orglstuff.diskorglptr.diskblocknumber != GRANFDISKLOCATION
00593                    && ((typecbc *) father)->cinfo.granstuff.orglstuff.diskorglptr.diskblocknumber !=
00594                    SPANFDISKLOCATION) {
00595             deletefullcrumandgarbageddescendents(((typecbc *) father)->cinfo.granstuff.orglstuff.diskorglptr, true,     /* ECH 
00596                                                                                                                          * 8-28-88ignoreddiskptr, */
00597                                                  (typediskloaf *) NULL, ignoreddiskptr);
00598         }
00599     }
00600 /* subtreefree(ptr); *//*12/04/86 */
00601 }

void diskexit  ) 
 

???

(to be defined)

Definition at line 130 of file corediskout.cxx.

References indiskexit().

Referenced by frontenddied(), and quitxanadu().

00131 {
00132     indiskexit();
00133 }

void diskflush  ) 
 

???

(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 }

void hputinfo typecbc ptr,
char **  loafptrptr
[static]
 

???

(to be defined)

Definition at line 239 of file corediskout.cxx.

References assert, typecbc::cinfo, typediskloafptr::diskblocknumber, typegranorgl::diskorglptr, GRANNULL, GRANORGL, typegranbottomcruminfo::granstuff, GRANTEXT, typecbc::height, humber, humberput(), typegranbottomcruminfo::infotype, typediskloafptr::insidediskblocknumber, is2dcrum(), L, movmem, typegranstuff::orglstuff, typegrantext::textlength, typegrantext::textstring, typegranstuff::textstuff, tumblerfixedtoptr(), and typecorecrum.

Referenced by varpackloaf().

00242 {
00243     unsigned int temp;
00244 
00245     if (!is2dcrum((typecorecrum *) ptr)) {
00246         (void)humberput(ptr->cinfo.infotype, (humber) * loafptrptr, &temp);
00247         *loafptrptr += temp;
00248         if (ptr->cinfo.infotype == GRANTEXT) {
00249             (void)humberput((int) ptr->cinfo.granstuff.textstuff.textlength, (humber) * loafptrptr, &temp);
00250             *loafptrptr += temp;
00251 /* hputinloaf(ptr->cinfo.granstuff.textstuff.textlength,(*loafptrptr),&temp); */
00252             movmem(ptr->cinfo.granstuff.textstuff.textstring, (*loafptrptr), ptr->cinfo.granstuff.textstuff.textlength);
00253             *loafptrptr += ptr->cinfo.granstuff.textstuff.textlength;
00254             return;
00255         } else if (ptr->cinfo.infotype == GRANORGL) {
00256             (void)humberput(ptr->cinfo.granstuff.orglstuff.diskorglptr.diskblocknumber, (humber) * loafptrptr, &temp);
00257             *loafptrptr += temp;
00258             (void)humberput(ptr->cinfo.granstuff.orglstuff.diskorglptr.insidediskblocknumber, (humber) * loafptrptr,
00259                             &temp);
00260             *loafptrptr += temp;
00261 /* hputinloaf(ptr->cinfo.granstuff.orglstuff.diskorglptr,(*loafptrptr),&temp); */
00262             return;
00263         } else if (ptr->cinfo.infotype == GRANNULL) {
00264             return;
00265         } else {
00266             L("weird infotype in hputinfo %d \n", ptr->cinfo.infotype);
00267             assert(0); // weird infotype in hputinfo
00268             return;
00269         }
00270     } else {
00271         if (ptr->height) {
00272 /* looks like we got this all */
00273         } else {
00274             temp = tumblerfixedtoptr(&((type2dcbc *) ptr)->c2dinfo.homedoc, (humber) * loafptrptr);
00275             (*loafptrptr) += temp;
00276         }
00277     }
00278 }

void hputwiddsp typecuc ptr,
char **  loafptrptr
[static]
 

???

(to be defined)

Definition at line 204 of file corediskout.cxx.

References typecuc::cdsp, typecuc::cenftype, typecuc::cwid, typewid::dsas, humber, tumblerfixedtoptr(), and widsize.

Referenced by varpackloaf().

00207 {
00208     unsigned int temp;
00209 
00210     int nstreams = widsize(ptr->cenftype);
00211     typewid *wptr = &ptr->cdsp;
00212 
00213     int i;
00214     for (i = 0; i < nstreams; ++i) {
00215         temp = tumblerfixedtoptr(&wptr->dsas[i], (humber) *loafptrptr);
00216         *loafptrptr += temp;
00217     }
00218 
00219     wptr = &ptr->cwid;
00220 
00221     for (i = 0; i < nstreams; ++i) {
00222         temp = tumblerfixedtoptr(&wptr->dsas[i], (humber) *loafptrptr);
00223         *loafptrptr += temp;
00224     }
00225 }

void indiskexit  )  [static]
 

???

(to be defined)

Definition at line 111 of file corediskout.cxx.

References closediskfile(), decrementusers(), and writeenfilades().

Referenced by diskexit().

00112 {
00113     if (decrementusers())
00114         return;
00115 
00116     writeenfilades();
00117     closediskfile();
00118 
00119     exit(0);
00120 }

void orglwrite typecbc orglcbcptr  ) 
 

???

(to be defined)

<Input: User's session context

Definition at line 684 of file corediskout.cxx.

References assert, Session::free(), NULL, and orglwritepart2().

Referenced by reap(), and writeenfilades().

00686 {
00687     assert(orglcbcptr != NULL); // in orglwrite passed NULL
00688 
00689     //now done via a ctor:: inittask(&sess);
00690     Session sess;          
00691     orglwritepart2(&sess, orglcbcptr);
00692     sess.free();
00693 }

void orglwritepart2 Session sess,
typecbc orglcbcptr
[static]
 

???

(to be defined)

Parameters:
sess  Input: User's session context

Definition at line 611 of file corediskout.cxx.

References assert, typecuc::cenftype, changerefcount(), typecbc::cinfo, deletefullcrumandgarbageddescendents(), diskheader, typegranorgl::diskorglptr, typegranbottomcruminfo::granstuff, Diskheader::hasenftops, humber, humber3put(), L, NULL, orglfree(), typegranorgl::orglincore, typegranorgl::orglptr, typegranstuff::orglstuff, packloaf(), partialdiskalloc(), POOM, rejuvinate, reserve(), subtreewriterecurs(), typecorecrum, writeloaf(), and zzzeroloaf.

Referenced by orglwrite(), and subtreewriterecurs().

00612                                      : User's session context
00613     typecbc *orglcbcptr)
00614 {
00615     L("beginning orglwritepart2()\n");
00616     assert(orglcbcptr != NULL);
00617 
00618     typediskloaf loaf = zzzeroloaf;
00619 
00620     typegranbottomcruminfo *infoptr = &orglcbcptr->cinfo;
00621     typecuc                *orglptr = infoptr->granstuff.orglstuff.orglptr;
00622 
00623     if (!orglcbcptr->modified && orglptr) {
00624         orglfree(orglptr);
00625         return;
00626     }
00627 
00628     if (infoptr->granstuff.orglstuff.orglincore) {
00629         L("orglincore\n");
00630 
00631         L("calling reserve()\n");
00632         reserve((typecorecrum *) orglcbcptr);
00633         L("returned from calling reserve()\n");
00634 
00635         typediskloafptr olddiskptr = infoptr->granstuff.orglstuff.diskorglptr;
00636         L("calling subtreewriterecurs()\n");
00637         subtreewriterecurs(sess, orglptr);
00638         L("returned from calling subtreewriterecurs()\n");
00639 
00640         //writefullcrum(orgl);
00641 
00642         int size = packloaf(orglptr, &loaf, 1, 1);
00643         unsigned int dummy;
00644         humber3put(size, (humber) &loaf, &dummy);
00645 
00646         if (orglptr->cenftype == POOM) {
00647             L("cenftype == POOM\n");
00648 
00649             int newloaf;
00650             typediskloafptr temploaf = partialdiskalloc(size, &newloaf);
00651             writeloaf(&loaf, temploaf, newloaf);
00652             changerefcount(temploaf, 1);
00653 
00654             infoptr->granstuff.orglstuff.diskorglptr = temploaf;
00655             // in below, olddiskptr is just a placeholder
00656             deletefullcrumandgarbageddescendents(olddiskptr, true, (typediskloaf *) NULL, olddiskptr);
00657             //writeloaf(&loaf, infoptr->granstuff.orglstuff.diskorglptr, true);
00658         } else {
00659             L("cenftype != POOM\n");
00660 
00661             if (diskheader.hasenftops) {
00662                 deletefullcrumandgarbageddescendents(olddiskptr, false, &loaf, infoptr->granstuff.orglstuff.diskorglptr);
00663                 //writeloaf(&loaf, infoptr->granstuff.orglstuff.diskorglptr, true);
00664             } else {
00665                 writeloaf(&loaf, infoptr->granstuff.orglstuff.diskorglptr, true);
00666             }
00667         }
00668 
00669         /* NULL EFFECT HERE */
00670         /* ptr->modified = false; */
00671         rejuvinate((typecorecrum *) orglcbcptr);
00672         orglfree(orglptr);
00673     }
00674 }

int packloaf typecuc father,
typediskloaf loafptr,
int  refcount,
int  flag
[static]
 

???

(to be defined)

Definition at line 375 of file corediskout.cxx.

References varpackloaf().

Referenced by orglwritepart2(), and uniqueoutloaf().

00380 {
00381     return varpackloaf(father, loafptr, refcount, flag);
00382 }

void subtreewrite typecuc father  ) 
 

???

(to be defined)

<Input: User's session context

Definition at line 703 of file corediskout.cxx.

References Session::free(), and subtreewriterecurs().

Referenced by reap().

00705 {
00706     Session sess;          
00707 
00708     //Now done via a ctor:: inittask(&sess);
00709     subtreewriterecurs(&sess, father);
00710 /* decrementandfreedisk (top); */
00711     sess.free();
00712 }

void subtreewriterecurs Session sess,
typecuc father
[static]
 

???

(to be defined)

Parameters:
sess  Input: User's session context

Definition at line 455 of file corediskout.cxx.

References assert, typecbc::cenftype, changerefcount(), checkmodifiednotthere(), typecbc::cinfo, typediskloafptr::diskblocknumber, DISKPTRNULL, dump(), dumpsubtree(), GRAN, GRANNULL, GRANORGL, GRANTEXT, typecbc::height, typecuc::height, typegranbottomcruminfo::infotype, L, typecuc::leftson, loaffree(), orglwritepart2(), typecbc::rightbro, typecuc::sonorigin, typecorecrum, and uniqueoutloaf().

Referenced by orglwritepart2(), and subtreewrite().

00456                                      : User's session context
00457     typecuc *father)
00458 {
00459     if (!father || !father->height)
00460         assert(0); // Bad subtreewrite call
00461 
00462     /* this, of course, assumes modified is set right */
00463     if (!father->modified) {
00464         if (father->sonorigin.diskblocknumber == DISKPTRNULL) {
00465             L("insubtreewriterecurs sonorigin == -1\n");
00466             dumpsubtree(father);
00467             assert(0); // in subtreewriterecurs
00468         }
00469         loaffree(father);
00470         return;
00471     }
00472 
00473     // in order to guarantee integrity of disk, it's important to write out or increment sons before father
00474 
00475     checkmodifiednotthere(father, "A");
00476     typecbc *ptr;
00477     for (ptr = (typecbc *) father->leftson; ptr; ptr = (typecbc *) ptr->rightbro) {
00478         if (ptr->height == 0 && ptr->cenftype == GRAN && ptr->cinfo.infotype != GRANTEXT && ptr->cinfo.infotype != GRANORGL && ptr->cinfo.infotype != GRANORGL && ptr->cinfo.infotype != GRANNULL) {
00479             L("bad infotypein subtreewriterecursive  = %d\n", ptr->cinfo.infotype);
00480             dump((typecorecrum *) ptr);
00481             assert(0); // subtreewriterecurs
00482         }
00483 
00484         if (ptr->height != 0)
00485             subtreewriterecurs(sess, (typecuc *) ptr);
00486         else if (ptr->cenftype == GRAN && ptr->height == 0 && ((typecbc *) ptr)->cinfo.infotype == GRANORGL)
00487             orglwritepart2(sess, ptr);
00488 
00489         ptr->modified = false;
00490     }
00491 
00492     if (father->modified) {
00493         checkmodifiednotthere(father, "B");
00494 
00495         for (ptr = (typecbc *) father->leftson; ptr; ptr = (typecbc *) ptr->rightbro) {
00496             if (ptr->height > 0 && ((typecuc *) ptr)->sonorigin.diskblocknumber != DISKPTRNULL)
00497                 changerefcount(((typecuc *) ptr)->sonorigin, 1);
00498         }
00499 
00500         checkmodifiednotthere(father, "C");
00501         uniqueoutloaf(father, 0);
00502     }
00503 
00504     /* rejuvinate(father); */
00505     loaffree(father);
00506 }

void uniqueoutloaf typecuc father,
int  refcount
[static]
 

???

(to be defined)

Definition at line 392 of file corediskout.cxx.

References addallocatedloaftopartialallocedtables(), assert, typediskloafptr::diskblocknumber, DISKPTRNULL, findleftson(), humber, humber3put(), typecuc::leftson, packloaf(), partialdiskalloc(), typecuc::sonorigin, writeloaf(), and zzzerouberloaf.

Referenced by subtreewriterecurs().

00395 {
00396     assert(father->modified);
00397 
00398     typeuberdiskloaf loaf = zzzerouberloaf;
00399     if ((!father->leftson) && father->sonorigin.diskblocknumber != DISKPTRNULL) {
00400         findleftson(father);     /* get it in so we know numberof sons zzz KLUGE is this right aug 15 86 */
00401         /* father->numberofsons = findnumberofdamnsons(father); */
00402     }
00403 
00404     int size = packloaf(father, (typediskloaf *) &loaf, refcount, 0);
00405 
00406     int newloaf;
00407     father->sonorigin = partialdiskalloc(size, &newloaf);
00408 
00409     unsigned int temp;
00410     humber3put(size, (humber) &loaf, &temp);
00411 
00412     /* loaf.numberofunterloafs = 1; */
00413 
00414     if (false && newloaf) {
00415         addallocatedloaftopartialallocedtables(father->sonorigin, size);
00416     }
00417 
00418     writeloaf((typediskloaf *) &loaf, father->sonorigin, newloaf);
00419     father->modified = false;
00420 }

int varpackloaf typecuc father,
typediskloaf xloafptr,
int  refcount,
int  flag
[static]
 

???

(to be defined)

Definition at line 290 of file corediskout.cxx.

References assert, typecuc::cenftype, typediskloafptr::diskblocknumber, DISKPTRNULL, dump(), findleftson(), typecuc::height, hputinfo(), hputinloaf, hputwiddsp(), humber, humber3put(), typediskloafptr::insidediskblocknumber, typecuc::leftson, typecuc::numberofsons, typecorecrumhedr::rightbro, typecuc::sonorigin, toomanysons(), and typecorecrum.

Referenced by packloaf().

00295 {
00296     typecorecrum *ptr;
00297     int ret;
00298     unsigned int temp;
00299 
00300     char *loafptr = (char *) xloafptr;
00301 
00302     if (!flag) {
00303         if (!father || father->height == 0 || !loafptr) {
00304             dump((typecorecrum *) father);
00305             assert(0); // bad packloaf call
00306         }
00307 
00308         assert(!father->leftson || !toomanysons(father)); // ERROR: Too many sons in packloaf
00309         
00310 /* tempptr = loafptr; */
00311         loafptr += 3;                  /* make room for loaflength */
00312         hputinloaf(false, loafptr, &temp);
00313         hputinloaf(father->height - 1, loafptr, &temp);
00314         hputinloaf(father->cenftype, loafptr, &temp);
00315         hputinloaf(father->numberofsons, loafptr, &temp);
00316         hputinloaf(refcount, loafptr, &temp);
00317 
00318     } else {
00319 /* tempptr = loafptr; */
00320         loafptr += 3;                  /* make room for loaflength */
00321         hputinloaf(true, loafptr, &temp);
00322         hputinloaf(father->height, loafptr, &temp);
00323         hputinloaf(father->cenftype, loafptr, &temp);
00324         hputinloaf(1, loafptr, &temp);
00325         hputinloaf(refcount, loafptr, &temp);
00326 
00327         hputwiddsp(father, &loafptr);
00328         hputinloaf(father->sonorigin.diskblocknumber, loafptr, &temp);
00329         hputinloaf(father->sonorigin.insidediskblocknumber, loafptr, &temp);
00330 
00331         if (father->sonorigin.diskblocknumber == 0) {
00332             // dump (ptr);
00333             assert(0); // trying to write 0 block
00334         }
00335         if (father->sonorigin.diskblocknumber == DISKPTRNULL) {
00336             /* dump (ptr); */
00337             assert(0); // trying to write DSKPTRNULL block
00338         }
00339 
00340         return (int) loafptr - (int) xloafptr;
00341     }
00342 
00343     for (ptr = (typecorecrum *) findleftson(father); ptr; ptr = ptr->rightbro) {
00344         hputwiddsp((typecuc *) ptr, (char **)&loafptr);
00345         if (ptr->height != 0) {
00346             hputinloaf(((typecuc *) ptr)->sonorigin.diskblocknumber, loafptr, &temp);
00347             hputinloaf(((typecuc *) ptr)->sonorigin.insidediskblocknumber, loafptr, &temp);
00348 
00349             if (((typecuc *) ptr)->sonorigin.diskblocknumber == 0) {
00350                 dump(ptr);
00351                 assert(0); // trying to write 0 block
00352             }
00353 
00354             if (((typecuc *) ptr)->sonorigin.diskblocknumber == DISKPTRNULL) {
00355                 dump(ptr);
00356                 assert(0); // trying to write DISKPTRNULL block
00357             }
00358         } else
00359             hputinfo((typecbc *) ptr, &loafptr);
00360     }
00361 
00362     ret = (int) loafptr - (int) xloafptr;
00363     humber3put(ret, (humber) xloafptr, &temp);
00364     return ret;
00365 }

void writeenfilades  ) 
 

???

(to be defined)

Definition at line 159 of file corediskout.cxx.

References typecbc::cinfo, typediskloafptr::diskblocknumber, typegranorgl::diskorglptr, granf, GRANFDISKLOCATION, typegranbottomcruminfo::granstuff, typediskloafptr::insidediskblocknumber, L, typecbc::leftbroorfather, NULL, typegranorgl::orglincore, typegranorgl::orglptr, typegranstuff::orglstuff, orglwrite(), spanf, SPANFDISKLOCATION, and typecorecrum.

Referenced by diskflush(), flagquitting(), indiskexit(), and main().

00160 {
00161     L("entering writeenfilades()\n");
00162 
00163     typecbc temporgl;
00164 
00165     temporgl.leftbroorfather                                             = NULL;
00166     temporgl.modified                                                    = true;
00167     temporgl.cinfo.granstuff.orglstuff.orglincore                        = true;
00168     temporgl.cinfo.granstuff.orglstuff.diskorglptr.diskblocknumber       = GRANFDISKLOCATION;
00169     temporgl.cinfo.granstuff.orglstuff.diskorglptr.insidediskblocknumber = 0;
00170     temporgl.cinfo.granstuff.orglstuff.orglptr                           = (typecuc *) granf;
00171     ((typecuc *) granf)->leftbroorfather                                 = (typecorecrum *) &temporgl;
00172 
00173     L("about to orglwrite() GRANF\n");
00174     orglwrite(&temporgl);
00175     L("returned from orglwrite() GRANF\n");
00176 
00177     temporgl.modified                                                    = true;
00178     temporgl.cinfo.granstuff.orglstuff.orglincore                        = true;
00179     temporgl.cinfo.granstuff.orglstuff.diskorglptr.diskblocknumber       = SPANFDISKLOCATION;
00180     temporgl.cinfo.granstuff.orglstuff.diskorglptr.insidediskblocknumber = 0;
00181     temporgl.cinfo.granstuff.orglstuff.orglptr                           = (typecuc *) spanf;
00182     ((typecuc *) spanf)->leftbroorfather                                 = (typecorecrum *) &temporgl;
00183 
00184     L("about to orglwrite() SPANF\n");
00185     orglwrite(&temporgl);
00186     L("returned from orglwrite() SPANF\n");
00187 
00188     L("leaving writeenfilades()\n");
00189 }


Variable Documentation

typegranf granf
 

Definition at line 91 of file corediskout.cxx.

Referenced by appendpm(), diskflush(), docopy(), docopyinternal(), docreatelink(), docreatenewdocument(), docreatenewversion(), docreatenode_or_account(), dodeletevspan(), doinsert(), domakelink(), dorearrange(), doretrievedocvspan(), doretrievedocvspanfoo(), doretrievedocvspanset(), doretrievev(), dumpgranfwids(), examine(), initsession(), link2sporglset(), restrictvspecsetovercommonispans(), showenfilades(), showorgl(), specset2ispanset(), sporglset2vspanset(), vspanset2sporglset(), and writeenfilades().

int noeatbrosnd
 

Definition at line 89 of file corediskout.cxx.

Referenced by eatbrossubtreend().

int noishouldbother
 

Definition at line 87 of file corediskout.cxx.

Referenced by ishouldbother().

int notakenephewnd
 

Definition at line 88 of file corediskout.cxx.

Referenced by takenephewnd().

typespanf spanf
 

Definition at line 92 of file corediskout.cxx.

Referenced by diskflush(), docopy(), docopyinternal(), docreatelink(), dofindlinksfromtothree(), dofindnumoflinksfromtothree(), domakelink(), examine(), finddocscontainingsp(), findnextnlinksfromtothreesp(), initsession(), retrievesporglsetinrange(), showenfilades(), and writeenfilades().

typediskloaf zzzeroloaf
 

Definition at line 94 of file corediskout.cxx.

Referenced by orglwritepart2().

typeuberdiskloaf zzzerouberloaf
 

Definition at line 95 of file corediskout.cxx.

Referenced by uniqueoutloaf().


Generated on Sun Aug 21 04:18:26 2005 for Udanax-Green by doxygen1.3.4