|
|
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.