DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦41acc41de⟧ TextFile

    Length: 3122 (0xc32)
    Types: TextFile
    Notes: UNIX file
    Names: »uproc.h«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦2d53db1df⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »sys/h/uproc.h« 

TextFile

/* (-lgl
 * 	The information contained herein is a trade secret of Mark Williams
 * 	Company, and  is confidential information.  It is provided  under a
 * 	license agreement,  and may be  copied or disclosed  only under the
 * 	terms of  that agreement.  Any  reproduction or disclosure  of this
 * 	material without the express written authorization of Mark Williams
 * 	Company or persuant to the license agreement is unlawful.
 * 
 * 	COHERENT Version 0.7.3
 * 	Copyright (c) 1982, 1983, 1984.
 * 	An unpublished work by Mark Williams Company, Chicago.
 * 	All rights reserved.
 -lgl) */
/*
 * The user process area.
 */
#ifndef	 UPROC_H
#define	 UPROC_H
#include <param.h>
#include <types.h>
#include <machine.h>
#include <dir.h>
#include <io.h>
#include <proc.h>
#include <signal.h>

/*
 * Open segment structure.
 */
typedef struct sr {
	int	 sr_flag;		/* Flags for this reference */
	vaddr_t	 sr_base;		/* Virtual address base */
	vaddr_t	 sr_size;		/* Mapped in window size */
	struct	 seg *sr_segp;		/* Segment pointer */
} SR;

/*
 * Flags (sr_flag).
 */
#define SRFPMAP	01			/* Segment is mapped in process */
#define SRFDUMP	02			/* Dump segment */
#define	SRFDATA	04			/* Data segment */

/*
 * User process structure.
 */
typedef struct uproc {
	char	 u_error;		/* Error number (must be first) */
	char	 u_flag;		/* Flags (for accounting) */
	int	 u_uid;			/* User id */
	int	 u_gid;			/* Group id */
	int	 u_ruid;		/* Real user id */
	int	 u_rgid;		/* Real group id */
	unsigned u_umask;		/* Mask for file creation */
	struct	 inode *u_cdir;		/* Current working directory */
	struct	 inode *u_rdir;		/* Current root directory */
	struct	 fd *u_filep[NUFILE];	/* Open files */
	struct	 sr u_segl[NUSEG];	/* User segment descriptions */
	int	 (*u_sfunc[NSIG])();	/* Signal functions */

	/*
	 * System working area.
	 */
	struct	 seg *u_sege[NUSEG];	/* Exec segment descriptors */
	MPROTO	 u_sproto;		/* User prototype */
	MCON	 u_syscon;		/* System context save */
	MENV	 u_sigenv;		/* Signal return */
	MGEN	 u_sysgen;		/* General purpose area */
	int	 u_args[(MSASIZE*sizeof(char)+sizeof(int)-1)/sizeof(int)];
	struct	 io u_io;		/* User area I/O template */

	/*
	 * Set by ftoi.
	 */
	ino_t	 u_cdirn;		/* Child inode number */
	struct	 inode *u_cdiri;	/* Child inode pointer */
	struct	 inode *u_pdiri;	/* Parent inode pointer */
	struct	 direct u_direct;	/* Directory name */

	/*
	 * Accounting fields.
	 */
	char	 u_comm[10];		/* Command name */
	time_t	 u_btime;		/* Beginning time of process */
	int	 u_memuse;		/* Average memory usage */
	long	 u_block;		/* Count of disk blocks */

	/*
	 * Profiler fields.
	 */
	vaddr_t  u_ppc;			/* Profile pc from clock */
	vaddr_t	 u_pbase;		/* Profiler base */
	vaddr_t	 u_pbend;		/* Profiler base end */
	vaddr_t	 u_pofft;		/* Offset from base */
	vaddr_t	 u_pscale;		/* Scaling factor */

	/*
	 * Miscellaneous things.
	 */
	int	 u_argc;		/* Argument count (for ps) */
	unsigned u_argp;		/* Offset of argv[0] (for ps) */
	int	 u_signo;		/* Signal number (for debugger) */
} UPROC;

#ifdef KERNEL
/*
 * Current user area.
 */
extern	UPROC	u;

#endif

#endif