|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 4.0 ! 3: * Copyright (c) 1982, 1992 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: #ifdef _I386 ! 26: off_t s_size; /* Size in bytes */ ! 27: cseg_t *s_vmem; /* page table address */ ! 28: #else ! 29: faddr_t s_faddr; /* Memory access selector */ ! 30: fsize_t s_size; /* Size in bytes */ ! 31: paddr_t s_paddr; /* Physical base address */ ! 32: #endif ! 33: daddr_t s_daddr; /* Disk base address */ ! 34: } SEG; ! 35: ! 36: /* ! 37: * Flags (s_flags). ! 38: */ ! 39: #define SFCORE 0x0001 /* Memory resident */ ! 40: #define SFDOWN 0x0002 /* Segment grows downward */ ! 41: #define SFSHRX 0x0004 /* Shared segment */ ! 42: #define SFTEXT 0x0008 /* Text segment */ ! 43: #define SFHIGH 0x0010 /* Text segment */ ! 44: #define SFSYST 0x0020 /* System segment */ ! 45: ! 46: /* ! 47: * Pseudo flags. (passed to salloc). ! 48: */ ! 49: #define SFNSWP 0x4000 /* Don't swap */ ! 50: #define SFNCLR 0x8000 /* Don't clear segment */ ! 51: ! 52: #ifdef KERNEL ! 53: /* ! 54: * Functions. ! 55: */ ! 56: extern SEG *iomapvp(); /* bio.c */ ! 57: extern SEG *segdupl(); /* seg.c */ ! 58: extern SEG *ssalloc(); /* seg.c */ ! 59: extern SEG *salloc(); /* seg.c */ ! 60: extern SEG *segsext(); /* seg.c */ ! 61: extern SEG *segdupd(); /* seg.c */ ! 62: extern SEG *sdalloc(); /* seg.c */ ! 63: extern SEG *smalloc(); /* seg.c */ ! 64: extern SEG *shalloc(); /* seg.c */ ! 65: extern SEG *exaread(); /* exec.c */ ! 66: extern SEG *exsread(); /* exec.c */ ! 67: extern SEG *exstack(); /* exec.c */ ! 68: ! 69: /* ! 70: * Global variables. ! 71: */ ! 72: extern int sexflag; /* Swapper existant */ ! 73: extern GATE seglink; /* Gate for s_forw and s_back */ ! 74: extern SEG segswap; /* Segments reserved for the swapper */ ! 75: extern SEG segmq; /* Memory segment queue */ ! 76: extern SEG segdq; /* Segment disk queue */ ! 77: extern SEG segiom; /* I/O memory segment */ ! 78: ! 79: #endif ! 80: ! 81: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.