Annotation of os2sdk/demos/apps/sse/ssemem.c, revision 1.1.1.1

1.1       root        1: #include <doscalls.h>
                      2: #include <dos.h>
                      3: #include "ssedefs.h"
                      4: 
                      5: 
                      6: 
                      7: 
                      8: /*** allocseg - allocates segments.
                      9:  *
                     10:  *   allocseg uses DOSALLOCSEG to allocate segments from DOS.
                     11:  *
                     12:  *   This routine will return an error code if it is unable to
                     13:  *     allocate the segment.
                     14:  *
                     15:  *   EXIT   rc - return code of DOSALLOCSEG
                     16:  *
                     17:  *
                     18:  *   EFFECTS : allocates memory from DOS
                     19:  *            modifies SegTable (by adding a new segment)
                     20:  *            modifies TotalSegs (by incrementing it by one)
                     21:  */
                     22: 
                     23: short allocseg()
                     24: {
                     25:   short  rc;   /* return code of DOS call */
                     26: 
                     27:   rc = DOSALLOCSEG(SEGSIZE,
                     28:                   (unsigned far *)&(SegTable[TotalSegs].segment),
                     29:                   NOTSHARED);
                     30: 
                     31:   if (rc == 0) {
                     32:       SegTable[TotalSegs].free = SEGSIZE;
                     33:       ++TotalSegs;
                     34:   }
                     35: 
                     36:   return(rc);
                     37: } /* end allocseg */
                     38: 
                     39: 
                     40: 
                     41: 
                     42: /*** freesegs - free segments
                     43:  *
                     44:  *   freesegs uses DOSFREESEG to free all the segments
                     45:  *     allocated by allocseg.
                     46:  *
                     47:  *   EFFECTS: frees all alocated memory (segments) to DOS
                     48:  *           sets TotalSegs to zero
                     49:  *           makes SegTable invalid
                     50:  */
                     51: 
                     52: void freesegs()
                     53: {
                     54:   register unsigned short i;
                     55: 
                     56:   for (i = 0; i < TotalSegs; i++) {
                     57:       DOSFREESEG(SegTable[i].segment);
                     58:   }
                     59:   TotalSegs = 0;
                     60: } /* end freesegs */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.