|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 3.0 ! 3: * Copyright (c) 1982, 1990 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * Segments. ! 8: */ ! 9: ! 10: #ifndef SEG_H ! 11: #define SEG_H SEG_H ! 12: ! 13: #include <sys/types.h> ! 14: ! 15: /* ! 16: * Segment structure. ! 17: */ ! 18: typedef struct seg { ! 19: struct seg * s_forw; /* Forward pointer */ ! 20: struct seg * s_back; /* Backward pointer */ ! 21: struct inode * s_ip; /* Inode pointer for shared text */ ! 22: short s_flags; /* Flags */ ! 23: short s_urefc; /* Reference count of segment */ ! 24: short s_lrefc; /* Lock reference count */ ! 25: faddr_t s_faddr; /* Memory access selector */ ! 26: fsize_t s_size; /* Size in bytes */ ! 27: paddr_t s_paddr; /* Physical base address */ ! 28: daddr_t s_daddr; /* Disk base address */ ! 29: } SEG; ! 30: ! 31: /* ! 32: * Flags (s_flags). ! 33: */ ! 34: #define SFCORE 0000001 /* Memory resident */ ! 35: #define SFDOWN 0000002 /* Segment grows downward */ ! 36: #define SFSHRX 0000004 /* Shared segment */ ! 37: #define SFTEXT 0000010 /* Text segment */ ! 38: #define SFHIGH 0000020 /* Allocate segment from high end */ ! 39: #define SFSYST 0000040 /* System segment */ ! 40: ! 41: /* ! 42: * Pseudo flags. (passed to salloc). ! 43: */ ! 44: #define SFNSWP 0040000 /* Don't swap */ ! 45: #define SFNCLR 0100000 /* Don't clear segment */ ! 46: ! 47: #ifdef KERNEL ! 48: /* ! 49: * Functions. ! 50: */ ! 51: extern SEG *iomapvp(); /* bio.c */ ! 52: extern SEG *segdupl(); /* seg.c */ ! 53: extern SEG *ssalloc(); /* seg.c */ ! 54: extern SEG *salloc(); /* seg.c */ ! 55: extern SEG *segsext(); /* seg.c */ ! 56: extern SEG *segdupd(); /* seg.c */ ! 57: extern SEG *sdalloc(); /* seg.c */ ! 58: extern SEG *smalloc(); /* seg.c */ ! 59: extern SEG *shalloc(); /* seg.c */ ! 60: extern SEG *exaread(); /* exec.c */ ! 61: extern SEG *exsread(); /* exec.c */ ! 62: extern SEG *exstack(); /* exec.c */ ! 63: ! 64: #endif ! 65: ! 66: #ifdef KERNEL ! 67: /* ! 68: * Global variables. ! 69: */ ! 70: extern int sexflag; /* Swapper existant */ ! 71: extern GATE seglink; /* Gate for s_forw and s_back */ ! 72: extern SEG segswap; /* Segments reserved for the swapper */ ! 73: extern SEG segmq; /* Memory segment queue */ ! 74: extern SEG segdq; /* Segment disk queue */ ! 75: extern SEG segiom; /* I/O memory segment */ ! 76: ! 77: #endif ! 78: ! 79: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.