File:  [MW Coherent from dump] / coherent / a / usr / include.b4ps2 / sys / seg.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:34 2019 UTC (7 years ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

/* (-lgl
 * 	COHERENT Version 4.0
 * 	Copyright (c) 1982, 1992 by Mark Williams Company.
 * 	All rights reserved. May not be copied without permission.
 -lgl) */
/*
 * Segments.
 */

#ifndef	 SEG_H
#define	 SEG_H	SEG_H

#include <sys/types.h>

/*
 * Segment structure.
 */
typedef struct seg {
	struct	 seg * s_forw;		/* Forward pointer */
	struct	 seg * s_back;		/* Backward pointer */
	struct	 inode * s_ip;		/* Inode pointer for shared text */
	short	 s_flags;		/* Flags */
	short	 s_urefc;		/* Reference count of segment */
	short	 s_lrefc;		/* Lock reference count */
#ifdef _I386
	off_t	 s_size;		/* Size in bytes */
	cseg_t	 *s_vmem;		/* page table address */
#else
	faddr_t	 s_faddr;		/* Memory access selector */
	fsize_t	 s_size;		/* Size in bytes */
	paddr_t  s_paddr;		/* Physical base address */
#endif
	daddr_t	 s_daddr;		/* Disk base address */
} SEG;

/*
 * Flags (s_flags).
 */
#define SFCORE	0x0001			/* Memory resident */
#define	SFDOWN	0x0002			/* Segment grows downward */
#define SFSHRX	0x0004			/* Shared segment */
#define SFTEXT	0x0008			/* Text segment */
#define SFHIGH	0x0010			/* Text segment */
#define	SFSYST	0x0020			/* System segment */

/*
 * Pseudo flags.  (passed to salloc).
 */
#define	SFNSWP	0x4000			/* Don't swap */
#define SFNCLR	0x8000			/* Don't clear segment */

#ifdef KERNEL
/*
 * Functions.
 */
extern	SEG	*iomapvp();		/* bio.c */
extern	SEG	*segdupl();		/* seg.c */
extern	SEG	*ssalloc();		/* seg.c */
extern	SEG	*salloc();		/* seg.c */
extern	SEG	*segsext();		/* seg.c */
extern	SEG	*segdupd();		/* seg.c */
extern	SEG	*sdalloc();		/* seg.c */
extern	SEG	*smalloc();		/* seg.c */
extern	SEG	*shalloc();		/* seg.c */
extern	SEG	*exaread();		/* exec.c */
extern	SEG	*exsread();		/* exec.c */
extern	SEG	*exstack();		/* exec.c */

/*
 * Global variables.
 */
extern	int	sexflag;		/* Swapper existant */
extern	GATE	seglink;		/* Gate for s_forw and s_back */
extern	SEG	segswap;		/* Segments reserved for the swapper */
extern	SEG	segmq;			/* Memory segment queue */
extern	SEG	segdq;			/* Segment disk queue */
extern	SEG	segiom;			/* I/O memory segment */

#endif

#endif

unix.superglobalmegacorp.com

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