1: /*	extent.c	1.7	83/05/13	*/
   2: 
   3: #include <stdio.h>
   4: #include "cpmio.h"
   5: #include "cpmfio.h"
   6: 
   7: /*
   8:  * Allocate a new extent to the file pointed to by curext,
   9:  * or, if curext < 0, return the index of the first free
  10:  * directory slot.
  11:  * Return a negative pointer if no directory space, otherwise
  12:  * the index to the new extent.
  13:  */
  14: 
  15: creext(curext)
  16:     int curext;
  17: {
  18: 
  19:     int i, j;
  20: 
  21:     for (i=0; i < maxdir; i++)
  22:         if ((dirbuf + i)->status == (char) 0xe5)
  23:             break;
  24:     if (i == maxdir)
  25:         return (EOF);
  26:     if (curext >= 0)
  27:         *(dirbuf+i) = *(dirbuf+curext);
  28: 
  29:     /* clear all file pointers */
  30:     for (j=0; j<16; j++)
  31:         (dirbuf+i)->pointers[j] = '\0';
  32: 
  33: #ifdef DEBUG
  34:     printf("extent allocated: %d (old: %d)\n", i, curext);
  35:     printf("extent data: 0x%x, name: %s\n", (dirbuf+i)->status,
  36:             (dirbuf+i)->name);
  37: #endif
  38:     return(i);
  39: }
  40: 
  41: 
  42: /*
  43:  * Find next extent of the file pointed to by file pointer 'current',
  44:  * return the new extent's index if found, otherwise NULL.
  45:  */
  46: 
  47: getnext(cur)
  48:     C_FILE  *cur;
  49: {
  50: 
  51:     int ind;
  52: 
  53:     cur->c_extno++;
  54:     for (ind = 0; ind < maxdir; ind++)
  55:         if ((strncmp(cur->c_dirp->name,(dirbuf+ind)->name,8)==0) &&
  56:             (strncmp((dirbuf+ind)->ext, cur->c_dirp->ext,3)==0) &&
  57:             ((dirbuf+ind)->extno == cur->c_extno)) {
  58:             cur->c_ext=ind;
  59:             cur->c_seccnt = 0xff & (int)(dirbuf+ind)->blkcnt;
  60:             cur->c_dirp = dirbuf + ind;
  61:             cur->c_blk = 0;
  62: #ifdef DEBUG
  63:             printf("getnext: dir. index: %d\n",ind);
  64: #endif
  65:             return (ind);
  66:         }
  67:     return (NULL);
  68: }

Defined functions

creext defined in line 15; used 2 times
Last modified: 1983-06-24
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 999
Valid CSS Valid XHTML 1.0 Strict