IMD 1.17: 25/11/2014 14:23:37 Sn: 42359 (BATWINGS) MOTOROLA PHE:8503 (C) 1984 Motorola Inc. SYSTEM V/68 is a Trademark of Motorola Inc. M68000 SOFTWARE 82NNXBSV10 B* SYSTEM V68 OBJECT Release 1, Version 2.8 DISK 14 of 27 "includes"  NNNN~.|yvspmjgda^[XUROLIFC@=:741.+(%" C~}|{zyxwvutsrqponmlkjihg:+YYr1v2.8obj_14~ NNNNNNNN :::A0:::A0:::AP::*:*A%:::7s7s: 2 #&77:)77:,77: /77: 2587v7v: ;>7y7y: tA77: D77: 9GJ77:  bMPS77: IV77: Y\77: Q_77: {b77: eh77: k77: n77: Lq77:  twz77: }77: 77: 77: -77:77:77: 77:a7 7 :'7 7 :77: 77:77:77: 77:77:77:!$77:r'*-03677:q977:v<?BEHK77: {NQTW7"7":Z]7$7$:\`77:c7'7':f7*7*: ilo77:Yru7,7,:x{77:~7/7/:77:877:^77:V77:7272:77:l7474:77:7777:77: 77:7979:U"77:4(+.147<7<:77?7?: :=@CF7A7A:I77:4LORUX[7D7D:}^7G7G:$Uadgjmpsvy|77: 77:y77:77: 77:77:A0:::A:::/E$7{: /E&7}: /E77:/EX7:/EZ7:77&:W7*:87-:]871:";74:3!78:'8/7;:2/7>:4W7A:k87E:W7H: 77K: 8:7O: 87R:227V:67Y: !$87\: y'87_: *7"7": -037\7c:! 69<6K7f:!U?" 7j:!B77m:!E37p:"TH2{+7t:"K87w:"NQTWZ]`7v7{:#Ecf87~:# iloW7:$ru87:$x227:${817:$F~87:%77:%Z87:%W7:&87:&87:&6_7:'W7:'87:'D897:( k77:(W7:(2*7:)877:)  2{-7:*[6]7:*2 7:* /* @(#)text.h 3.1 */ /* * Text structure. * One allocated per pure procedure on swap device. * Manipulated by text.c */ struct text { short x_daddr; /* disk address of segment (relative to swplo) */ short x_size; /* size (clicks) */ struct proc *x_caddr; /* ptr to linked proc, if loaded */ struct inode *x_iptr; /* inode of prototype */ char x_count; /* reference count */ char x_ccount; /* number of loaded references */ char x_flag; /* traced, written flags */ }; extern struct text text[]; #define XTRC 01 /* Text may be written, exclusive use */ #define XWRIT 02 /* Text written into, must swap out */ #define XLOAD 04 /* Currently being read from file */ #define XLOCK 010 /* Being swapped in or out */ #define XWANT 020 /* Wanted for swapping */ ...usr * console receiver control and status */ #define RXDB 33 /* console receiver data buffer */ #define TXCS 34 /* console transmitter control and status */ #define TXDB 35 /* console transmitter data buffer */ #define MAPEN 56 /* memory management enable */ #define TBIA 57 /* translation buffer invalidate all */ #define TBIS 58 /* translation buffer invalidate single */ #define PMR 61 /* performance monitor enable */ #define SID 62 /* system identification */ /* * VAX-11/780 specific registers */ #define ACCS 40 /* accelerator control and status */ #define ACCR 41 /* accelerator maintenance */ #define WCSA 44 /* WCS address */ #define WCSD 45 /* WCS data */ #define SBIFS 48 /* SBI fault and status */ #define SBIS 49 /* SBI silo */ #define SBISC 50 /* SBI silo comparator */ #define SBIMT 51 /* SBI maintenance */ #define SBIER 52 /* SBI error register */ #define SBITA 53 /* SBI timeout address */ #define SBIQC 54 /* SBI quadword clear */ #define MBRK 60 /* micro-program breakpoint */ /* * VAX-11/75/* @(#)times.h 3.1 */ /* * Structure returned by times() */ struct tms { time_t tms_utime; /* user time */ time_t tms_stime; /* system time */ time_t tms_cutime; /* user time, children */ time_t tms_cstime; /* system time, children */ }; ...include0 specific registers */ #define CSRS 28 /* console storage receive status */ #define CSRD 29 /* console storage receive data */ #define CSTS 30 /* console storage transmit status */ #define CSTD 31 /* console storage transmit data */ #define TBDR 36 /* translation buffer disable register */ #define CADR 37 /* cache disable register */ #define MCESR 38 /* machine check error summary register */ #define CAER 39 /* cache error */ #define IORR 55 /* i/o reset register */ #define TB 59 /* translation buffer */  /* trace.h 1.1 of 7/21/81 @(#)trace.h 3.1 */ /* * Per trace structure */ struct trace { struct clist tr_outq; short tr_state; short tr_chbits; short tr_rcnt; unsigned char tr_chno; char tr_ct; }; ...sysPm68kWa.out.hXalarm.hYaouthdr.hZar.h[assert.h\core.h]ctype.h^dial.h_dumprestor.h`errno.haexecargs.hbfatal.hcfcntl.hdfilehdr.heftw.hfgrp.hgldfcn.hhlinenum.hisys.sjmacros.hkmath.hlmemory.hmmnttab.hnmon.honan.hppwd.hqregexp.hrreloc.hsrje.htscnhdr.husearch.hvsetjmp.hwsgsmacros.hxsgtty.hysignal.hzstand.h{stdio.h|storclass.h}string.h~symbol.hsyms.htermio.htime.htp_defs.hustat.hutmp.hvalues.hvarargs.hx25lib.h/* nc.h 1.5 of 3/23/82 @(#)nc.h 3.1 */ #define STDPKTSZ 128 #define NC ('N'<<8) #define NCPVCI (NC|1) #define NCPVCR (NC|2) #define NCSTART (NC|3) #define NCSTOP (NC|4) #define NCPVCSTAT (NC|5) #define NCLNKSTAT (NC|6) #define NCATTACH (NC|7) #define NCBKATTACH (NC|8) #define NCBKSTART (NC|9) #define NCDETACH (NC|10) #define NCBKDETACH (NC|11) #define NCCHNGE (NC|12) #define NCBKSTOP (NC|13) /* Argument structure for NCPVCI ioctl command */ struct ncpvc { unsigned short slot; unsigned short chno; unsigned short linkno; unsigned short options; }; /* Argument structure for NCSTART ioctl command */ struct ncstart { unsigned short linkno; unsigned short pktsz; struct csiflags csiflags; }; /* Argument structure for NCLNKSTAT ioctl command */ struct nclnkstat { struct x25link x25link; struct csiinfo prinfo; struct csiinfo bkinfo; ushort linkno; ushort prxmtq; ushort bkxmtq; ushort premptq; ushort bkemptq; }; /* Argument structure for NCPVCSTAT ioctl command */ struct ncpvcstat { struc/* @(#)trap.h 3.1 */ /* * Trap type values */ /* ***************************************************** The following traps apply to the Motorola 68K family of processors. These defines are used by os/trap.c in the UNIX kernel. ***************************************************** */ #ifdef m68k #define BUSERR 2 /* Bus Error/Segment Violation (SIGBUS) */ #define ADDRERR 3 /* Address Error (SIGSEGV) */ #define INSTERR 4 /* Illegal Instruction Trap (SIGILL) */ #define ZDVDERR 5 /* Zero Divide Trap (SIGFPE) */ #define CHKTRAP 6 /* CHK Trap (SIGSEGV) */ #define TRAPVFT 7 /* TRAPV instruction fault (SIGILL) */ #define PRIVFLT 8 /* privileged instruction fault (SIGILL) */ #define TRCTRAP 9 /* Trace Trap (SIGTRAP) */ #define L1010FT 10 /* Line 1010 Emulator Trap (SIGILL) */ #define L1111FT 11 /* Line 1111 Emulator Trap (SIGILL) */ #define STRAYFT 24 /* Spurious Interrupt */ /* *************************************************************** The following are generated by the 68K TRAP instruction ********** ...acct.hbuf.hcallo.h clock.h conf.h crtctl.h csi.h dir.hdmk.helog.herec.herr.herrno.hfblk.hfile.hfilsys.hfp.hinit.hino.hinode.hio.hiobuf.hioctl.hipc.hlapbtr.hlock.h lprio.h!map.h"mba.h#mem.h$mmu.h%mount.h&msg.h'mtpr.h(nc.h)opt.h*page.h+param.h,pcb.h-pcl.h.proc.h/psl.h0ram.h1reg.h2seg.h3sem.h4shm.h5signal.h6space.h7ssw.h8st.h9stat.h:stermio.h;sysinfo.htermio.h?text.h@times.hAtrace.hBtrap.hCttold.ht x25slot x25slot; struct x25tab x25tab; ushort mdevno; }; /* Argument structure for NCATTACH and NCBKATTACH ioctl commands */ struct ncattch { ushort linkno; dev_t dev; }; ***************************************************** */ #define SYSCALL 32 /* TRAP 0 - System Call Trap */ #define BPTFLT 33 /* TRAP 1 - Breakpoint Trap (SIGTRAP) */ #define IOTTRAP 34 /* TRAP 2 - Simulate DEC IOT Trap (SIGIOT) */ #define EMTTRAP 35 /* TRAP 3 - Simulate DEC EMT Trap (SIGEMT) */ #define FPETRAP 36 /* TRAP 4 - Floating Point Exception Trap (SIGFPE) */ #define RESCHED 0 /* Pseudo trap to signal rescheduling */ /* **************************************************** The following traps are for the VAX hardware **************************************************** */ #else #define RSADFLT 0 /* reserved addressing fault */ #define PRIVFLT 1 /* privileged instruction fault */ #define BPTFLT 2 /* bpt instruction fault */ #define XFCFLT 3 /* xfc instruction fault */ #define RSOPFLT 4 /* reserved operand fault */ #define SYSCALL 5 /* chmk instruction (syscall trap) */ #define ARTHTRP 6 /* arithmetic trap */ #define RESCHED 7 /* software level 1 trap (reschedule trap) */ #define SEGFLT 8 /* segmen/* @(#)acct.h 3.1 */ /* * Accounting structures */ typedef ushort comp_t; /* "floating point" */ /* 13-bit fraction, 3-bit exponent */ struct acct { char ac_flag; /* Accounting flag */ char ac_stat; /* Exit status */ ushort ac_uid; /* Accounting user ID */ ushort ac_gid; /* Accounting group ID */ dev_t ac_tty; /* control typewriter */ time_t ac_btime; /* Beginning time */ comp_t ac_utime; /* acctng user time in clock ticks */ comp_t ac_stime; /* acctng system time in clock ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; extern struct acct acctbuf; extern struct inode *acctp; /* inode of accounting file */ #define AFORK 01 /* has executed fork, but no exec */ #define ASU 02 /* used super-user privileges */ #define ACCTF 0300 /* record type: 00 = acct */  /* @(#)opt.h 3.1 */ #if MESG==0 msgsys(){nosys();} msginit(){return(0);} #endif #if SEMA==0 semsys(){nosys();} seminit(){} semexit(){} #endif #if SHMEM==0 shmsys(){nosys();} shmexec(){} shmexit(){} shmfork(){} shmreset(){} #endif tation fault */ #define PROTFLT 9 /* protection fault */ #define TRCTRAP 10 /* trace trap */ #define CMPTFLT 11 /* compatibility mode fault */ #endif /* @(#)buf.h 3.1 */ /* * Each buffer in the pool is usually doubly linked into 2 lists: * the device with which it is currently associated (always) * and also on a list of blocks available for allocation * for other use (usually). * A buffer is on the available list, and is liable * to be reassigned to another disk block, if and only * if it is not marked BUSY. When a buffer is busy, the * available-list pointers can be used for other purposes. * Most drivers use the forward ptr as a link in their I/O active queue. * A buffer header contains all the information required to perform I/O. * Most of the routines which manipulate these things are in bio.c. */ struct buf { int b_flags; /* see defines below */ struct buf *b_forw; /* headed by d_tab of conf.c */ struct buf *b_back; /* " */ struct buf *av_forw; /* position on free list, */ struct buf *av_back; /* if not BUSY*/ dev_t b_dev; /* major+minor device name */ int b_umd; /* unibus map descriptor */ unsigned b_bcount; /* t/* @(#)page.h 3.1 */ /* * VAX page table entry */ struct pt_entry { unsigned pg_pfnum:21, /* Page frame number */ pg_dec2:2, /* Reserved for DEC */ pg_type:2, /* Type of page (user definable) */ pg_dec1:1, /* Reserved for DEC */ pg_m:1, /* Modified bit */ pg_prot:4, /* Protection */ pg_v:1; /* Valid */ }; #define PG_PFNUM 0x1fffff #define PG_M 0x04000000 #define PG_PROT 0x78000000 #define PG_V 0x80000000 #define PG_TYPE 0x01800000 #define PG_NOACC 0 #define PG_KR 0x18000000 #define PG_KW 0x10000000 #define PG_UW 0x20000000 #define PG_URKW 0x60000000 #define PG_URKR 0x78000000 /* Definition of a virtual address. */ struct vaddress { unsigned v_byte:9, /* Byte within the page */ v_vpn:21, /* Virtual page number */ v_region:2; /* Region of memory(system,user,data,stack) */ }; /* Definition of a physical address. */ struct paddress { unsigned p_byte:9, /* Byte within the page */ p_pfn:21, /* Page frame number */ p_mbz:2; /* Must be zero */ }; #define SYSVA 0x80000000 #define svtoc /* @(#)ttold.h 3.1 */ struct sgttyb { char sg_ispeed; char sg_ospeed; char sg_erase; char sg_kill; int sg_flags; }; /* modes */ #define O_HUPCL 01 #define O_XTABS 02 #define O_LCASE 04 #define O_ECHO 010 #define O_CRMOD 020 #define O_RAW 040 #define O_ODDP 0100 #define O_EVENP 0200 #define O_NLDELAY 001400 #define O_NL1 000400 #define O_NL2 001000 #define O_TBDELAY 002000 #define O_NOAL 004000 #define O_CRDELAY 030000 #define O_CR1 010000 #define O_CR2 020000 #define O_VTDELAY 040000 #define O_BSDELAY 0100000 #define tIOC ('t'<<8) #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) ransfer count */ union { caddr_t b_addr; /* low order core address */ int *b_words; /* words for clearing */ struct filsys *b_filsys; /* superblocks */ struct dinode *b_dino; /* ilist */ daddr_t *b_daddr; /* indirect block */ } b_un; #define paddr(X) (paddr_t)(X->b_un.b_addr) daddr_t b_blkno; /* block # on device */ char b_error; /* returned after I/O */ unsigned int b_resid; /* words not transferred after error */ time_t b_start; /* request start time */ struct proc *b_proc; /* process doing physical or swap I/O */ }; extern struct buf bfreelist; /* head of available list */ extern struct buf pbuf[]; /* Physio header pool */ struct pfree { int b_flags; struct buf *av_forw; }; extern struct pfree pfreelist; /* head of physio pool */ paddr_t ubmaddr(); /* * These flags are kept in b_flags. */ #define B_WRITE 0 /* non-read pseudo-flag */ #define B_READ 01 /* read when I/O occurs */ #define B_DONE 02 /* transaction finished */ #define B_ERROR 04 /* transacti(X) (((int)(X) >> 9) & PG_PFNUM) #define ctosv(X) (((int)(X) << 9) + SYSVA) #define ctopv(X) ((int)(X) << 9) #define svtopte(X) (sbrpte + svtoc(X)) extern int * sbrpte; Dtty.hEtypes.hFuser.hGutsname.hHv10gr.hIvar.hJx25.hKx25macro.hLx25packet.hMx25rpt.hNx25u.hOx25user.h on aborted */ #define B_BUSY 010 /* not on av_forw/back list */ #define B_PHYS 020 /* Physical IO potentially using UNIBUS map */ #ifdef m68k #define B_FORMAT 040 /* format track when I/O occurs */ #else #define B_MAP 040 /* This block has the UNIBUS map allocated */ #endif #define B_WANTED 0100 /* issue wakeup when BUSY goes off */ #define B_AGE 0200 /* delayed write for correct aging */ #define B_ASYNC 0400 /* don't wait for I/O completion */ #define B_DELWRI 01000 /* don't write till block leaves available list */ #define B_OPEN 02000 /* open routine called */ #define B_STALE 04000 /* * Fast access to buffers in cache by hashing. */ #define bhash(d,b) ((struct buf *)&hbuf[((int)d+(int)b)&v.v_hmask]) struct hbuf { int b_flags; struct buf *b_forw; struct buf *b_back; }; extern struct hbuf hbuf[]; /* @(#)param.h 3.2 */ /* * fundamental variables * don't change too often */ #define NOFILE 20 /* max open files per process */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ #define MAXMEM (16*128) /* max core in 512-byte clicks */ #define MAXBLK 125 /* max blocks possible for phys IO */ #define SWAPSIZE 64 /* granularity of partial swaps (in clicks) */ #define SSIZE 4 /* initial stack size (*512 bytes) */ #define SINCR 2 /* increment of stack (*512 bytes) */ #define USIZE 4 /* size of user block (*512 bytes) */ #ifdef m68k #ifdef M68020 #define USRSTACK (0) /* Start of user stack */ #else #define USRSTACK (0x1000000) /* Start of user stack */ #endif #else #define USRSTACK (0x80000000-ctob(USIZE)) /* Start of user stack */ #endif #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 60 /* Ticks/second of the clock */ #define NCARGS 5120 /* # characters in exec arglist */ /* * priorities * should not be/* @(#)tty.h 3.1 */ /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ struct clist { int c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* Macro to find clist structure given pointer into it */ #define CMATCH(pointer) (char *)(cfree + (pointer - cfree)) /* Character control block for interrupt level control */ struct ccblock { caddr_t c_ptr; /* buffer address */ ushort c_count; /* character count */ ushort c_size; /* buffer size */ }; /* * A tty structure is needed for each UNIX character device that * is used for normal terminal IO. */ #define NCC 8 struct tty { struct clist t_rawq; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct ccblock t_tbuf; /* tx control block */ struct ccblock t_rbuf; /* rx control block */ int (* t_proc)(); /* routine for device functions /* @(#)callo.h 3.1 */ /* * The callout structure is for a routine arranging * to be called by the clock interrupt * (clock.c) with a specified argument, * in a specified amount of time. * Used, for example, to time tab delays on typewriters. */ struct callo { int c_time; /* incremental time */ caddr_t c_arg; /* argument to routine */ int (*c_func)(); /* routine */ }; extern struct callo callout[];   altered too much */ #define PMASK 0177 #define PCATCH 0400 #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWAIT 30 #define PSLEP 39 #define PUSER 60 #define PIDLE 127 /* * fundamental constants of the implementation-- * cannot be changed easily */ #define NBPW sizeof(int) /* number of bytes in an integer */ #ifndef FsTYPE #define FsTYPE 3 #endif #if FsTYPE==1 /* Original 512 byte file system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) b #define FsPTOL(*/ ushort t_iflag; /* input modes */ ushort t_oflag; /* output modes */ ushort t_cflag; /* control modes */ ushort t_lflag; /* line discipline modes */ short t_state; /* internal state */ short t_pgrp; /* process group name */ char t_line; /* line discipline */ char t_delct; /* delimiter count */ char t_term; /* terminal type */ char t_tmflag; /* terminal flags */ char t_col; /* current column */ char t_row; /* current row */ char t_vrow; /* variable row */ char t_lrow; /* last physical row */ char t_hqcnt; /* no. high queue packets on t_outq */ char t_dstat; /* used by terminal handlers and line disciplines */ unsigned char t_cc[NCC]; /* settable control chars */ }; /* * The structure of a clist block */ #define CLSIZE 64 struct cblock { struct cblock *c_next; char c_first; char c_last; char c_data[CLSIZE]; }; extern struct cblock cfree[]; extern struct cblock * getcb(); extern struct cblock * getcf(); extern struct clist ttnulq; struct chead { struct cblock *c_next;/* @(#)clock.h 3.2 */ #ifdef vax /* * VAX clock registers */ #define ICCS_RUN 0x1 #define ICCS_TRANS 0x10 #define ICCS_SS 0x20 #define ICCS_IE 0x40 #define ICCS_INT 0x80 #define ICCS_ERR 0x80000000 #endif #ifdef m68k #ifdef MEXOR #define clk_addr 0xfee040 /* clock address */ #endif #ifdef VM03 #define clk_addr 0xf80040 /* clock address */ #endif #endif #define SECHR (60*60) /* seconds/hr */ #define SECDAY (24*SECHR) /* seconds/day */ #define SECYR (365*SECDAY) /* seconds/common year */ dev, b) b #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #endif #if FsTYPE==2 /* New 1024 byte file system */ #define BSIZE 1024 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 10 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 01777 /* BSIZE-1 */ #define INOPB 16 /* inodes per block */ #define INOSHIFT 4 /* LOG2(INOPB) if exact */ #define NMASK 0377 /* NINDIR-1 */ #define NSHIFT 8 /* LOG2(NINDIR) */ #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) (b<<1) #define FsPTOL(dev, b) (b>>1) #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #endif #if FsTYPE==3 /* Dual system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE (BSIZE*2) /* system buffer si  int c_size; int c_flag; }; extern struct chead cfreelist; struct inter { int cnt; }; #define QESC 0200 /* queue escape */ #define HQEND 01 /* high queue end */ #define TTIPRI 28 #define TTOPRI 29 /* limits */ extern int ttlowat[], tthiwat[]; #define TTYHOG 256 #define TTXOLO 60 #define TTXOHI 180 #define TTECHI 80 /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Internal state */ #define TIMEOUT 01 /* Delay timeout in progress */ #define WOPEN 02 /* Waiting for open to complete */ #define ISOPEN 04 /* Device is open */ #define TBLOCK 010 #define CARR_ON 020 /* Software copy of carrier-present */ #define BUSY 040 /* Output in progress */ #define OASLP 0100 /* Wakeup when output done */ #define IASLP 0200 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define CLESC 04000 /* Last char escape */ #define RTO 010000 //* @(#)conf.h 3.1 */ /* * Declaration of block device switch. Each entry (row) is * the only link between the main unix code and the driver. * The initialization of the device switches is in the file conf.c. */ struct bdevsw { int (*d_open)(); int (*d_close)(); int (*d_strategy)(); int (*d_print)(); }; extern struct bdevsw bdevsw[]; /* * Character device switch. */ struct cdevsw { int (*d_open)(); int (*d_close)(); int (*d_read)(); int (*d_write)(); int (*d_ioctl)(); struct tty *d_ttys; }; extern struct cdevsw cdevsw[]; extern int bdevcnt; extern int cdevcnt; /* * Line discipline switch. */ struct linesw { int (*l_open)(); int (*l_close)(); int (*l_read)(); int (*l_write)(); int (*l_ioctl)(); int (*l_input)(); int (*l_output)();  int (*l_mdmint)(); }; extern struct linesw linesw[]; extern int linecnt; /* * Terminal switch */ struct termsw { int (*t_input)(); int (*t_output)(); int (*t_ioctl)(); }; extern struct termsw termsw[]; extern int termcnt; ze */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define Fs2BLK 0x2000 #define FsLRG(dev) (dev&Fs2BLK) #define FsBSIZE(dev) (FsLRG(dev) ? (BSIZE*2) : BSIZE) #define FsBSHIFT(dev) (FsLRG(dev) ? 10 : 9) #define FsNINDIR(dev) (FsLRG(dev) ? 256 : 128) #define FsBMASK(dev) (FsLRG(dev) ? 01777 : 0777) #define FsBOFF(dev, x) (FsLRG(dev) ? ((x)&01777) : ((x)&0777)) #define FsBNO(dev, x) (FsLRG(dev) ? ((x)>>10) : ((x)>>9)) #define FsINOPB(dev) (FsLRG(dev) ? 16 : 8) #define FsLTOP(dev, b) (FsLRG(dev) ? b<<1 : b) #define FsPTOL(dev, b) (FsLRG(dev) ? b>>1 : b) #define FsNMASK(dev) (FsLRG(dev) ? 0377 : 0177) #define FsNSHIFT(dev) (FsLRG(dev) ? 8 : 7) #define FsITOD(dev, x) (daddr_t)(FsLRG(dev) ? \ ((unsigned)x+(2*16-1))>>4 : ((unsigned)x+(2*8-1))>>3) #define FsITOO(dev, x) (daddr_t)(FsLRG(dev) ? \ ((* Raw Timeout */ #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 0100000 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_SUSPEND 2 #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 #define T_INPUT 9 /* * Terminal flags (set in t_tmflgs). */ #define SNL 1 /* non-standard new-line needed */ #define ANL 2 /* automatic new-line */ #define LCF 4 /* Special treatment of last col, row */ #define TERM_CTLECHO 010 /* Echo terminal control characters */ #define TERM_INVIS 020 /* do not send escape sequences to user */ #define QLOCKB 040 /* high queue locked for base level */ #define QLOCKI 0100 /* high queue locked for interrupts */ #define TERM_BIT 0200 /* Bit reserved for terminal drivers. */ /* Usually used to indicate that an esc*/ /* character has arrived and that the */ /* next character is special. */ /* This bit is the same as the TM_SE /* @(#)crtctl.h 3.1 */ /* Define the cursor control codes */ #define ESC 033 /* Escape for command */ /* Commands */ #define CUP 0101 /* Cursor up */ #define CDN 0102 /* Cursor down */ #define CRI 0103 /* Cursor right */ #define CLE 0104 /* Cursor left */ #define NL 0134 /* Terminal newline function */ #define HOME 0105 /* Cursor home */ #define VHOME 0106 /* cursor home to variable portion */ #define LCA 0107 /* Load cursor, followed by (x,y) in (col,row) */ #define CRTN 0133 /* Return cursor to beginning of line */ #define STB 0110 /* Start blink */ #define SPB 0111 /* Stop blink */ #define CS 0112 /* Clear Screen */ #define CM 0135 /* Clear Memory */ #define EEOL 0113 /* Erase to end of line */ #define EEOP 0114 /* Erase to end of page */ #define DC 0115 /* Delete character */ #define DL 0116 /* Delete line */ #define IC 0117 /* Insert character */ #define IL 0120 /* Insert line */ #define KBL 0121 /* keyboard lock */ #define KBU 0122 /* keyboard unlock */ #define ATAB 0123 /* Set column of tabs */ #dunsigned)x+(2*16-1))&017 : ((unsigned)x+(2*8-1))&07) #define FsINOS(dev, x) (FsLRG(dev) ? \ ((x&~017)+1) : ((x&~07)+1)) #endif #define NICFREE 50 /* number of superblock free blocks */ #define NCPS 1 /* Number of clicks per segment */ #define NBPC 512  /* Number of bytes per click */ #define NCPD 1 /* Number of clicks per disk block */ #define BPCSHIFT 9 /* LOG2(NBPC) if exact */ #define NULL 0 #define CMASK 0 /* default mask for file creation */ #define CDLIMIT (1L<<11) /* default max write address */ #define NODEV (dev_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* physical block number of the super block */ #define SUPERBOFF 512 /* byte offset of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define CLKTICK 16667 /* microseconds in a clock tick */ #define UMODE PS_CUR /* usermode bits */ #ifdef m68k #define USERMODE(ps) ((ps & UMODE) == 0) #else #define USERMODE(ps) ((ps T */ /* bit which may never be set by a user*/ efine STAB 0124 /* Set single tab */ #define CTAB 0125 /* Clear Tabs */ #define USCRL 0126 /* Scroll up one line */ #define DSCRL 0127 /* Scroll down one line */ #define ASEG 0130 /* Advance segment */ #define BPRT 0131 /* Begin protect */ #define EPRT 0132 /* End protect */ #define SVSCN 0136 /* Define variable portion of screen (OS only) */ #define UVSCN 0137 /* Scroll Up variable portion of screen */ #define DVSCN 0140 /* Scroll Down variable portion of screen */ #define SVID 0141 /* Set Video Attributes */ #define CVID 0142 /* Clear Video Attributes */ #define DVID 0143 /* Define Video Attributes */ /* Video Attribute Definitions */ #define VID_NORM 000 /* normal */ #define VID_UL 001 /* underline */ #define VID_BLNK 002 /* blink */ #define VID_REV 004 /* reverse video */ #define VID_DIM 010 /* dim intensity */ #define VID_BOLD 020 /* bright intensity */ #define VID_OFF 040 /* blank out field */ #define BRK 000 /* transmit break */ #define HIQ 001 /* Put remainder of write on high priority queue. */ & UMODE) == UMODE) #endif #define BASEPRI(ps) ((ps & PS_IPL) != 0) #ifdef m68k #define SEG_SYS (-1) /* System space */ #define SEG_TEXT 0 /* Text segment. Shared by default */ #define SEG_DATA 1 /* Data+Bss. Includes Text if not shared */ #define SEG_STACK 2 /* Stack segment */ #define SEG_SHM 3 /* Shared memory segment. */ #else #define SEG_SYS 1 /* System space */ #define SEG_TEXT 2 /* Text segment. Shared by default */ #define SEG_DATA 0 /* Data+Bss. Includes Text if not shared */ #endif #if defined(vax) || defined(pdp11) #define lobyte(X) (((unsigned char *)&X)[0]) #define hibyte(X) (((unsigned char *)&X)[1]) #define loword(X) (((ushort *)&X)[0]) #define hiword(X) (((ushort *)&X)[1]) #else #define lobyte(X) (((unsigned char *)&X)[1]) #define hibyte(X) (((unsigned char *)&X)[0]) #define loword(X) (((ushort *)&X)[1]) #define hiword(X) (((ushort *)&X)[0]) #endif /* @(#)types.h 3.1 */ typedef struct { int r[1]; } * physadr; typedef long daddr_t; typedef char * caddr_t; typedef unsigned int uint; typedef unsigned short ushort; typedef ushort ino_t; typedef short cnt_t; typedef long time_t; #ifdef m68k typedef int label_t[13]; #else typedef int label_t[10]; #endif typedef short dev_t; typedef long off_t; typedef long paddr_t; typedef long key_t;  /* @(#)pcb.h 3.1 */ /* VAX process control block */ struct pcb { int pcb_ksp, /* kernal stack pointer */ pcb_esp, /* exec stack pointer */ pcb_ssp, /* supervisor stack pointer */ pcb_usp, /* user stack pointer */ pcb_r0, pcb_r1, pcb_r2, pcb_r3, pcb_r4, pcb_r5, pcb_r6, pcb_r7, pcb_r8, pcb_r9, pcb_r10, pcb_r11, pcb_r12, pcb_r13, pcb_pc, /* program counter */ pcb_psl, /* program status longword */ pcb_p0br, /* seg 0 base register */ pcb_p0lr, /* seg 0 length register and astlevel */ pcb_p1br, /* seg 1 base register */ pcb_p1lr; /* seg 1 length register and pme */ };  /* @(#)user.h 3.4 */ #ifndef m68k #include "sys/pcb.h" #endif /* * The user structure. * One allocated per process. * Contains all per process data that doesn't need to be referenced * while the process is swapped. * The user block is USIZE*click bytes long; resides at virtual kernel * loc 0x7ffff800(vax), 0140000(11/70), floating(11/34); * contains the system stack per user; is cross referenced * with the proc structure for the same process. */ struct user { #ifndef m68k struct pcb u_pcb; /* pcb, save area when switching */ #endif label_t u_rsav; /* save info when exchanging stacks */ label_t u_qsav; /* label variable for quits and interrupts */ label_t u_ssav; /* label variable for swapping */ char u_segflg; /* IO flag: 0:user D; 1:system; 2:user I */ char u_error; /* return error code */ ushort u_uid; /* effective user id */ ushort u_gid; /* effective group id */ ushort u_ruid; /* real user id */ ushort u_rgid; /* real group id */ struct proc *u_procp; /* pointer t/* csi.h 1.2 of 2/10/82 @(#)csi.h 3.1 */ /* CSI linked list */ struct csillist { int l_ql; /* Queue length */ struct csibd *l_first; /* Pointer to first item */ struct csibd *l_last; /* Pointer to last item */ }; /* CSI Start flags structure */ struct csiflags { char options; char intopts; char window; char timer0; char timer1; }; /* CSI stat structure */ struct csiinfo { char options; char intopts; char window; char timer0; char timer1; dev_t mdev; short devtype; }; /* Report structures */ #define CMDSZ 4 struct solrpt { short retcode; struct csibd *bdp; }; struct unsolrpt { short code; int excode; }; struct trrpt { short scloc; char info[CMDSZ]; }; union csirpt { struct solrpt *solp; struct unsolrpt *unsolp; struct trrpt *trp; }; /* Unsolicited codes */ #define CSINONAPP -1 /* Error return codes */ #define INVCSI -1 /* Invalid CSI type specified */ #define BADDEV -2 /* Invalid device or sub-device */ #define ATTCH -3 /* The device is already attached/* * @(#)pcl.h 2.1 * * PCL-11 Multiplexing / Demultiplexing Driver * Permits two-way communications between 16 machines per PCL. */ /* * pcl structure - one required per simultaneous pcl conversation */ # define PCLBSZ 512 /* size of pcl input/output buffers */ struct pcl { ushort pcl_flag; /* channel open, etc. */ dev_t pcl_dev; /* machine and logical channel */ short pcl_pgrp; /* process group for signals */ ushort pcl_hdr; /* header for transmission */ struct pcl * pcl_ioq; /* linked list of transmissions */ short pcl_icnt; /* characters remaining in input buffer */ short pcl_ioff; /* offset of first character in input buffer */ short pcl_ocnt; /* characters in output buffer */ # ifdef pdp11 paddr_t pcl_ibuf; /* input buffer location */ paddr_t pcl_obuf; /* output buffer location */ # else char pcl_ibuf[PCLBSZ]; /* input buffer */ char pcl_obuf[PCLBSZ]; /* output buffer */ # endif } ; # ifndef PCL11B_0 /* * pcl_flag bit definitions */ # define P_OPEN 000001 /* channel in o proc structure */ int *u_ap; /* pointer to arglist */ union { /* syscall return values */ struct { int r_val1; int r_val2; }r_reg; off_t r_off; time_t r_time; } u_r; caddr_t u_base; /* base address for IO */ unsigned u_count; /* bytes remaining for IO */ off_t u_offset; /* offset in file for IO */ short u_fmode; /* file mode for IO */ ushort u_pbsize; /* bytes in block for IO */ ushort u_pboff; /* offset in block for IO */ dev_t u_pbdev; /* real device for IO */ daddr_t u_rablock; /* read ahead block addr */ short u_errcnt; /* syscall error count */ struct inode *u_cdir; /* current directory of process */ struct inode *u_rdir; /* root directory of process */ caddr_t u_dirp; /* pathname pointer */ struct direct u_dent; /* current directory entry */ struct inode *u_pdir; /* inode of parent directory of dirp */ struct file *u_ofile[NOFILE]; /* pointers to file structures of open files */ char u_pofile[NOFILE]; /* per-process flags of open files */ int u_ar  */ #define NOIDEV -4 /* Invalid or no interface index */ #define STERR -5 /* Start or stop error */ /* Report Types */ #define CSISTART 1 #define CSISTOP 2 #define CSIRXBUF 3 #define CSIRRBUF 4 #define CSITERM 5 #define CSIERR 6 #define CSISRPT 7 #define CSITRACE 8 #define CSICMDACK 9 #define CSICLEANED 10 /* csiinfo options */ #define ADRB 01 #define FAST 02 /* Status of transmit buffer */ #define CSIXMT 0 #define CSINXMT 1 #define CSIMAYBE 2 /* Status of receive buffer */ #define CSIRCV 0 #define CSIEMPTY 1 #define CSIEQL(IDEV) csiemptq(IDEV, (struct csibd *)NULL) #define CSIXQL(IDEV) csixmtq(IDEV, (struct csibd *)NULL) #define CSISLP (PZERO+5) /* sleep priority*/ #define CSISOLP arg->solp #define CSIUNSOLP arg->unsolp #define CSITRP arg->trp use */ # define P_ROPEN 000002 /* remote channel is open */ # define P_READ 000004 /* waiting for input data */ # define P_WRITE 000010 /* waiting for output buffer */ # define P_REOF 000020 /* eof received */ # define P_NOCTRL 000040 /* no control on channel */ # define P_RERR 000100 /* reception error */ # define P_XERR 000200 /* transmission error */ # define P_RETRY 000400 /* retry on transmission error */ # define P_RSTR 001000 /* restrict control messages */ # define P_WOPEN 010000 /* waiting for open of remote */ # define P_WASC 020000 /* remote channel has closed */ /* * pcl hardware registers */ struct pclhw { short pcl_tcr; /* transmitter command register */ short pcl_tsr; /* transmitter status register */ short pcl_tdb; /* transmitter data buffer register */ short pcl_tbc; /* transmitter byte count register */ short pcl_tba; /* transmitter bus address register */ short pcl_mmr; /* master - maintainance register */ short pcl_tcrc; /* transmitter CRC register */ short pcl_g[10]; /* arguments to current system call */ unsigned u_tsize; /* text size (clicks) */ unsigned u_dsize; /* data size (clicks) */ unsigned u_ssize; /* stack size (clicks) */ int u_signal[NSIG]; /* disposition of signals */ time_t u_utime; /* this process user time */ time_t u_stime; /* this process system time */ time_t u_cutime; /* sum of childs' utimes */ time_t u_cstime; /* sum of childs' stimes */ int *u_ar0; /* address of users saved R0 */ struct { /* profile arguments */ short *pr_base; /* buffer base */ unsigned pr_size; /* buffer size */ unsigned pr_off; /* pc offset */ unsigned pr_scale; /* pc scaling */ } u_prof; char u_intflg; /* catch intr from sys */ char u_sep; /* flag for I and D separation */ short *u_ttyp; /* pointer to pgrp in "tty" struct */ dev_t u_ttyd; /* controlling tty dev */ struct { /* header of executable file */ short ux_mag; /* magic number */ short ux_stamp; /* stamp */ unsigned ux_tsize; /* text size */ unsigned ux_dsize; //* @(#)dir.h 3.1 */ #ifndef DIRSIZ #define DIRSIZ 14 #endif struct direct { ino_t d_ino; char d_name[DIRSIZ]; };  pad1; /* unused register */ short pcl_rcr; /* receiver command register */ short pcl_rsr; /* receiver status register */ short pcl_rdb; /* receiver data buffer register */ short pcl_rbc; /* receiver byte count register */ short pcl_rba; /* receiver bus address register */ short pcl_pad2; /* unused register */ short pcl_rcrc; /* receiver CRC register */ short pcl_pad3; /* unused register */ } ; /* * random tcr, tsr, rcr, rsr bit definitions */ # define STTXM 0000001 /* start transmission */ # define TXINIT 0000002 /* transmitter initialize */ # define EAOFF 12 /* extended address bits offset */ # define EABITS 0600000 /* mask for extended address bits */ # define IE 0000100 /* interrupt enable */ # define DSTPCL 0017400 /* destination pcl */ # define DSTOFF 8 /* destination bits offset */ # define SNDWD 0020000 /* send word */ # define TXNPR 0040000 /* transmit NPR */ # define RIB 0100000 /* retry if busy */ # define SORE 0000040 /* software reject */ # define TBSBSY 0000020 * data size */ unsigned ux_bsize; /* bss size */ unsigned ux_ssize; /* symbol table size */ unsigned ux_entloc; /* entry location */ unsigned ux_unused; unsigned ux_relflg; } u_exdata; #define ux_tstart ux_unused char u_comm[DIRSIZ]; time_t u_start; time_t u_ticks; long u_mem; long u_ior; long u_iow; long u_iosw; long u_ioch; char u_acflag; short u_cmask; /* mask for file creation */ daddr_t u_limit; /* maximum write address */ short u_lock; /* process/text locking flags */ #ifdef m68k short u_traptype; /* records the type of last trap */ #define TRAPNORM 0 /* "normal" trap */ #define TRAPBUS 1 /* bus error trap */ #define TRAPADDR 2 /* address error trap */ #ifdef M68010 short u_trapsave[26]; /* long format save area */ short u_trapvalid; /* flag that trapsave has valid info */ #endif #endif int u_stack[1]; /* kernel stack per user * extends from u + USIZE*512 * backward not to reach here */ }; extern struct user u; #define u_rval1 u_r.r_re/* dmk.h 1.2 of 3/18/82 @(#)dmk.h 3.1 */ #define DMK ('V'<<8) #define DMKSETM (DMK|13) #define DMKDTR (1<<1) #define DMKRTS (1<<2) #define DMKNS (1<<3) struct dmkcmd { short line, mode; }; struct dmksave { unsigned char status[8]; }; /* tdm bus busy */ # define SUCTXF 0000200 /* successful transfer */ # define TIMOUT 0002000 /* timeout */ # define MSTDWN 0004000 /* master down on transmission */ # define ERR 0100000 /* transmission error */ # define MASTER 0030400 /* tdm bus master */ # define RCVDAT 0000001 /* receive data */ # define RCINIT 0000002 /* receiver initialize */ # define SRCPCL 0017400 /* source pcl */ # define SRCOFF 8 /* source bits offset */ # define RCVWD 0020000 /* receive first word */ # define RCNPR 0040000 /* receive NPR */ # define REJ 0100000 /* reject */ # define CHNOPN 0000020 /* channel open */ # define REJCOM 0000040 /* reject complete */ # define DTORDY 0000400 /* data output ready */ # define PCLRPRI (PZERO + 2) /* allow interrupts */ # define PCLWPRI (PZERO + 2) /* allow interrupts */ # define PCLDELAY 30 /* delay after transmission rejection */ /* * pcl minor bit definitions: * bits 0 - 2: select 1 of 8 channels * bits 3 - 6: select 1 of 16 machines * bit 7: select 1 of 2   g.r_val1 #define u_rval2 u_r.r_reg.r_val2 #define u_roff u_r.r_off #define u_rtime u_r.r_time /* ioflag values: Read/Write, User/Kernel, Ins/Data */ #define U_WUD 0 #define U_RUD 1 #define U_WKD 2 #define U_RKD 3 #define U_WUI 4 #define U_RUI 5 #define EXCLOSE 01 /* @(#)elog.h 3.1 */ /* * "True" major device numbers. These correspond * to standard positions in the configuration * table, but are used for error logging * purposes only. */ #ifdef m68k #define UD0 0 /* universal disk controller */ #define WD0 1 /* winchester disk controller */ #else #define RK0 0 #define RP0 1 #define RF0 2 #define TM0 3 #define TC0 4 #define HP0 5 #define HT0 6 #define HS0 7 #define RL0 8 #define HP1 9 #define HP2 10 #define HP3 11 #endif /* * IO statistics are kept for each physical unit of each * block device (within the driver). Primary purpose is * to establish a guesstimate of error rates during * error logging. */ struct iostat { long io_ops; /* number of read/writes */ long io_misc; /* number of "other" operations */ ushort io_unlog; /* number of unlogged errors */ }; /* * structure for system accounting */ struct iotime { struct iostat ios; long io_bcnt; /* total blocks transferred */ time_t io_act; /* total controller active time */ time_t io_resp; /* tpcl devices */ # define pclchan(X) (X & 07) /* logical channel */ # define pclmach(X) (((X & 0170) >> 3) + 1) /* machine id */ # define pclpcl(X) (X >> 7) /* pcl id */ # ifdef pdp11 # define move(x,y,z) pimove(x, y, z) # else # define move(x,y,z) iomove((int) x, y, z) # endif # define pclhdr(X) (X & 0170000) /* type of data tranmission */ /* * pcl message headers */ # define PCLOPEN (1 << 12) /* channel open initialise request */ # define PCLEDATA (2 << 12) /* even byte count transmission */ # define PCLODATA (3 << 12) /* odd byte count transmission */ # define PCLEOF (4 << 12) /* zero byte count transmission */ # define PCLCLOSE (5 << 12) /* channel shutdown */ # define PCLCTRL (6 << 12) /* message for control channel */ # define PCLSIGNAL (7 << 12) /* send signal to remote */ # define PCLOC (8 << 12) /* Open complete */ /* * ioctl command types */ # define WAIT 1 /* wait until channel opens */ # define FLAG 2 /* change certain flags */ # define SIG 3 /* send a signal across the/* @(#)utsname.h 3.1 */ struct utsname { char sysname[9]; char nodename[9]; char release[9]; char version[9]; char machine[9]; }; extern struct utsname utsname;   otal block response time */ }; #define io_cnt ios.io_ops  link */ # define CTRL 4 /* send a control message */ # define RSTR 5 /* restrict control messages */ # define GET 6 /* read out status from pcl structure */ # define GDEBUG 7 /* read out debug table */ /* * pcl debug structure */ # define PCLINDX 30 enum pcldbr { dbnull, dbrecv, dbrdata, dbxmit, dbxdata }; typedef enum pcldbr pcldb_t; typedef unsigned char uchar; struct pcldb { uchar pcl_record; /* record identifier */ uchar pcl_index; /* record index */ ushort pcl_cmdreg; /* command register */ ushort pcl_statreg; /* status register */ ushort pcl_header; /* pcl structure header */ } ; # endif /* @(#)v10gr.h 3.1 */ /* This file contains the defines for the new graphics ioctl(2) commands. the address and sizes of the 3 shared memory segments and other information useful to graphics. */ /* The reserved graphics shared memory keys */ #define CGENKEY -1 /* char and attribute shared memory key */ #define PIXKEY -2 /* pixel access shared memory key */ #define BANKKEY -3 /* color bank shared memory key */ /* New ioctl(2) commands supported by the graphics driver */ /* NOTE: use ioctl(fd, cmd, arg); where arg is a pointer to the proper item */ #define SETCR0 1 /* set control register 0 */ #define GETCR0 2 /* get control register 0 */ #define SETCR1 3 /* set control register 1 */ #define GETCR1 4 /* get control register 1 */ #define SETCUR 5 /* set the cursor registers */ #define GETCUR 6 /* get the cursor registers */ #define SETLORES 7 /* change crtc & graphics offset for lores */ #define SETHIRES 8 /* change crtc & graphics offset for hires */ /* bit field values for Control Registe/* @(#)erec.h 3.1 */ /* * Every error record has a header as follows. */ struct errhdr { short e_type; /* record type */ short e_len; /* bytes in record (with header) */ time_t e_time; /* time of day */ }; /* * Error record types */ #define E_GOTS 010 /* Start for UNIX/TS */ #define E_GORT 011 /* Start for UNIX/RT */ #define E_STOP 012 /* Stop */ #define E_TCHG 013 /* Time change */ #define E_CCHG 014 /* Configuration change */ #define E_BLK 020 /* Block device error */ #define E_STRAY 030 /* Stray interrupt */ #define E_PRTY 031 /* Memory parity */ /* * Error logging startup record. One of these is * sent to the logging daemon when logging is * first activated. */ struct estart { short e_cpu; /* cpu type */ struct utsname e_name; /* system names */ short e_mmr3; /* contents of mem mgmt reg 3 (11/70 and 11/45) */ long e_syssize; /* system memory size (11/70 only) */ short e_bconf; /* block device configuration */ }; /* * Error logging termination record that is sent to th  /* @(#)proc.h 3.1 */ /* * One structure allocated per active process. It contains all data needed * about the process while the process may be swapped out. * Other per process data (user.h) is swapped with the process. */ struct proc { char p_stat;  char p_flag; char p_pri; /* priority, negative is high */ char p_time; /* resident time for scheduling */ char p_cpu; /* cpu usage for scheduling */ char p_nice; /* nice for cpu usage */ ushort p_uid; /* real user id */ ushort p_suid; /* set (effective) user id */ short p_pgrp; /* name of process group leader */ short p_pid; /* unique process id */ short p_ppid; /* process id of parent */ #ifndef m68k short p_addr; short p_nspt; int * p_spt; #else caddr_t p_addr; caddr_t p_mmuent; /* mmu table entry pointer */ #endif short p_size; /* size of swappable image (clicks) */ short p_swaddr; /* disk address when swapped */ short p_swsize; /* number of clicks already swapped */ short p_tsize; /* size of text (used by exec/swapin) */ shors */ #define ON 1 /* turn the bit field on */ #define OFF 0 /* turn the bit field off */ /* Pixel color change masks */ #define CRED 0x100 #define CBLUE 0x200 #define CGREEN 0x400 #define CALL 0x700 /* Pixel color bits */ #define BRED 1 #define BBLUE 2 #define BGREEN 4 /* Pixel colors (for writing) */ #define BLACK CALL #define RED (BRED | CALL) #define BLUE (BBLUE | CALL) #define MAGENTA (BRED | BBLUE | CALL) #define GREEN (BGREEN | CALL) #define YELLOW (BRED | BGREEN | CALL) #define CYAN (BBLUE | BGREEN | CALL) #define WHITE (BRED | BBLUE | BGREEN | CALL) /* Pixel B&W intensities (for writing) */ #define GREY0 BLACK #define GREY1 (1 | CALL) #define GREY2 (2 | CALL) #define GREY3 (3 | CALL) #define GREY4 (4 | CALL) #define GREY5 (5 | CALL) #define GREY6 (6 | CALL) #define GREY7 WHITE /* Character Set Definitions used for Control Register 1 */ #define CURSOR1 0 /* character cursor 1 enabled */ #define CURSOR2 1 /* character cursor 2 enabled */ #define CURSOR3 2 /* character cursor 3 enabled */ #define Ce daemon * when it stops error logging. */ #define eend errhdr /* * A time change record is sent to the daemon whenever * the system's time of day is changed. */ struct etimchg { time_t e_ntime; /* new time */ }; /* * A configuration change message is sent to * the error logging daemon whenever a block device driver * is attached or detached (MERT only). */ struct econfchg { char e_trudev; /* "true" major device number */ char e_cflag; /* driver attached or detached */ }; #define E_ATCH 1 #define E_DTCH 0 /* * Template for the error record that is logged by block devices. */ struct eblock { dev_t e_dev; /* "true" major + minor dev number */ physadr e_regloc; /* controller address */ short e_bacty; /* other block I/O activity */ struct iostat e_stats; /* unit I/O statistics */ short e_bflags; /* read/write, error, etc */ short e_cyloff; /* logical dev start cyl */ daddr_t e_bnum; /* logical block number */ ushort e_bytes; /* number of bytes to transfer */ paddr_t e_memadd; /*rt p_ssize; /* size of stack (used by exec/swapin) */ long p_sig; /* signals pending to this process */ union { caddr_t p_cad; int p_int; } p_unw; #define p_wchan p_unw.p_cad #define p_arg p_unw.p_int struct text *p_textp; /* pointer to text structure */ struct proc *p_link; /* linked list of running processes */ int p_clktim; /* time to alarm clock signal */ int p_smbeg; /* beginning pte entry for shared memory */ int p_smend; /* ending pte entry for shared memory */ }; extern struct proc proc[]; /* the proc table itself */ /* stat codes */ #define SSLEEP 1 /* awaiting an event */ #define SWAIT 2 /* (abandoned state) */ #define SRUN 3 /* running */ #define SIDL 4 /* intermediate state in process creation */ #define SZOMB 5 /* intermediate state in process termination */ #define SSTOP 6 /* process being traced */ #define SXBRK 7 /* process being xswapped */ #define SXSTK 8 /* process being xswapped */ #define SXTXT 9 /* process being xswapped */ /* flag codes */ #define SLOAD 01 /* i  URSOR4 3 /* character cursor 4 enabled */ /* hi resolution bank declaration type */ #define HBANKLEN 30000 #define HULEN 2768 typedef struct { unsigned short bank3[HBANKLEN]; unsigned short unused3[HULEN]; unsigned short bank2[HBANKLEN]; unsigned short unused2[HULEN]; unsigned short bank1[HBANKLEN]; unsigned short unused1[HULEN]; } v10_hbanks; /* low resolution bank declaration type */ #define LBANKLEN 15000 #define LULEN 1384 typedef struct { unsigned short bank3[LBANKLEN]; unsigned short unused3[LULEN]; unsigned short bank2[LBANKLEN]; unsigned short unused2[LULEN]; unsigned short bank1[LBANKLEN]; unsigned short unused1[LULEN]; } v10_lbanks; /* define pixel info */ typedef short pixel; #define XMAX 800 /* macro to access pixel areas (same for hires and lores) */ #define PIXEL(pix,x,y) *((short *)(pix) + ((short)(y) * (short)XMAX + (x))) /* hi resolution pixels */ #define XMAXH XMAX #define YMAXH 600 /* low resolution pixels */ #define XMAXL XMAX #define YMAXL 300 /* character and at buffer memory address */ ushort e_rtry; /* number of retries */ short e_nreg; /* number of device registers */ #ifdef vax struct mba_regs e_mba; /* mass bus adaptor registers */ #endif }; /* * Flags (selected subset of flags in buffer header) */ #define E_WRITE 0 #define E_READ 1 #define E_NOIO 02 #define E_PHYS 04 #ifdef m68k #define E_FORMAT 010 #else #define E_MAP 010 #endif #define E_ERROR 020 /* * Template for the stray interrupt record that is logged * every time an unexpected interrupt occurs. */ struct estray { physadr e_saddr; /* stray loc or device addr */ short e_sbacty; /* active block devices */ }; /* * Memory parity error record that is logged whenever one * of those things occurs (11/70s only). */ struct eparity { short e_parreg[4]; /* memory subsystem registers */ }; struct ememory { int e_sbier; int e_memcad; }; n core */ #define SSYS 02 /* scheduling process */ #define SLOCK 04 /* process cannot be swapped */ #define SSWAP 010 /* process is being swapped out */ #define STRC 020 /* process is being traced */ #define SWTED 040 /* another tracing flag */ #define STEXT 0100 /* text pointer valid */ #define SSPART 0200 /* process is partially swapped out */ /* * parallel proc structure * to replace part with times * to be passed to parent process * in ZOMBIE state. */ #ifndef NPROC struct xproc { char xp_stat; char xp_flag; char xp_pri; /* priority, negative is high */ char xp_time; /* resident time for scheduling */ char xp_cpu; /* cpu usage for scheduling */ char xp_nice; /* nice for cpu usage */ ushort xp_uid; /* real user id */ ushort xp_suid; /* set (effective) user id */ short xp_pgrp; /* name of process group leader */ short xp_pid; /* unique process id */ short xp_ppid; /* process id of parent */ short xp_addr; #ifndef m68k short xp_nspt; int * xp_spt; #endif short xp_xstat; /* Exitribute generator declaration type */ typedef struct { struct { unsigned char :8; /* treat as unnamed bit field */ unsigned char data; } chargen[2048]; struct { unsigned char :8; /* treat as unnamed bit field */ unsigned char data; } attribute[2048]; } char_attgen; /* control register 0 field definitions */ typedef struct { unsigned char cdis:3; unsigned char curbk:1; unsigned char dutycycle:1; unsigned ivs:1; unsigned char :2 } v10_cr0; /* Control register 1 field definitions */ typedef struct { unsigned char :1; unsigned char sel:2; unsigned char hires:1; unsigned char gre:3; unsigned unswap:1; } v10_cr1; typedef struct { short h; short v; } v10_cursor; #define V10NCRTC 10 /* number of crtc registers */ typedef struct { unsigned char reg[V10NCRTC]; } v10_crtc; /* CRT control registers */ typedef unsigned char v10_groff; /* graphics offset register */ /* Starting addresses & size of the 3 graphics shared memory segments*/ /* hi resolution */ #define HPIX  /* @(#)err.h 3.1 */ /* * structure of the err buffer area */ #define NESLOT 20 #define E_LOG 01 #define E_SLP 02 struct err { int e_nslot; /* number of errslots */ int e_flag; /* state flags */ struct errhdr **e_org; /* origin of buffer pool */ struct errhdr **e_nxt; /* next slot to allocate */ struct errslot { int slot[8]; } e_slot[NESLOT]; /* storage area */ struct map e_map[(NESLOT+3)/2]; /* free space in map */ struct errhdr *e_ptrs[NESLOT]; /* pointer to logged errors */ }; extern struct err err; struct errhdr *geteslot(); struct errhdr *geterec(); t status for wait */ time_t xp_utime; /* user time, this proc */ time_t xp_stime; /* system time, this proc */ }; #endif ADR 0xe00000 /*starting addr of pixel address area*/ #define HPIXSZ 960000 /* size in bytes of pixel address area */ /* low resolution */ #define LPIXADR 0xe00000 /* starting addr of pixel address area*/ #define LPIXSZ 480000 /* size in bytes of pixel address area*/ #define CGENADR 0xf14000 /* starting addr of the char/attr gen */ #define CGENSZ 4096 /* size in bytes of char/attr ram */ /* hi resolution */ #define HBANKADR 0x30000 /* starting addr of the color banks */ #define HBANKSZ 196608 /* size in bytes of the banks */ /* low resolution */ #define LBANKADR 0x48000 /* starting addr of the color banks */ #define LBANKSZ 98304 /* size in bytes of the banks */ /* the addresses of hardware registers */ #define V10CR0 0xf19f05 /* address of control register 1 */ #define V10CR1 0xf19f07 /* address of control register 2 */ #define V10HCR 0xf19f02 /* address of horizontal cursor reg */ #define V10VCR 0xf19f00 /* address of vertical cursor reg */ #define V10GOFF 0xf19f13 /* address of graphi/* @(#)errno.h 3.1 */ /* * Error codes */ #define EPERM 1 /* Not super-user */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No children */ #define EAGAIN 11 /* No more processes */ #define ENOMEM 12 /* Not enough core */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Mount device busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */  /* @(#)psl.h 3.1 */ /* * processor status */ /* ****************************************************** The following bits are common to both the VAX and the Motorola family of 68K processors ****************************************************** */  #define PS_C 0x1 /* carry bit */ #define PS_V 0x2 /* overflow bit */ #define PS_Z 0x4 /* zero bit */ #define PS_N 0x8 /* negative bit */ /* ****************************************************** The following apply to the Motorola family of 68K processors ****************************************************** */ #ifdef m68k #define PS_T 0x8000 /* trace enable bit */ #define PS_IPL 0x700 /* interrupt priority level */ #define PS_CUR 0x2000 /* current mode. Supervisor if set */ /* ****************************************************** The following apply to the VAX hardware ****************************************************** */ #else #define PS_T 0x10 /* trace enable bit */ #define PS_IV 0x20 /* integer overflow enable bit */ #define PS_cs offset reg */ /* masks for the registers */ #define V10HIRES 0x10 /* mask of hires bit in cr1 */ #define V10ENABLE 0xe /* mask of enable bits in cr1 */ /* hardware addresses used when changing the CRTC registers an individual register is changed by writing the register number at address V10CRTCREG and the new value at address V10CRTCVAL */ #define V10CRTCREG 0xf1a021 #define V10CRTCVAL 0xf1a023 /* Control Register Masks */ #define V10CR0MASK 0x000000fc /* access to bits 7,6,5,4,3,2 */ #define V10CR1MASK 0x0000006e /* access to bits 6,5,3,2,1 */  #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek  */ #define EROFS 30 /* Read only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math arg out of domain of func */ #define ERANGE 34 /* Math result not representable */ #define ENOMSG 35 /* No message of desired type */ #define EIDRM 36 /* Identifier removed */ #define ECHRNG 37 /* Channel number out of range */ #define EL2NSYNC 38 /* Level 2 not synchronized */ #define EL3HLT 39 /* Level 3 halted */ #define EL3RST 40 /* Level 3 reset */ #define ELNRNG 41 /* Link number out of range */ #define EUNATCH 42 /* Protocol driver not attached */ #define ENOCSI 43 /* No CSI structure available */ #define EL2HLT 44 /* Level 2 halted */ FU 0x40 /* floating point underflow enable bit */ #define PS_DV 0x80 /* decimal overflow enable bit */ #define PS_IPL 0x1f0000 /* interrupt priority level */ #define PS_PRV 0xc00000 /* previous mode */ #define PS_CUR 0x3000000 /* current mode */ #define PS_IS 0x4000000 /* interrupt stack */ #define PS_FPD 0x8000000 /* first part done */ #define PS_TP 0x40000000 /* trace pending */ #define PS_CM 0x80000000 /* compatibility mode */ #endif   /* @(#)var.h 3.1 */ struct var { int v_buf; int v_call; int v_inode; char * ve_inode; int v_file; char * ve_file; int v_mount; char * ve_mount; int v_proc; char * ve_proc; int v_text; char * ve_text; int v_clist; int v_sabuf; int v_maxup; int v_smap; int v_hbuf; int v_hmask; int v_pbuf; #if m68k int v_cmap; /* coremap size */ #endif }; extern struct var v; /* @(#)fblk.h 3.1 */ struct fblk { int df_nfree; daddr_t df_free[NICFREE]; }; /* @(#)ram.h 3.1 */ /* ram configuration structure */ struct ram { unsigned short ram_lo; /* low ram range */ unsigned short ram_hi; /* high ram range ( + 1 ) */ unsigned short ram_sz; /* ram size */ unsigned short ram_flg; }; /* ram_flg values */  #define RAM_INIT 1 /* ram must be written to be reset */ #define RAM_HUNT 2 /* ram boards may or may not be located within range */ /* initial probe structure */ struct probe { char *probe_addr; /* address to be probed */ short probe_byte; /* byte to write into probe_addr */ }; /* (probe_addr is only read from if read if probe_byte < 0) */ /* x25.h 1.12 of 4/14/82 @(#)x25.h 3.1 2 */ #define X25LCH 7 /* size of per-link hash table */ #define MAXPKT 1024 /* maximum packet size */ #define HIRECVQ 4 /* high-water mark for slot recvq */ #define LORECVQ 2 /* low-water mark for slot recvq */ #define HIXMTQ 4 /* high-water mark for tab xmtq */ #define LOXMTQ 2 /* low-water mark for tab xmtq */ #define HIL2Q 4 /* high-water mark for Level 2 queue */ #define X25EBQMAX 4 /* max for empty buffer queue */ #define WINDOW 2 /* window size */ #define X25SEQNSZ 8 /* modulo value for seq number range */ #define X25HDRSZ 3 /* length of level 3 packet header */ #define MAXRS 1 /* max for retry counter l_rscount for Ts timer */ #define MAXRL 1 /* max for retry counter t_rlcount for Tl timer */ #define MAXRD 1 /* max for retry counter t_rdcount for Td timer */ #define MAXRJ 1 /* max for retry counter t_rjcount for Tj timer */ #define MAXRC 2 /* max for retry counter l_ccount for changeover */ struct x25info { int nslots; /* number of sl  /* @(#)file.h 3.1 */ /* * One file structure is allocated for each open/creat/pipe call. * Main use is to hold the read/write pointer associated with * each open file. */ struct file { char f_flag; cnt_t f_count; /* reference count */ union { struct inode *f_uinode; /* pointer to inode structure */ struct file *f_unext; /* next entry in freelist */ } f_up; union { off_t f_off; /* read/write character pointer */ } f_un; }; #define f_inode f_up.f_uinode #define f_next f_up.f_unext #define f_offset f_un.f_off extern struct file file[]; /* The file table itself */ extern struct file *ffreelist; /* Head of freelist pool */ /* flags */ #define FOPEN (-1) #define FREAD 00001 #define FWRITE 00002 #define FNDELAY 00004 #define FAPPEND 00010 #define FSYNC 00020 #define FMASK 00377 /* open only modes */ #define FCREAT 00400 #define FTRUNC 01000 #define FEXCL 02000 /* @(#)reg.h 3.1 */ /* * Location of the users' stored registers relative to R0. * Usage is u.u_ar0[XX]. */ #define R0 0 #define R1 1 #define R2 2 #define R3 3 #define R4 4 #define R5 5 #define R6 6 #define R7 7 #define R8 8 #define R9 9 #define R10 10 #define R11 11 #ifdef m68k #define R12 12 #define R13 13 #define R14 14 #if M68010 || M68020 #define R15 (-1) #else #define R15 (-2) #endif #define FP R14 #define SP R15 #if M68010 || M68020 #define PS 15 #define PC 16 #else #define PS 16 #define PC 17 #endif #else #define R12 (-3) #define R13 (-2) #define AP R12 #define FP R13 #define SP 13 #define PS 17 #define PC 16 #endif ots configured */ int ntabs; /* number of tabs configured */ int nlinks; /* number of links configured */ int nbd; /* number of buffer descriptors configured */ int nxbytes; /* size of buffer area in bytes */ }; /* Layout of items used per link */ struct x25link{ struct x25tab *l_x25chan[X25LCH]; /* array of ptrs to tab structures */ struct x25tab *l_begloq; /* pointer to beginning of low priority queue */ struct x25tab *l_endloq; /* pointer to end of low priority queue */ struct x25tab *l_beghiq; /* pointer to beginning of high priority queue */ struct x25tab *l_endhiq; /* pointer to end of high priority queue */ unsigned short l_pktsz; /* packetsize for the link */ unsigned char l_rststate; /* restart state of link */ unsigned char l_rscount; /* RS counter for TS timer */ unsigned char l_ccount; /* RC counter for TC timer */ struct l_state { unsigned short devset:1, /* set if primary device attached */ bkset:1, /* set if backup link attached */ rstonl2:1, /* set if RST pkt on/* @(#)filsys.h 3.1 */ /* * Structure of the super-block */ struct filsys { ushort s_isize; /* size in blocks of i-list */ daddr_t s_fsize; /* size in blocks of entire volume */ short s_nfree; /* number of addresses in s_free */ daddr_t s_free[NICFREE]; /* free block list */ short s_ninode; /* number of i-nodes in s_inode */ ino_t s_inode[NICINOD]; /* free i-node list */ char s_flock; /* lock during free list manipulation */ char s_ilock; /* lock during i-list manipulation */ char s_fmod; /* super block modified flag */ char s_ronly; /* mounted read-only flag */ time_t s_time; /* last super block update */ short s_dinfo[4]; /* device information */ daddr_t s_tfree; /* total free blocks*/ ino_t s_tinode; /* total free inodes */ char s_fname[6]; /* file system name */ char s_fpack[6]; /* file system pack name */ #ifdef m68k long s_fill[15]; /* ADJUST to make sizeof filsys be 512 */ #else long s_fill[13]; /* ADJUST to make sizeof filsys be 512 */ #endif long s_magic; /* magic number to   /* @(#)seg.h 3.1 */ /* * Memory management addresses and bits */ #define RO SEG_PROTECT /* access abilities */ #define RW 0  Level 2 queue */ l2full:1, /* set if lev 2 q at high-water mark */ l3run:1, /* 1 if level 3 running */ run:1, /* indicates where lev 3 is running */ /* 0:primary, 1:backup */ bkstart:1, /* 1 if backup started by nc driver */ trychg:1, /* set if trying to change over */ statchg:2, /* status of last changeover 0:none, */ /* 1:CHGOCC, 2:CHGFAIL, 3:CHGDEAD */ nchgfails:6; /* number of times changeover failed */ } l_state; struct l_line { unsigned short idev; /* csi device index */ char l2sync; /* set if lev 2 synchronized */ unsigned char nl2fails; /* numb of times N2 ctr at max */ short errcode; /* errcode sent from PCD */ } l_line[2]; }; /* * Layout of items used per logical channel. * There must be one of these structures assigned for * each logical channel that may be assigned on a link group. */ struct x25tab { struct csillist t_xmtq; /* transmit queue for data packets */ struct csibd *t_unack[X25SEQNSZ]; /* for unacknowledged packets */ struct x25tab indicate new file system */ long s_type; /* type of new file system */ }; #define FsMAGIC 0xfd187e20 /* s_magic number */ #define Fs1b 1 /* 512 byte block */ #define Fs2b 2 /* 1024 byte block */ /* @(#)sem.h 3.1 */ /* ** IPC Semaphore Facility. */ /* ** Implementation Constants. */ #define PSEMN (PZERO + 3) /* sleep priority waiting for greater value */ #define PSEMZ (PZERO + 2) /* sleep priority waiting for zero */ /* ** Permission Definitions. */ #define SEM_A 0200 /* alter permission */ #define SEM_R 0400 /* read permission */ /* ** Semaphore Operation Flags. */ #define SEM_UNDO 010000 /* set up adjust on exit entry */ /* ** Semctl Command Definitions. */ #define GETNCNT 3 /* get semncnt */ #define GETPID 4 /* get sempid */ #define GETVAL 5 /* get semval */ #define GETALL 6 /* get all semval's */ #define GETZCNT 7 /* get semzcnt */ #define SETVAL 8 /* set semval */ #define SETALL 9 /* set all semval's */ /* ** Structure Definitions. */  /* ** There is one semaphore id data structure for each set of semaphores ** in the system. */ struct semid_ds { struct ipc_perm sem_perm; /* operation permission struct */ struct sem *sem_base; /* ptr to first semaphore in set */ ushort sem_nsems;   *t_nextab; /* pointer to next tab for hashing */ struct x25tab *t_nexthi; /* pointer to next tab structure on high priority queue */ struct x25tab *t_nextlo; /* pointer to next tab structure on low priority queue */ struct x25slot *t_slotp; /* ptr to slot connected to this tab */ short t_chno; /* logical channel number on link */ unsigned char t_link; /* index of link structure x25link */ unsigned char t_dgnsend; /* diagnostic code for sending RES or RST pkt*/ unsigned char t_dgnrecv; /* diagnostic code for received RES or RST packet */ unsigned char t_rlcount; /* Rl counter for Tl timer */ unsigned char t_rdcount; /* Rd counter for Td timer */ unsigned char t_rjcount; /* Rj counter for Tj timer */ unsigned char t_seqsent; /* bit position set means data with that seqno is being xmitted */ struct { unsigned short r_ps:3, /* next expected receive P(S) */ s_pr:3, /* last sent value of P(R) */ s_ps:3, /* next send P(S) */ r_pr:3, /* last received value of P(R) */ osdbit:4; /* seq /* static char SCCSID[] = "@(#)fp.h 3.1 "; */ /* * parameters of the implementation */ #define EXPSIZE 8 #define EXPOFFSET ((1 << (EXPSIZE - 1)) - 2) #define INFEXP ((1 << EXPSIZE) - 1) #define MAXEXP ((1 << EXPSIZE) - 2) #define FRACSIZE 23 #define HIDDENBIT 0x00800000L #define CARRYBIT (HIDDENBIT << (GBITS + 1)) #define GBITS 2 #define NORMMASK 0xfe000000L /* * macros to pick pieces out of long integers * this must change if FRACSIZE changes * presently we assume two 12-bit pieces */ #define CHUNK 12 #define lmul(x,y) ((long) (x) * (long) (y)) #define lo(x) ((x) & 0xfff) #define hi(x) ((x) >> CHUNK) #define hibit(x) (((short)(x) >> (CHUNK - 1)) & 1) struct fpnum { unsigned sign:1; unsigned exp:EXPSIZE; long unsigned frac:FRACSIZE; }; typedef struct fpnum fp; static fp zero; static fp infinity = {0, ~0, 0}; fp fladd(), flsub(), flmul(), fldiv(), flneg(), fp_addmag(), fp_submag(); fp itof(), uitof(), ltof(), ultof(); /* # of semaphores in set */ time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ }; /* ** There is one semaphore structure for each semaphore in the system. */ struct sem { ushort semval; /* semaphore text map address */ short sempid; /* pid of last operation */ ushort semncnt; /* # awaiting semval > cval */ ushort semzcnt; /* # awaiting semval = 0 */ }; /* ** There is one undo structure per process in the system. */ struct sem_undo { struct sem_undo *un_np; /* ptr to next active undo structure */ short un_cnt; /* # of active entries */ struct undo { short un_aoe; /* adjust on exit values */ short un_num; /* semaphore # */ int un_id; /* semid */ } un_ent[1]; /* undo entries (one minimum) */ }; /* ** semaphore information structure */ struct seminfo { int semmap, /* # of entries in semaphore map */ semmni, /* # of semaphore identifiers */ semmns, /* # of semaphores in system */ semmnu, /* # of undo structures in system */ semmsl, /* max # of # of unack pkt with Dbit set */ } t_seq; struct { unsigned short res:1, /* send reset packet */ resc:1, /* send reset conf packet */ inte:1, /* send interrupt packet */ intc:1, /* send interrupt conf packet */ rnr:1, /* send receiver-not-ready packet */ rr:1, /* send receiver-ready packet */ data:1, /* send data packet */ rej:1, /* send reject packet */ wa:1, /* send window advancement packet - rr,rnr or data */ onhiq:1, /* set if tab is on high priority queue */ onloq:1, /* set if tab is on low priority queue */ rejneed:1, /* need to schedule a REJ pkt */ rejxmit:1, /* transmitted a REJ pkt and have not received DATA with PS=PR */ rejrec:1, /* received REJ & have not sent out DATA with PS = PR */ :2; } t_flags; struct t_state { unsigned short state:4, /* state of channel - R1,R2,R3,D1,D2,D3 */ intstate:2, /* interrupt state within D1 - I2,I3,I4 */ sending:1, /* set if channel can send data */ rcving:1, /* set if channel can receive data */  /* @(#)init.h 3.1 */ extern int clkstart(),cinit(),binit(),errinit(),iinit(),inoinit(); extern int finit(); #ifdef X25_0 extern x25init(); #endif #ifdef ST_0 extern stinit(); #endif #ifdef VPM_0 extern vpminit(); #endif /* Array containing the addresses of the various initializing */ /* routines executed by "main" at boot time. */ int (*init_tbl[])() = { inoinit, clkstart, cinit, binit, errinit, finit, iinit, #ifdef VPM_0 vpminit, #endif #ifdef X25_0 x25init, #endif #ifdef ST_0 stinit, #endif 0 }; semaphores per id */ semopm, /* max # of operations per semop call */ semume, /* max # of undo entries per process */ semusz, /* size in bytes of undo structure */ semvmx, /* semaphore maximum value */ semaem; /* adjust on exit max value */ }; /* ** User semaphore template for semop system calls. */ struct sembuf { ushort sem_num; /* semaphore # */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */ };  unconfint:1, /* set if an interrupt is unconfirmed */ delconf:1, /* set if delivery conf is requested */ isreset:1, /* set if chan was just reset */ faropen:1, /* set if far end open */ dbitset:1, /* set when writer sets Dbit */ :3; } t_state; }; /* Layout of items used per slot structure */ struct x25slot { struct csillist s_recvq; /* receive queue */ struct x25tab *s_tabp; /* ptr to tab connected to this slot */ short s_brdcnt; /* num chars read out of buf on header recvq */ struct s_flags { unsigned short openrd:1, /* open for reading */ openwr:1, /* open for writing */ wrsleep:1, /* writers should sleep - xmitq full */ messcont:1, /* message will be cont'd next read */ sesspr:2, /* session setup protocol */  excl:1, /* exclusive use */ ndelay:1, /* no delay */ :8; } s_flags; }; /* Per-channel timers */ #define TL 0 #define TD 1 #define TF 2 #define TJ 3 #define NTIMER 4 #define ALLTIMER (-1) /* Per-link timers */ #define TSTIMER 0 #define TCTIMER /* @(#)ino.h 3.1 */ /* Inode structure as it appears on a disk block. */ struct dinode { ushort di_mode; /* mode and type of file */ short di_nlink; /* number of links to file */ ushort di_uid; /* owner's user id */ ushort di_gid; /* owner's group id */ off_t di_size; /* number of bytes in file */ char di_addr[40]; /* disk block addresses */ time_t di_atime; /* time last accessed */ time_t di_mtime; /* time last modified */ time_t di_ctime; /* time created */ }; /* * the 40 address bytes: * 39 used; 13 addresses * of 3 bytes each. */  /* @(#)shm.h 3.1 */ /* ** IPC Shared Memory Facility. */ /* ** Implementation Constants. */ #define SHMLBA ctob(1) /* segment low boundary address multiple */ /* (SHMLBA must be a power of 2) */ /* ** Permission Definitions. */ #define SHM_R 0400 /* read permission */ #define SHM_W 0200 /* write permission */ /* ** ipc_perm Mode Definitions. */ #define SHM_CLEAR 01000 /* clear segment on next attach */ #define SHM_DEST 02000 /* destroy segment when # attached = 0 */ /* ** Message Operation Flags. */ #define SHM_RDONLY 010000 /* attach read-only (else read-write) */ #define SHM_RND 020000 /* round attach address to SHMLBA */ /* ** Structure Definitions. */ /* ** There is a shared mem id data structure for each segment in the system. */ struct shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ int shm_segsz; /* segment size */ #ifndef m68k struct pt_entry *shm_ptbl; /* ptr to associated page table */ #else int shm_paddr; /* physical address of segment */ #endif ushort 1 #define TKTIMER 2 #define TWTIMER 3 #define NLNTIMER 4 /* Timer initial values */ #define TLVAL 60 #define TDVAL 180 #define TFVAL 30 #define TJVAL 40 #define TSVAL 45 #define TCVAL 60 #define TKVAL 30 #define TWVAL 10 /* timer list entry - one for each tab */ struct x25timer { struct x25timer *tnext; short chno; unsigned char tval[NTIMER]; }; /* per link timers */ struct x25lntimer { unsigned char lntval[NLNTIMER]; }; /* packet types */ #define RST 1 #define RSTC 2 #define RES 3 #define RESC 4 #define INT 5 #define INTC 6 #define RNR 7 #define RR 8 #define WA 9 #define REJ 10 #define DATA 11 #define INV_PKT 12 #define INV_LEN 13 /* channel states */ #define HALTED 0 /* halted state */ #define R1 1 /* flow control ready */ #define R2 2 /* processing restart indication */ #define R3 3 /* awaiting restart confirmation */ #define D1 4 /* data - flow control ready */ #define D2 5 /* processing reset indication */ #define D3 6 /* awaiting reset confirmation */ /* interrupt states within D1 */ #def/* @(#)inode.h 3.1 */ /* * The I node is the focus of all * file activity in unix. There is a unique * inode allocated for each active file, * each current directory, each mounted-on * file, text file, and the root. An inode is 'named' * by its dev/inumber pair. (iget/iget.c) * Data, from mode on, is read in * from permanent inode on volume. */ #define NADDR 13 #define NSADDR (NADDR*sizeof(daddr_t)/sizeof(short)) struct inode { struct inode *i_forw; /* hash chain forw */ struct inode *i_back; /* hash chain back */ char i_flag; cnt_t i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ ino_t i_number; /* i number, 1-to-1 with device address */ ushort i_mode; short i_nlink; /* directory entries */ ushort i_uid; /* owner */ ushort i_gid; /* group of owner */ off_t i_size; /* size of file */ struct { union { daddr_t i_a[NADDR]; /* if normal file/directory */ short i_f[NSADDR]; /* if fifo's */ } i_p; daddr_t i_l; /* last logical block read (for read- shm_lpid; /* pid of last shmop */ ushort shm_cpid; /* pid of creator */ ushort shm_nattch; /* current # attached */ ushort shm_cnattch; /* in memory # attached */ time_t shm_atime; /* last shmat time */ time_t shm_dtime; /* last shmdt time */ time_t shm_ctime; /* last change time */ }; struct shmpt_ds { #ifndef m68k int shm_spte; /* starting pte entry */ #else int shm_vaddr; /* per-process virtual address of segment */ #endif int shm_sflg; /* R/W permission on segment */ }; struct shminfo { int shmmax, /* max shared memory segment size */ shmmin, /* min shared memory segment size */ shmmni, /* # of shared memory identifiers */ shmseg, /* max attached shared memory segments per process */ shmbrk, /* gap (in clicks) used between data and shared memory */ shmall; /* max total shared memory system wide (in clicks) */ };  ine I1 0 /* not interrupted */ #define I2 1 /* processing interrupt */ #define I3 2 /* awaiting interrupt confirmation */ #define I4 3 /* transmitted/received interrupt */ /* priorities */ #define HI 1 #define LOW 2 #define PR_OK 0 #define PR_OW 1 #define PR_SAME 2 #define PS_OK 0 #define PS_OW 1 #define PRIM 0 #define BKUP 1 #define SETSEQ(BITS, SEQN) (BITS |= (01<>SEQN)&01) #ifdef CBUNIX #define FNDELAY 04 #define FEXCL 0 #endif #define CHECKRRDY(SLOTP) if (SLOTP->s_recvq.l_ql <= LORECVQ) x25rrdy(SLOTP->s_tabp) #define X25PRI (PZERO+5) #define X25HIPRI (PZERO-1) #define TOBUF 1 #define FROMBUF 2 /* buffer statistics and header statistics */ struct x25m { int bufused; /* bytes of buffer space used */ int bufwrite; /* bytes used for user write buffers */ int bufrcv; /* bytes of buffer space used for rcv */ int bdused; /* buffer desc. used */ int bdwrite; /* buffer desc. used for user writes */ int ahead) */ } i_blks; }; extern struct inode inode[]; /* The inode table itself */ /* flags */ #define ILOCK 01 /* inode is locked */ #define IUPD 02 /* file has been modified */ #define IACC 04 /* inode access time to be updated */ #define IMOUNT 010 /* inode is mounted on */ #define IWANT 020 /* some process waiting on lock */ #define ITEXT 040 /* inode is pure text prototype */ #define ICHG 0100 /* inode has been changed */ #define ISYN 0200 /* do synchronous write for iupdate */ /* modes */ #define IFMT 0170000 /* type of file */ #define IFDIR 0040000 /* directory */ #define IFCHR 0020000 /* character special */ #define IFBLK 0060000 /* block special */ #define IFREG 0100000 /* regular */ #define IFMPC 0030000 /* multiplexed char special */ #define IFMPB 0070000 /* multiplexed block special */ #define IFIFO 0010000 /* fifo special */ #define ISUID 04000 /* set user id on execution */ #define ISGID 02000 /* set group id on execution */ #define ISVTX 01000 /* save swapped text even aft/* @(#)signal.h 3.1 */ #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt (rubout) */ #define SIGQUIT 3 /* quit (ASCII FS) */ #define SIGILL 4 /* illegal instruction (not reset when caught)*/ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* segmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a pipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ #define SIGUSR1 16 /* user defined signal 1 */ #define SIGUSR2 17 /* user defined signal 2 */ #define SIGCLD 18 /* death of a child */ #define SIGPWR 19 /* power-fail restart */ #define NSIG 20 #define SIG_DFL (int (*)())0 #if lint #define SIG_IGN (int (*)())0 #else #define SIGbdrcv; /* buffer desc. used for rcv buffers */ int wantbd; /* set if sleeping for buffer space */ }; /* usage for buffer descriptor: rcv data, control packet, xmt data */ #define RCVDBD 0 #define CTLBD 1 #define XMTDBD 2 #ifdef pdp11 #define OCTET1(BDP) BDP->d_octet1 #define OCTET2(BDP) BDP->d_octet2 #define OCTET3(BDP) BDP->d_octet3 #define HDPTR(BDP) (struct level_3 *)&BDP->d_octet1 #define HDROFFSET 0 #else #define OCTET1(BDP) *BDP->d_adres #define OCTET2(BDP) *(BDP->d_adres+1) #define OCTET3(BDP) *(BDP->d_adres+2) #define HDPTR(BDP) (struct level_3 *)BDP->d_adres #define HDROFFSET X25HDRSZ #endif #define RUNIND linkp->l_state.run #define STNDIND linkp->l_state.run?0:1 #define NOCHG 0 /* no changeover requested */ #define CHGOCC 1 /* changeover occurred */ #define CHGFAIL 2 /* changeover failed - Lev 2 of standby not sync */ #define CHGDEAD 3 /* changeover failed - Lev 2 of standby dead */ #define RUNDEAD 4 /* arg to x25chnge if changeover must occur */ /* because running line is dead * er use */ #define IREAD 0400 /* read, write, execute permissions */ #define IWRITE 0200 #define IEXEC 0100 #define i_addr i_blks.i_p.i_a #define i_lastr i_blks.i_l #define i_rdev i_blks.i_p.i_a[0] #define i_faddr i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ NFADDR*BSIZE #define i_frptr i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_blks.i_p.i_f[NSADDR-4] #define i_frcnt i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 _IGN (int (*)())1 #endif /* SIGFPE codes */ #define KINTOVF 1 /* integer overflow */ #define KINTDIV 2 /* integer divide by zero */ #define KFLTOVF 3 /* floating overflow */ #define KFLTDIV 4 /* floating divide by zero */ #define KDECDIV KFLTDIV /* decimal divide by zero */ #define KFLTUND 5 /* floating underflow */ #define KDECOVF 6 /* decimal overflow */ #define KSUBRNG 7 /* subscript range */ / #ifdef CBUNIX #define MINOR(DEV) DEV = minor(DEV) #else #define MINOR(DEV) #endif /* @(#)io.h 3.10 */ #ifdef m68k struct size { daddr_t nblocks; /* size of slice in blocks */ daddr_t blkoff; /* first physical block in slice */ }; /* * The slicing is defined as follows: * * Minor Number[0:2] defines one of 8 slices and * Minor Number[3:5] defines the following devices: * * For the universal disk controller M68kVM21: * 0: hard device 0 (fixed) * 1: hard device 1 (removable) * 2: hard device 2 (fixed) * 3: hard device 3 (removable) * 4: floppy device 4 * 5: floppy device 5 * 6: floppy device 6 * 7: floppy device 7 * * For the winchester disk controller M68RWIN1: * 0: hard device 0 (winchester) * 1: hard device 1 (winchester) * 2: floppy device 2 * 3: floppy device 3 * * Minor Number[6:7] defines one of 4 controllers. */ /* * Drive options for the universal disk controller M68KVM21 */ /* * 32mb fixed/removable CMD disk * 16/16mb nominal 13.5/13.5mb formatted * Used to define drives 0 and 1 or drives 2 and 3 */ #define UDFRC1\ 2 /* @(#)space.h 3.4 */ #define KERNEL #include "sys/acct.h" struct acct acctbuf; struct inode *acctp; #ifdef m68k #include "sys/mmu.h" struct mmu_table mmu_table[NPROC]; /* internal table */ #endif #include "sys/tty.h" struct cblock cfree[NCLIST]; /* free list for character block */ #include "sys/buf.h" struct buf bfreelist; /* head of the free list of buffers */ struct pfree pfreelist; /* Head of physio header pool */ struct buf pbuf[NPBUF]; /* Physical io header pool */ struct hbuf hbuf[NHBUF]; /* buffer hash table */ #include "sys/file.h" struct file file[NFILE]; /* file table */ #include "sys/inode.h" struct inode inode[NINODE]; /* inode table */ #include "sys/proc.h" struct proc proc[NPROC]; /* process table */ #include "sys/text.h" struct text text[NTEXT]; /* text table */ #include "sys/map.h" struct map swapmap[SMAPSIZ] = {mapdata(SMAPSIZ)}; struct map coremap[CMAPSIZ] = {mapdata(CMAPSIZ)}; #ifdef m68k struct map initmap[CMAPSIZ] = {mapdata(CMAPSIZ)}; #endif #include "sys/callo.h" struct call/* x25macro.h 1.2 of 12/17/81 @(#)x25macro.h 3.1 */ /* * This file contains definitions of macros that are used to * access the items in the level 3 packet header. */ /* get the packet receive sequence number */ #define x25getpr(PKTHDR) (((PKTHDR->A_PR) & X25_PR) >> H_PR) /* get the packet send sequence number */ #define x25getps(PKTHDR) (((PKTHDR->A_PS) & X25_PS) >> H_PS) /* get the qualifier bit */ #define x25getqbit(PKTHDR) (((PKTHDR->A_QBIT) & X25_QBIT) >> H_QBIT) /* get the confirm bit */ #define x25getdbit(PKTHDR) (((PKTHDR->A_DBIT) & X25_DBIT) >> H_DBIT) /* get the general format indicator */ #define x25getgfi(PKTHDR) (((PKTHDR->A_GFI) & X25_GFI) >> H_GFI) /* get the logical channel group number */ #define x25getcgn(PKTHDR) (((PKTHDR->A_LCGN) & X25_LCGN) >> H_LCGN) /* get the logical channel number */ #define x25getcn(PKTHDR) (((PKTHDR->A_LCN) & X25_LCN) >> H_LCN) /* get the more data bit */ #define x25getmbit(PKTHDR) (((PKTHDR->A_MBIT) & X25_MBIT) >> H_MBIT) /* get the data 6336, 0,\ 23044, 3292,\ 19752, 6584,\ 16460, 9876,\ 13168, 13168,\ 9876, 16460,\ 6584, 19752,\ 3292, 23044,\ 26336, 0,\ 23044, 3292,\ 19752, 6584,\ 16460, 9876,\ 13168, 13168,\ 9876, 16460,\ 6584, 19752,\ 3292, 23044, /* * 96mb fixed/removable CMD disk * 80/16mb nominal 67.4/13.5mb formatted * Used to define drives 0 and 1 or drives 2 and 3 */ #define UDFRC3\ 26336, 0,\ 105344, 26336,\ 79008, 52672,\ 52672, 79008,\ 39504, 92176,\ 26336, 105344,\ 13168, 118512,\ 131680, 0,\ 26336, 0,\ 23044, 3292,\ 19752, 6584,\ 16460, 9876,\ 13168, 13168,\ 9876, 16460,\ 6584, 19752,\ 3292, 23044, /* * Alternate 96mb fixed/removable CMD disk * 80/16mb nominal 67.4/13.5mb formatted * Used to define drives 0 and 1 or drives 2 and 3 */ #define UDFRC4\ 26336, 0,\ 13168, 13168,\ 39504, 26336,\ 39504, 65840,\ 13168, 105344,\ 13168, 118512,\ 26336, 52672,\ 131680, 0,\ 26336, 0,\ 23044, 3292,\ 19752, 6584,\ 16460, 9876,\ 13168, 13168,\ 9876, 16460,\ 6584, 19752,\ 3292, 23044, /o callout[NCALL]; /* Callout table */ #include "sys/mount.h" struct mount mount[NMOUNT]; /* Mount table */ #include "sys/elog.h" #include "sys/err.h" struct err err = { /* Error slots */ NESLOT, }; #include "sys/sysinfo.h" struct sysinfo sysinfo; struct syswait syswait; struct syserr syserr; #include "sys/opt.h" #include "sys/var.h" struct var v = { NBUF, NCALL, NINODE, (char *)(&inode[NINODE]), NFILE, (char *)(&file[NFILE]), NMOUNT, (char *)(&mount[NMOUNT]), NPROC, (char *)(&proc[1]), NTEXT, (char *)(&text[NTEXT]), NCLIST, NSABUF, MAXUP, SMAPSIZ, NHBUF, NHBUF-1, NPBUF, #if m68k CMAPSIZ, #endif }; #include "sys/init.h" #ifndef PRF_0 prfintr() {} int prfstat; #endif #ifdef VP_0 #include "sys/vp.h" #endif #ifndef m68k #ifdef DISK_0 #define RM05_0 #define RP06_0 #define RM80_0 #define RP07_0 #ifndef DISK_1 #define DISK_1 0 #endif #ifndef DISK_2 #define DISK_2 0 #endif #ifndef DISK_3 #define DISK_3 0 #endif #include "sys/iobuf.h" #define DISKS (DISK_0+DISK_1+DISK_2+DISK_3) struct io packet indicator */ #define x25getdflg(PKTHDR) (((PKTHDR->A_DFLG) & X25_DFLG) >> H_DFLG) /* get the supervisory packet type */ #define x25getstype(PKTHDR) (((PKTHDR->A_STYPE) & X25_STYPE) >> H_STYPE) /* get the unnumbered packet type */ #define x25getutype(PKTHDR) (((PKTHDR->A_UTYPE) & X25_UTYPE) >> H_UTYPE) /* set the packet receive sequence number to the specified value */ #define x25setpr(PKTHDR,VALUE) \ PKTHDR->A_PR &= ~(X25_PR), \ PKTHDR->A_PR |= ((VALUE << H_PR) & X25_PR) /* set the packet send sequence number to the specified value */ #define x25setps(PKTHDR,VALUE) \ PKTHDR->A_PS &= ~(X25_PS), \ PKTHDR->A_PS |= ((VALUE << H_PS) & X25_PS) /* set the qualifier bit to the specified value */ #define x25setqbit(PKTHDR,VALUE) \ PKTHDR->A_QBIT &= ~(X25_QBIT), \ PKTHDR->A_QBIT |= ((VALUE << H_QBIT) & X25_QBIT) /* set the confirm bit to the specified value */ #define x25setdbit(PKTHDR,VALUE) \ PKTHDR->A_DBIT &= ~(X25_DBIT), \ PKTHDR->A_DBIT |= ((VALUE << H_DBIT) & X25_DBIT) /* set * * 50mb fixed/removable LARK disk * 25/25mb nominal 20.4/20.4mb formatted * Used to define drives 0 and 1 or drives 2 and 3 */ #define UDFRL1\ 39936, 0,\ 34944, 4992,\ 29952, 9984,\ 24960, 14976,\ 19968, 19968,\ 14976, 24960,\ 9984, 29952,\ 4992, 34944,\ 39936, 0,\ 34944, 4992,\ 29952, 9984,\ 24960, 14976,\ 19968, 19968,\ 14976, 24960,\ 9984, 29952,\ 4992, 34944, /* space holder in table for unused minor device */ #define NODISK\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* defines partition 0 for single sided and partition 1 for double sided */ #define FLOPPY\ 500, 0,\ 1000, 0,\ 0,0,0,0,0,0,0,0,0,0,0,0, /* * Drive options for the winchester disk controller M68RWIN1 */ /* * 5mb winchester disk * 5mb nominal 4.8mb available * Used to define drives 0 and 1 * * 306 cylinders, 2 heads, 16 blocks/track * 12 cylinders set aside for alternates */ #define WD5\ 9408, 0,\ 8232, 1176,\ 7056, 2352,\ 5880, 3528,\ 4704, 4704,\ 3528, 5880,\ 2352, 7056,\ 1176, 8232, /* * 15mbbuf gdtab[DISKS]; struct iobuf gdutab[DISKS*8]; int gdindex[DISKS*8]; short gdtype[DISKS*8]; struct iotime gdstat[DISKS*8]; #endif #else #if MEXOR || VM03 #ifdef DISK_0 #ifndef DISK_1 #define DISK_1 0 #endif #ifndef DISK_2 #define DISK_2 0 #endif #ifndef DISK_3 #define DISK_3 0 #endif #include "sys/iobuf.h" #define CTLS ((DISK_0+DISK_1+DISK_2+DISK_3)/64) struct iotime udstat[CTLS*8]; struct iobuf udtab[CTLS]; struct iobuf udutab[CTLS*8] = { tabinit(0,&udstat[0].ios), tabinit(0,&udstat[1].ios), tabinit(0,&udstat[2].ios), tabinit(0,&udstat[3].ios), tabinit(0,&udstat[4].ios), tabinit(0,&udstat[5].ios), tabinit(0,&udstat[6].ios), tabinit(0,&udstat[7].ios), #if CTLS>1 tabinit(0,&udstat[8].ios), tabinit(0,&udstat[9].ios), tabinit(0,&udstat[10].ios), tabinit(0,&udstat[11].ios), tabinit(0,&udstat[12].ios), tabinit(0,&udstat[13].ios), tabinit(0,&udstat[14].ios), tabinit(0,&udstat[15].ios), #if CTLS>2 tabinit(0,&udstat[16].ios), tabinit(0,&udstat[17].ios), tabinit(0,&udstat[18].ios), tabinit(0,&udstat[19].iosthe general format indicator to the specified value */ #define x25setgfi(PKTHDR,VALUE) \ PKTHDR->A_GFI &= ~(X25_GFI), \ PKTHDR->A_GFI |= ((VALUE << H_GFI) & X25_GFI) /* set the logical channel group number to the specified value */ #define x25setcgn(PKTHDR,VALUE) \ PKTHDR->A_LCGN &= ~(X25_LCGN), \ PKTHDR->A_LCGN |= ((VALUE << H_LCGN) & X25_LCGN) /* set the logical channel number to the specified value */ #define x25setcn(PKTHDR,VALUE) \ PKTHDR->A_LCN &= ~(X25_LCN), \ PKTHDR->A_LCN |= ((VALUE << H_LCN) & X25_LCN) /* set the more data bit to the specified value */ #define x25setmbit(PKTHDR,VALUE) \ PKTHDR->A_MBIT &= ~(X25_MBIT), \ PKTHDR->A_MBIT |= ((VALUE << H_MBIT) & X25_MBIT) /* set the data packet indicator to the specified value */ #define x25setdflg(PKTHDR,VALUE) \ PKTHDR->A_DFLG &= ~(X25_DFLG), \ PKTHDR->A_DFLG |= ((VALUE << H_DFLG) & X25_DFLG) /* set the supervisory packet type to the specified value */ #define x25setstype(PKTHDR,VALUE) \ PKTHDR->A_STYPE &= ~(X25_STYPE),   winchester disk * 15mb nominal 14.1mb available * Used to define drives 0 and 1 * * 306 cylinders, 6 heads, 16 blocks/track * 12 cylinders set aside for alternates */ #define WD15\ 24584, 112,\ 21168, 7056,\ 17640, 10584,\ 14112, 14112,\  10584, 17640,\ 7056, 21168,\ 3528, 24696,\ 28224, 0, /* * 40 mb winchester disk * 40 mb nominal 39.2 available * Used to define drives 0 and/or 1 * * 830 cylinders, 6 heads, 16 blocks/track * 12 cylinders set aside for alternates */ #define WD40\ 68600, 112,\ 58896, 19632,\ 49080, 29448,\ 39264, 39264,\ 29448, 49080,\ 19632, 58896,\ 9816, 68712,\ 78528, 0, /* defines partition 0 for double sided double density */ #define WFLOPPY\ 1276, 0,\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0, #ifndef DISK01 #define DISK01 UDFRC1 /* Fixed/Removable CMD */ #endif #ifndef DISK23 #define DISK23 UDFRC1 /* Fixed/Removable CMD */ #endif #ifdef MEXOR #ifndef DISK89 #define DISK89 UDFRC1 /* Fixed/Removable CMD */ #endif #ifndef DISK1011 #define DISK1011 UDFRC1 /* F), tabinit(0,&udstat[20].ios), tabinit(0,&udstat[21].ios), tabinit(0,&udstat[22].ios), tabinit(0,&udstat[23].ios), #if CTLS>3 tabinit(0,&udstat[24].ios), tabinit(0,&udstat[25].ios), tabinit(0,&udstat[26].ios), tabinit(0,&udstat[27].ios), tabinit(0,&udstat[28].ios), tabinit(0,&udstat[29].ios), tabinit(0,&udstat[30].ios), tabinit(0,&udstat[31].ios), #endif #endif #endif }; #endif #endif #endif #ifdef TRACE_0 #include "sys/trace.h" struct trace trace[TRACE_0]; #endif #ifdef CSI_0 #include "sys/csi.h" #include "sys/csihdw.h" struct csi csi_csi[CSI_0]; int csibnum = CSIBNUM; struct csibuf *csibpt[CSIBNUM]; #endif #ifdef VPM_0 #include "sys/vpmt.h" struct vpmt vpmt[VPM_0]; struct csibd vpmtbd[VPM_0*(XBQMAX + EBQMAX)]; struct vpminfo vpminfo = {XBQMAX, EBQMAX, VPM_0*(XBQMAX + EBQMAX)}; int vpmbsz= VPMBSZ; #endif #ifdef DMK_0 #define MAXDMK 4 #include "sys/dmk.h" struct dmksave dmksave[MAXDMK]; #endif #ifdef X25_0 #include "sys/x25.h" struct x25slot x25slot[X25_0]; struct x25tab x25tab[X25_0]; struct x25\ PKTHDR->A_STYPE |= ((VALUE << H_STYPE) & X25_STYPE) /* set the unnumbered packet type to the specified value */ #define x25setutype(PKTHDR,VALUE) \ PKTHDR->A_UTYPE &= ~(X25_UTYPE), \ PKTHDR->A_UTYPE |= ((VALUE << H_UTYPE) & X25_UTYPE) ixed/Removable CMD */ #endif #ifndef DISK1617 #define DISK1617 UDFRC1 /* Fixed/Removable CMD */ #endif #ifndef DISK1819 #define DISK1819 UDFRC1 /* Fixed/Removable CMD */ #endif #ifndef DISK2425 #define DISK2425 UDFRC1 /* Fixed/Removable CMD */ #endif #ifndef DISK2627 #define DISK2627 UDFRC1 /* Fixed/Removable CMD */ #endif struct size ud_sizes[CTLS][8][8] = #else struct size ud_sizes[8][8] = #endif { DISK01 /* Fixed/Removable CMD */ DISK23 /* Fixed/Removable CMD */ FLOPPY FLOPPY FLOPPY FLOPPY #ifdef MEXOR #if CTLS>1 /* more than one controller */ DISK89 /* Fixed/Removable CMD */ DISK1011 /* Fixed/Removable CMD */ FLOPPY FLOPPY FLOPPY FLOPPY #if CTLS>2 /* more than two controllers */ DISK1617 /* Fixed/Removable CMD */ DISK1819 /* Fixed/Removable CMD */ FLOPPY FLOPPY FLOPPY FLOPPY #if CTLS>3 /* more than three controllers */ DISK2425 /* Fixed/Removable CMD */ DISK2627 /* Fixed/Removable CMD */ FLOPPY FLOPPY FLOPPY FLOPPY #endif #endif #endif #endif }; #ifdef WDC st timer x25timer[X25_0]; struct x25link x25link[X25LINKS]; struct x25timer *x25thead[X25LINKS]; struct x25lntimer x25lntimer[X25LINKS]; struct csibd x25bd[X25BUFS]; struct csibuf x25buf; struct x25info x25info = {X25_0, X25_0, X25LINKS, X25BUFS, X25BYTES}; #endif #ifdef PCL11B_0 #include "sys/pcl.h" #endif #if MESG==1 #include "sys/ipc.h" #include "sys/msg.h" struct map msgmap[MSGMAP]; struct msqid_ds msgque[MSGMNI]; struct msg msgh[MSGTQL]; struct msginfo msginfo = { MSGMAP, MSGMAX, MSGMNB, MSGMNI, MSGSSZ, MSGTQL, MSGSEG }; #endif #if SEMA==1 # ifndef IPC_ALLOC # include "sys/ipc.h" # endif #include "sys/sem.h" struct semid_ds sema[SEMMNI]; struct sem sem[SEMMNS]; struct map semmap[SEMMAP]; struct sem_undo *sem_undo[NPROC]; #define SEMUSZ (sizeof(struct sem_undo)+sizeof(struct undo)*SEMUME) int semu[((SEMUSZ*SEMMNU)+NBPW-1)/NBPW]; union { short semvals[SEMMSL]; struct semid_ds ds; struct sembuf semops[SEMOPM]; } semtmp; struct seminfo seminfo = { SEMMAP, SEMMNI, SEMMNS, SEMMNU, SEMMSL, S/* x25packet.h 1.3 of 12/18/81 @(#)x25packet.h 3.1 */ /* this file contains the layout of the BLX.25 level 3 packet header */ /* layout of the level 3 packet header common for all level 3 * packet types - this is contained in the buffer descriptor * structure vpmbd */ struct level_3 { char x25_oct1; /* octet 1 of the header */ char x25_oct2; /* octet 2 of the header */ char x25_oct3; /* octet 3 of the header */ }; /* layout for x25_octet 1 of the level 3 header * * ABCCDDDD * * A - qualifier bit * B - delivery conformation bit * C - general format identifier * D - logical channel group number */ /* mask of x25_octet 1 items */ #define X25_QBIT 0x80 #define X25_DBIT 0x40 #define X25_GFI 0x30 #define X25_LCGN 0x0f /* address of x25_octet 1 items */ #define A_QBIT x25_oct1 #define A_DBIT x25_oct1 #define A_GFI x25_oct1 #define A_LCGN x25_oct1 /* displacement of x25_octet 1 items */ #define H_QBIT 7 #define H_DBIT 6 #define H_GFI 4 #define H_LCGN 0 /* layout for x25_octet 2 of theruct size wd_sizes[4][8] = { DISK01 /* Should ultimately be WD15 by default */ DISK23 WFLOPPY WFLOPPY }; #endif #else struct size { daddr_t nblocks; int cyloff; }; #ifdef RP03_0 struct size rp_sizes[8] = { 10000, 0, /* cyl 0 thru 49 */ 71200, 50, /* cyl 50 thru 405 */ 40600, 203, /* cyl 203 thru 405 */ 0, 0, 0, 0, 0, 0, 0, 0, 81200, 0, /* cyl 0 thru 405 */ }; #endif #ifdef RP05_0 #define RP04_0 #endif #ifdef RP04_0 struct size hp_sizes[8] = { 18392, 0, /* cyl 0 thru 43 */ 153406, 44, /* cyl 44 thru 410 */ 87780, 201, /* cyl 201 thru 410 */ 22154, 358, /* cyl 358 thru 410 */ 0, 0, 0, 0, 0, 0, 171798, 0, /* cyl 0 thru 410 */ }; #endif #ifdef RP06_0 struct size hp_sizes[8] = { 18392, 0, /* cyl 0 thru 43 */ 322278, 44, /* cyl 44 thru 814 */ 256652, 201, /* cyl 201 thru 814 */ 191026, 358, /* cyl 358 thru 814 */ 125400, 515, /* cyl 515 thru 814 */ 59774, 672, /* cyl 672 thru 814 */ 0, 0, 340670, 0, /* cyl 0 thru 814 */ }; #endif #ifdef RM80_0 struct size he_sizes[EMOPM, SEMUME, SEMUSZ, SEMVMX, SEMAEM }; #endif #if SHMEM==1 # ifndef IPC_ALLOC # include "sys/ipc.h" # endif #include "sys/shm.h" struct shmid_ds *shm_shmem[NPROC*SHMSEG]; struct shmid_ds shmem[SHMMNI]; struct shmpt_ds shm_pte[NPROC*SHMSEG]; struct shminfo shminfo = { SHMMAX, SHMMIN, SHMMNI, SHMSEG, SHMBRK, SHMALL }; #endif #ifdef NSC_0 #include "sys/nscdev.h" #endif #ifdef ST_0 #include "sys/st.h" struct stbhdr stihdrb[STIHBUF]; struct stbhdr stohdrb[STOHBUF]; struct ststat ststat = { STIBSZ,  /* input buffer size */ STOBSZ, /* output buffer size */ STIHBUF, /* # of buffer headers */ STOHBUF, /* # of buffer headers */ STNPRNT /* # of printer channels */ }; #endif   level 3 header * * AAAAAAAA * * A - logical channel number */ /* mask of x25_octet 2 items */ #define X25_LCN 0xff /* address of x25_octet 2 items */ #define A_LCN x25_oct2 /* displacement of x25_octet 2 items */ #define H_LCN 0 /* layout for x25_octet 3 of the level 3 header * * the layout of the third word of the header is * dependent on the packet type */ /* layout of x25_octet 3 for an information packet * packet types - * data * * AAABCCCD * * A - packet receive sequence number * B - more data indicator (M bit) * C - packet send sequence number * D - data packet indicator (if 0) */ /* mask of x25_octet 3 items */ #define X25_PR 0xe0 #define X25_MBIT 0x10 #define X25_PS 0x0e #define X25_DFLG 0x01 /* address of x25_octet 3 items */ #define A_PR x25_oct3 #define A_MBIT x25_oct3 #define A_PS x25_oct3 #define A_DFLG x25_oct3 /* displacement of x25_octet 3 items */ #define H_PR 5 #define H_MBIT 4 #define H_PS 1 #define H_DFLG 0 /* layout of x25_octet 3 for a supervisory pa8] = { 18228, 0, /* cyl 0 thru 41 */ 224378, 42, /* cyl 42 thru 558 */ 158410, 194, /* cyl 194 thru 558 */ 92442, 346, /* cyl 346 thru 558 */ 26474, 498, /* cyl 498 thru 558 */ 0, 0, 0, 0, 242606, 0, /* cyl 0 thru 558 */ }; #endif #ifdef RM05_0 struct size hm_sizes[8] = { 24320, 0, /* cyl 0 thru 39 */ 476064, 40, /* cyl 40 thru 822 */ 403104, 160, /* cyl 160 thru 822 */ 330144, 280, /* cyl 280 thru 822 */ 257184, 400, /* cyl 400 thru 822 */ 184224, 520, /* cyl 520 thru 822 */ 111264, 640, /* cyl 640 thru 822 */ 500384, 0, /* cyl 0 thru 822 */ }; #endif #ifdef RP07_0 struct size hP_sizes[8] = { 64000, 0, /* cyl 0 thru 39 */ 944000, 40, /* cyl 40 thru 630 */ 840000, 105, /* cyl 105 thru 630 */ 672000, 210, /* cyl 210 thru 630 */ 504000, 315, /* cyl 315 thru 630 */ 336000, 420, /* cyl 420 thru 630 */ 168000, 525, /* cyl 525 thru 630 */ 1008000, 0, /* cyl 0 thru 630 */ }; #endif #endif /* @(#)ssw.h 3.1 */ /* M68010 Special Status Word Fields */ #define SSW_RR 0x8000 /* Re-run flag: 0 = processor re-run (default) 1 = software re-run */ #define SSW_IF 0x2000 /* Instruction fetch to the Instruction Input Buffer */ #define SSW_DF 0x1000 /* Data fetch to the Data Input Buffer */ #define SSW_RM 0x0800 /* Read-Modify-Write cycle */ #define SSW_HB 0x0400 /* High byte transfer from the Data Output Buffer or to the Data Input Buffer */ #define SSW_BY 0x0200 /* Byte transfer flag; HB selects the high or low byte of the transfer register. If BY is clear, the transfer is word */ #define SSW_RW 0x0100 /* Read/Write flag; 0 = write, 1 = read */ #define SSW_FC 0x0007 /* The function code used during the faulted access */ cket * packet types - * RR (receiver ready) * RNR (receiver not ready) * REJ (data reject) * * AAABBBBB * * A - packet receive sequence number * B - supervisory packet type */ /* mask of x25_octet 3 items */ #define X25_STYPE 0x1f /* address of x25_octet 3 items */ #define A_STYPE x25_oct3 /* displacement of x25_octet 3 items */ #define H_STYPE 0 /* layout of x25_octet 3 for an unnumbered packet * packet types - * RST (link group restart) * RSTC (link group restart confirm) * RES (channel reset) * RESC (channel reset confirm) * INT (interrupt) * INTC (interrupt confirm) * * AAAAAAAA * * A - unnumbered packet type */ /* mask of x25_octet 3 items */ #define X25_UTYPE 0xff /* address of x25_octet 3 items */ #define A_UTYPE x25_oct3 /* displacement of x25_octet 3 items */ #define H_UTYPE 0 /* states for information packet type */ #define T_DATA 0 /* states for supervisory packet type */ #define T_RR 0x1 #define T_RNR 0x5 #define T_REJ 0x9 /* states for unnumbered p /* @(#)iobuf.h 3.1 */ /* * Each block device has a iobuf, which contains private state stuff * and 2 list heads: the b_forw/b_back list, which is doubly linked * and has all the buffers currently associated with that major * device; and the d_actf/d_actl list, which is private to the * device but in fact is always used for the head and tail * of the I/O queue for the device. * Various routines in bio.c look at b_forw/b_back * (notice they are the same as in the buf structure) * but the rest is private to each device driver. */ struct iobuf { int b_flags; /* see buf.h */ struct buf *b_forw; /* first buffer for this dev */ struct buf *b_back; /* last buffer for this dev */ struct buf *b_actf; /* head of I/O queue */ struct buf *b_actl; /* tail of I/O queue */ dev_t b_dev; /* major+minor device name */ char b_active; /* busy flag */ char b_errcnt; /* error count (for recovery) */ struct eblock *io_erec; /* error record */ int io_nreg; /* number of registers to log on errors */ ph/* <@(#)st.h 3.1 > */ #define STCWAIT (HZ / 3) #define STFUDGE 16 #define NOSLP 0 #define STSP 36 #define SOH 0001 #define STX 0002 #define ETX 0003 #define EOT 0004 #define ENQ 0005 #define BEL 0007 #define DLE 0020 #define DC1 0021 #define DC2 0022 #define DC3 0023 #define NAK 0025 #define SYN 0026 #define ETB 0027 #define ESC 0033 #define GS 0035 #define EFLG 0200 /* invalid address character flag */ #define ROWLEN 80 /* columns per row */ #define ROWCNT 24 /* rows per screen */ struct strca { char a_row; char a_col; }; struct stbaa { char a_baddr1; char a_baddr2; }; #define MAXWCSZ 150 #define MAXRCSZ 100 #define MAXWRSZ 100 #define MAXRRSZ 150 #define BLKSZ 256 /* minimum XMT buffer size */ #define BLKFDG 64 /* block size fudge factor */ #define FAC ' ' /* field attribute character */ #define PT '\011' /* program tab order */ #define EWC '5' /* erase write command */ #define WC '1' /* write command */ #define WCC '3' /* write control character, no print */ #define PWCC '#' /* write control charactacket type */ #define T_RST 0xfb #define T_RSTC 0xff #define T_RES 0x1b #define T_RESC 0x1f #define T_INT 0x23 #define T_INTC 0x27 /* values for valid packet lengths */ #define X25DATAL 3 #define X25RRL 3 #define X25RNRL 3 #define X25REJL 3 #define X25RSTL 4 #define X25RSTCL 3 #define X25RESL 4 #define X25RESCL 3 #define X25INTL 4 #define X25INTCL 3 /* values for items in the level 3 packet header */ /* states for general format indicator */ #define X25DTEGFI 0x1 /* states for cause field */ #define X25CAUSE 0 /* states for diagnostic codes */ #define X25NODGNC 0 #define X25INVPS 1 #define X25INVPR 2 /* the following are for packet types invalid for a given state */ #define X25INVTYP 16 #define X25INVR1 17 #define X25INVR2 18 #define X25INVD1 27 #define X25INVD2 28 #define X25INVD3 29 #define X25BADSTATE 30 /* the following are for packets that are not allowed */ #define X25NAPKT 32 #define X25UIDPKT 33 #define X25INVPVC 35 #define X25SHORTP 38 #define X25LONGP 39 #define X25INVGFI 40 #defineysadr io_addr; /* csr address */ physadr io_mba; /* mba address */ struct iostat *io_stp; /* unit I/O statistics */ time_t io_start; int io_s1; /* space for drivers to leave things */ int io_s2; /* space for drivers to leave things */ }; #define tabinit(dv,stat) {0,0,0,0,0,makedev(dv,0),0,0,0,0,0,0,stat,0,0} #define NDEVREG (sizeof(struct device)/sizeof(int)) #define B_ONCE 01 /* flag for once only driver operations */ #define B_TIME 04 /* for timeout use */  er, start printer */ #define NSTCHQ 8 /* size of user RCV queue */ #define NXSTCHQ 8 /* size of user reXMT queue */ /* * Synchronous terminal parameter structure. * Set up in space.h. */ struct ststat { unsigned ibsz; /* input buffer size */ unsigned obsz; /* output buffer size */ int ihbuf; /* # of input buffer headers */ int ohbuf; /* # of output buffer headers */ int nprnt; /* # of print channels */ }; /* * Message header structure. * One per outstanding message. Others on free chain. */ struct stbhdr { struct csibd sm_bd; /* buffer descriptors */ char sm_flags; /* buffer flags */ }; /* * sm_flags definitions. */ #define STRCV 1 /* receive buffer */ #define STXMT 2 /* transmit buffer */ #define STWAK 4 /* issue wakeup when buffer returned */ /* * sm_type definitions. */ #define FRVI 0x01 /* XMT failed, RVI'ed */ #define FNAK 0x02 /* XMT failed, NAK'ed */ #define FWAK 0x04 /* XMT failed, WAK'ed */ #define FTO 0x08 /* XMT failed, timed out */ #define FGBG 0x10 /* XMT failed, garbage  X25INVRST 41 #define X25UAINC 43 #define X25UAINT 44 #define X25XREJ 45 #define X25INVMBIT 47 /* the following are for expired timers */ #define X25TORES 51 #define X25TORST 52 /* the following are for additional DTE codes not covered above */ #define X25OUTORD 129 #define X25INSERV 130 #define X25INSPVC 131 #define X25TOINTC 145 #define X25TODATA 146 #define X25TOREJ 147 /* @(#)ioctl.h 3.1 */ response */ #define FEOT 0x20 /* XMT failed, EOT'ed */ #define FBLOCK 1 /* 1st block in a RCV message */ #define LBLOCK 2 /* last block in a RCV message */ #define CONREPT 4 /* controller connected report */ /* * Message queue header structure. * One RCV queue & one reXMT queue per user channel. */ struct stmsghdr { short s_max; /* max length of queue */ short s_act; /* number of current queue members */ struct stbhdr *s_last; /* pointer to last queue member */ struct stbhdr *s_first; /* pointer to message queue */ }; /* * Synchronous terminal control header. * One per synchronous line. */ struct stc { ushort flags; /* flags */ ushort ttyid; /* current input terminal id */ char csidev; /* CSI interface device */ }; /* * flags definitions. */ #define STACTIVE 0x010 /* channel connected */ #define STRUN 0x020 /* script is running */ #define VPMERR 0x040 /* script terminated */ #define STLOAD 0x080 /* script loaded (but not yet started) */ #define STATTACH 0x100 /* device attached  /* x25rpt.h 1.1 of 9/1/81 @(#)x25rpt.h 3.1 */ #define S_FAIL 01 #define S_SYNC 02 #define R_INFO 03 #define R_N2MAX 04 #define R_DISC 05 /* @(#)ipc.h 3.1 */ /* Common IPC Access Structure */ struct ipc_perm { ushort uid; /* owner's user id */ ushort gid; /* owner's group id */ ushort cuid; /* creator's user id */ ushort cgid; /* creator's group id */ ushort mode; /* access modes */ ushort seq; /* slot usage sequence number */ key_t key; /* key */ }; /* Common IPC Definitions. */ /* Mode bits. */ #define IPC_ALLOC 0100000 /* entry currently allocated */ #define IPC_CREAT 0001000 /* create entry if key doesn't exist */ #define IPC_EXCL 0002000 /* fail if key exists */ #define IPC_NOWAIT 0004000 /* error if request must wait */ /* Keys. */ #define IPC_PRIVATE (key_t)0 /* private key */ /* Control Commands. */ #define IPC_RMID 0 /* remove identifier */ #define IPC_SET 1 /* set options */ #define IPC_STAT 2 /* get options */ */ #define STHANGUP 0x200 /* device in HANGUP state */ /* * Synchronous terminal user header. * One per user printer or terminal channel. */ struct st { ushort s_ttyid; /* terminal identifier */ short s_pgrp; /* process group */ char s_row; /* cursor row of last field read */ char s_col; /* cursor col of last field read */ char s_orow; /* cursor row on last send */ char s_ocol; /* cursor col on last send */ char s_srow; /* row save area */ char s_scol; /* col save area */ char s_prow; /* cursor row of prompt protect FAC */ char s_pcol; /* cursor col of prompt protect FAC */ char s_tab; /* change to tab on input */ char s_aid; /* send key code */ char s_ss1; /* status and sense byte 1 */ char s_ss2; /* status and sense byte 2 */ ushort s_pcount; /* XMT buffer size request */ ushort s_roffset; /* read offset into s_rbuf */ ushort s_imode; /* input modes */ ushort s_omode; /* output modes */ ushort s_lmode; /* local modes */ ushort s_size; /* size of curr/* x25u.h 1.3 of 2/25/82 @(#)x25u.h 3.1 */ /* session accept/disconnect/connect/reject messages */ /* * session control messages have the following general format: * * slcmh -- session layer control kessage header * first char b00100001 followed by char message type * * esi -- one or more extended session items; may be intermingled * with session items (si--below) * first char with high 2 bits b11, low 6 are session item code * next char is length of parameter info, 0-255 * next is 0-255 bytes of parameter info * * si -- one or more session items; may be intermingled with * extended session items (esi--above) * first char has high 4 bits b0011 followed by 4 bit parameter * length, 0-14 (not 15!) *  next char is session item code * next is 0-14 bytes of parameter info * * eoh -- end of headings item is last * char has high bit set only b010000000 or 0200 */ struct sesscon { /* session connect message */ char c_slcmh; /* message header /* lapbtr.h 1.1 of 9/1/81 @(#)lapbtr.h 2.1 */ #define TRACE(X,Y,Z) {U = X|Y; trace(U,Z);} #define TSEQ 0 #define TSTART_T1 040 #define TSTOP_T1 0100 #define TXMT 0140 #define TRCV 0200 #define TNOBUF 0240 #define TOSTATE 0300 #define TNSTATE 0340 #define TDSCFRM 020 ent XMT buffer */ short s_free; /* free bytes in current XMT buffer */ short s_pfree; /* s_free at prompt protect field */ struct stbhdr *s_rbuf; /* ptr to current RCV buffer */ struct stbhdr *s_xbuf; /* ptr to current XMT buffer */ char *s_ptr; /* ptr into current XMT buffer */ struct stc *s_ctrlp; /* ptr to associated control struct */ long s_flags; /* state of channel */ struct stmsghdr s_hdr; /* RCV queue header */ struct stmsghdr s_xhdr; /* reXMT queue header */ }; /* * s_flags definitions. */ #define CH_OPEN 0x00001L /* channel open */ #define CH_AVAIL 0x00002L /* channel not assigned to device */ #define WOUT 0x00004L #define WWOUT 0x00008L #define NOUT 0x00010L /* wait for entry before next output to term */ #define CTLD 0x00020L /* EOF indication entered */ #define STRFLG 0x00040L /* a reader is waiting for input */ #define STAWR 0x00080L #define STSOH 0x00100L /* a status and sense message was received */ #define STTO 0x00200L #define STFRD 0x00400L #define RESET 0x0080 */ char c_messtype; /* message type--connect code 0 */ char c_esicd1; /* called port address */ char c_esiln1; /* esi with code 01, len 0 */ char c_esicd2; /* calling port address */ char c_esiln2; /* esi with code 02, len 0 */ char c_siln1; /* origin type */ char c_sicd1; /* si with len 1 code 1 */ char c_otype; /* origin type 05 BX.25 application */ char c_siln2; /* session type */ char c_sicd2; /* si with len 01 code 02 */ char c_stype; /* session type 0 two-way simultaneous */ char c_siln3; /* presentation type */ char c_sicd3; /* si with len 01 code 06 */ char c_ptype; /* presentation type 0 binary data */ char c_eoh; /* end of heading item */ }; struct sessacc { /* session accept message */ char a_slcmh; /* message header */ char a_messtype; /* session accept type 01 */ char a_siln1; /* presentation type */ char a_sicd1; /* si with len 01 code 06 */ char a_ptype; /* presentation type 0 binary data */ char a_eoh; /* end of heading item */ }; struct sessrej { /* session /* @(#)lock.h 3.1 */ /* * flags for locking procs and texts */ #define UNLOCK 0 #define PROCLOCK 1 #define TXTLOCK 2 #define DATLOCK 4  0L #define DCF 0x01000L #define DCF2 0x02000L #define EOR 0x04000L #define STEOT 0x08000L #define STFMT 0x10000L #define STCLR 0x20000L/* CLEAR key hit, reformat screen */ #define STRVI 0x40000L/* device temporarily unavailable */ #define STWIP 0x80000L/* write in progress */ #define STWWAIT 0x100000L/* writer waiting for writer to complete */ #define STIGNTAB '\377' /* stty code for undefined control character */ #define PA1 '%' /* code for PA1 key */ #define PA2 '>' /* code for PA2 key */ #define PF12 '@' /* code for PF12 key */ #define CLEAR '_' /* code for CLEAR key */ /* Operation status flags for stcfl(). */ #define NOTEOW 0 /* flush because buffer full */ #define EOW 1 /* flush because end of write system call */ #define REOW 2 /* flush before read request */ #define LEOW 4 /* flush at end of output page */ #define PEOW 8 /* protect prompt before flush */ #define HDRSZ 7 /* protocol hdr size in RCV buffer */ #define TERMHSZ 7 /* protocol hdr size in terminal XMT buffer */ #definereject message */ char r_slcmh; /* message header */ char r_messtype; /* session reject type 02 */ char r_siln1; /* reject reason */ char r_sicd1; /* si with len 01 code 04 */ char r_reason; /* reject reason--port unavail 0 */ char r_eoh; /* end of heading item */ }; struct sessdis { /* session disconnect message */ char d_slcmh; /* message header */ char d_messtype; /* session disconnect type 03 */ char d_siln1; /* disconnect reason */ char d_sicd1; /* si with len 01 code 05 */ char d_reason; /* disconnect reason--normal 0 */ char d_eoh; /* end of heading item */ }; /* Session protocol options for Perm Virt Circuits */ #define PVC_SESS 02 #define PVC_RST 01 #define PVC_NONE 0 /* ioctl commands */ #define X25GET (('x'<<8) | 0) #define X25SET (('x'<<8) | 1) #ifdef CBUNIX #define X25FCNTL (('x'<<8) | 2) #endif struct x25sctl { unsigned short c_delconf : 1, /* delivery confirmation requested */ c_isreset : 1, /* channel has been reset */ c_ndelay:1, /* no delay requested */ :13;/* @(#)lprio.h 3.1 */ /* * Line Printer Type Devices I/O Control */ struct lprio { short ind; short col; short line; }; /* ioctl commands */ #define LPR ('l'<<8) #define LPRGET (LPR|01) #define LPRSET (LPR|02) #define LPRGETV (LPR|05) #define LPRSETV (LPR|06)  PRNTHSZ 10 /* protocol hdr size in printer XMT buffer */ #define RCVLEN 4 /* # of RCV buffers per line */ #define SMSGSZ 8 /* status message size */ #define DEVCOD " ABCDEFGHI[.<(+!&JKLMNOPQR]$*);^" /* valid synchronous device codes */ #define STMBSZ 256 /* RCV buffer size */ #define STMPRI (PZERO + 1) /* allow interrupted reads */ #define stid(X) (ushort)((X->sm_bd.d_octet2 << 8) | X->sm_bd.d_octet3) #ifdef pdp11 #define moveio(loc, cnt, rw) pimove((long)(unsigned)loc, cnt, rw) #else #define moveio(loc, cnt, rw) iomove((caddr_t)loc, cnt, rw) #endif   }; struct x25gctl { struct t_state c_t_state; /* tab state structure */ struct l_state c_l_state; /* link state structure */ struct s_flags c_s_flags; /* slot flag structure */ unsigned char c_xmtq; /* length of lev 3 xmtq */ unsigned char c_recvq; /* length of lev 3 recvq */ unsigned char c_rststate; /* restart state of link */ struct l_line c_primline; /* primary line info */ struct l_line c_bckline; /* backup line info */ }; /* @(#)map.h 3.1 */ struct map { short m_size; unsigned short m_addr; }; extern struct map swapmap[]; extern struct map coremap[]; #ifdef m68k extern struct map initmap[]; #endif #define mapstart(X) &X[1] #define mapwant(X) X[0].m_addr #define mapsize(X) X[0].m_size #define mapdata(X) {(X)-2, 0} , {0, 0} #define mapinit(X, Y) X[0].m_size = (Y)-2 /* @(#)stat.h 3.1 */ /* * Structure of the result of stat */ struct stat { dev_t st_dev; ino_t st_ino; ushort st_mode; short st_nlink; ushort st_uid; ushort st_gid; dev_t st_rdev; off_t st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFIFO 0010000 /* fifo */ #define S_ISUID 04000 /* set user id on execution */ #define S_ISGID 02000 /* set group id on execution */ #define S_ISVTX 01000 /* save swapped text even after use */ #define S_IREAD 00400 /* read permission, owner */ #define S_IWRITE 00200 /* write permission, owner */ #define S_IEXEC 00100 /* execute/search permission, owner */ /* x25user.h 1.3 of 3/31/82 @(#)x25user.h 3.1 */ #include "sys/types.h" #include "sys/csi.h" #include "sys/x25.h" #include "sys/x25u.h" /* Defines for application code */ #define X25LRDY(X) (X->c_rststate == 1) #define X25L2FULL(X) (X->c_l_state.l2full == 1) #define X25L2RDYP(X) (X->c_primline.l2sync == 1) #define X25L2ERRP(X) (X->c_primline.errcode) #define X25ABNHLTP(X) ((X->c_rststate == 0) && (X->c_primline.errcode != 0)) #define X25NRMHLTP(X) ((X->c_rststate == 0) && (X->c_primline.errcode == 0)) #define X25L2FCP(X) (X->c_primline.nl2fails) #define X25LATCHP(X) (X->c_l_state.devset == 1) #define X25CRDY(X) (X->c_t_state.state == 4) #define X25CHALT(X) (X->c_t_state.state == 0) #define X25FAROPN(X) (X->c_t_state.faropen == 1) #define X25ISRESET(X) (X->c_t_state.isreset == 1) #define X25MSGCON(X) (X->c_s_flags.messcont == 1) #define X25L3XQFUL (X->c_xmtq == HIXMTQ) #define X25L3RQFUL (X->c_recvq == HIRECVQ)  /* @(#)mba.h 3.1 */ /* VAX Massbus adapter registers */ struct mba { union { struct mba_regs { int csr, cr, sr, var, bcr; } regs; int fill1[256]; } ireg; union { int fill2[32]; } ereg[8]; int map[256]; }; #define mbacsr ireg.regs.csr #define mbacr ireg.regs.cr #define mbasr ireg.regs.sr #define mbavar ireg.regs.var #define mbabcr ireg.regs.bcr #define MBADTABT 0x00001000 #define MBAEBITS 0x000e0770 #define MBATTN 0x10000 #define MBAIE 0x4 struct mbacf { int nexus; int sbipri; int * devptr; }; /* @(#)stermio.h 3.1 */ /* * ioctl commands for control channels */ #define STSTART 1 /* start protocol */ #define STHALT 2 /* cease protocol */ #define STPRINT 3 /* assign device to printer */ /* * ioctl commands for terminal and printer channels  */ #define STGET (('X'<<8)|0) /* get line options */ #define STSET (('X'<<8)|1) /* set line options */ #define STTHROW (('X'<<8)|2) /* throw away queued input */ #define STWLINE (('X'<<8)|3) /* get synchronous line # */ struct stio { unsigned short ttyid; char row; char col; char orow; char ocol; char tab; char aid; char ss1; char ss2; unsigned short imode; unsigned short lmode; unsigned short omode; }; /* ** Mode Definitions. */ #define STFLUSH 00400 /* FLUSH mode; lmode */ #define STWRAP 01000 /* WRAP mode; lmode */ #define STAPPL 02000 /* APPLICATION mode; lmode */ P...Qsys/* @(#)mem.h 3.1 */ /* * "incore" memory free list for the VAX */ #define NICMEM 100 struct { int m_free; int m_lo; int m_hi; int m_ptr; int m_avail; short m_pnum[NICMEM]; } mem; int masktab[] = { 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, };  /* @(#)sysinfo.h 3.1 */ struct sysinfo { time_t cpu[4]; #define CPU_IDLE 0 #define CPU_USER 1 #define CPU_KERN 2 #define CPU_WAIT 3 time_t wait[3]; #define W_IO 0 #define W_SWAP 1 #define W_PIO 2 long bread; long bwrite; long lread; long lwrite; long phread; long phwrite; long swapin; long swapout; long bswapin; long bswapout; long pswitch; long syscall; long sysread; long syswrite; long sysfork; long sysexec; long runque; long runocc; long swpque; long swpocc; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; long msg; long sema; }; extern struct sysinfo sysinfo; struct syswait { short iowait; short swap; short physio; }; extern struct syswait syswait; struct syserr { long inodeovf; long fileovf; long textovf; long procovf; long sbi[5]; #define SBI_SILOC 0 #define SBI_CRDRDS 1 #define SBI_ALERT 2 #define SBI_FAULT 3 #define SBI_TIMEO 4 }; extern struct syserr syserr; Q.P..acct.hbuf.hcallo.h clock.h conf.h crtctl.h csi.hRcsierrs.hScsikmc.h dir.hdmk.helog.herec.herr.herrno.hfblk.hfile.hfilsys.hfp.hinit.hino.hinode.hio.hiobuf.hioctl.hipc.hTkmc.hlapbtr.hlock.h lprio.h!map.h"mba.h#mem.h$mmu.h%mount.h&msg.h'mtpr.h(nc.h)opt.h*page.h+param.h,pcb.h-pcl.h.proc.h/psl.h0ram.h1reg.h2seg.h3sem.h4shm.h5signal.h6space.h7ssw.h8st.h9stat.h:stermio.h;sysinfo.htermio.h?text.h@times.h/* @(#)mmu.h 3.7 This is the header file for the UNIX V/68 generic MMU interface. This provides the information that is used by the various routines that call: mmufork () mmuexec () mmuexit () mmuread () mmuwrite () mmuattach () mmudetach () mmuregs () mmualloc () mmuinit () mmuint () The above routines and secondary routines called by them are contained in io/mmu1.c and io/mmu2.c. */ /* This is the description of the mmu registers */ #ifdef MEXOR struct device { ushort mr_begin; /* Virtual address start/256 */ ushort mr_end; /* Virtual address end/256 */ ushort mr_offset; /* Physical address/256 */ ushort mr_ctrl; /* control register */ }; #define MAXMMU 1 /* only one mmu of this type permitted */ #define ENDREG(x) ((ushort)((((unsigned)(x))-1)>>8)) #define LDREG(x) ((ushort)(((unsigned)(x))>>8)) #endif #ifdef M68451 struct device { char mr_ast[32]; /* Address space table */ ushort mr_lba; /* Logical Base Address */ ushort mr_lam; /* Logical Address Mask */ ush/* @(#)sysmacros.h 3.1 */ /* * Some macros for units conversion */ /* Core clicks to segments and vice versa */ #define ctos(x) ((x+(NCPS-1))/NCPS) #define stoc(x) ((x)*NCPS) /* Core clicks to disk blocks */ #define ctod(x) ((x+(NCPD-1))/NCPD) /* inumber to disk address */ #ifdef INOSHIFT #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))>>INOSHIFT) #else #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))/INOPB) #endif /* inumber to disk offset */ #ifdef INOSHIFT #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))&(INOPB-1)) #else #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))%INOPB) #endif /* clicks to bytes */ #ifdef BPCSHIFT #define ctob(x) ((x)<>BPCSHIFT) #define btoct(x) ((unsigned)(x)>>BPCSHIFT) #else #define btoc(x) (((unsigned)(x)+(NBPC-1))/NBPC) #define btoct(x) ((unsigned)(x)/NBPC) #endif /* major part of a device */ #define major(x) (int)((unsigned)x>>8) #define /* * @(#)csierrs.h 2.1 * csierrs.h 1.2 of 2/25/82 * * VPM error codes */ #define HALTRCVD 0 #define ILLEGAL 1 #define FETCHERR 2 #define STACKERR 3 #define JMPERR 4 #define BUSERR 5 #define XBUFERR 6 #define RBUFERR 7 #define EXITINST 8 #define CRCERR 9 #define HANGUP 10 #define SEQUERR 11 #define CMDERR 12 #define STATERR 13 #define XMTSTERR 14 #define RCVSTERR 15 #define SETXERR 16 #define XMTERR 17 #define RCVERR 18 #define XBUFERR1 19 #define RBUFERR1 20 #define SIZERR 21 #define HANG 22 #define DRVERR 23 #define ARRAYERR 24 #define PCDCMD 25 #define OKFAIL 26 #define NOLINE 27 #define BUFFERR 28 /* * Error codes for 3B20S X25 (tn82 and tn75) drivers */ #define DISCRCV 30 #define DSETERR 31 #define PROTHALT 32 #define SOFTWERR 33 #define HARDWERR 34 ort mr_pba; /* Physical Base Address */ char mr_asn; /* Address Space Number */ char mr_ssr; /* Segment Status Register */ char mr_asm; /* Address Space Mask */ char mr_ptr; /* Descriptor number */ char mr_fill0[7]; char mr_assr; /* Alternate SSR address */ char mr_fill1[13]; char mr_ldo; /* Load Descriptor Operation */ }; #define addrspace mr_ast /* Address Space Table */ #define descwrite mr_ldo /* Load descriptor */ #define ssrclr mr_assr /* SSR: write to here resets */ #define MAXMMU 4 #define NUMSEGS 32 /* number of segments per MMU */ #define MMUTOTSEGS MAXMMU*NUMSEGS #define USER_DATA 2 #define USER_PROG 4 #define SYSTEM_DATA 10 #define SYSTEM_PROG 12 #define NCLICKS 8 /* must be power of two */ /* must >= 4 to cover uvector in one descr. */ #endif #define MMUREGS *mmu_addr /* These defines are used by the MMU status register */ #ifdef MEXOR #define MMU_ENBL 1 #define MMU_PTCT 2 #define MMUSEGS 4 /* Maximum physical segments */ #endif #ifdef M68451 #defin bmajor(x) (int)(((unsigned)x>>8)&037) #define brdev(x) (x&0x1fff) /* minor part of a device */ #define minor(x) (int)(x&0377) /* make a device number */ #define makedev(x,y) (dev_t)(((x)<<8) | (y)) /* csikmc.h 1.2 of 3/23/82 @(#)csikmc.h 2.1 */ /* Reports passed from interpreter */ #define RRTNXBUF 0 #define RRTNRBUF 1 #define RTRACE 2 #define ERRTERM 3 #define RTNOK 4 #define RTNSNAP 5 #define RTNER1 6 #define RTNER2 7 #define RTNSRPT 8 #define STARTUP 9 #define RTNACK 10 #define ITRACE 11 #define BASEACK 12 #define RTNSTOP 13 /* Commands from the driver to the interpreter */ #define XBUFINCMD 0 #define RBUFINCMD 1 #define RUNCMD 2 #define HALTCMD 3 #define OKCMD 4 #define SCRIPTCMD 5 #define GETECMD 6 #define BASEIN 7 /* interpreter options */ #define HWLOOP (01<<1) #define ADRSWTCH (01<<2) #define X25MODE (01<<0)  e MMU_ENBL 1 #define MMU_PTCT 2 #define MMUSEGS 4 /* Maximum physical segments */ #endif /* This should be changed for multiple shared memory */ /* This is the description of the internal MMU table for the EXORmacs MMU. A different one is expected for the 68451 (for the present this one will do) */ struct mmu_entry /* Per process entry */ { ushort mmu_status; /* Flags for this physical segment */ #ifdef MEXOR ushort mmu_end; /* MMU mr_end register precomputed */ #endif #ifdef M68451 short mmu_lam; /* Holds largest possible lam */ #endif caddr_t mmu_paddr; /* Physical start address of segment */ caddr_t mmu_vaddr; /* Virtual start address of segment */ long mmu_size; /* Segment size in bytes */ }; struct mmu_table /* Internal MMU table */ { struct proc *mmu_proc; /* Pointer to related proc table entry */ struct mmu_entry mmu_entry[MMUSEGS]; /* physical segments */ }; extern struct mmu_table mmu_table[]; /* The internal table itself */ /* The following define the status bits in m/* @(#)systm.h 3.1 */ /* * Random set of variables used by more than one routine. */ extern struct inode *rootdir; /* pointer to inode of root directory */ extern short cputype; /* type of cpu = 680, 681, 682 */ extern time_t lbolt; /* time in HZ since last boot */ extern time_t time; /* time in sec from 1970 */ extern char runin; /* scheduling flag */ extern char runout; /* scheduling flag */ extern char runrun; /* scheduling flag */ extern char curpri; /* current priority */ extern struct proc *curproc; /* current proc */ extern struct proc *runq; /* head of linked list of running processes */ extern maxmem; /* max available memory */ extern physmem; /* physical memory on this CPU */ extern daddr_t swplo; /* block number of swap space */ extern nswap; /* size of swap space */ extern dev_t rootdev; /* device of the root */ extern dev_t swapdev; /* swapping device */ extern dev_t pipedev; /* pipe device */ extern char *panicstr; /* panic string pointer */ extern blkacty; /* active block/* @(#)kmc.h 2.1 */ #define KSTEP 1 #define KMS 2 #define KCSR 3 #define KSTOP 4 #define KMCLR 5 #define KRUN 6 #define KLU 7 #define KWRCR 8 #define KRESET 9 #define KCSETA (('k'<<8)|1) struct kmcntl { int kmd; short *kcsr; int kval; }; mu_status */ #define SEG_VALID MMU_ENBL /* Segment entry allocated */ #define SEG_PROTECT MMU_PTCT /* Segment is write protected */ #define SEG_SWAPPED 4 /* Segment is swapped */ /* Other MMU related defines */ #define MD_NALLOC 0 /* do not allocate memory for swapin */ #define MD_ALLOC 1 /* allocate memory before swapin */ /* The following causes a type cast */ #define ptom(pm) ((struct mmu_table *)((struct proc *)pm)->p_mmuent)   devices */ extern pwr_cnt, pwr_act; extern int (*pwr_clr[])(); dev_t getmdev(); daddr_t bmap(); struct inode *ialloc(); struct inode *iget(); struct inode *owner(); struct inode *maknode(); struct inode *namei(); struct buf *alloc(); struct buf *getblk(); struct buf *geteblk(); struct buf *bread(); struct buf *breada(); struct filsys *getfs(); struct file *getf(); struct file *falloc(); int uchar(); /* * Structure of the system-entry table */ extern struct sysent { char sy_narg; /* total number of arguments */ char sy_nrarg; /* number of args in registers */ int (*sy_call)(); /* handler */ } sysent[]; Atrace.hBtrap.hCttold.hDtty.hEtypes.hFuser.hGutsname.hHv10gr.hIvar.hUvp.hVvpmt.hJx25.hKx25macro.hLx25packet.hMx25rpt.hNx25u.hOx25user.h/* @(#)mount.h 3.1 */ /* * Mount structure. * One allocated on every mount. */ struct mount { int m_flags; /* status */ dev_t m_dev; /* device mounted */ struct inode *m_inodp; /* pointer to mounted on inode */ struct buf *m_bufp; /* buffer for super block */ struct inode *m_mount; /* pointer to mount root inode */ }; #define MFREE 0 #define MINUSE 1 #define MINTER 2 extern struct mount mount[]; /* @(#)termio.h 3.1 */ #define NCC 8 /* control characters */ #define VINTR 0 #define VQUIT 1 #define VERASE 2 #define VKILL 3 #define VEOF 4 #define VEOL 5 #define VEOL2 6 #define VMIN 4 #define VTIME 5 #define CNUL 0 #define CDEL 0377 /* default control chars */ #define CESC '\\' #define CINTR 0177 /* DEL */ #define CQUIT 034 /* FS, cntl | */ #define CERASE '#' #define CKILL '@' #define CEOF 04 /* cntl d */ #define CSTART 021 /* cntl q */ #define CSTOP 023 /* cntl s */ /* input modes */ #define IGNBRK 0000001 #define BRKINT 0000002 #define IGNPAR 0000004 #define PARMRK 0000010 #define INPCK 0000020 #define ISTRIP 0000040 #define INLCR 0000100 #define IGNCR 0000200 #define ICRNL 0000400 #define IUCLC 0001000 #define IXON 0002000 #define IXANY 0004000 #define IXOFF 0010000 /* output modes */ #define OPOST 0000001 #define OLCUC 0000002 #define ONLCR 0000004 #define OCRNL 0000010 #define ONOCR 0000020 #define ONLRET 0000040 #define OFILL 0000100 #define OFDEL 0000200 #define NLDLY 0000400 #define NL0 0 #d /* @(#)vp.h 2.1 */ struct vp { int vp_state; struct buf *vp_buf; ushort vp_count; int vp_offset; }; extern struct vp vp_vp[]; /* @(#)msg.h 3.1 */ /* ** IPC Message Facility. */ /* ** Implementation Constants. */ #define PMSG (PZERO + 2) /* message facility sleep priority */ /* ** Permission Definitions. */ #define MSG_R 0400 /* read permission */ #define MSG_W 0200 /* write permission */ /* ** ipc_perm Mode Definitions. */ #define MSG_RWAIT 01000 /* a reader is waiting for a message */ #define MSG_WWAIT 02000 /* a writer is waiting to send */ /* ** Message Operation Flags. */ #define MSG_NOERROR 010000 /* no error if big message */ /* ** Structure Definitions. */ /* ** There is one msg queue id data structure for each q in the system. */ struct msqid_ds { struct ipc_perm msg_perm; /* operation permission struct */ struct msg *msg_first; /* ptr to first message on q */ struct msg *msg_last; /* ptr to last message on q */ ushort msg_cbytes; /* current # bytes on q */ ushort msg_qnum; /* # of messages on q */ ushort msg_qbytes; /* max # of bytes on q */ ushort msg_lspid; /* pid of last msgsnd */ ushort msg_lrpiefine NL1 0000400 #define CRDLY 0003000 #define CR0 0 #define CR1 0001000 #define CR2 0002000 #define CR3 0003000 #define TABDLY 0014000 #define TAB0 0 #define TAB1 0004000 #define TAB2 0010000 #define TAB3 0014000 #define BSDLY 0020000 #define BS0 0 #define BS1 0020000 #define VTDLY 0040000 #define VT0 0 #define VT1 0040000 #define FFDLY 0100000 #define FF0 0 #define FF1 0100000 /* control modes */ #define CBAUD 0000017 #define B0 0 #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define EXTA 0000016 #define EXTB 0000017 #define CSIZE 0000060 #define CS5 0 #define CS6 0000020 #define CS7 0000040 #define CS8 0000060 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 #define PARODD 0001000 #define HUPCL 0002000 #define CLOCAL 0004000 /* line discipline 0 modes */ #def/* vpmt.h 1.4 of 3/1/82 @(#)vpmt.h 2.1 */ #define XBQMAX 4 #define EBQMAX 4 /* * per vpmt structure */ struct vpmt { struct csillist vt_rcvq; /* Recieve queue */ struct csibd *vt_rbc; /* Current recieve buffer */ short vt_state; /* Status info*/ short vt_bos; /* Bytes left in buffer*/ char vt_idev; /* VPM interface minor device number */ char vt_rpt[4]; /* VPM reports from interpretor */ short vt_errset[8]; /* values for setting error counters */ char vt_options; /* protocol options */ char vt_intopts; /* interpreter options */ }; /* * VPM information */ struct vpminfo { int xbq; /* xmt buffer queue maximum */ int ebq; /* empty buffer queue maximum */ int bufdes; /* Number of buffer descriptors */ }; /* IOCTL defines */ #define VPMT ('V'<<8) #define VPMCMD (VPMT|8) #define VPMERRS (VPMT|9) #define VPMRPT (VPMT|10) #define VPMSDEV (VPMT|11) #define VPMATTACH (VPMT|11) #define VPMDETACH (VPMT|31) #define VPMERRSET (VPMT|32) #define VPMERRGET (VPMT|34) #define VPMO d; /* pid of last msgrcv */ time_t msg_stime; /* last msgsnd time */ time_t msg_rtime; /* last msgrcv time */ time_t msg_ctime; /* last change time */ }; /* ** There is one msg structure for each message that may be in the system. */ struct msg { struct msg *msg_next; /* ptr to next message on q */ long msg_type; /* message type */ short msg_ts; /* message text size */ short msg_spot; /* message text map address */ }; /* ** User message buffer template for msgsnd and msgrecv system calls. */ struct msgbuf { long mtype; /* message type */ char mtext[1]; /* message text */ }; /* ** Message information structure. */ struct msginfo { int msgmap, /* # of entries in msg map */ msgmax, /* max message size */ msgmnb, /* max # bytes on queue */ msgmni, /* # of message queue identifiers */ msgssz, /* msg segment size (should be word size multiple) */ msgtql; /* # of system message headers */ ushort msgseg; /* # of msg segments (MUST BE < 32768) */ }; ine ISIG 0000001 #define ICANON 0000002 #define XCASE 0000004 #define ECHO 0000010 #define ECHOE 0000020 #define ECHOK 0000040 #define ECHONL 0000100 #define NOFLSH 0000200 #define SSPEED 7 /* default speed: 300 baud */ /* * Ioctl control packet */ struct termio { unsigned short c_iflag; /* input modes */ unsigned short c_oflag; /* output modes */ unsigned short c_cflag; /* control modes */ unsigned short c_lflag; /* line discipline modes */ char c_line; /* line discipline */ unsigned char c_cc[NCC]; /* control chars */ }; #define IOCTYPE 0xff00 #define TIOC ('T'<<8) #define TCGETA (TIOC|1) #define TCSETA (TIOC|2) #define TCSETAW (TIOC|3) #define TCSETAF (TIOC|4) #define TCSBRK (TIOC|5) #define TCXONC (TIOC|6) #define TCFLSH (TIOC|7) #define TCDSET (TIOC|32) #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define LDGETT (LDIOC|8) #define LDSETT (LDIOC|9) /* * Terminal types */ #define TERM_NONE 0 /* tty */ #define TERM_TEC 1 /* TEC Scope */ #dePTS (VPMT|33) #define VPMPCDOPTS (VPMT|35) #define VPMTRCO (VPMT|16) #define VPMGETC (VPMT|17) #define VPMSETC (VPMT|18) #define VPMCLRC (VPMT|19) #define VPMSTAT (VPMT|36) /* Misc. Definitions */ #define VSLP 1 #define NVSLP 0 /* @(#)mtpr.h 3.1 */ /* * VAX processor register numbers */ #define KSP 0 /* kernal stack pointer */ #define ESP 1 /* exec stack pointer */ #define SSP 2 /* supervisor stack pointer */ #define USP 3 /* user stack pointer */ #define ISP 4 /* interrupt stack pointer */ #define P0BR 8 /* p0 base register */ #define P0LR 9 /* p0 length register */ #define P1BR 10 /* p1 base register */ #define P1LR 11 /* p1 length register */ #define SBR 12 /* system segment base register */ #define SLR 13 /* system segment length register */ #define PCBB 16 /* process control block base */ #define SCBB 17 /* system control block base */ #define IPL 18 /* interrupt priority level */ #define ASTLVL 19 /* async. system trap level */ #define SIRR 20 /* software interrupt request */ #define SISR 21 /* software interrupt summary */ #define ICCS 24 /* interval clock control */ #define NICR 25 /* next interval count */ #define ICR 26 /* interval count */ #define TODR 27 /* time of year (day) */ #define RXCS 32 / fine TERM_V61 2 /* DEC VT61 */ #define TERM_V10 3 /* DEC VT100 */ #define TERM_TEX 4 /* Tektronix 4023 */ #define TERM_D40 5 /* TTY Mod 40/1 */ #define TERM_H45 6 /* Hewlitt-Packard 45 */ #define TERM_D42 7 /* TTY Mod 40/2B */ /* * Terminal flags */ #define TM_NONE 0000 /* use default flags */ #define TM_SNL 0001 /* special newline flag */ #define TM_ANL 0002 /* auto newline on column 80 */ #define TM_LCF 0004 /* last col of last row special */ #define TM_CECHO 0010 /* echo terminal cursor control */ #define TM_CINVIS 0020 /* do not send esc seq to user */ #define TM_SET 0200 /* must be on to set/res flags */ /* * structure of ioctl arg for LDGETT and LDSETT */ struct termcb { char st_flgs; /* term flags */ char st_termt; /* term type */ char st_crow; /* gtty only - current row */ char st_ccol; /* gtty only - current col */ char st_vrow; /* variable row */ char st_lrow; /* last row */ }; /* @(#)a.out.h 3.1 */ #if defined(u3b) || defined(vax) || defined(m68k) /* COMMON OBJECT FILE FORMAT File Organization: _______________________________________________ INCLUDE FILE |_______________HEADER_DATA___________________| |  | | File Header | "filehdr.h" |.............................................| | | | Auxilliary Header Information | "aouthdr.h" | | |_____________________________________________| | | | ".text" section header | "scnhdr.h" | | |.............................................| | | | ".data" section header | '' | | |.............................................| | |  | ".bss" section header | '' | | |_____________________________________________| |______________RAW_DATA_______________________| | | | ".text" section data (rounded to 4 | | bytes) | |...........s */ }; BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <@ @# <@ @### .^"$$yB`(ffR b~*f,`#$&R+g Ae  Ad&Jp @$Hc` A#ηc# p @$A L N^Nu " #p.N(&H 9Ae 9.N(&H rf` y yAgp"yҀ @" 9AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 9ѯpN@dN 9 @#NupN@dN#pNu o"og. / o(S`H@gVf H@Q`RB B!`BNupN@dNNupN@dNNupN@dNNupN@dNpNupN@dNNupN@dNpNuNVH<$.$n Jopo p#`,*| g g*J./NX @*Hf |  ..................................| | | | ".data" section data (rounded to 4 | | bytes) | |_____________________________________________| |____________RELOCATION_DATA__________________| | | | ".text" section relocation data | "reloc.h" | | |.............................................| | | | ".data" section relocation data | '' | | |_____________________________________________| |__________LINE_NUMBER_DATA_(SDB)_____________| | | | ".text" section line numbers | "linenum.h" | | |.............................................| | | | ".data" section line numbers | '' | | |_____________________________________________| |________________SYMBOL_TABLE_________________| | | | ".text", ".data" and ".bss" section | "syms.h" | symbols | "storclass.h" | | |_______________________________/* @(#)stdio.h 3.1 */ #ifndef _NFILE #define _NFILE 20 #if u370 #define BUFSIZ 4096 #endif #if vax || u3b || m68k #define BUFSIZ 1024 #endif #if pdp11 #define BUFSIZ 512 #endif /* buffer size for multi-character output to unbuffered files */ #define _SBFSIZ 8 typedef struct { #if vax || u3b || m68k int _cnt; unsigned char *_ptr; #else unsigned char *_ptr; int _cnt; #endif unsigned char *_base; char _flag; char _file; } FILE; /* * _IOLBF means a file is a terminal; this means, in particular, * that output will be buffered line by line */ #define _IOREAD 0001 #define _IOWRT 0002 #define _IONBF 0004 #define _IOMYBUF 0010 #define _IOEOF 0020 #define _IOERR 0040 #define _IOLBF 0100 #define _IORW 0200 #ifndef NULL #define NULL 0 #endif #ifndef EOF #define EOF (-1) #endif #define stdin (&_iob[0]) #define stdout (&_iob[1]) #define stderr (&_iob[2]) #define _bufend(p) _bufendtab[(p)->_file] #define _bufsiz(p) (_bufend(p) - (p)->_base) #ifndef lint #define getc(p) (--(p)->_cnt >= 0 ? (inL<N^Nu "|G(S&f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dNNu#p @NuNpN@NrNVN^NuNVH./.NLN^JogPO//<N8 Nwp&N@dNNu@(#)sa.h 3.1 \ckqv{ disk-@(#)sadc.c 3.2 udstatsysinfoinodefiletextprocvsyserr/tmp/sa.adrfl/unix/unix/dev/kmemsadcUnknown error: ~*=O`r~%6ETly5DRk-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesNo more processesNot enough spacePermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowT______________| OBJECT FILE COMPONENTS HEADER FILES: /usr/include/filehdr.h /usr/include/aouthdr.h /usr/include/scnhdr.h /usr/include/reloc.h /usr/include/linenum.h /usr/include/syms.h /usr/include/storclass.h STANDARD FILE: /usr/include/a.out.h "object file" */ /*************************************************filehdr.h********************/ #include "filehdr.h" /*************************************************aouthdr.h********************/ #include "aouthdr.h" /*************************************************scnhdr.h*********************/ #include "scnhdr.h" /*************************************************reloc.h**********************/ #include "reloc.h" /*************************************************linenum.h********************/ #include "linenum.h" /*************************************************syms.h/storclass.h***********/ #include "syms.h" /******************************************************************************/ /* Compatability t) *(p)->_ptr++ : _filbuf(p)) #define putc(x, p) (--(p)->_cnt >= 0 ? \ ((int) (*(p)->_ptr++ = (unsigned char) (x))) : \ _flsbuf((unsigned char) (x), (p))) #define getchar() getc(stdin) #define putchar(x) putc((x), stdout) #define clearerr(p) ((void) ((p)->_flag &= ~(_IOERR | _IOEOF))) #define feof(p) ((p)->_flag & _IOEOF) #define ferror(p) ((p)->_flag & _IOERR) #define fileno(p) (p)->_file #endif extern FILE _iob[_NFILE]; extern FILE *fopen(), *fdopen(), *freopen(), *popen(), *tmpfile(); extern long ftell(); extern void rewind(), setbuf(); extern char *ctermid(), *cuserid(), *fgets(), *gets(), *tempnam(), *tmpnam(); extern unsigned char *_bufendtab[]; #define L_ctermid 9 #define L_cuserid 9 #define P_tmpdir "/usr/tmp/" #define L_tmpnam (sizeof(P_tmpdir) + 15) #endif oo many open filesNot a typewriterText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too largeNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availableLevel 2 halted 2 Kludge ****** see NLIST(3C) */ #define nlist syment #else /* u370 || pdp11 */ /* * Format of an a.out header */ struct exec { /* a.out header */ #ifdef u370 int a_magic; /* magic number */ int a_stamp; /* The version of a.out */ /* format of this file. */ #else short a_magic; /* magic number */ #endif unsigned a_text; /* size of text segment */ /* in bytes */ /* padded out to next */ /* page boundary with */ /* binary zeros. */ unsigned a_data; /* size of initialized data */ /* segment in bytes */ /* padded out to next */ /* page boundary with */ /* binary zeros. */ unsigned a_bss; /* Actual size of */ /* uninitialized data */ /* segment in bytes. */ unsigned a_syms; /* size of symbol table */ unsigned a_entry; /* entry point */ #ifdef u370 unsigned a_trsize; /* size of text relocation */ unsigned a_drsize; /* size of data relocation */ unsigned a_origin; /* The origin to which */ /* this file was */ /* relocated. */* @(#)storclass.h 3.1 */ /* * STORAGE CLASSES */ #define C_EFCN -1 /* physical end of function */ #define C_NULL 0 #define C_AUTO 1 /* automatic variable */ #define C_EXT 2 /* external symbol */ #define C_STAT 3 /* static */ #define C_REG 4 /* register variable */ #define C_EXTDEF 5 /* external definition */ #define C_LABEL 6 /* label */ #define C_ULABEL 7 /* undefined label */ #define C_MOS 8 /* member of structure */ #define C_ARG 9 /* function argument */ #define C_STRTAG 10 /* structure tag */ #define C_MOU 11 /* member of union */ #define C_UNTAG 12 /* union tag */ #define C_TPDEF 13 /* type definition */ #define C_USTATIC 14 /* undefined static */ #define C_ENTAG 15 /* enumeration tag */ #define C_MOE 16 /* member of enumeration */ #define C_REGPARM 17 /* re T hg lg$ mg ngb sgH`~`SSX`.N< 9"9./9N XJ@nF 9"9./9NzX./9NpX##`. 9"9./9NpX##B .lNLN!t./ 9"9NX./9NX-@-AR.~ .N'Jgp `p ./././<N `r.~ .N'Jg4Sm yRr `.p /N#Xp.N,xLN^NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVHA -H.//.N P$9g pLN^Nu `NVHA-H.//. N P$ n( g pLN^Nu `NV#N^NuNV.ANm 9N" 09#rN^NuNVH$nz`RHH"|1f -fRz` +fRx-y-y`L r0N!t-@-A 9"9./.NX./.NX-@-A`RHH$ |0(g$ ."../9N XJ@l`|p.f/ unsigned a_actext; /* The actual size of */ /* the text segment in */ /* bytes. */ unsigned a_acdata; /* The actual size of */ /* the data segment in */ /* bytes. */ #endif #ifdef pdp11 char a_unused; /* not used */ unsigned char a_hitext; /* high order text bits */ char a_flag; /* reloc info stripped */ char a_stamp; /* environment stamp */ #endif }; #define A_MAGIC1 0407 /* normal */ #define A_MAGIC0 0401 /* lpd (UNIX/RT) */ #define A_MAGIC2 0410 /* read-only text */ #define A_MAGIC3 0411 /* separated I&D */ #define A_MAGIC4 0405 /* overlay */ #define A_MAGIC5 0437 /* system overlay, separated I&D */ #ifdef u370 struct relocation_info { long r_address; /* relative to current segment */ unsigned int r_symbolnum:24, /* if extern then symbol table */ /* ordinal (0, 1, 2, ...) else */ /* segment number (same as symbol types) */ r_pcrel:1, /* if so, segment offset has already */ /* been subtracted */ r_length:2, /* 0=byte, 1=word, 2=longister parameter */ #define C_FIELD 18 /* bit field */ #define C_BLOCK 100 /* ".bb" or ".eb" */ #define C_FCN 101 /* ".bf" or ".ef" */ #define C_EOS 102 /* end of structure */ #define C_FILE 103 /* file name */ /* * The following storage class is a "dummy" used only by STS * for line number entries reformatted as symbol table entries */ #define C_LINE 104 #define C_ALIAS 105 /* duplicate tag */ #define C_HIDDEN 106 /* special storage class for external */ /* symbols in dmert public libraries */ `l ."../9N XJ@lJ r0N!t-@-A 9 "9./.NX./.NX-@-ASHH$ |0(f|vpEgpefXHH$p+g$p-f|` Ѐ"Ё"0Ё&`SHH$ |0(fJl D& Ѓ(|Jl| D(-y-y-y-y .g ."../.NX-@-AJg ."../NX-@-A`Jl ."../.Np` ."../.NX-@-A. N" ././.N FP-@-AJlNH-@-A .".LN^NuNVH$.g .". .@/9p.N'/N!dX`( .". .H/9DNX-@-A ppbpN!t./ .". N`p Ю l: 9L"9P`J .". .X/9TNX-@-A pⴀep"DN!t./ .". NpX`NVH$n . fp.N'/N!dXB .". .`/9\N XJ@f .". LN^Nu .". .h/9dN XJ@o* .". `.R ."..x/9tNX` .". NH-@-A g */ r_extern:1, /* does not include value */ /* of symbol referenced */ r_offset:1, /* already includes origin */ /* of this segment (?) */ r_pad:3; /* nothing, yet */ }; #endif struct nlist { /* symbol table entry */ char n_name[8]; /* symbol name */ #ifdef pdp11 int n_type; /* type flag */ #else char n_type; /* type flag */ char n_other; short n_desc; #endif unsigned n_value; /* value */ }; /* in invocation of BADMAG macro, argument should not be a function. */ #define BADMAG(X) (X.a_magic != A_MAGIC1 &&\ X.a_magic != A_MAGIC2 &&\ X.a_magic != A_MAGIC3 &&\ X.a_magic != A_MAGIC4 &&\ X.a_magic != A_MAGIC5 &&\ X.a_magic != A_MAGIC0) /* values for type flag */ #define N_UNDF 0 /* undefined */ #define N_TYPE 037 #define N_FN 037 /* file name symbol */ #ifdef pdp11 #define N_ABS 01 /* absolute */ #define N_TEXT 02 /* text symbol */ #define N_DATA 03 /* data symbol */ #define N_BSS 04 /* bss symbol */ #define N_REG 024 /* register name */ #define N_EXT 040 /* external bit/* @(#)string.h 3.1 */ extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strchr(), *strrchr(), *strpbrk(), *strtok(); extern long strtol(); 2nkheb_\YVSPMJGDA>;852/,)&#  , or'ed in */ #define FORMAT "%.6o" /* to print a value */ #else #define N_ABS 02 /* absolute */ #define N_TEXT 04 /* text */ #define N_DATA 06 /* data */ #define N_BSS 010 #define N_GSYM 0040 /* global sym: name,,type,0 */ #define N_FNAME 0042 /* procedure name (f77 kludge): name,,,0 */ #define N_FUN 0044 /* procedure: name,,linenumber,address */ #define N_STSYM 0046 /* static symbol: name,,type,address */ #define N_LCSYM 0050 /* .lcomm symbol: name,,type,address */ #define N_BSTR 0060 /* begin structure: name,,, */ #define N_RSYM 0100 /* register sym: name,,register,offset */ #define N_SLINE 0104 /* src line: ,,linenumber,address */ #define N_ESTR 0120 /* end structure: name,,, */ #define N_SSYM 0140 /* structure elt: name,,type,struct_offset */ #define N_SO 0144 /* source file name: name,,,address */ #define N_BENUM 0160 /* begin enum: name,,, */ #define N_LSYM 0200 /* local sym: name,,type,offset */ #define N_SOL 0204 /* #line source filename: name,,,address */ #define N_ENUM 0220 /* enum element: name,,, /* @(#)symbol.h 3.1 */ /* 3.0 SID # 1.1 */ /* * Structure of a symbol table entry */ struct symbol { char sy_name[8]; char sy_type; int sy_value; }; p:-@ .:-@:.N'ЀЮ"n&1. .:N'-@:J:f Ю-@Jgʹg  Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N@(HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6./9N XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. sg_flags = cmd, stty(alfildes, &alsgtty), &alsgtty->sg_flags) lowing meanings: */ /* undefined symbol */ #define N_UNDEF 0 /* value of symbol is absolute */ #define N_ABS -1 /* special debugging symbol -- value of symbol is meaningless */ #define N_DEBUG -2 /* indicates symbol needs transfer vector (preload) */ #define N_TV (unsigned short)-3 /* indicates symbol needs transfer vector (postload) */ #define P_TV (unsigned short)-4 /* The fundamental type of a symbol packed into the low 4 bits of the word. */ #define _EF ".ef" #define T_NULL 0 #define T_ARG 1 /* function argument (only used by compiler) */ #define T_CHAR 2 /* character */ #define T_SHORT 3 /* short integer */ #define T_INT 4 /* integer */ #define T_LONG 5 /* long integer */ #define T_FLOAT 6 /* floating point */ #define T_DOUBLE 7 /* double word */ #define T_STRUCT 8 /* structure */ #define T_UNION 9 /* union */ #define T_ENUM 10 .". .l/9hN XJ@m,`: .". ./NpX-@-A -ђ` .". .t/9pN XJ@m\-yx-y|` -n-n 9"9./.NX-@-A. /.N XJ@o` .". ./9N XJ@ln`8 .". ./NX-@-A -` M o2 .". ./NX./9N XJ@l`Jgҹ:eйc(| .". ./9N XJ@gKe0`T .". NZ$ 0 N!t./ .". NzX./ 9"9NX-@-A e$&L 5m0:f1:RJgR`R`R0R# 9nB |: L<N^Nu M o .". ./N XJ@m` .". ./.NpXNZ$ 0 N!t./.NX./ .". NzX-@-A R ."../9N XJ@o^ ."../9NpX-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA"X.0`΂>GGg׃ՂҁрjD@D J /* * static char ID_aouth[] = "@(#)aouthdr.h 3.1 "; */ typedef struct aouthdr { short magic; /* see magic.h */ short vstamp; /* version stamp */ long tsize; /* text size in bytes, padded to FW bdry */ long dsize; /* initialized data " " */ long bsize; /* uninitialized data " " */ #ifdef u3b long dum1; long dum2; /*Pad to entry point */ #endif long entry; /* entry pt. */ long text_start; /* base of text used for this file */ long data_start; /* base of data used for this file */ } AOUTHDR;  /* enumeration */ #define T_MOE 11 /* member of enumeration */ #define T_UCHAR 12 /* unsigned character */ #define T_USHORT 13 /* unsigned short */ #define T_UINT 14 /* unsigned integer */ #define T_ULONG 15 /* unsigned long */ /* * derived types are: */ #define DT_NON 0 /* no derived type */ #define DT_PTR 1 /* pointer */ #define DT_FCN 2 /* function */ #define DT_ARY 3 /* array */ /* * type packing constants */ #define N_BTMASK 017 #define N_TMASK 060 #define N_TMASK1 0300 #define N_TMASK2 0360 #define N_BTSHFT 4 #define N_TSHIFT 2 /* * MACROS */ /* Basic Type of x */ #define BTYPE(x) ((x) & N_BTMASK) /* Is x a pointer ? */ #define ISPTR(x) (((x) & N_TMASK) == (DT_PTR << N_BTSHFT)) /* Is x a function ? */ #define ISFCN(x) (((x) & N_TMASK) == (DT_FCN << N_BTSHFT)) /* Is x an array ? */ #defifJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNu/* @(#)ar.h 3.1 */ #if vax || u3b || u3b5 || m68k #if !PORT5AR /* COMMON ARCHIVE FORMAT - PORTAR * * ARCHIVE File Organization: * _______________________________________________ * |__________ARCHIVE_MAGIC_STRING_______________| * |__________ARCHIVE_FILE_MEMBER_1______________| * | | * | Archive File Header "ar_hdr" | * |.............................................| * | Member Contents | * | 1. External symbol directory | * | 2. Text file | * |_____________________________________________| * |________ARCHIVE_FILE_MEMBER_2________________| * | "ar_hdr" | * |.............................................| * | Member Contents (.o or text file) | * |_____________________________________________| * | . . .  | * | . . . | * | . . . | * |_____________________________________________| * |________ARCHIVE_FILE_MEMBER_n________________| * | "ar_hdr" | * |.............................................| * | Member Contents | * |__________ ne ISARY(x) (((x) & N_TMASK) == (DT_ARY << N_BTSHFT)) /* Is x a structure, union, or enumeration TAG? */ #define ISTAG(x) ((x)==C_STRTAG || (x)==C_UNTAG || (x)==C_ENTAG) #define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) /* * AUXILIARY ENTRY FORMAT */ union auxent { struct { long x_tagndx; /* str, un, or enum tag indx */ union { struct { unsigned short x_lnno; /* declaration line number */ unsigned short x_size; /* str, union, array size */ } x_lnsz; long x_fsize; /* size of function */ } x_misc; union { struct /* if ISFCN, tag, or .bb */ { long x_lnnoptr; /* ptr to fcn line # */ long x_endndx; /* entry ndx past block end */ } x_fcn; struct /* if ISARY, up to 4 dimen. */ { unsigned short x_dimen[DIMNUM]; } x_ary; } x_fcnary; unsigned short x_tvndx; /* tv index */ } x_sym; struct { char x_fname[FILNMLEN]; } x_file; NuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA"X.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N%Jf`pg pLN^Nu* HH"|(q. .N" $&j &n,.N%Brf Ю S. N(". `d ` &././ N!PתJlp` (* HH"| 1l.N'nf* HHrD€g.N%B .`(׮`Np%N@dN,lpNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVH$|` .NeLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N+rJl ___________________________________| * */ #define ARMAG "!\n" #define SARMAG 8 #define ARFMAG "`\n" struct ar_hdr /* archive file member header - printable ascii */ { char ar_name[16]; /* file member name - `/' terminated */ char ar_date[12]; /* file member date - decimal */ char ar_uid[6]; /* file member user id - decimal */ char ar_gid[6]; /* file member group id - decimal */ char ar_mode[8]; /* file member mode - octal */ char ar_size[10]; /* file member size - decimal */ char ar_fmag[2]; /* ARFMAG - string to end header */ }; #else /* (vax || u3b || u3b5 || m68k) && PORT5AR */ /* COMMON ARCHIVE FORMAT - PORT5AR ARCHIVE File Organization: _______________________________________________ |__________ARCHIVE_HEADER_DATA________________| | | | Archive Header "ar_hdr" | |.............................................| | | | Symbol Directory "ar_sym" | | | |_____________________________________________| |________ARCHIVE_FILE_MEMBER_1_________ struct { long x_scnlen; /* section length */ unsigned short x_nreloc; /* number of relocation entries */ unsigned short x_nlinno; /* number of line numbers */ } x_scn;  struct { long x_tvfill; /* tv fill value */ unsigned short x_tvlen; /* length of .tv */ unsigned short x_tvran[2]; /* tv range */ } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ }; #define SYMENT struct syment #define SYMESZ 18 /* sizeof(SYMENT) */ #define AUXENT union auxent #define AUXESZ 18 /* sizeof(AUXENT) */ /* Defines for "special" symbols */ #if VAX #define _ETEXT "_etext" #define _EDATA "_edata" #define _END "_end" #else #define _ETEXT "etext" #define _EDATA "edata" #define _END "end" #endif #define _START "_start" #define _TVORIG "_tvorig" #define _TORIGIN "_torigin" #define _DORIGIN "_dorigin" #define _SORIGIN "_sorigin"  tp#6* g.N*BB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"| q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/N+dPrf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"| 1$Jlp` &* HH"| 1l.NJo,./ * HH/N+dPg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"| 1$Jlp` $* HH"| 1l.Np`vNVH $n* HH$pl "| q%HA`N.N(t%Hg& * HH"|A"jC `, "|A%HA&H* HH"|#%j.N+8Jg*_______| | | | Archive File Header "arf_hdr" | |.............................................| | | | Member Contents (either a.out.h | | format or text file) | |_____________________________________________| |  | | . . . | | . . . | | . . . | |_____________________________________________| |________ARCHIVE_FILE_MEMBER_n________________| | | | Archive File Header "arf_hdr" | |.............................................| | | | Member Contents (either a.out.h | | format or text file) | |_____________________________________________| */ #define ARMAG "" #define SARMAG 4 struct ar_hdr { /* archive header */ char ar_magic[SARMAG]; /* magic number */ char ar_name[16]; /* archive name */ char ar_date[4]; /* date of last archive modification */ char ar_syms[4]; /* number of ar_sym entries */ }; struct ar_sym { /* archive symbol table entry */ char sym_name[8]; /* sym/* @(#)termio.h 3.1 */ /* 3.0 SID # 1.3 */ #include  bol name, recognized by ld */ char sym_ptr[4]; /* archive position of symbol */ }; struct arf_hdr { /* archive file member header */ char arf_name[16]; /* file member name */ char arf_date[4]; /* file member date */ char arf_uid[4]; /* file member user identification */ char arf_gid[4]; /* file member group identification */ char arf_mode[4]; /* file member mode */ char arf_size[4]; /* file member size */ }; #endif #else /* u370 || pdp11 */ #define ARMAG 0177545 struct ar_hdr { char ar_name[14]; long ar_date; char ar_uid; char ar_gid; int ar_mode; long ar_size; }; #endif /* @(#)time.h 3.1 */ /* 3.0 SID # 1.2 */ struct tm { /* see ctime(3) */ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; extern struct tm *gmtime(), *localtime(); extern char *ctime(), *asctime(); extern void tzset(); extern long timezone; extern int daylight; extern char *tzname[];  f L N^NuNVH$n* HH"| 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <@ @# <@ @### .^"$$yB`(ffR b~*f,`#$&R+g Ae Ad&Jp @$Hc` A#c# p @$A L N^Nu " #p.N*&H 9Ae 9.N*&H rf` y yAgp"y @" 9AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 92ѯpN@dN,l 92 @#2NupN@dN,l#2pNuNVHn/<T/.N+ J/* @(#)assert.h 3.1 */ #ifdef NDEBUG #define assert(EX) #else extern void _assert(); #define assert(EX) if (EX) ; else _assert("EX", __FILE__, __LINE__) #endif  /* @(#)tp_defs.h 3.1 */ /* 3.0 SID # 1.1 */ char mt[] = "/dev/mt0"; char tc[] = "/dev/tapx"; int flags = flu; char mheader[] = "/usr/mdec/mboot"; char theader[] = "/usr/mdec/tboot"; lpN^Nup`pN@dN,lNupN@dN,lpNup6N@dN,lNuNVH<$.$n Jopo p#6`,*|, g g*J./N,^X @*Hf | L<N^Nu "|G(S&,f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN,lNu#6p @NuN"pN@NrNVH./.N,LN^JogPO//<N, Nwp&N@dN,lNu@(#)rand.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1  ?**@@!! %s: %c? %-12g%cC@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$/* @(#)core.h 3.1 */ /* machine dependent stuff for core files */ #ifdef vax #define TXTRNDSIZ 512L #define stacktop(siz) (0x80000000L) #define stackbas(siz) (0x80000000L-siz) #endif #ifdef pdp11 #define TXTRNDSIZ 8192L #define stacktop(siz) (0x10000L) #define stackbas(siz) (0x10000L-siz) #endif #ifdef u3b #define TXTRNDSIZ 0x20000 #define stacktop(siz) 0xC0000 #define stackbas(siz) (0xC0000 + siz) #endif #ifdef m68k #define TXTRNDSIZ 512L #ifdef M68020 /* 32-bit addresses */ #define stacktop(siz) (0xffffffffL) /* can't represent 2^32 */ #define stackbas(siz) (-siz) /* 2^32 - siz */ #else /* 24-bit addresses */ #define stacktop(siz) (0x1000000L) #define stackbas(siz) (0x1000000L-siz) #endif #endif /* @(#)ustat.h 3.1 */ /* 3.0 SID # 1.1 */ struct ustat { daddr_t f_tfree; /* total free */ ino_t f_tinode; /* total inodes free */ char f_fname[6]; /* filsys name */ char f_fpack[6]; /* filsys pack name */ };  @$@$?@$@$ ((((( H  /* @(#)ctype.h 3.1 */ /* 3.0 SID # 1.2 */ #define _U 01 #define _L 02 #define _N 04 #define _S 010 #define _P 020 #define _C 040 #define _B 0100 #define _X 0200 extern char _ctype[]; #ifndef lint #define isalpha(c) ((_ctype+1)[c]&(_U|_L)) #define isupper(c) ((_ctype+1)[c]&_U) #define islower(c) ((_ctype+1)[c]&_L) #define isdigit(c) ((_ctype+1)[c]&_N) #define isxdigit(c) ((_ctype+1)[c]&_X) #define isalnum(c) ((_ctype+1)[c]&(_U|_L|_N)) #define isspace(c) ((_ctype+1)[c]&_S) #define ispunct(c) ((_ctype+1)[c]&_P) #define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_N|_B)) #define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_N)) #define iscntrl(c) ((_ctype+1)[c]&_C) #define isascii(c) ((unsigned char)(c)<=0177) #define _toupper(c) ((c)-'a'+'A') #define _tolower(c) ((c)-'A'+'a') #define toascii(c) ((c)&0177) #endif /* @(#)utmp.h 3.1 */ /* must be included. */ #define UTMP_FILE "/etc/utmp" #define WTMP_FILE "/etc/wtmp" #define ut_name ut_user struct utmp { char ut_user[8] ; /* User login name */ char ut_id[4] ; /* /etc/lines id(usually line #) */ char ut_line[12] ; /* device name (console, lnxx) */ short ut_pid ; /* process id */ short ut_type ; /* type of entry */ struct exit_status { short e_termination ; /* Process termination status */ short e_exit ; /* Process exit status */ } ut_exit ; /* The exit status of a process * marked as DEAD_PROCESS. */ time_t ut_time ; /* time entry was made */ } ; /* Definitions for ut_type */ #define EMPTY 0 #define RUN_LVL 1 #define BOOT_TIME 2 #define OLD_TIME 3 #define NEW_TIME 4 #define INIT_PROCESS 5 /* Process spawned by "init" */ #define LOGIN_PROCESS 6 /* A "getty" process waiting for login */ #define USER_PROCESS 7 /* A user process */ #define DEAD_PROCESS 8 #define ACCOUNTING 9 #define UTMAXTYPP55{6n t.text6 .datan76@.bssnn t#Q.A /H"HJfmY/H#N<.N66pN@NVH n #& .S-@ n A-HJo n P-H -fpѮ nJgr nJgd nRHH`6`J n(HH./9&/<~/<N ` g ,g``SSX`\ np-@B`p-@ .Sro.pѮ n /N)XJg Jf-|`` n P -gJ. n /N*X-Hf* n ./9&/</<N `l` R``BHn/.NDPrg R` .N)-@-Ap ./././<N .N,N`p.N66LN^NuNVH. /</.N>P-@rg^Jop`V nSm n"hRp` .Nrf.p/N4X.NZ`p`LN^NuNVH nSm n"hRp` .N-@rf./. /.NP`./.N4X n B` LN^ /* @(#)dial.h 3.1 */ #ifndef IUCLC #include #endif #define LDEVS "/usr/lib/uucp/L-devices" #define DEVDIR "/dev/" /* device path */ #define LOCK "/usr/spool/uucp/LCK.." /* lock file semaphore */ #define DVC_LEN 30 /* max NO of chars in TTY-device path name */ /* error mnemonics */ #define INTRPT (-1) /* interrupt occured */ #define D_HUNG (-2) /* dialer hung (no return from write) */ #define NO_ANS (-3) /* no answer within 10 seconds */ #define ILL_BD (-4) /* illegal baud-rate */ #define A_PROB (-5) /* acu problem (open() failure) */ #define L_PROB (-6) /* line problem (open() failure) */ #define NO_Ldv (-7) /* can't open LDEVS file */ #define DV_NT_A (-8) /* requested device not available */ #define DV_NT_K (-9) /* requested device not known */ #define NO_BD_A (-10) /* no device available at requested baud */ #define NO_BD_K (-11) /* no device known at requested baud */ typedef struct { struct termio *attr; /* ptr to termio attribute struct */ int baud; /* transmission baud-rate */E ACCOUNTING /* Largest legal value of ut_type */ /* Special strings or formats used in the "ut_line" field when */ /* accounting for something other than a process. */ /* No string for the ut_line field can be more than 11 chars + */ /* a NULL in length. */ #define RUNLVL_MSG "run-level %c" #define BOOT_MSG "system boot" #define OTIME_MSG "old time" #define NTIME_MSG "new time" NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .N@ \g.HH`X nSm n"hR I` .N nSm n"hRp` .N@HHrg@ . g$ n "nCd n R ` n B n ``& |` LN^NuNVHA -H.//.NP$9g pLN^Nu `NVHA-H.//. NP$ n( g pLN^Nu `NVA -H././<NPN^NuNVA-H./. /.NPN^NuNVH$nA-H|-J J-H.N1-@|./. HnNPLN^NuNVH $n&n Bp$g |0(gFSm jRp`.N-@"|1f./.N4Xrg`p%f p$p%f>Sm jRp`.N-@谂gn./.N4Xrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |0(gpl-@  $pcgHp[gBSm jRp`.N-@ int speed; /* 212A modem: low=300, high=1200 */ char *line; /* device name for out-going line */ char *telno; /* ptr to tel-no digits string */ int modem; /* allow modem control on direct lines */ } CALL; extern int dial(); extern void undial();   /* @(#)values.h 3.3 */ /* @(#)values.h 1.3 UNIX System V/68 */ /* @(#)values.h 2.4 83/07/08 */ #ifndef BITSPERBYTE /* These values work with any binary representation of integers * where the high-order bit contains the sign. */ /* a number used normally for size of a shift */ #if gcos #define BITSPERBYTE 9 #else #define BITSPERBYTE 8 #endif #define BITS(type) (BITSPERBYTE * (int)sizeof(type)) /* short, regular and long ints with only the high-order bit turned on */ #define HIBITS ((short)(1 << BITS(short) - 1)) #define HIBITI (1 << BITS(int) - 1) #define HIBITL (1L << BITS(long) - 1) /* largest short, regular and long int */ #define MAXSHORT ((short)~HIBITS) #define MAXINT (~HIBITI) #define MAXLONG (~HIBITL) /* various values that describe the binary floating-point representation * _EXPBASE - the exponent base * DMAXEXP - the maximum exponent of a double (as returned by frexp()) * FMAXEXP - the maximum exponent of a float (as returned by frexp()) * DMINEXP - the minimum exponent of a double (as "|1f./.N4Xrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`vSm jRp`pL N^Nu.N$  +g -f$RS` jRp`.N$Sm |0(fpfj0(g` |0(gp0` |0(gp7`pW"-A lJgJf. N)Ю-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.N$ |0(f p+gp-f Sm`JgJgJgpBHnN |X-@-AJgN&-@-A lf nrӐ P h !n`` .".NF"nX"Q"i"`@Jg g .D-@ lg< hf2 nrӐ P h0./N4Xrf nB .` nrӐ P h `NVH<$.&. (.$n&nJg nrӐ P h`(H-Lpcf fxSm kRp`.N*pg0psf |/* @(#)dumprestor.h 3.1 */ /* 3.0 SID # 1.1 */ #define NTREC 20 #define MLEN 16 #define MSIZ 4096 #define TS_TAPE 1 #define TS_INODE 2 #define TS_BITS 3 #define TS_ADDR 4 #define TS_END 5 #define TS_CLRI 6 #define MAGIC (int)60011 #define CHECKSUM (int)84446 struct spcl { int c_type; time_t c_date; time_t c_ddate; int c_volume; daddr_t c_tapea; ino_t c_inumber; int c_magic; int c_checksum; struct dinode c_dinode; int c_count; char c_addr[BSIZE]; } spcl; struct idates { char id_name[16]; char id_incno; time_t id_ddate; }; returned by frexp()) * FMINEXP - the minimum exponent of a float (as returned by frexp()) * MAXDOUBLE - the largest double ((_EXPBASE ** DMAXEXP) * (1 - (_EXPBASE ** -DSIGNIF))) * MAXFLOAT - the largest float ((_EXPBASE ** FMAXEXP) * (1 - (_EXPBASE ** -FSIGNIF))) * MINDOUBLE - the smallest double (_EXPBASE ** (DMINEXP - 1)) * MINFLOAT - the smallest float (_EXPBASE ** (FMINEXP - 1)) * DSIGNIF - the number of significant bits in a double * FSIGNIF - the number of significant bits in a float * DMAXPOWTWO - the largest power of two exactly representable as a double * FMAXPOWTWO - the largest power of two exactly representable as a float * _IEEE - 1 if IEEE standard representation is used * _DEXPLEN - the number of bits for the exponent of a double * _FEXPLEN - the number of bits for the exponent of a float * _HIDDENBIT - 1 if high-significance bit of mantissa is implicit * LN_MAXDOUBLE - the natural log of the largest double -- log(MAXDOUBLE) * LN_MINDOUBLE - the natural log of the smalle  0Xfp[fJ2XfJg RSnpgJo./N4Xrf nBf pL extern int errno; st double -- log(MINDOUBLE) */ #if u3b || u3b5 #define MAXDOUBLE 1.79769313486231470e+308 #define MAXFLOAT ((float)3.40282346638528860e+38) #define MINDOUBLE 4.94065645841246544e-324 #define MINFLOAT ((float)1.40129846432481707e-45) #define _IEEE 1 #define _DEXPLEN 11 #define _HIDDENBIT 1 #define DMINEXP (-(DMAXEXP + DSIGNIF - _HIDDENBIT - 3)) #define FMINEXP (-(FMAXEXP + FSIGNIF - _HIDDENBIT - 3)) #endif #if m68k /* This code is an ugly *** C R O C K *** to get around the problems ** of cross-compiling float/double constants. The constant in question ** is the maximum float/double value. Since the VAX has a smaller range ** than the M68000, it cannot convert MAXFLOAT using the native atof(). ** What we do here is define a local constant value whose bits are the ** right ones for the M68000. */ #ifndef __VALUE_H__ extern double _MaXdOuB, _MiNdOuB; extern float _MaXfLoA, _MiNfLoA; asm(" data 1"); asm(" even"); asm("_MaXdOuB:"); asm(" long 0x7fefffff"); asm(" long 0xffffffff"); lB`l Bg BGo`R/v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.N/* f* g * HHrD€g&&|`+ g.N,e%j* gp`* HH"| 1./** HH/N4P$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". .t/9pN#XJ@f .". LN^NuHn/. /.N Jot Ю o>p.N0/N)X`( .". .|/9xN%X-@-A ppbpN)./ .". N%`p Ю l: 9"9`J .". ./9N%X-@-A pⴀep"DN)./ .". N$X`NVH$n . fp.N0/N)XB .". ./9N#XJ@f .". LN^Nu .". ./9N#XJ@o* .". `.R ."../9N%X` .". N&-@-A ."../9N#XJ@l ."../9N#XJ@l S ."../N" X-@-A` .". ./9N#XJ@o .! /* @(#)execargs.h 3.1 */ #ifdef vax char **execargs = (char**)(0x7ffffffc); #endif #ifdef pdp11 char **execargs = (char**)(-2); #endif #ifdef u3b /* empty till we can figure out what to do for the shell */ #endif #ifdef m68k #ifdef M68020 /* 32-bit addresses */ char **execargs = (char**)(0xfffffffc); #else /* 24-bit addresses */ char **execargs = (char**)(0xfffffc); #endif #endif  asm("_MaXfLoA:"); asm(" long 0x7f7fffff"); asm("_MiNdOuB:"); asm(" long 0x00100000"); asm(" long 0x0"); asm("_MiNfLoA:"); asm(" long 0x00800000"); #define __VALUE_H__ /* just do it once */ #endif #define MAXFLOAT _MaXfLoA #define MAXDOUBLE _MaXdOuB #define MINFLOAT _MiNfLoA #define MINDOUBLE _MiNdOuB /* #define MAXFLOAT ((float)3.40282346638528860e+38) */ /* #define MAXDOUBLE ((double)1.79769313486231470e+308) */ /* MINFLOAT/MINDOUBLE are defined to give the smallest non-denormalized ** value. */ /* #define MINDOUBLE ((double)4.4501477170144023e-308) */ /* #define MINFLOAT ((float)MINDOUBLE) */ #define _IEEE 1 #define _DEXPLEN 11 #define _HIDDENBIT 1 #define DMINEXP (-(DMAXEXP) + 1) #define FMINEXP (-(FMAXEXP) + 1) #define CUBRTHUGE 6981463519622.333 #define INV_CUBRTHUGE 1.4323644278729908e-13 #endif #if pdp11 || vax #define MAXDOUBLE 1.701411834604692293e+38 #define MAXFLOAT ((float)1.701411733192644299e+38) /* The following is kludged because the PDP-11 compilers botch the sim".` .".N&` o/ "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N-,X`< + f./ /+N)P'H`./.p// N' Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-|HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|H :g* .:D-@:`Jg -|H`Jg-|HpXf |` |-H&IX*L`Dp:-@ .:-@:.N1"ЀЮ"n&1. .:N1-@:J:f Ю-@Jgʹ/* @(#)fatal.h 3.2 */ #include "setjmp.h" extern int Fflags; extern char *Ffile; extern int Fvalue; extern int (*Ffunc)(); extern jmp_buf Fjmp; # define FTLMSG 0100000 # define FTLCLN 040000 # define FTLFUNC 020000 # define FTLACT 077 # define FTLJMP 02 # define FTLEXIT 01 # define FTLRET 0 # define FSAVE(val) SAVE(Fflags,old_Fflags); Fflags = val; # define FRSTR() RSTR(Fflags,old_Fflags); ! ple form. The kludge causes the constant to be computed at run-time on the PDP-11, even though it is still "folded" at compile-time on the VAX. */ #define MINDOUBLE (0.01 * 2.938735877055718770e-37) #define MINFLOAT ((float)MINDOUBLE) #define _IEEE 0 #define _DEXPLEN 8 #define _HIDDENBIT 1 #define DMINEXP (-DMAXEXP) #define FMINEXP (-FMAXEXP) #endif #if gcos #define MAXDOUBLE 1.7014118346046923171e+38 #define MAXFLOAT ((float)1.7014118219281863150e+38) #define MINDOUBLE 2.9387358770557187699e-39 #define MINFLOAT ((float)MINDOUBLE) #define _IEEE 0 #define _DEXPLEN 8 #define _HIDDENBIT 0 #define DMINEXP (-(DMAXEXP + 1)) #define FMINEXP (-(FMAXEXP + 1)) #endif #if u370 #define _LENBASE 4 #else #define _LENBASE 1 #endif #define _EXPBASE (1 << _LENBASE) #define _FEXPLEN 8 #define DSIGNIF (BITS(double) - _DEXPLEN + _HIDDENBIT - 1) #define FSIGNIF (BITS(float) - _FEXPLEN + _HIDDENBIT - 1) #if m68k /* different because BITS(long) > DSIGNIF */ /***TEMP #define DMAXPOWTWO ((double)(1L << DSIGNIF - 1)) */ #defg  Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N(HJ*g -|H`Jg -|!H`Jg-|#HKMJgHH`p0JfJg.-n`SJoJfIM .2".6./9N#XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA*.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2p" nal header * F_NODF (minimal file only) no decision functions for * replaced functions */ #define F_RELFLG 0000001 #define F_EXEC 0000002 #define F_LNNO 0000004 #define F_LSYMS 0000010 #define F_MINMAL 0000020 #define F_UPDATE 0000040 #define F_SWABD 0000100 #define F_AR16WR 0000200 #define F_AR32WR 0000400 #define F_AR32W 0001000 #define F_PATCH 0002000 #define F_NODF 0002000 /* * Magic Numbers */ /* Basic-16 */ #define B16MAGIC 0502 #define BTVMAGIC 0503 /* x86 */ #define X86MAGIC 0510 #define XTVMAGIC 0511 /* n3b */ /* * NOTE: For New 3B, the old values of magic numbers * will be in the optional header in the structure * "aouthdr" (identical to old 3B aouthdr). */ #define N3BMAGIC 0550 #define NTVMAGIC 0551 /* XL */ #define XLMAGIC 0540 /* MAC-32 3b-5 */ #define FBOMAGIC 0560 #define RBOMAGIC 0562 #define MTVMAGIC 0561 /* VAX 11/780 and VAX 11/750 */ /* writeable text segments */ #define VAXWRMAGIC 0570 /* readonly sharable text/* @(#)x25lib.h 3.1 */ /* NC identifier */ #define NCDEV "/dev/nc" #define NULL 0 /* mdevno error codes */ #define MDERR1 -4 #define MDERR2 -5 /* PVC installation flag values */ #define PVCSESS 01 /* Session conect/disconnect packets used */ #define PVCREST 02 /* RESET in-order/out-of-order responded to */ #define PVCNONE 04 /* no establishment protocol used */ /* PVC error codes */ /* EPVCNP can occur only on a x25pvci */ #define EPVCNP -1 /* no (or multiple) setup protocol specified */ /* one of PVCSESS, REST, or NONE must be in flag arg */ #define EPVCNCO -2 /* network control device open failed; check errno */ #define EPVCNCI -3 /* nc device ioctl failed; check errno */ #define EPVCSS -4 /* stat of slot (pvc) name failed; check errno */ #define EPVCSNC -5 /* file assoc. with slot name not char special dev */ /* x25lnk flags and return error codes */ /* LNK flag values */ #define LNKPKT 01 /* packet size specified */ #define LNKMOD 02 /* Modem control device name specified */ #define LNKISB 010 /rLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEM segments */ #define VAXROMAGIC 0575 /* Motorola 68000 */ #define MC68MAGIC 0520 /* System V/68 magic number */ #define MC68TVMAGIC 0521 /* Bell only */ #define M68MAGIC 0210 /* Bell only */ #define M68TVMAGIC 0211 /* Bell only */ /* IBM 370 */ #define U370WRMAGIC 0530 /* writeble text segments */ #define U370ROMAGIC 0535 /* readonly sharable text segments */ #define FILHDR struct filehdr #define FILHSZ sizeof(FILHDR) # * tell interpreter line is an X.25 "B" address */ #define LNKBACK 040 /* This cmd is for the backup device */ #define LNKFAST 0100 /* The device speed is greater than 9.6KB */ /* LNK error codes */ /* nc open and ioctl errors only ones possible for x25lnkh and x25lnks */ #define ELNKPKT -1 /* packet size specified is illegal */ #define ELNKNCO -2 /* network control device open failed; check errno */ #define ELNKNCI -3 /* nc device ioctl failed; check errno */ #define ELNKDS -4 /* stat of physical device failed; check errno */ #define ELNKDNC -5 /* file assoc. with device name not char special dev */ #define ELNKMCO -8 /* modem control dev open failed; check errno */ #define ELNKMCI -9 /* modem control ioctl failed; check errno */ #define ELNKLNO -10 /* device line number illegal */  #&)/* @(#)ftw.h 3.1 */ /* * Codes for the third argument to the user-supplied function * which is passed as the second argument to ftw */ #define FTW_F 0 /* file */ #define FTW_D 1 /* directory */ #define FTW_DNR 2 /* directory without read permission */ #define FTW_NS 3 /* unknown type, stat failed */ ly accounting # _blocks=`df /usr | sed "s/.*: *\([0-9][0-9]*\) blocks.*/\1/"` if [ "$_blocks" -le $_MIN_BLKS ];then echo "runacct: Insufficient space in /usr ($_blocks blks); \c" echo "Terminating procedure" ( echo "runacct: Insufficient space in /usr ($_blocks blks); \c" echo "Terminating procedure" ) | \ tee /dev/console ${_active} | mail root adm rm -f ${_nite}/lock* exit 1 fi case $# in 0) # "as called by the cron each day" _date="`date +%m%d`" if test ! -r ${_lastdate} ; then echo "0000" > ${_lastdate} fi if test "${_date}" = "`cat ${_lastdate}`"; then (date; echo "${_errormsg}") > /dev/console echo "${_errormsg}" | mail root adm echo "ERROR: acctg already run for `date`: check ${_lastdate}" >> ${_active} rm -f ${_nite}/lock*  mv ${_active} ${_active}${_date} exit 1 fi echo ${_date} > ${_lastdate} echo "SETUP" > ${_statefile} nulladm ${_active} echo "\n\n\n\n\n********** SYSTEM ACCOUNTING STARTED `date` **********\n\n\n\n\n" > /dev/console ;; 1) # "runacct MMDD (dat# E EgLEk< E l@DEE4 E m "E `>EA*.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N/0Jf`pg pLN^Nu* HH"|(q. .N)$&j &n,.N.rf Ю S. N1D". `d ` &././ N)PתJlp` (* HH"| 1l.N0f* HHrD€g.N. .`(׮`Np%N@dN6*pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN+./. /.N

> ${_active} echo "\n\n\n\n\n********** SYSTEM ACCOUNTING RESTARTED `date` **********\n\n\n\n\n" > /dev/console ;; 2) # "runacct MMDD STATE restart at specified state" _date=$1 echo "restarting acctg for ${_date} at $2" >> ${_active} echo "previous state was `cat ${_statefile}`" >> ${_active} echo "$2" > ${_statefile} echo "\n\n\n\n\n********** SYSTEM ACCOUNTING RESTARTED `date` **********\n\n\n\n\n" > /dev/console ;; *) (date; echo "${_errormsg}") > /dev/console echo "${_errormsg}" | mail root adm echo "ERROR: runacct called with invalid arguments" > ${_active} rm -f ${_nite}/lock* mv ${_active} ${_active}${_date} exit 1 ;; esac # "processing is broken down into seperate, restartable states" # "the statefile is updated at the end of each state so that the" # "next loop through the while statement switches to the next state" while [ 1 ] do case "`cat ${_statefile}`" in SETUP) cd ${_ad`p@`Jgp`p@@` Jgp`p&.//.N5@P(mB @ Jg <` LN^Nu n rfp`p@ %H%H J`NVH$|`e LN^Nu* HH@f J`NVH$|` .NeLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N5"Jl tp#j* g.N3^BB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"| q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/N5Prf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"| 1$Jlp` &* HH"| 1l.NJo,./ * HH/N5Pg pL N^Nup`NVH$n* HHrrg** HH$ /* @(#)ldfcn.h 3.1 */ /* * The following two declarations appear in the IH versions of * "stdio.h" but do not appear in the normal 1.2 versions. */ long ftell(); char *fgets(); #ifndef LDFILE struct ldfile { int _fnum_; /* so each instance of an LDFILE is unique */ FILE *ioptr; /* system I/O pointer value */ long offset; /* absolute offset to the start of the file */ FILHDR header; /* the file header of the opened file */ unsigned short type; /* indicator of the type of the file */ }; /* provide a structure "type" definition, and the associated "attributes" */ #define LDFILE struct ldfile #define IOPTR(x) x->ioptr #define OFFSET(x) x->offset #define TYPE(x) x->type #define HEADER(x) x->header #define LDFSZ sizeof(LDFILE) /* define various values of TYPE(ldptr) */ #define LDTYPE B16MAGIC /* defined in terms of the filehdr.h include file */ #define TVTYPE TVMAGIC /* ditto */ #if u3b5 #define USH_ARTYPE ARTYPE #else #define USH_ARTYPE (unsigned short) ARTYPE #endif #if defined(PORTAm} (date ; ls -l fee pacct* ${_wtmp}* ) >> ${_active} # "switch current pacct file" turnacct switch _rc=$? if test ${_rc} -ne 0; then (date ; echo "${_errormsg}" ) > /dev/console echo "${_errormsg}" | mail root adm echo "ERROR: turnacct switch returned rc=${_rc}" >> ${_active} rm -f ${_nite}/lock* mv ${_active} ${_active}${_date} exit 1 fi # " give pacct files unique names for easy restart " for _i in pacct?* do if test -r S${_i}.${_date} ; then (date ; echo "${_errormsg}" ) > /dev/console echo "${_errormsg}" | mail root adm echo "ERROR: S${_i}.${_date} already exists" >> ${_active} echo "file setups probably already run" >> ${_active} rm -f ${_nite}/lock* mv ${_active} ${_active}${_date} exit 1 fi mv ${_i} S${_i}.${_date} done # "add current time on end" if test -r ${_nite}/wtmp.${_date} ; then (date ; echo "${_errormsg}" ) > /dev/console echo "${_errormsg}" | mail root adm echo "ERROR: ${_nite}/wtmp.${_date} already exists: run setup manually" > ${_active} rm -f ${_nite}/lock@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"| 1$Jlp` $* HH"| 1l.Np`vNVH $n* HH$pl "| q%HA`N.N1%Hg& * HH"|A"jC `, "|*A%HA&H* HH"|#%j.N4zJg* f L N^NuNVH$n* HH"| 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <@ @# <@ @### .^"$$yB`(ffR b~*f,`#$&R+g Ae Ad&Jp @$Hc` A#Ʒc# p @$A L N^Nu " #p.N4:&H 9Ae 9.N4:&H rf` y yAgp"yʀ @" 9AA&#"<A"AR) || defined(PORT5AR) #define ARTYPE 0177545 #else #define ARTYPE ARMAG #endif /* define symbolic positioning information for FSEEK (and fseek) */ #define BEGINNING 0 #define CURRENT 1 #define END 2 /* define a structure "type" for an archive header */ #if defined(PORTAR) || defined(PORT5AR) typedef struct { char ar_name[14]; long ar_date; short ar_uid; short ar_gid; long ar_mode; long ar_size; } archdr; #define ARCHDR archdr #else #define ARCHDR struct ar_hdr /* ARCHIVE is defined in ts.h */ #endif #define ARCHSZ sizeof(ARCHDR) /* define some useful symbolic constants */ #define SYMTBL 0 /* section nnumber and/or section name of the Symbol Table */ #define SUCCESS 1 #define CLOSED 1 #define FAILURE 0 #define NOCLOSE 0 #define BADINDEX -1L #define OKFSEEK 0 /* define macros to permit the direct use of LDFILE pointers with the standard I/O library procedures */ LDFILE *ldopen(); LDFILE *ldaopen(); #define GETC(ldptr) getc(IOPTR(ldptr)) #define GETW(ldptr) getw(IOPTR(ldp$ * mv ${_active} ${_active}${_date} exit 1 fi cp ${_wtmp} ${_nite}/wtmp.${_date} acctwtmp "runacct" >> ${_nite}/wtmp.${_date} nulladm ${_wtmp} echo "files setups complete" >> ${_active} echo "WTMPFIX" > ${_statefile} ;; WTMPFIX) # "verify the integrity of the wtmp file" # "wtmpfix will automatically fix date changes" cd ${_nite} nulladm tmpwtmp wtmperror wtmpfix < wtmp.${_date} > tmpwtmp 2>wtmperror if test $? -ne 0 ; then (date ; echo "${_errormsg}") | mail root adm echo "${_errormsg}" > /dev/console echo "ERROR: wtmpfix errors see ${_nite}/wtmperror${_date}" >> ${_active} rm -f ${_nite}/lock* mv ${_active} ${_active}${_date} mv wtmperror wtmperror${_date} exit 1 fi echo "wtmp processing complete" >> ${_active} echo "CONNECT1" > ${_statefile} ;; CONNECT1) # "produce connect records in the ctmp.h format" # "the lineuse and reboots files are used by prdaily" cd ${_nite} nulladm lineuse reboots ctmp log acctcon1 -t -l lineuse -o reboots < tmpwtmp 2> log |\ sort +1n +2 > ctmp # if the following `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 9fѯpN@dN6* 9f @#fNupN@dN6*#fpNuNVHn/<T/.N52 JlpN^Nup`pN@dN6*NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN6*NupN@dN6*pNup6N@dN6*NupN@dN6*NuNVH<$.$n Jopo p#j`,*|6D g g*J./N6X @*Hf | L<N^Nu "|G(S&6Df L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN6*Nu#jp @NuN,pN@NrNVH./.N5LN^JogPO//<N6 Nwp&N@dN6*Nu@(#)rank.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 !! %s: %c? -r!! %s: cannot open %s %-12g%c@(#)getdoub.c 3.1 %F@(tr)) #define FEOF(ldptr) feof(IOPTR(ldptr)) #define FERROR(ldptr) ferror(IOPTR(ldptr)) #define FGETC(ldptr) fgetc(IOPTR(ldptr)) #define FGETS(s,n,ldptr) fgets(s,n,IOPTR(ldptr)) #define FILENO(ldptr) fileno(IOPTR(ldptr)) #define FREAD(p,s,n,ldptr) fread(p,s,n,IOPTR(ldptr)) #define FSEEK(ldptr,o,p) fseek(IOPTR(ldptr),(p==BEGINNING)?(OFFSET(ldptr)+o):o,p) #define FTELL(ldptr) ftell(IOPTR(ldptr)) #define FWRITE(p,s,n,ldptr) fwrite(p,s,n,IOPTR(ldptr)) #define REWIND(ldptr) rewind(IOPTR(ldptr)) #define SETBUF(ldptr,b) setbuf(IOPTR(ldptr),b) #define UNGETC(c,ldptr) ungetc(c,IOPTR(ldptr)) #define STROFFSET(ldptr) (HEADER(ldptr).f_symptr + HEADER(ldptr).f_nsyms * 18) /* 18 == SYMESZ */ #endif  test is true, then pnpsplit complained about # the year and holidays not being up to date. This used to be # a fatal error, but now it will continue to process the accounting. # if test -s log ; then (date ; cat ${_nite}/log) | mail adm root echo "${_errormsg}" > /dev/console cat ${_nite}/log >> ${_active}${_date} fi echo "CONNECT2" > ${_statefile} ;; CONNECT2) # "convert ctmp.h records in tacct records" cd ${_nite} nulladm ctacct.${_date} acctcon2 < ctmp | acctmerg > ctacct.${_date} echo "connect acctg complete" >> ${_active} echo "PROCESS" > ${_statefile} ;; PROCESS) # "correlate Spacct and ptacct files by number" # "will not process Spacct file if corresponding ptacct exists" # "remove the ptacct file to rurun the Spacct file" # "if death occurs here, rerunacct should remove last ptacct file" cd ${_nite} for _Spacct in ${_adm}/Spacct*.${_date} do _ptacct=`basename ${_Spacct} | sed 's/Sp/pt/'` if test -s ${_ptacct}; then echo "WARNING: accounting already run for ${_Spacct}" \ >> ${_acti% #)getlabel.c 3.1 @(#)getline.c 3.2 C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H  ::/* @(#)linenum.h 3.1 */ /* There is one line number entry for every "breakpointable" source line in a section. Line numbers are grouped on a per function basis; the first entry in a function grouping will have l_lnno = 0 and in place of physical address will be the symbol table index of the function name. */ struct lineno { union { long l_symndx ; /* sym. table index of function name iff l_lnno == 0 */ long l_paddr ; /* (physical) address of line number */ } l_addr ; unsigned short l_lnno ; /* line number */ } ; #define LINENO struct lineno #define LINESZ 6 /* sizeof(LINENO) */ ve} echo "WARNING: remove ${_nite}/${_ptacct} to rerun" \ >> ${_active} else nulladm ${_ptacct} acctprc1 ctmp < ${_Spacct} |\ acctprc2 > ${_ptacct} echo "process acctg complete for ${_Spacct}" >> ${_active} fi done echo "all process actg complete for ${_date}" >> ${_active} echo "MERGE" > ${_statefile} ;; MERGE) cd ${_nite} # "merge ctacct and ptacct files together" acctmerg ptacct*.${_date} < ctacct.${_date} > daytacct echo "tacct merge to create daytacct complete" >> ${_active} echo "FEES" > ${_statefile} ;; FEES) cd ${_nite} # "merge in fees" if test -s ${_adm}/fee; then cp daytacct tmpdayt sort +0n +2 ${_adm}/fee | acctmerg -i | acctmerg tmpdayt > daytacct echo "merged fees" >> ${_active} rm -f tmpdayt else echo "no fees" >> ${_active} fi echo "DISK" > ${_statefile} ;; DISK) cd ${_nite} # "the last act of any disk acct procedure should be to mv its" # "entire output file to disktacct, where it will be picked up" if test -r disktacct; then cp daytacct tmpdayt acB% # @(#)sys.m68k 3.1 set exit%,1 set fork%,2 set read%,3 set write%,4 set open%,5 set close%,6 set wait%,7 set creat%,8 set link%,9 set unlink%,10 set exec%,11 set chdir%,12 set time%,13 set mknod%,14 set chmod%,15 set chown%,16 set break%,17 set stat%,18 set lseek%,19 set getpid%,20 set mount%,21 set umount%,22 set setuid%,23 set getuid%,24 set stime%,25 set ptrace%,26 set alarm%,27 set fstat%,28 set pause%,29 set utime%,30 set stty%,31 set gtty%,32 set access%,33 set nice%,34 set sync%,36 set kill%,37 set sysm68k%,38 set setpgrp%,39 set dup%,41 set pipe%,42 set times%,43 set prof%,44 set plock%,45 set setgid%,46 set getgid%,47 set signal%,48 set msgsys%,49 # IPC Messages set acct%,51 set shmsys%,52 # IPC Shared Memory set semsys%,53 # IPC Semaphores set ioctl%,54 set utssys%,57 set exece%,59 set umask%,60 set chroot%,61 set fcntl%,62 set ulimit%,63 ctmerg disktacct < tmpdayt > daytacct echo "merged disk records" >> ${_active} rm -f tmpdayt disktacct else echo "no disk records" >> ${_active} fi echo "MERGETACCT" > ${_statefile} ;; MERGETACCT) cd ${_adm}/acct # "save each days tacct file in sum/tacct.${_date}" # "if sum/tacct gets corrupted or lost, could recreate easily" # "the mounthly acctg procedure should remove all sum/tacct files" cp nite/daytacct sum/tacct${_date} if test ! -r sum/tacct; then echo "WARNING: recreating ${_adm}/sum/tacct " >> ${_active} nulladm sum/tacct fi # "merge in todays tacct with the summary tacct" cp sum/tacct sum/tacctprev acctmerg sum/tacctprev < sum/tacct${_date} > sum/tacct echo "updated sum/tacct" >> ${_active} echo "CMS" > ${_statefile} ;; CMS) cd ${_adm}/acct # "do command summaries" nulladm sum/daycms if test ! -r sum/cms; then nulladm sum/cms echo "WARNING: recreating ${_adm}/sum/cms " >> ${_active} fi cp sum/cms sum/cmsprev acctcms ${_adm}/Spacct*.${_date} > sum/daycms acctcms -s sum/daycms sum/cmsprP5R), t.text), .data)@.bss t#Q.A /H"HJfmY/H#N<.N(pN@NVH n # f.NP`8So0.,pѮ n /N@X-Hg .N`p.N(LN^NuNVH nSm n"hRp` .Nl-@rg /f.Nr*f nSm n"hR I` .Nl nSm n"hRp` .Nl-@rgL *f<.NLr/f, nSm n"hR I` .Nl`` f./<./<N*P`Sm yR.`.p./NX 'fJ nSm n"hRp` .Nl-@r'g gSm yR.`.p./NX \fSm< nSm n"hRp` .Nl"yR`D. nSm n"hRp`/.NlX2/NX``Sm yRr'`./* @(#)macros.h 3.1 */ /* numeric() is useful in while's, if's, etc., but don't use *p++ max() and min() depend on the types of the operands abs() is absolute value */ # define numeric(c) (c >= '0' && c <= '9') # define max(a,b) (ab ? b : a) # define abs(x) (x>=0 ? x : -(x)) # define copy(srce,dest) cat(dest,srce,0) # define compare(str1,str2) strcmp(str1,str2) # define equal(str1,str2) !strcmp(str1,str2) # define length(str) strlen(str) # define size(str) (strlen(str) + 1) /* The global variable Statbuf is available for use as a stat(II) structure. Note that "stat.h" is included here and should not be included elsewhere. Exists(file) returns 0 if the file does not exist; the flags word if it does (the flags word is always non-zero). */ # include "sys/stat.h" extern struct stat Statbuf; # define exists(file) (stat(file,&Statbuf)<0 ? 0:Statbuf.st_mode) extern long itol(); /* libS.a interface for xopen() and xcreat() */ # define xfopen(file,mode) fdfopen(& ev > sum/cms acctcms -a -s sum/daycms | sed -n 1,56p > nite/daycms acctcms -a -s sum/cms | sed -n 1,56p > nite/cms lastlogin echo "command summaries complete" >> ${_active} echo "USEREXIT" > ${_statefile} ;; USEREXIT) # "any installation dependant accounting programs should be run here" echo "CLEANUP" > ${_statefile} ;; CLEANUP) cd ${_adm}/acct # " finally clear files; could be done next morning if desired" nulladm ${_adm}/fee rm -f ${_adm}/Spacct*.${_date} # "put reports onto a file" prdaily >> sum/rprt${_date}; rm -f nite/lock* rm -f nite/ptacct*.${_date} nite/ctacct.${_date} rm -f nite/wtmp.${_date} nite/wtmperror${_date} nite/active${_date} mv nite/tmpwtmp nite/owtmp echo "system accounting completed at `date`" >> ${_active} echo "********** SYSTEM ACCOUNTING COMPLETED `date` **********" > /dev/console echo "COMPLETE" > ${_statefile} exit 0 ;; *) (date;echo "${_errormsg}") > /dev/console echo "${_errormsg}" | mail adm root echo "ERROR: invalid state, check ${_statefile}" >> active rm -f ${_p'/NX`R "fF nSm n"hRp` .Nl-@r"g gSm yR.`.p./NX \fSm< nSm n"hRp` .Nl"yR`D. nSm n"hRp`/.NlX2/NX``Sm yRr"`.p"/NX`LN^NuNVH nSm n"hRp` .Nl-@ g./.N'RX .`LN^NuNVHA-H.//. N\P$ n( g pLN^Nu `NVH $nJf.N"* f* g * HHrD€g&&|`+ g.Npe%j* gp`* HH"| 1./** HH/N'DP$Sm jRpL N^Nu g ` * g* Bp`NVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/NX`< + f./ /+N^P'H`./.p// N Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" xopen(file,mode),mode) # define xfcreat(file,mode) fdfopen(xcreat(file,mode),1) # define remove(file) xunlink(file) /* SAVE() and RSTR() use local data in nested blocks. Make sure that they nest cleanly. */ # define SAVE(name,place) { int place = name; # define RSTR(name,place) name = place;} /* Use: DEBUG(sum,d) which becomes fprintf(stderr,"sum = %d\n",sum) */ # define DEBUG(variable,type) fprintf(stderr,"variable = %type\n",variable) /* Use: SCCSID(@(#)macros.h 1.1) which becomes static char Sccsid "@(#)macros.h 1.1" */ # define SCCSID(arg) static char Sccsid[]="arg" /* Use of ERRABORT() will cause libS.a internal errors to cause aborts */ # define ERRABORT() _error() { abort(); } /* Use of USXALLOC() is required to force all calls to alloc() (e.g., from libS.a) to call xalloc(). */ # define USXALLOC() \ char *alloc(n) {return((char *)xalloc((unsigned)n));} \ free(n) char *n; {xfree(n);} \ char *malloc(n) unsigned n; {int p; p=xalloc(n); \ return((char *)(p != -1?p:0));} # define nite}/lock* mv ${_active} ${_active}${_date} exit 1 ;; esac done # " runacct is normally called with no arguments from the cron" # " it checks its own locks to make sure that 2 crons or previous" # " problems have not occured" # " runacct uses the statefile to record its progress" # " each state updates the statefile upon completion" # " then the next loop though the while picks up the new state" # " to restart this shell, check the active file for diagnostics" # " fix up any corrupted data (ie. bad pacct or wtmp files)" # " if runacct detected the error it removes the locks" # " remove the locks if necessary, otherwise runacct will complain" # " the lastdate file should be removed or changed" # " restart runacct at current state with: runacct MMDD" # " to override the statefile: runacct MMDD STATE" # " if runacct has been executed after the latest failure" # " ie. it ran ok today but failed yesterday" # " the statefile will not be correct" # " check the active files and restart properly" # " if r& +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |w0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |w0(fBHH hg lfRR-|zHAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|{H :g* .:D-@:`Jg -|}H`Jg-|HpXf |` |-H&IX*L`Dp:-@ .:-@:.N#ЀЮ"n&1. .:N#-@:J:f Ю-@Jgʹg  Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N(HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6.f/9bNnXJ@g ..SNONBLANK(p) while (*p==' ' || *p=='\t') p++ /* A global null string. */ extern char Null[1]; /* A global error message string. */ extern char Error[128]; 7:=-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. "9B./.NxX-@-A. /.NnXJ@o` .". .Z/9VNnXJ@ln`8 .". ./NxX-@-A -` M o2 .". ./NxX.b/9^NnXJ@l`JgҹeйFc(|F .". .j/9fNnXJ@g ine M_SQRT1_2 0.70710678118654752440 #if u3b || u3b5 #define MAXFLOAT ((float)3.40282346638528860e+38) #endif #if m68k /* This code is an ugly *** C R O C K *** to get around the problems ** of cross-compiling float/double constants. The constant in question ** is the maximum float/double value. Since the VAX has a smaller range ** than the 68000, it cannot convert MAXFLOAT using the native atof(). ** What we do here is define a local constant value whose bits are the ** right ones for the 68000. */ #ifndef __VALUE_H__ extern double _MaXdOuB, _MiNdOuB; extern float _MaXfLoA, _MiNfLoA; asm(" data 1"); asm(" even"); asm("_MaXdOuB:"); asm(" long 0x7fefffff"); asm(" long 0xffffffff"); asm("_MaXfLoA:"); asm(" long 0x7f7fffff"); asm("_MiNdOuB:"); asm(" long 0x00100000"); asm(" long 0x0"); asm("_MiNfLoA:"); asm(" long 0x00800000"); #define __VALUE_H__ /* just do it once */ #endif #define MAXFLOAT _MaXfLoA #endif #if pdp11 || vax #define MAXFLOAT ((float)1.7' acct.MMDD connect tacct records for MMDD" # " ptacct.n.MMDD process tacct records n files for MMDD" # " daytacct total tacct records for this days accounting" # " disktacct disk tacct records produced by disk shell" # " daycms ascii daily command summary used by prdaily" # " cms acsii total command summary used by prdaily" # " following files in /usr/adm directory" # " fee output from chargefee program" # " pacct active pacct file" # " pacctn switched pacct files" # " Spacctn.MMDD pacct files for MMDD after SETUP state" # " wtmp active wtmp file" # " following files in /usr/adm/acct/sum" # " loginlog output of lastlogin used in prdaily" # " tacct total tacct file for current fiscal" # " tacct.MMDD tacct file for day MMDD" # " cms total cms file for current fiscal" # " rprt.MMDD output of prdaily program" # " wtmp.MMDD saved copy of wtmp for MMDD" # " pacct.MMDD concatenated version of all pacct files for MMDD" # " cmsprev total cms file without latest update" # " tacctprev total tacct file without le0`T .". N$ 0 N./ .". NX./ 9n"9rNxX-@-A e$&L 5m0f1RJgR`R`R0R# 9nB | L<N^Nu M o .". ./NnXJ@m` .". ./.NXN$ 0 N./.NxX./ .". NX-@-A R ."..J/9FNnXJ@o^ ."..R/9NNX-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EA01411733192644299e+38) #endif #if gcos #define MAXFLOAT ((float)1.7014118219281863150e+38) #endif #define HUGE MAXFLOAT #define _ABS(x) ((x) < 0 ? -(x) : (x)) #define _REDUCE(TYPE, X, XN, C1, C2) { \ double x1 = (double)(TYPE)X, x2 = X - x1; \ X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); } #define _POLY1(x, c) ((c)[0] * (x) + (c)[1]) #define _POLY2(x, c) (_POLY1((x), (c)) * (x) + (c)[2]) #define _POLY3(x, c) (_POLY2((x), (c)) * (x) + (c)[3]) #define _POLY4(x, c) (_POLY3((x), (c)) * (x) + (c)[4]) #define _POLY5(x, c) (_POLY4((x), (c)) * (x) + (c)[5]) #define _POLY6(x, c) (_POLY5((x), (c)) * (x) + (c)[6]) #define _POLY7(x, c) (_POLY6((x), (c)) * (x) + (c)[7]) #define _POLY8(x, c) (_POLY7((x), (c)) * (x) + (c)[8]) #define _POLY9(x, c) (_POLY8((x), (c)) * (x) + (c)[9]) struct exception { int type; char *name; double arg1; double arg2; double retval; }; #define DOMAIN 1 #define SING 2 #define OVERFLOW 3 #define UNDERFLOW 4 #define TLOSS 5 #define PLOSS 6 #endif atest update" # " daycms cms files for todays usage" ( HBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N!Jf`pg pLN^Nu* HH"|(q. .N$&j &n,.N!"rf Ю S. N#". `d ` &/* @(#)memory.h 3.1 */ extern char *memccpy(), *memchr(), *memcpy(), *memset(); # @(#)shutacct.sh 3.1 of 3/31/82 # # "shutacct [arg] - shuts down acct, called from /etc/shutdown" # "whenever system taken down" # "arg added to /etc/wtmp to record reason, defaults to shutdown" PATH=/usr/lib/acct:/bin:/usr/bin:/etc _reason=${1-"acctg off"} acctwtmp "${_reason}" >>/etc/wtmp turnacct off ././ N^PתJlp` (* HH"| 1l.N#Nf* HHrD€g.N!" .`(׮`Np%N@dN(pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN|./. /.N<P N^NuNVH$n.N./. /.NP LN^NuNVH$n gJg nJg n (+fp`p$ n HH ag" rg. wf^Jgp`p@`Jgp`p@@` Jgp`p&.//.N'P(mB @ Jg <` LN^Nu n rfp`p@ %H%H J`NVH$|`e LN^Nu* HH@f J`NVH$|` .NeLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N'Jl tp#* g.N%B( /* @(#)mnttab.h 3.1 */ /* 3.0 SID # 1.1 */ #define NMOUNT 20 /* Format of the /etc/mnttab file which is set by the mount(1m) * command */ struct mnttab { char mt_dev[10], mt_filsys[10]; short mt_ro_flg; time_t mt_time; }; # @(#)startup.sh 3.1 of 3/31/82 # # "startup (acct) - should be called from /etc/rc" # "whenever system is brought up" PATH=/usr/lib/acct:/bin:/usr/bin:/etc acctwtmp "acctg on" >>/etc/wtmp turnacct on # "clean up yesterdays accounting files" remove B* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"| q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/N'Prf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"| 1$Jlp` &* HH"| 1l.NJo,./ * HH/N'Pg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"| 1$Jlp` $* HH"| 1l.Np`vNVH $n* HH$pl "|x q%HA`N.N$T%Hg& * HH"|A"jC `, "|A%HA&H* HH"|#%j.N'Jg* f L N^NuNVH/* @(#)mon.h 3.1 */ struct hdr { char *lpc; char *hpc; int nfns; }; struct cnt { char *fnpc; long mcnt; }; typedef unsigned short WORD; #define MON_OUT "mon.out" #ifdef pdp11 #define MPROGS0 300 #else #define MPROGS0 600 #endif #define MSCALE0 4 #define NULL 0 ) # @(#)turnacct.sh 3.1 of 3/31/82 # # "control process accounting (must be root)" # "turnacct on makes sure it's on" # "turnacct off turns it off" # "turnacct switch switches pacct to pacct?, starts fresh one" # "/usr/adm/pacct is always the current pacct file" PATH=/usr/lib/acct:/bin:/usr/bin:/etc cd /usr/adm case "$1" in on) if test ! -r pacct then nulladm pacct fi accton pacct rc=$? ;; off) accton rc=$? ;; switch) if test -r pacct then _i=1 while test -r pacct${_i} do _i="`expr ${_i} + 1`" done mv pacct pacct${_i} fi nulladm pacct accton accton pacct _rc=$? if test ${_rc} -ne 0; then echo "accton failed" rm pacct mv pacct${_i} pacct exit ${_rc} fi ;; *) echo "Usage: turnacct on|off|switch" _rc=1 ;; esac exit ${_rc} $n* HH"| 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH JHf8 <L@ @#H <H@ @#L#LT#HP .^"$$yPB\`(TfHfR\ \b~*f,`#P$&R+g Ae Ad&Jp @$Hc` A#Pc#X pP @$A L N^Nu " #\p.N&&H 9\Ae 9\.N&&H rf` yT yTAgp"yT @" 9\AA&#T"<HA"A `NVH $n&JY#Pp @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"%X J L N^Nu 9ѯpN@dN( 9 @#NupN@dN(#pNuNVHn/<T/.N' JlpN^Nup`pN@dN(NuNVH/* @(#)nan.h 3.1 */ /* Handling of Not_a_Number's (only in IEEE floating-point standard) */ #define KILLFPE() (void) kill(getpid(), 8) #if u3b || m68k #define NaN(X) (((union { double d; struct { unsigned :1, e:11; } s; } \ *)&X)->s.e == 0x7ff) #define KILLNaN(X) if (NaN(X)) KILLFPE() #else #define Nan(X) 0 #define KILLNaN(X) #endif P2P3 .text3 .data 3@.bss  #Q.A /H"HJfmY/H#Nl.N2pN@NV.p/N1X.N1p.N2N^NuNVH l ."n #R.X$ . /<(N2X. /9 NvXJf. N'.N1p.N2) MP/* @(#)pwd.h 3.1 */ /* 3.0 SID # 1.2 */ struct passwd { char *pw_name; char *pw_passwd; int pw_uid; int pw_gid; char *pw_age; char *pw_comment; char *pw_gecos; char *pw_dir; char *pw_shell; }; struct comment { char *c_dept; char *c_name; char *c_acct; char *c_bin; }; LN^NuNV././. /./<6N 6./<6N 6XNN^NuNVH $n&n .p/p$// N b rg pL N^NuJkm k n `.N 6r$./</<6N 6PA .N./+ / A //</<6N 6N`NV.p/p$//. N" N^NuNVH $n &y f0p.p/N X @&H f .N# K# &L N^NuNVH$n &n(y f .Nv)n + )@p.p/N X @# f .'N@ y )y LN^NuNVH $n -n&y ` Jg .ml +Ѫ &k fL N^NuNVHtpl nJ0(f pLN^Nu n0(HH"|1HHr€f 0$(g 0 (gp`R`NV.N.N4 N^NuNVHNt n 4-@HnN(X$H$*vw(</ Jg Kf& *rJ"|t&1 *"|x(1./ NdX&./ NXX(J8g> 3] |= bittab[c & 07] #define ISTHERE(c) (ep[c >> 3] & bittab[c & 07]) char *braslist[NBRA]; char *braelist[NBRA]; int ebra; int sed, nbra; char *loc1, *loc2, *locs; int nodelim; int circf; int low; int size; char bittab[] = { 1, 2, 4, 8, 16, 32, 64, 128 }; char * compile(instring, ep, endbuf, seof) register char *ep; char *instring, *endbuf; { INIT /* Dependent declarations and initializations */ register c; register eof = seof; char *lastep = instring; int cclcnt; char bracket[NBRA], *bracketp; int closed; char neg; int lc; int i, cflg; lastep = 0; if((c = GETC()) == eof || c == '\n') { if(c == '\n') { UNGETC(c); nodelim = 1; } if(*ep == 0 && !sed) ERROR(41); RETURN(ep); } bracketp = bracket; circf = closed = nbra = ebra = 0; if(c n.Q N--@ n.Q N--@Jl QSp<. .N-# p<. .N-&p<. N-# p<. N-# .pr.N-# JmbvF`, j DD`g <m` <nR j DD`g <m` <n".l`:vF`0 SJj DD`g <m` <nѮSJm# $.# j DD`g <m` <n nfp#Hv` 刔R "|Dlp#H R# # B | L N^NuNVH$| &|Jf n ("ЀЁ"|G$| R nI "ЀЁ"|G./ NX$H $d./ NvX$H $d./ NbX$H $d./ NNX$H n dm |2|0T n (d./ NX$H | LN^NuNVH$nR m p . . N-r .N-0` p . . N-0 J LN^NuNVH .N%$H gJgt&y<HHgHH`p Sf -fp`p-@gRt` Ѐ"ЁHHЁr0$ 0m 9oJg D$ "逐"逐#4Jgp`p#8g &y@tHHgHH`p Sf\ d l == '^') circf++; else UNGETC(c); while(1) { if(ep >= endbuf) ERROR(50); c = GETC(); if(c != '*' && ((c != '\\') || (PEEKC() != '{'))) lastep = ep; if(c == eof) { *ep++ = CCEOF; RETURN(ep); } switch(c) { case '.': *ep++ = CDOT; continue; case '\n': if(!sed) { UNGETC(c); *ep++ = CCEOF; nodelim = 1; RETURN(ep); } else ERROR(36); case '*': if(lastep == 0 || *lastep == CBRA || *lastep == CKET) goto defchar; *lastep |= STAR; continue; case '$': if(PEEKC() != eof && PEEKC() != '\n') goto defchar; *ep++ = CDOL; continue; case '[': if(&ep[17] >= endbuf) ERROR(50); *ep++ = CCL; lc = 0; for(i = 0; i < 16; i++) ep[i] = 0; neg = 0; if((c = GETC()) == '^') { neg = 1; c = GETC(); } do { if(c == '\0' || c == '\n') ERROR(49); if(c == '-' && lc != 0) { if((c = GETC()) == ']') { PLACE('-'); break; } while(lc < c) { PLACE(lc); lc++; * L N^NuNVH$nJ oJn pLN^Nu. .N$$Jn0.N xrf Ю S. N.". `SRd ` &./*/.N$jPA8-HתJlp` (* HH"|6 1l.N,2fl .`JNVH nJlB n( g D$`8 n( HH@g^t( gJg( f "H ($p.p/ n( HH/N1jP-@Jmծ .LN^Nup`NVH . .N$-@.N.z$H f L N^Nu&J .V"$`BSl J`NV.N0"N^NuNVHA-H.//. NhP$ n( g pLN^Nu `NVH $nJf.N+n* f* g * HHrD€g&&|`+ g.N(T2e%j* gp`* HH"|6 1./** HH/N1xP$Sm jRpL N^Nu g ` * g* Bp`NVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N(X`< + f./ /+N$jP'H`./.p// N" Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$P55Ih t.textIh .dataJ@.bss t#Q.A /H"HJfmY/H#N<.NIpN@NV|H n # .S-@ n A-HJob n P-H -fDpѮ nJg4 nJg& nRHH`.N# nHH"|Y1g R``.NV#~# n .gL n -g@ nHH"|Y1f& n eg n +g n Ef R``b`^ n(HH./9 /</<~N `. g ,g cg rg.``SSX` np-@B`p-@ .Sro.pѮ n /N= NBRA) ERROR(43); *bracketp++ = nbra; *ep++ = CBRA; *ep++ = nbra++; continue; case ')': if(bracketp <= bracket || ++ebra != nbra) ERROR(42); *ep++ = CKET; *ep++ = *--bracketp; closed++; continue; case '{': if(lastep == (char *) 0) goto defchar; *lastep |= RNGE; cflg = 0; nlim: c = GETC(); i = 0; do { if('0' <= c && c <= '9') i = 10 * i + c - '0'; else ERROR(16); } while(((c = GETC()) != '\\') && (c != ',')); if(i > 255) ERROR(11); *ep++ = i; if(c == ',') { if(cflg++) ERROR(44); if((c = GETC()) == '\\') *ep++ = 255; else { UNGETC(c); goto nlim; /* get 2'nd number */ }  #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-|HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|H :g* .:D-@:`Jg -|H`Jg-|HpXf |` |,-H&IX*L`Dp:-@ .:-@:.N-ЀЮ"n&1. .:N--@:J:f Ю-@Jgʹg  Xg4 og xf-|=H` lp-@`-|@H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N(HJ*g -|CH`Jg -|EH`Jg-|GHKMJgHH`p0JfJg.-n`SJoJfIM .2".6./9NzX+ /././.N( -@-A. .NCJgp `p ./././<Np R`". .NCrg4Spm ytRtr `.pp /N@X.N?(`p.NILN^NuNVH .". .*/9&N6XJ@l."/9/./.N ./9N6XJ@g^. /<>/<~NP. /.NX-@-A./././.N > N9 "`v .". .2/9.N6XJ@f0 .". ./.N6XJ@f 96"9:`&././. /.N > "`LN^NuNVH. /</.NP-@rg^Jop`V nSm n"hRp` .N"rf.p/NGX.N~`p`LN^NuNVH nSm n"hRp` .N"-@rf./. /.NP`./.NGX n B` LN^NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .N"@ \g.HH`X nSm n"hR I` .N" nSm n"hRp` .N"@} if(GETC() != '}') ERROR(45); if(!cflg) /* one number */ *ep++ = i; else if((ep[-1] & 0377) < (ep[-2] & 0377)) ERROR(46); continue; case '\n': ERROR(36); case 'n': c = '\n'; goto defchar; default:  if(c >= '1' && c <= '9') { if((c -= '1') >= closed) ERROR(25); *ep++ = CBACK; *ep++ = c; continue; } } /* Drop through to default to use \ to turn off special chars */ defchar: default: lastep = ep; *ep++ = CCHR; *ep++ = c; } } } step(p1, p2) register char *p1, *p2; { register c; if(circf) { loc1 = p1; return(advance(p1, p2)); } /* fast check for first character */ if(*p2 == CCHR) { c = p2[1]; do { if(*p1 != c) continue; if(advance(p1, p2)) { loc1 = p1; return(1); } } while(*p1++); return(0); } /* regular algorithm */ do { if(advance(p1, p2)) { loc1 = p1; return(1); } } while(*p1++); return(0); } advance(lp, ep) register char *lp, *ep; { register chaJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. = curlp) { if(advance(lp, ep)) return(1); lp -= ct; } return(0); case CDOT | STAR: curlp = lp; while(*lp++); goto star; case CCHR | STAR: curlp = lp; while(*lp++ == *ep); ep++; goto star; case CCL | STAR: curlp = lp; do { c = *lp++ & 0177; } while(ISTHERE(c)); ep += 16; goto star; star: do { if(--lp == locs) break; if(advance(lp, ep)) return(1); } while(lp > curlp); return(0); } } } getrnge(str) register char *str; { low = , XJ@g e0`T .". N!$ 0 N#./ .". NX./ 9"9 N X-@-A e$&L 5m0 f1 RJgR`R`R0R# 9nB | L<N^Nu M o .". ./NzXJ@m` .". ./.NXN!$ 0 N#./.N X./ .". NX-@-A R ."../9NzXJ@o^ ."../9NX-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA%&.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E/ .". N4X-@-A ."../9N8X./ .". N4X`NV .". . /9N6XJ@o&. /.NX./9N8XN^Nup./</. /.N `NVH-n 9N&N9-@-A-n-n .". NJ@gp-@$|p`p-@$|*p -@HnNXJf../.p/NGP./ p/NGPp!# .".LN^NuNVH-n-n .". ./9N6XJ@l .". N9-@-A .". ./9N6XJ@l& 9"9./.N4XLN^Nu-| ."../9N6XJ@nJ ."../9N6XJ@f 9D"9H`p-@-y-y`n ."../9N6XJ@mp ."../9N6XJ@f 98"9<`4p-@ 9@N&-@-AHnNXJfp"# .".` .". ./9N8X./9N4XN9$ N;-@-A .". N9N;-@-A .". ./.N4X-@-A ."../9N8X./ .".N4X-@-A ./.N4X-@-A ."../9N8X./ .". *str++ & 0377; size = (*str == 255)? 20000: (*str &0377) - low; } ecmp(a, b, count) register char *a, *b; register count; { while(count--) if(*a++ != *b++) return(0); return(1); } @EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA%&.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N*Jf`pg pLN^Nu* HH"|6(q. .N$$&j &n,.N*rf Ю S. N.". `, N4X-@-A ."../9N6XJ@l .". N9-@-A D$ .". ./N8X-@-A 9P"9T./.N8X.\/9XN4X./.N8X.d/9`N4X./ .". N8X-@-A 9h"9l./.N8X.t/9pN4X./.N8X.|/9xN4X./.N8X./9N4X. /.N4X./ .". N6X./ 9"9N4X-@-A R.//.N#P`NNVpN^Nu"g rgr Nu B"C$BBHBBJf&Jg2&4<8Bg` Bf4<`B8"vHB$& NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVH$n . fp.NC/N;X .". .8/94N6XJ@m .". ` .". N9-@-A.0/9,N6XJ@m$%n ` ."..@/9Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!Nu o"o / o"`H@Wg H@Q`H@BQH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVH$n(y f LN^NuJg./ NX&H g K`NVH $n&n f =f K L N^NuJf +=g`NVN'`./. /.N

Sm jRp`.N"-@谂gn./.NGXrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |Y0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |Y0(gpl-@  $pcgHp[gBSm jRp`.N"-@"|Y1f./.NGXrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`v- efine R_IND24 015 #define R_IND32 016 /* * 3B and M32 generics * 32-bit direct reference */ #define R_DIR32 06 /* * M32 generic * 32-bit direct reference with bytes swapped */ #define R_DIR32S 012 /* * DEC Processors VAX 11/780 and VAX 11/750 * */ #define R_RELBYTE 017 #define R_RELWORD 020 #define R_RELLONG 021 #define R_PCRBYTE 022 #define R_PCRWORD 023 #define R_PCRLONG 024 /* * Motorola 68000 * * ... uses R_RELBYTE, R_RELWORD, R_RELLONG, R_PCRBYTE and R_PCRWORD as for * DEC machines above. */ #define RELOC struct reloc #define RELSZ 10 /* sizeof(RELOC) */ /* Definition of a "TV" relocation type */ #if N3B #define ISTVRELOC(x) ((x==R_OPT16)||(x==R_IND24)||(x==R_IND32)) #endif #if B16 || X86 #define ISTVRELOC(x) (x==R_IND16) #endif #if M32 #define ISTVRELOC(x) (x!=x) /* never the case */ #endif jmpsvySm jRp`pL N^Nu.N"$  +g -f$RS` jRp`.N"$Sm |Y0(fpfj0(g` |Y0(gp0` |Y0(gp7`pW"-A lJgJf. N<Ю-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.N"$ |Y0(f p+gp-f Sm`JgJgJgpBHnNVX-@-AJgN9-@-A lf nrӐ P h !n`` .".N" "nX"Q"i"`@Jg g  .D-@ lg< hf2 nrӐ P h0./NGXrf nB .` nrӐ P h `NVH<$.&. (.$n&nJg nrӐ P h`(H-Lpcf fxSm kRp`.N"*pg0psf |Y0Xfp[fJ2XfJg RSnpgJo./NGXrf nBf pLJg* f L N^NuNVH$n* HH"|6 1$l* HH%qLN^Nul$`NVH$| 9 Rl "|$q.N.h$g&./.p/N1Pp./</N1P.N.h./ p/N1Pp./<p/N1PLN^NuNVH$nN-$.N.h` p . N.\0p . N.$ "XgRJg*ap./.N-XJf&R zo nB`p./.N-XJg n LN^Nup!N@dN2NupN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH J f8 < $@ @# < @ @# $# $ ,#  ( .^"$$y (B 4`( ,f fR 4  4b~*f,`# ($&R+g Ae Ad&Jp @$Hc` A#. 2}zwtq int d_trunc; /* file truncation flag */ } r; } d_un; }; struct sque { char sq_exfil[140]; /* Executable file */ char sq_infil[48]; /* Input file */ char sq_jobnm[9]; /* Remote job name */ char sq_pgrmr[25]; /* Programmer name */ char sq_jobno[9]; /* Remote job number */ char sq_login[9]; /* Login name from usr= */ char sq_homed[48]; /* Login directory */ long sq_min; /* Minimum file system space */ };  (c# 0 p ( @$A L N^Nu " # 4p.N0&H 9 4Ae 9 4.N0&H rf` y , y ,Agp"y , @" 9 4AA&# ,"< A"A `NVH $n&JY# (p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% 0 J L N^Nu 9 ѯpN@dN2 9 @# NupN@dN2# pNuNVHn/<T/.N1 JlpN^Nup`pN@dN2NupN@dN2Nup N@dN2pNupN@dN2NupN@dN2pNup6N@dN2NupN@dN2NuNVH<$.$n Jopo p# `,*|2 g g*J./N2X @*Hf | L<N^Nu "| 4G(S&2f L` M M`NVH$.o,pn& S"| 8$q g f . /NXLN^Nup0N@dN2Nu# p @NuN'pN@NrNVH./.N2XLN^JogPO//<N3 Nwp&N@dN2Nu/tmp/wXXXXXX-signalwcannot make temporary: %s-rCatwz}. /* @(#)scnhdr.h 3.1 */ struct scnhdr { char s_name[8]; /* section name */ long s_paddr; /* physical address */ long s_vaddr; /* virtual address */ long s_size; /* section size */ long s_scnptr; /* file ptr to raw data for section */ long s_relptr; /* file ptr to relocation */ long s_lnnoptr; /* file ptr to line numbers */ unsigned short s_nreloc; /* number of relocation entries */ unsigned short s_nlnno; /* number of line number entries */ long s_flags; /* flags */ }; #define SCNHDR struct scnhdr #define SCNHSZ sizeof(SCNHDR) /* * Define constants for names of "special" sections */ #define _TEXT ".text" #define _DATA ".data" #define _BSS ".bss" #define _TV ".tv" /* * The low 4 bits of s_flags is used as a section "type" */ #define STYP_REG 0x00 /* "regular" section: allocated, relocated, loaded */ #define STYP_DSECT 0x01 /* "dummy" section: not allocated, relocated, not loaded */ #define STYP_NOLOAD 0x02 /* "noload" section: allocated, relocatennot open: %swtmpfix: logname "%8.8s" changed to "INVALID" INVALIDInput truncated at offset %ldNew date expected at offset %ldrCannot read from temp: %s Bad file at offset %ld %-12s %-8s %lu %sout of coreno dtabout of coreFPM:/ESTEDTDay Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecTZ-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H      g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |Y0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |Y0(fBHH hg lfRR-|\HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|]H :g* .:D-@:`Jg -|_H`Jg-|aHpXf |c` |t-H&IX*L`Dp:-@ .:-@:.NCЀЮ"n&1. .:NC-@:J:f Ю-@Jgʹg  Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N0(HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6.H/9d, not loaded */ #define STYP_GROUP 0x04 /* "grouped" section: formed of input sections */ #define STYP_PAD 0x08 /* "padding" section: not allocated, not relocated, loaded */ #define STYP_COPY 0x10 /* "copy" section: for decision function used by field update; not allocated, not relocated, loaded; reloc & lineno entries processed normally */ #define STYP_TEXT 0x20 /* section contains text only */ #define STYP_DATA 0x40 /* section contains data only */ #define STYP_BSS 0x80 /* section contains bss only */ /* * In a minimal file or an update file, a new function * (as compared with a replaced function) is indicated by S_NEWFCN */ #define S_NEWFCN 0x10 /* * In 3b Update Files (output of ogen), sections which appear in SHARED * segments of the Pfile will have the S_SHRSEG flag set by ogen, to inform * dufr that updating 1 copy of the proc. will update all process invocations. */ #define S_SHRSEG 0x20 / 2 Unknown error: V^h'8JVlx,DQgv   * C ` {-Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesNo more processesNot enough spacePermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesNot a typewriterText file busyFile too largeNo space left on deviceIlleDN6XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA<.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6n0 /* @(#)sgsmacros.h 3.1 */ /* * static char ID_mcroh[] = "@(#) sgsmacros.h: 1.2 5/27/83"; */ #define MAXLDIRS 8 #define COMF77 "(common)" #define max(a,b) (ab ? b: a) #define size(str) (strlen(str) + 1) #define equal(a,b,l) (strncmp(a,b,l) == 0) #define copy(a,b,l) strncpy(a,b,l) # sa1.sh 1.1 of 4/7/82 # @(#)sa1.sh 3.1 DATE=`date +%d` ENDIR=/usr/lib/sa DFILE=/usr/adm/sa/sa$DATE cd $ENDIR if [ $# = 0 ] then $ENDIR/sadc 1 1 $DFILE else $ENDIR/sadc $* $DFILE fi H@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA<.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.NB Jf`pg pLN^Nu* HH"|~(q. .N<$&j &n,.NA^rf Ю S. ND"./* @(#)sgtty.h 3.1 */ /* 3.0 SID # 1.1 */ /* * Structure for stty and gtty system calls. */ struct sgttyb { char sg_ispeed; /* input speed */ char sg_ospeed; /* output speed */ char sg_erase; /* erase character */ char sg_kill; /* kill character */ int sg_flags; /* mode flags */ }; /* * Modes */ #define HUPCL 01 #define XTABS 02 #define LCASE 04 #define ECHO 010 #define CRMOD 020 #define RAW 040 #define ODDP 0100 #define EVENP 0200 #define ANYP 0300 #define NLDELAY 001400 #define TBDELAY 002000 #define CRDELAY 030000 #define VTDELAY 040000 #define BSDELAY 0100000 #define ALLDELAY 0177400 /* * Delay algorithms */ #define CR0 0 #define CR1 010000 #define CR2 020000 #define CR3 030000 #define NL0 0 #define NL1 000400 #define NL2 001000 #define NL3 001400 #define TAB0 0 #define TAB1 002000 #define NOAL 004000 #define FF0 0 #define FF1 040000 #define BS0 0 #define BS1 0100000 /* * Speeds */ #define B0 0 #define B50 1 #define B75 2 #define B110 3 #define B134 4 #define B150 5 #define B200 6 #0 # sa2.sh 1.1 of 4/7/82 # @(#)sa2.sh 3.1 DATE=`date +%d` RPT=/usr/adm/sa/sar$DATE DFILE=/usr/adm/sa/sa$DATE ENDIR=/usr/bin cd $ENDIR $ENDIR/sar $* -f $DFILE > $RPT find /usr/adm/sa \( -name 'sar*' -o -name 'sa*' \) -mtime +7 -exec rm {} \;  `d ` &././ NDi aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN>./. /.N

extern (*signal())();  ""| F#R "  "m# ./< F/.NPp./9/9 .NPrfNpP./</9 .NPrfNpT. 9N"9 dpT. 9N#  9""ЀЁ"9 d 9""ЀЁ#  92Ѐ"뀐"9 d 92Ѐ"뀐#  9 "9:鉰d 9:# . N# .f&N*` .N `.Np.Np./9H/9 .NP./< F/9 .NPrfNB "` 9 "Ѐ"Ё"|6Jgdp. 9 "Ѐ"Ё/1/9 .NP./< 9 "NX"|A//9 .NPrfNDR "  "mp. Nl# . N# . N.# . N# # #" #: #2 p./9/9 .NPp$./<b/9 .NPrfN#b #f #j #n .NJ# B "B &`Z 9 &Ѐ"Ё"|6Jg8B *`. 9 &N$p. 9 *N"|&1 9 *"| #. 9 &N$p. 9 *N"|&1 9 *"| #. 9 &N$p. 9 *N"|~#%j.NGTJg* f L N^NuNVH$n* HH"|~ 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH J *f8 < .@ @# * < *@ @# .# . 6# * 2 .^"$$y 2B >`( 6f *fR >  >b~*f,`# 2$&R+g Ae Ad&Jp @$Hc` A# 2c# : p 2 @$A L N^Nu " # >p.NG&H 9 >Ae 9 >.NG&H rf` y 6 y 6Agp"y 6 @" 9 >AA&# 6"< *A"A `NVH $n&JY# 2p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% : J L N^Nu 9ѯpN@dNI 9 @#NupN@dNI#pNuNV1 /* @(#)stand.h 3.1 */ /* * Header file for standalone package */ #if defined(vax) || defined(m68k) #define FsTYPE 2 #else #define FsTYPE 1 #endif #include "errno.h" #include "sys/param.h" #include "sys/types.h" #include "sys/inode.h" /* * I/O block flags */ #define F_READ 01 #define F_WRITE 02 #define F_ALLOC 04 #define F_FILE 010 /* * Request codes -- must be * the same as an F_XXX above */ #define READ 1 #define WRITE 2 /* * Buffer sizes */ #if FsTYPE == 2 #define BLKSIZ 1024 #else #define BLKSIZ 512 #endif #define NAMSIZ 60 /* * devsw table -- * initialized in conf.c */ struct devsw { int (*dv_strategy)(); int (*dv_open)(); int (*dv_close)(); }; extern struct devsw _devsw[]; /* * dtab table -- entries * are created by MKNOD */ #define NDEV 8 struct dtab { char *dt_name; struct devsw *dt_devp; int dt_unit; daddr_t dt_boff; }; extern struct dtab _dtab[]; /* * mtab table -- entries * are created by mount */ #define NMOUNT 4 struct mtab { char *mt_name; struct dt&1 9 *"| "#. 9 &N$p. 9 *N"|&1 9 *"| &#R * 9 &"| 1"9 *mR &  &m./< F/.NPSo`NVH $np./9Z/9 .NPpT. 9N./ /9 .NPv$`Jj gRRTm L N^NuNVH $np./9l/9 .NP 9""ЀЁ./ /9 .NPv$`JjgRR "m L N^NuNVH $np./9~/9 .NP 9:./ /9 .NPv$`JgRR:m L N^NuNVH $np./9/9 .NP 92Ѐ"뀐./ /9 .NPv$`JgRR>2m L N^NuNV.NZp.NN^NuNVH $|.&|`p.// N PJfL N^NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `pN@dNNuNVH p-@p-@$n `BjBBBj B*JfJfp./.NX-@l`J.N`>.Hn/.NPp0.rd nPfp./.NX$l pHn/<T/.NH JlpN^Nup`pN@dNINuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dNINupN@dNIpNup6N@dNINupN@dNINuNVH<$.$n Jopo p#`,*|I g g*J./NHX @*Hf | L<N^Nu "| >G(S&If L` M M`NVH$.o,pn& S"| B$q g f . /NXLN^Nup0N@dNINu#p @NuN>pN@NrNVH./.NHLN^JogPO//<NIZ Nwp&N@dNINu@(#)root.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 @?!! %s: %c? -r!! %s: cannot open %s %s%g %s root%-12g%c@(#)pow1.c 3.1 @(#)errpr.h 3.1 @(#)debug.h 3.1 ??!! %s: x^y with x<0 and y float yeilds -(|x|^y) @(#)getdoub.c 3.1 %F@(#)getlabel.c 3.1 @(#)getline.c 3.2 ab *mt_dp; }; extern struct mtab _mtab[]; /* * I/O block: includes an inode, * cells for the use of seek, etc, * and a buffer. */ #define NFILES 6 struct iob { char i_flgs; struct inode i_ino; time_t i_atime; time_t i_mtime; time_t i_ctime; struct dtab *i_dp; off_t i_offset; daddr_t i_bn; /* disk block number (physical) */ char *i_ma; int i_cc; /* character count */ char i_buf[BLKSIZ]; }; extern struct iob _iobuf[]; #ifdef pdp11 /* * Set to which 32Kw segment the code is physically running in. * Must be set by the user's main (or thereabouts). */ int segflag; #endif /* * Set to the error type of the routine that * last returned an error -- may be read by perror. */ extern int errno; #define RAW 040 #define LCASE 04 #define XTABS 02 #define ECHO 010 #define CRMOD 020 #define B300 7 struct sgttyb { char sg_ispeed; /* input speed */ char sg_ospeed; /* output speed */ char sg_erase; /* erase character */ char sg_kill; /* kill character */ int sg_flags; /* mode flag2 L N^Nu .Ѐ"ЁЮ-@-np././.NPG-nJgp.Hn/.NP+HHRJ+gp.Hn/.NP$n JfJgJgJgp./ / Nh`jJgJg|JfvJfpA-Hp. .Ы//NPp././NP nRJfHn/*N PJf%k5k5k k` `L.N.Np`NVJfpN^Nup.N -@. p/NX-HBBJgB .c .R`* .-@-nBS.p/NX.N N p.N -@Jm.p/NXJn JlJg .Ю.N .Ю`(NVN^NupN@NupN@dNpNu o"og fJfB` BB!Nu o"o / o"`H@Wg H@Q`H@BQH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^Nup N@"/g A NuNVH$| 9zl "|$q.N$g&./.p/NPp./</NP.N./ p/NPp./<p/NPLN^Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0?A???@.B9.B9powpow: DOMAIN error DV(@0bJ P?AՀKg@s&~ w??栞f;?+\a ?0?{&loglog10: DOMAIN error : SING error ?D*?K*?>3c U?D \(?(Q?>Ff;?.B9.B9@.B9@.B9??Ge+?0+\a ?expC0C0C0?C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@Èg "mp0` R"HHSnJfJo. F  z N"nDp . .N? -@`pD nD0 nDCAbJ.n .2".6.8/94N1XJ@fp+`p-rD"nD |A0(gpE`perD"nD`@NVp././././. /.N: N^NuNVp././././. /.N N^NuNVH<$n&| ."KI . fp.N?/N7 X .". ./9N1XJ@lp`p"n"g .". N4-@-A B9B .". ./9N1XJ@g`*|R .". ./9N1XJ@m,`: .". ./N2X-@-A -ђ` .". ./9N1XJ@m\-y-y` -n-n 9"9 ./.N3X-@-A. /.N1XJ@o` .". .$/9 N1XJ@ln`8 .". ./N3X-@-A -` M o2 .". ./N3X.,/9(N1XJ@l`Jgҹeйc(| .". .4/90N1XJ@ge0`T .". N5$ 0 N7./ .". N0"X./ 98"9Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA8&.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng @@@@@????@@@Lc˰@&ffffff@,@Lc˰@&ffffff@,@Lc˰@Lc˰@Lc˰@Lc˰!! %s: scaling factors xs = 1. ys = 1. !! %s: output directed to stdout !! %s: point out of bounds %f %f @(#)putx0y0.c 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)gslswing.c 3.1 ?@Lc˰@Lc˰?@Lc˰@Lc˰@(#)region.c 3.1 @(#)util.h 3.1 @(#)debug.h 3.1 @(#)gsl.h 3.1 4gL@(#)gplinit.c 3.1 @(#)gpl.h 3.1 @(#)util.h 3.1 @(#)gplarcs.c 3.2 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)gplcomment.c 3.1 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)gpllines.c 3.1 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)gpltext.c 3.2 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)gplalpha.c 3.2 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)getgedf.c 3.1 @(#)gpl.h 3.1 @(#)util.h 3.1 @(#)debug.h 3.1 N^NuNVH. /</.NP-@rg^Jop`V nSm n"hRp` .Nnrf.p/N6RX.Nv`p`LN^NuNVH nSm n"hRp` .Nn-@rf./. /.NP`./.N6RX n B` LN^NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .Nn@ \g.HH`X nSm n"hR I` .Nn nSm n"hRp` .Nn@HHrg@ . g$ n "nCd n R ` n B n ``& |` LN^NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVHA -H.//.N6P$9*g pLN^Nu `NVHA-H.//. N6P$ n( g pLN^Nu `NVA -H././<NTPN^NuNVA-H./. /.NTPN^NuNVH$nA-H|-J J-H.N3B-@|./. HnNTPLN^NuNV`8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA8&.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N=8Jf`pg pLN^Nu* HH"|f(q. .N7$&j &n,.Nf* HHrD€g.N< .`(׮`Np%N@dND2pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` 3 ?@p@v@(#)putgedf.c 3.1 @(#)gpl.h 3.1 @(#)debug.h 3.1 @(#)util.h 3.1 ?@v@p@PO3???ڂy4??>Ff;;Ff;@0'U ?.@p*@T@ѠjA@Iv?@Mz~v@|k8@ "^J@>@@Iv?!TD-?!TD-?!TD-!TD-@ !TD-@ !TD-atan2atan2: DOMAIN error ???!TD-CI!TD-??_0mȃA?@ "K@ !TD-??>Ff;$d*>?UUUUUU???cossin: TLOSS error ??sqrtsqrt: DOMAIN error C9!TD-??_0mȃA?"ҮK?!TD-??>Ff;;Ff;<_0mȂ?.#?l;޿M>tvx4odH $n&n Bp$g |0(gFSm jRp`.Nn-@"|1f./.N6RXrg`p%f p$p%f>Sm jRp`.Nn-@谂gn./.N6RXrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |0(gpl-@  $pcgHp[gBSm jRp`.Nn-@"|1f./.N6RXrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`vSm jRp`pL N^Nu.Nn$  +g -f$RS` jRp`.Nn$Sm |0(fpfj0(g` |0(gp0` |0(gp7`pW"-A lJgJf. N+Ю-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.NH@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN9./. /.N

???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H /bin/shsh-c+/+R+R4 n$ |0(f p+gp-f Sm`JgJgJgpBHnNX-@-AJgN(-@-A lf nrӐ P h !n`` .".N"nX"Q"i"`@Jg g .D-@ lg< hf2 nrӐ P h0./N6RXrf nB .` nrӐ P h `NVH<$.&. (.$n&nJg nrӐ P h`(H-Lpcf fxSm kRp`.Nn*pg0psf |0Xfp[fJ2XfJg RSnpgJo./N6RXrf nBf pL`L r0N*-@-A 9J"9N./.N'RX./.N#X-@-A`RHH$ |0(g$ ."..F/9BN%HXJ@l`|p.f`l ."..V/9RN%HXJ@lJ r0N*-@-A 9Z"9^./.N'RX./.NHH"|f q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/NCPrf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"|f 1$Jlp` &* HH"|f 1l.NJo,./ * HH/NCPg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"|f 1$Jlp` $* HH"|f 1l.Np`vNVH $n* HH$pl "|B q%HA`N.N?%Hg& * HH"|fA"jC `, "|~A%HA&H* HH"|f#%j.NBJg* f L N^NuNVH$n* HH"|f 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" 2630-*'$!  #X-@-ASHH$ |0(f|vpEgpefXHH$p+g$p-f|` Ѐ"Ё"0Ё&`SHH$ |0(fJl D& Ѓ(|Jl| D(-yb-yf-yj-yn.g ."../.N'RX-@-AJg ."../N'RX-@-A`Jl ."../.N%` ."../.N'RX-@-A. N+././.N^P-@-AJlN(-@-A .".LN^Nu B"C$BBHBB B6lB`l Bg BGo`R/v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.N1* f* g * HHrD€g&&|`+ g.N.p(e%j* gp`* HH"|, 1./** HH/N6DP$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". ./9N%HXJ@f .". LN^NuHn/. /.N Jot Ю o>p.N2/N*X`( .". ./9N'RX-@-A ppbpN*./ .". N'R`p Ю l: 9"9`J .". .4 bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <@ @# <@ @### .^"$$yB&`(ffR& &b~*f,`#$&R+g Ae Ad&Jp @$Hc` A#c#" p @$A L N^Nu " #&p.NBB&H 9&Ae 9&.NBB&H rf` y yAgp"y @" 9&AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"%" J L N^Nu 9ѯpN@dND2 9 @#NupN@dND2#pNuNVHn/<T/.NC: JlpN^Nup`pN@dND2NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dND2NupN@dND2pNup6N@dND2NupN@dND2NuNVP5B! p.text! .data"0@.bss p#Q.A /H"HJfmY/H#N<.N!0pN@NVH./<rNnXp.N!0LN^NuNVHA-H.//. NP$ n( g pLN^Nu `NVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/NX`< + f./ /+NP'H`./.p// N Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |M0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |M0(fBHH hg lfRR-|PHAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xf/9N'RX-@-A pⴀep"DN*./ .". N%X`NVH$n . fp.N2/N*XB .". ./9N%HXJ@f .". LN^Nu .". ./9N%HXJ@o* .". `.R ."../9N'RX` .". N(-@-A ."../9N%HXJ@l ."../9N%HXJ@l S ."../N#X-@-A` .". ./9N%HXJ@o .".` .".N(` o/ "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N.X`< + f./ /+N+8P'H`./.p// N)^ Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-| HAC-HDpH<$.$n Jopo p#`,*|DL g g*J./ND$X @*Hf | L<N^Nu "|&G(S&DLf L` M M`NVH$.o,pn& S"|*$q g f . /NXLN^Nup0N@dND2Nu#p @NuN:&pN@NrNVH./.NCLN^JogPO//<ND Nwp&N@dND2Nu@(#)subset.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 **********r!! %s: cannot open %s !! %s: %c? !! %s: %c? -r!! %s: cannot open %s %s %s subset%-12g%c%-12g%c%-12g%c!! %s: %d out of range !! %s: %d out of range %-12g%c@(#)filbuf.c 3.1 @(#)errpr.h 3.1 !! %s: too many data elements, first %d used @(#)getdoub.c 3.1 %F@(#)getint.c 3.1 %d@(#)getlabel.c 3.1 @(#)getline.c 3.2 C@@$C@@$?@5 p` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|QH :g* .:D-@:`Jg -|SH`Jg-|UHpXf |W` |h-H&IX*L`Dp:-@ .:-@:.NЀЮ"n&1. .:Nx-@:J:f Ю-@Jgʹg  Xg4 og xf-|yH` lp-@`-||H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N (HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6.???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H & .b6L/9HNXJ@fp-@.-n"Jf4.N-@"l -@"`S" "m ."S 40g .m ..o ."S-@`B .".-@`,pѮ n hMIMK`6pѮ n (h*LJl.N` @M`JgSlSJlBJlB nHJfp` nHJ(fp`p" -AҮҮҀAC DҀ-A" .䰁n ."ѮJfd` kRr S .䰮"mDSl.p /NX` kR"nHRH`. nHRHp/NX nHJg$Sm` kRr0`.p0/NXSmSm`Jol f$Sm kR`f.p/NX`< + f./ /+NP'H`./.p// N SmVSm kRr0`.p0/NX` kR"nDRD`. nDRDp/NX nDJg$Sm` kRr `.p /NXS .䰮"mSm`Jg@p . .N0rD"nDp . .Nx-@`pD nD0 nDCAbJ.n .2".6.D/9@NXJ@fp+`p-rD"nD |M0(gpE`perD"nD`@NVp././././. /.N: N^NuNVp././././. /.N N^NuNVH<5 p0` R"HHSlIM`HJlp`Jfp-@pѮ n -h2-h6Hn*Hn. l .`p//.6/.2N~(H .2".6./9N%HXJ@fp-@.-n"Jf4.N3B-@"l -@"`S" "m ."S 40g .m ..o ."S-@`B .".-@`,pѮ n hMIMK`6pѮ n (h*LJl.N3B` @M`JgSlSJlBJlB nHJfp` nHJ(fp`p" -AҮҮҀAC DҀ-A" .䰁n ."ѮJfd` kRr S .䰮"mDSl.p /N.X` kR"nHRH`. nHRHp/N.X nHJg$Sm` kRr0`.p0/N.XSmSm`Jol f$Sm kR`f.p/N.X`< + f./ /+N+8P'H`./.p// N)^ SmVSm kRr0`.p0/N.X` kR"nDRD`. nDRDp/N.X nDJg$Sm` kRr `.p /N.XS .䰮"mSm`Jg@p . .N20rD"nDp . .N2-@`pD nD0 nDCAbJ.n .2".6./9N%HXJ@fp+`p-rD"nDP5D >.text .data >ؠ@.bss > >#Q.A /H"HJfmY/H#N<.NנpN@NVH-| n #* .S-@ n A-HJo n P-H -fpѮ nJg nJgr nRHH`& <#P#L <#X#Tp# `,.N(-@ nHH"|1g R`HnHn/.N .".N#L .".N#P .".N33#T .".N33#Xp# `|B`r`nB n(HH./9*/< /<NN `8 g ,g eg rg ug``SSX`NN\RJ g> |$./(/(/(/( /(/(/(/<DN `v.N./.N˦X-Hf../9*/</<NN p.Nנ <#P#L <#X#T np-@B`p-@ .SroJ.2pѮ n /NɺXJg Jf-|`` n P -gJ.$n&| ."KI . fp.Nr/NX .". ./9NXJ@lp`p"n"g .". N-@-A B9B .". ./9NXJ@g`*|R .". ./9NXJ@m,`: .". ./N(X-@-A -ђ` .". ./9NXJ@m\-y -y` -n-n 9"9./.NX-@-A. /.NXJ@o` .". .0/9,NXJ@ln`8 .". ./NX-@-A -` M o2 .". ./NX.8/94NXJ@l`Jgҹeйc(| .". .@/9Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EH". N#X-@-A R ."../9N%HXJ@o^ ."../9N%X-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA+.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH-y-y . N-@-A .N-@-A ."../.N X-@-A ."../.N X-@-A./.NäXJ@ol ."../.NŮX./.NX.*/9&N X."/9NXN-@ .Ѯ`h ."../.NŮX./.NX.:/96N X.2/9.NXN-@ .ѮHnHnNHPHnHnN:P n!n n!n n n!np`LN^NuNVH n l4 <"n"n ё  o n  n  n o4 n"n "  l n  n `LN^NuNVHHn/.N"PrgP g@.L n/( n/N[PJgHnN "X. HnN "X`LN^NuNVH n `V n (U-@`f n (N.H/9DN XN"n#@p-@`,B`$ b@0; NJ n-h mR 9LN-@-A n N./.NX.H/9DN X-@-A 9$N./.NX.4/90NX-@-A./.NXN6 vAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.NJf`pg pLN^Nu* HH"|r(q. .N$&j &n,.Nrf Ю S. N". `d ` &././ NPתJlp` (* HH"|r 1l.N&f* HHrD€g.N .`(׮`Np%N@dN!$pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^Nu"nX" 9PN-@-A n N./.NX.H/9DN X-@-A 9(N./.NX.Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA+.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N0Jf`pg pLN^Nu* HH"|,(q. .N+$&j &n,.N0"rf Ю S. N2". `d ` &././ N+8PתJlp` (* HH"|, 1l.N2Nf* HHrD€g.N0" .`(׮`Np%N@dN7pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o (W-@JoSm yR"nR`. nRp/N0XSm yR"nR`. nRp/N0XS`jp`LN^NuNV\H 9,$N. L/9 HN X-@-A n (UJj DD`-@| n-h n-hx.|/.NXJg`Hnh/.|/.N .x`f-y P-y T`t-y X-y \``-y `-y d`L-y h-y l`8-y p-y t`$ b@0; NJ./.NX-@-A .".. |/9 xNäXJ@l./.NX-@`-Ad .".N.d/.`N X-@-A .hN./ .".NŮX-@`-Ad .lN.d/.`NX-@-A .pN./ .".NŮX-@`-Ad .tN.d/.`NX-@-A`./.NX./ .".N X-@-A .pN./ .".NŮX-@`-Ad .lN.d/.`NX-@-A .hN./ .".NŮX-@`-Ad .tN.d/.`NX-@-A./.NX-@-A./././.N -@-A .".. /9 NäXJ@l&Np`vNVH $n* HH$pl "|N q%HA`N.N,%Hg& * HH"|rA"jC `, "|A%HA&H* HH"|r#%j.NJg* f L N^NuNVH$n* HH"|r 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <"@ @# <@ @#"#"*#& .^"$$y&B2`(*ffR2 2b~*f,`#&$&R+g Ae Ad&Jp @$Hc` A#&c#. p& @$A L N^Nu " #2p.N&H 92Ae 92.N&H rf` y* y*Agp"y* @" 92AA&#*"<A"A `NVH $n&JY#&p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN-|./. /.N<P N^NuNVH$n.N-./. /.NP LN^NuNVH$n gJg nJg n (+fp`p$ n HH ag" rg. wf^Jgp`p@`Jgp`p@@` Jgp`p&.//.N6P(mB @ Jg <` LN^Nu n rfp`p@ %H%H J`NVH$|`(e LN^Nu* HH@f J`NVH$|` .N(eLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N6Jl tp#* g.N4BB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"|, q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p7  ."../.NX-@-A`6 ."../.NX./ .".NX-@-A ."../.NäXJ@lbHn/././././.|/.N-@.x/.HnN2P ."../.NX-@-A`LN^NuNVH-y -y BnHn/. /.Nh -@B g gHn/. /.N2 -@ g0.Hgp`p=@Jng .g.p/p/ ."nA ("( N/ ."nA "(N/ ."nA ("( N/ ."nA "(N/NX-n`LN^NuNVH p-@-@ . lp ."n 1N-@-A ."n 1N-@-A . ".Rfj ."n 1"nf ."n 1"ng0 n N-@-A n (N-@-A```> .R"n 1N-@-A .R"n 1N-@-A ."../.NäXJ@f$ ."../.NäXJ@f`< ."../.NäXJ@fd ."n A !n ."../.NŮX./.NX-@-A ."n A!n!n .$ .".` nX"nX .SJfd$ Ae A"%. J L N^Nu 9ѯpN@dN!$ 9 @#NupN@dN!$#pNuNVHn/<T/.N : JlpN^Nup`pN@dN!$NupN@dN!$pNup6N@dN!$NuNVH<$.$n Jopo p#`,*|!> g g*J./N!X @*Hf | L<N^Nu "|2G(S&!>f L` M M`NVH$.o,pn& S"|6$q g f . /NXLN^Nup0N@dN!$Nu#p @NuNpN@NrNVH./.N LN^JogPO//<N!z Nwp&N@dN!$Nu@(#)tekset.c 3.1  ;-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H .Hn* HH/N6Prf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"|, 1$Jlp` &* HH"|, 1l.NJo,./ * HH/N6Pg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"|, 1$Jlp` $* HH"|, 1l.Np`vNVH $n* HH$pl "| q%HA`N.N3T%Hg& * HH"|,A"jC `, "|DA%HA&H* HH"|,#%j.N6Jg* f L N^NuNVH$n* HH"|, 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNV./.NäXJ@l .".` .". ""n ./ )") NäXJ@lh .& ."../.NäXJ@o .".` .". ""n ./ )") NäXJ@o R`:./. ."n A//./. /.NJgR` ."../.NX-@-A ."../.NX./.N X-@-A ."../.NŮX./ .".NX-@-A ."../.NäXJ@g ."../.NX-@-A ."../.NX./.N X-@-A ."n A !n ."n A./ .".NŮX./ .".NX-@-A ."n A!n!n .$ ."../.NäXJ@l .".` .". ""n ./ ")NäXJ@l@ .& ."../.NäXJ@o .".` .". ""n ./ ")NäXJ@o .$ ."../.NäXJ@l .".` .". ""n ./ )") NäXJ@l` .& ."../.NäXJ@o .".` .". ""n ./ )") NäXJ@n ."../.NäXJ@fR`:./. ."n 8 . 6n >H Jf8 <@ @# <@ @### .^"$$yB`(ffR b~*f,`#$&R+g Ae Ad&Jp @$Hc` A#c# p @$A L N^Nu " #p.N5&H 9Ae 9.N5&H rf` y yAgp"y䀑 @" 9AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 9ѯpN@dN7 9 @#NupN@dN7#pNuNVHn/<T/.N6 JlpN^Nup`pN@dN7NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN7NupN@dN7pNup6N@dN7NupN@dN7NuNVH<$.$n Jopo p#`,*|7 g g*J./N7X @*Hf | L<N^Nu "|A//./. /.NJgR` ."../.NäXJ@fd./././././. /.NJg8 ."n A !n ."n A!n!n RR` .`L N^NuNVH ."n 1N"n./NX-@-A./.NX. /9 NäXJ@lpJf`pJgz ."n 1N"n. /)NX-@-A./.NX. /9 NäXJ@lpJf`pJg -n` .R"n 1N"n./NX-@-A./.NX. /9 NäXJ@lpJf`pJg .R"n 1N"n. /)NX-@-A./.NX. /9 NäXJ@lpJf`pJg .R-@`p` n "(. /9 NäXJ@l@ n "(. /9 NX-@-A./.NX "`< n "(. /9 NX-@-A./.NX ""n"#A 9 "9 "n./ )") NäXJ@lF 9 "9 "n./ )") NX-@-A./.NX "`B 9 "9 "n./ )") NX-@-A./.NX ""n#@P57o0B.texto0 .dataBo@.bssBB#Q.A /H"HJfmY/H#N<.NnpN@NVH n #" .S-@ n A-HJo n P-H -fpѮ nJg nJg nRHH`Xp@#`B`B nJgh n ,g\ n \g nHH`pѮ nHH Ol .R` ."|R` ."|B1`B nJgh n ,g\ n \g nHH`pѮ nHH Ol .R` ."|R` ."|B1``| n(HH./9"/</< NH* `L g ,g bg cg lg ug vg|``BSSX`Jg-| nJg: n am& n zn nHH.Nj,"nR`-| nJg: n am& n zn nHH.Nj,"nR` np-@B`p-@ .Sro .pѮ n /Nb6XJg Jf-|8 G(S&7f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN7Nu#p @NuN-pN@NrNVH./.N7tLN^JogPO//<N8 Nwp&N@dN7Nu@(#)round.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 %-12.0f%c!! %s: %c? -r!! %s: cannot open %s %s %s round@(#)getdoub.c 3.1 %F@(#)getlabel.c 3.1 @(#)getline.c 3.2 C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H#A .-@-@Jg .S` . S-@ ."n$1 ."n 1fD ."n&1 ."n 1f"Jg .S` . S-@` .". Sg .R`p-@ ."n$1 ."n 1fH ."n&1 ."n 1f& .". Sg .R`p-@`./.NX-@-A ."n$1 ."n 1N-@-A ."n$1 ."n 1N-@-A ."../.NŮX-@-A ."../.NŮX./.NX-@-A./.NX-@-A ."n$1 ."n 1N-@-A ."n$1 ."n 1N-@-A ."../.NŮX-@-A ."../.NŮX./.NX-@-A./.NX-@-A ."../.N X-@-A ."../.N X-@-A./././.Nd -@-A ."../.N X-@-A ."../.N X-@-A./././.Nd -@-A ."../.NäXJ@l .".` .". "./ .".NäXJ@lX ."../.NäXJ@o .".` .". ". `` n P -gJ. n /NcX-Hf* n ./9"/</< NH* `l` R`` nSm n"hRp` .NHl-@rf,./.NmVX./</.NP`"./.NmVX./.N&X.Nd`p.NnLN^NuNVH. /<NGX nSm n"hRp` .NHl-@rg>S m y R .`. p./NeX`LN^NuNVHS m< nSm n"hRp` .NHl"y R `D. nSm n"hRp`/.NHlX2/NeXS m< nSm n"hRp` .NHl"y R `D. nSm n"hRp`/.NHlX2/NeX#\#`#d#h#|###.XNR.B/< /.N P-@ n Jg 9FNa./9NZX-@-A 9JNa-@-A 9BNa./.NZX./9N\X-@-A.p/ .Na// 9"9N^*PN_p/p//. /./././.N:  TT(\9 / .".NäXJ@op`p`L N^NuNVHp-@-@ .T-@ . l ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@g -n` R`vJlB .l ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@g -n` R`v .S-@Jm ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@g -n` S`zJl . S-@ .".Ro ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@g -n` S`r ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@l| ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@op`p`| ."n 1N./ .".NŮX./ .". NX-@-A ."n 1N./.NäXJ@lp` nJg 9NNa./9NZX-@-A 9JNa-@-A 9BNa./.NZX./9N\X-@-A.p/ .Na// 9"9N^*PN_p/p//././././.N: LN^NuNVHHnHnN(P.(/.$/. /././././. /.N LN^NuNVHp-@-n-n -n-n . Na./ 9P"9TN^*X-@-A././.HnHnN,Jg.N.Na.d/9`NZX.\/9XN\X./.N^*X./ .". NZX-@-A.N.Na.t/9pNZX.l/9hN\X./.N^*X./ .".NZX-@-A-n n  g nJg R` n  f nRB . Na./ 9x"9|N^*X./ .".NZX-@-AJgh . Na./ 9"9N^*X./ .".NZX-@-A.HnHn/././. /.N.`B.(/.$/. /./././././.N" -n` ./././.N%4 LN^NuNVHBp-@Hn/.N3Prg\Jg> P5609 t.text9 .data:@.bss t#Q.A /H"HJfmY/H#N<.N9pN@NVH n #V .S-@ n A-HJo$ n P-H -fpѮ nJg nJg nRHH`.N~# nHH"|1g R``.N## n .gL n -g@ nHH"|1f& n eg n +g n Ef R``$.N~# nHH"|1g R``.N## n .gL n -g@ nHH"|1f& n eg n +g n Ef R``v`r n(HH./9V/</<BNB `B g ,g cgT ig ng sg``SSX` np-@B`p-@Sob.pѮ n /N-*XJg Jf-|&`` n P -gJ. n /N. X-Hf* n ./9V/</<BNB `t` R`hJop-@  #&),/258;>ADGJMPSV9 g2 n"n"!A n n"n")!A n!AB .` f-np-@ nl n Na-@-A .SCXA !n n (Na-@-A .CXA !nTpѮ`HnHnXN P .Na-@-A .ЮNa-@ -A$ .ЮNa-@(-A, .Na-@0-A4 .Na-@8-A< .Na-@@-AD .Na-@H-AL .Na-@P-ATBB n .CXA./9 "(N\ XJ@oD .RCXA. /9 "(N\ XJ@o B`p-@`B .RCXA./9 "(N\ XJ@o p-@`p-@ .Ю-@T`0J g p-@`N .Jj DD`"|1-@.gp-@` .-@p-@B n.glR .CA-P-h .CXA !nR .RCA-P-h .CXA !n .-@T`pB .n .CXA "(N_p.N-"n"o( .CXA "(N_p.N-` n "n" .RCXA "(N_p.N-"n")o* .RCXA  .n .SN,~./ 9"9N)X./9N%X-@-A. .N4Jgp `p ./././<N R`r`pP.Hn/.NPJg"Hn/</<N `p-@Hn/.N,Prg| 9"9./.N)X./9N%X-@-A. .N4Jgp `p ./././<N R`p. .N4rg4S4m y8R8r `.4p /N0X.N/`p.N9LN^NuNVH. /</.NP-@rg^Jop`V nSm n"hRp` .N:rf.p/N8X.NB`p`LN^NuNVH nSm n"hRp` .N:-@rf./. /.NvP`./.N8X n B` LN^NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .N:@ \g.HH`X nSm n"hR I` .N: nSm n"hRp` .N:@HHrg@ . g$ n "nCd n R ` np`LN^NuNVH . S"n 1"n"f . S"n 1"n")g6p-@ n N-@-A n (N-@-A`BB  o n "nf p-@`L n "nN-@-A n ("n N./.N X-@-AJg n N-@-A`P n N./ .".NŮX-@-A n (N./.NX-@-A nA-H . U-@Jm n N-@-A n (N-@-AJf.Jg-n-n-n-n``n`. n (N-@-A n ( N-@-A ."../.NäXJ@f-y -y `R ."../.NX-@-A ."../.NX./.N X-@-AJg> ."../.NäXJ@f ."../.NäXJ@gJfd ."../.NäXJ@gF ."../.NäXJ@f( ."../.NŮX./ .".NX./ .".NäXJ@f n "nЩ-@ n ("nЩ -@ ."../.NXN-@ ."../.NXN-@ .l .` .$ .o .`"(N_p.N-` n ("n#@ .CXA "(N_p.N-"n")l( .CXA "(N_p.N-` n ("n#@ .RCXA "(N_p.N-"n") l* .RCXA "(N_p.N-` n ( "n#@ T`T`.-n .U-@Jo n "no n ` n "n" n ("no n (` n ("n#@ n ("nl n ` n ("n#@ n ( "nl n (` n ( "n#@ UpѮ`:`R.HnNtX .l .` .-@`$ b@0; NJ J gHn/. N8P` .`LN^NuNVH n (Na./ 9"9N^*X-@-A./. n/(HnHnN, n (Na./ 9"9"N^*X-@-A./. n/(HnHnN, n h Na-@-A n h (Na-@-A ."../.NZX-@-A ."../.NZX-@-A ."..*/9&N\X./ .".NZX-@-A ."..2/9.N\X./ .".NZX-@-A n.$N.Na:  B n ``& |` LN^NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVHA -H.4//.NP$9@g pLN^Nu `NVHA-H.//. NP$ n( g pLN^Nu `NVA -H././<&N PN^NuNVA-H./. /.N PN^NuNVH$nA-H|-J J-H.N5-@|./. HnN PLN^NuNVH $n&n Bp$g |0(gFSm jRp`.N:-@"|1f./.N8Xrg`p%f p$p%f>Sm jRp`.N:-@谂gn./.N8Xrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |0(gpl-@  $pcgHp[gBSm jRp`.N:-@"|1f./.N8Xrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg . .l@ .o .` .& .l .` .op`$SP`4BPS `.p`L N^NuNVH-y -y Bp-@ . l~ ."nA./. "(NäXJ@mL ."nA"n./ "(NäXJ@l -n ."nA-P-hR`z n !n .`LN^NuNVH n"n"!A n n"n")!A n!APS J o n "no n"n!Q` n "nl n"n n ("n o n"n!i `$ n ("nl n"n!iPS `jLN^NuNVH n g.N ` 9,$N. |/9 xN X-@-A n-h nX N# F# J nX N# N# R nX N# V# Z nX N# ^# b nX N# f# j n N# n# r 9 V"9 Z. J/9 FNX# # 9 ^"9 b. R/9 NNX# # 9 f"9 j. J/9 FNX# # 9 n"9 r. R/9 NNX# # 9 "9 . /9 NŮX-@-A 9./.N^*X./ .".NZX-@-A n.$N.Na./.N^*X./ .".NZX-@-A././././. NL././././. N. ."..:/96N^*X./ .".NZX-@-A ."..B/9>N^*X./ .".NZX-@-A ."..J/9FN^*X./ .".NZX-@-A ."..R/9NN^*X./ .".NZX-@-A././././. N0././././. NLN^NuNVH . "..j/9fN\ XJ@o& . "..b/9^NZX "`" . "..Z/9VNZX "-@ -A ."../9~N\ XJ@o& ."..z/9vNZX "`" ."..r/9nNZX "-@-A . ".N_p.N-"n"o . ".N_p.N-` n "n" .".N_p.N-"n")o .".N_p.N-` n ("n#@ . ".N_p.N-"n")l . ".N_p.N-` n ("n#@ .".N_p.N-"n") l .".N_p.N-` n ( "n#@ LN^NuNV;852/,)&#  -@ n "(-@-A n-h-h n-hx-h| n-hp-ht n-h h-h$l n-h(`-h,d .x".|./.NZX-@-A .p".t./.NZX-@-A .h".l./.NZX-@-A .`".d./.NZX-@-A ."../.N^*X-@H-AL ."../.N^*X.L/.HNZX-@-A ."../.N^*X-@H-AL ."../.N^*X.L/.HNZX-@-A ."../9N\ XJ@fp-@ ."..|/.xNZX./9N\X-@-A ."..t/.pNZX./9N\X-@-A ."../.NZX-@X-A\ ."../.NZX-@P-AT .P".T.T/.PN^*X-@H-AL .X".\.\/.XN^*X.L/.HNZX-@@-AD.D/.@NDX-@-A` ."../.N^*X-@H-AL ."../.N^*X.L/.HNZX./ 9"9N^*X-@-A ."../.N^*X-@H-AL ."../.N^*X.L/.HNZX./.N\X-@-A ."../.N^*X-@H-AL ."../.N^*X.L/.HNZX./.N\X-@-A ."../.N^*p// NPp&p]gp-fZ 8`FJf L f&-n-n-n-n-n-n./.NX#+*#+../.NX./ .".N X-@-A./.NX#+:#+>.+>/9+:NX#+:#+>./.NX./ 9 "9 N X-@-A./.NXN#+2#+6 9 v"9 z.+./9+*NŮX-@-A 9+2"9+6. /9 ~NX./.NX-@-A.+>/9+:/./.N -@-A .".. /9 NäXJ@l. 9+2"9+6./.NX#+2#+6`B 9+:"9+>./.NX./ 9+2"9+6NX#+2#+6N TJg 9+"9+.+/9+NŮX-@-A 9+ "9+.+/9+ NŮX./.NX-@-A./.NX-@-A 9+ "9+./.N X-@-A 9+"9+./.N X-@-A./././.Nd -@-A 9+""9+&.+&/9+"NŮX-@-A 9+"9+.+/9+NŮX.; X-@H-AL ."../.N^*X.L/.HNZX-@@-AD.D/.@NDX-@-A ."../.NZX-@-A ."../.NZX-@-AJf .h".l./.N^*X-@H-AL .`".d.t/.pNZX./ .".N^*X-@@-AD .x".|./.N^*X.L/.HNZX.D/.@NZX-@-A ."../9N\ XJ@lB .".N_p"n " .".N_p"n #@ .".N_p"n #@ n !n n !np`LN^NuNVH#R 90"94"yR./ )$")(N\ XJ@g. 9("9,"yR./ ),")0N\ XJ@fD."/<`/< NH*P 98"9<"yR#@,#A0"yR#@$#A( yRJf(."/</< NH*P yR  yR.N2 yR-h -h yR-h-h./././. yR/N.p`LN^NuNVH#R`LN^NuNVH#VV./././. /.Np.p/p/ 9VV//<V yR/N2LN^NuNVH#$# #$#BZ#VVp./././. /.N`LN^NuNVH. f* g * HHrD€g&&|&`+ g.N0<>e%j* gp`* HH"|B 1./** HH/N8P$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". ./9N'XJ@f .". LN^NuHn/. /.Np Jot Ю o>p.N4f/N,nX`( .". ./9N)X-@-A ppbpN,~./ .". N)`p Ю l: 9"9`J .". ./9N)X-@-A pⴀep"DN,~./ .". N'zX`NVH$n . fp.N4f/N,nXB .". ./9N'XJ@f .". LN^Nu .". ./9N'XJ@o* .". `.R ."../9N)X` .". N*R-@-A ."../9N'XJ@l ."../9N'XJ@l S ."../N%X-@-A` .". ./9N'XJ@o .".` .".N*R` o/ "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR/.NX-@-A./.NX-@-A 9+"9+./.N X-@-A 9+""9+&./.N X-@-A./././.Nd -@-A .".. /9 NäXJ@l& .".. /9 NX-@-A .".. /9 NäXJ@l& .".. /9 NX-@-AJ Bf ."../.NX. /9 NäXJ@m" ."../.NX "`2 ."../.NX. /9 NX "-@-A ."../.NX. /9 NäXJ@m" ."../.NX "`2 ."../.NX. /9 NX "./.NäXJ@npJf`VpJgN ."../.NX. /9 NäXJ@m" ."../.NX "`2 ."../.NX. /9 NX "-@-A ."../.NX. ,/9 (NäXJ@m" ."../.NX "`2 ."../.NX. $/9 NX "./.NäXJ@npJf ` pJf.+"/<+N fX`R ."../.NX. ./9/9$/9/././. /.N*LN^NuNVH 9VV-@rl`V fJZg`<./9/9$/./<V yR/N2RZ`LN^NuNVH#$# #$# B^#VVp./././. /.N`LN^NuNVH. /././. /.NZ 9VV m8N>./9/9$/9/././. /.N*LN^NuNVH 9VV-@rl`V fJ^g`<./9/9$/./<V yR/N24R^`LN^NuNVH ."."yR.(/)$N^*X-@-A#VV .". ./.NZX-@-Ap././././.N .". ./.NZX-@-Ap././././.N .". ./.NZX-@-Ap././././.N.(/.$/. p//<V yR/N24`LN^NuNVHp-@-n-n -n-nJgh-n-n -n-n-n n  g nJg R`; `N.p/N0X`< + f./ /+N-P'H`./.p// N+* Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-| HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|!H :g* .:D-@:`Jg -|#H`Jg-|%HpXf |'` |8-H&IX*L`Dp:-@ .:-@:.N4ЀЮ"n&1. .:N4l-@:J:f Ю-@Jgʹg  Xg4 og xf-|IH` lp-@`-|LH`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2 ."../.NX. 4/9 0NX "-@-A ."../.NX. L/9 HNäXJ@m" ."../.NX "`2 ."../.NX. D/9 @NX "./.NäXJ@npJf` pJg.+/<+ N X`` n.p/p/ 9+""9+&/9 /9 ~NPN/ 9+"9+/9 z/9 vNPN/ 9+"9+/9 /9 ~NPN/ 9+ "9+/9 z/9 vNPN/NX 9+2"9+6.+>/9+:NX#+2#+6`LN^NuNVHB Bp# > 9 "9 . /9 NŮX-@-A 9 "9 . /9 NŮX./.NX-@-A 9 "9 . /9 NŮX-@-A 9 "9 . /9 NŮX./.NX-@-A .".. T/9 PNäXJ@fJp# B 9 F"9 J. Z/9 VNX. \/9 XN X# v# z 9 N"9 R. b/9 ^NX. d/9 `N X# ~# 9 F"9 J. z/9 vNX-@-A 9 N"9 R. /9 ~NX-@-A ."../.NŮX-@-A ."../.NŮX n  f nRB . Na./ 9@"9DN^*X./ .".NZX-@-AJgh . Na./ 9H"9LN^*X./ .".NZX-@-A.HnHn/././. /.N.`B#VVp././././.N.(/.$/. /././<V yR/N3-n`p././././.NLN^NuNVH#VVp./././. /.N`./<V yR/N3vP`LN^NuNVH. /. yR/N2P`LN^NuNVHJgN yR-h<-h@ yR-h4-h8.HnHn/./././.N. .". .l/9hN\ XJ@mh .". .d/9`N\ XJ@nF ."..\/9XN\ XJ@m$ ."..T/9PN\ XJ@o././. /./9"/</< NH* .". .t/9pN\ XJ@l-yx-y| .". ./9N\ XJ@o-y-y ."../9N\ XJ@l-y-y ."../9N\ XJ@o-y-y` .". ./9N\ XJ@m& .". ./9NZX "`2N!J(HJ*g -|OH`Jg -|QH`Jg-|SHKMJgHH`p0JfJg.-n`SJoJfIM .2".6. /9N'XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. `LN^NuNVH 9+*"9+..+./9+*NŮX. |/9 xNX-@-A 9 "9 .+6/9+2NŮX.+./9+*NŮX-@-A 9 "9 . /9 NŮX-@-A 9+2"9+6.+6/9+2NŮX./.NX-@-A 9  !Jg$Sm` kRr0`.p0/N0XSmSm`Jol f$Sm kR`f.p/N0X`< + f./ /+N-P'H`./.p// N+* SmVSm kRr0`.p0/N0X` kR"nDRD`. nDRDp/N0X nDJg$Sm` kRr `.p /N0XS .䰮"mSm`Jg@p . .N40rD"nDp . .N4l-@`pD nD0 nDCAbJ.n .2".6./9N'XJ@fp+`p-rD"nD |0(gpE`perD"nD`@NVp././././. /.N: N^NuNVp././././. /.N N^NuNVH<$n&| ."KI . fp.N4f/N,nX .". .x/9tN'XJ@lp`p"n"g .". N*R-@-A B9B .". ./9|N'XJ@g`*|R .". ./9N'XJ@m,`: .". ./N'zX-@-A -ђ` .". ./9N'XJ@m\-y-y` -n-n 9"9./.N)X-@-A. /.N'XJ@o` .". ./9N'XJ@ln`8 .". . "9 ./.NŮX./.NŮX-@-A ."../.NŮX./.NX-@-A .".. /9 NäXJ@lp`|./.NX-@-A 9 "9 ./.NŮX-@-A .".N./.NX./.N X#+ #+./.NX-@-A 9 "9 ./.NŮX-@-A .".N./.NX./.N X#+#+ 9+ "9+.+./9+*NŮX./ 9+2"9+6NX#+#+ 9+"9+.+./9+*NŮX./ 9+2"9+6NX#+"#+&p`LN^NuNVH 9 F"9 J. j/9 fNäXJ@gt 9 F"9 J. j/9 fNX-@-A 9 N"9 R. r/9 nNX./.N X-@-A 9 F"9 J. z/9 vNX./ .".NŮX-@-A 9 N"9 R. /9 ~NX./.NX-@-A ."..+./9+*NX-@-A 9+2"9+6./.NX./.N X"n"#A n "(./ 9+*"9+.NŮX.+6/9+2NX"n "#A`h 9 f"9 j. z/9 vNX"n"#A n "(.+./9+*NŮX.+6/9< " .". ./9NZX "N_p"yVXV" ."../9N\ XJ@m& ."../9NZX "`" ."../9NZX "N_p"yVXV" yR!n4!n 8 yR!nFg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA-.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/+2NX"n "#ALN^NuNVH n g.N p`N n#  y X N# # y X N# # y X N# # y X N# # y X N# # y X N# # 9 "9 . /9 NX#!#! 9 "9 . /9 NX#!#! 9 "9 . /9 NX#!#! 9 "9 . /9 NX#!#!" 9!"9!.!/9!NŮX-@-A 9!"9! .!"/9!NŮX./.NXNJ@f^ 9 "9 . /9 NäXJ@f( 9 "9 . /9 NäXJ@g.N p`N n-h n-h n-h 9 "9 . /9 NX-@-A 9 "9 . /9 NX-@-A./././.Nd . ,/9 (NŮX. $/9 NXN-@ 9 "9 . /9 NX-@-A 9 "9 . /9 NX-@-A./././.Nd . X-@-A .Na.,/9(N\X.$/9 N^*X./.N^*X"n "#A`LN^NuNVH Zf& n 0!y4 n !n` .Na.X./ .".N^*X"n "#ALN^NuNVH .Na.L/9HN\X-@-A./.N>X./ .".N^*X"n"#A .Na.T/9PN\X-@-A./.NDnX./ .".N^*X"n "#A n "(.\/9XN^*X"n "#ALN^NuNVH o <` l <` .`LN^NuNVHB n  g, nJg" n f S`RR` .`LN^NuNVHp-@p-@A-H-| . ".N_p-@ .".N_p-@Hn/.N8PLN^NuNVH n "(. /.NZX-@-A n "(./.NZX-@-A ."../.N^*X-@-A ."../.N^*= hJ g .h-@J g .萮-@` .쐮-@Jl hp-@. .NҲ-@J fp. .N-@ 9 "9 N-@ 9 "9 N-@ .Ю-@So .N. D/9 @NŮX-@-A./.NX.!/9 NŮX./ 9 "9 NXN.NN#!&#!* .N. L/9 HNŮX-@-A./.NX.!/9 NŮX./ 9 "9 NXN.NN#!.#!2././. 9!."9!2N/ 9!&"9!*N//./.NX 9!&"9!*N-@ 9!."9!2N-@ .Ѯ`v././. 9 "9 N/ 9 "9 N//./.NXp`LN^NuNVHB p# 9!"9!.!/9!NŮX-@-A 9!"9! .! /9!NŮX./.NX-@-A 9!"9!".!"/9!NŮX-@-A 9!"9!.!/9!NŮX./.NX-@-A .".. T/9 PNäXJ@fJp# 9 "9 . /9 NX. \/9 XN X# # 9 "9 . /9 NX./.NZX-@-A./.NDX-@-A .".../9*N\ XJ@f-y2-y6`" ."../.N\X-@-A ."..>/9:N\ XJ@f-yB-yF`" ."../.N\X-@-A . Na.^/9ZN\X-@-A . Na.V/9RN\X-@-A./.N>X./.N^*X-@-A./.NDnX./.N^*X./.NZX./ .".N^*X.N/9JNZX. /.NZX"n"#A . Na.v/9rN\X-@-A . Na.n/9jN\X-@-A./.NDnX./.N^*X-@-A./.N>X./.N^*X./.NZX./ .".N^*X.f/9bNZX./.NZX"n"#ALN^NuNVHp.Hn/.N2PLN^NuNVHp-@-n-n-n-n .T-@Hn/.N8PLN^NuNVHp-@-n .R-@Hn/.N8PLN^NuNVHB-n-n-n-n .T-@Hn/.N8PLN^NuNVHp-@-n-n-np-@-n -n.NjTJj DD`Zd6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA-.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"J= X. d/9 `N X# # 9 "9 . /9 NX-@-A 9 "9 . /9 NX-@-A ."../.NŮX-@-A ."../.NŮX./.NX-@-A./.NX# #!` 9!"9!.!/9!NŮX-@-A 9!"9! .!"/9!NŮX./.NX./ 9 h"9 lNŮX-@-A 9!"9!./.NŮX-@-A 9!"9!"./.NŮX./.NX./.N X-@-A 9!"9!./.NŮX-@-A 9!"9! ./.NŮX./.NX./.N X-@-A ."../.NŮX-@-A ."../.NŮX./.NX-@-A./.NX# #! .".. /9 NX# # .".. /9 NX# # J f 9 "9 .!/9!NŮX-@-A 9 "9 . /9 NX./ 9 "9 NŮX-@-A 9 "9 .!"/9!NŮX./.NX./.NX. t/9 pNäXJ@lB `LN^NuNVH n-h n-h n-h$ n (r-@-@Hn/.N8PLN^NuNVHp-@-n -n.NjRJj DD`V-@Hn/.N8PLN^NuNVH nSm n"hRp` .NHl=@ @fp`e nSm n"hRp` .NHld n "9d!A n "9d 9d` n (U. n "n C$!I / /.N4P. /.NX`p. n "n C$!I / /.NP. /.NX. /.NxX n ([. n "n C(!I$/ /.NDi aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN/H./. /.N

 !A`LN^NuNVH nSm n"hRp` .NHl@ nSm n"hRp` .NHl@ ."Ё"n #@ .Na./9N^*X./9 N\X./9NZXN_p"n #@`LN^NuNVH .SJoj nSm n"hRp` .NHl"n R  nSm n"hRp` .NHl"n R ``LN^NuNVH n "hh n "(hh nSm n"hR9i`.p9i/NeX nSm n"hR9h`.p9h/NeX 9h` n (U. n /( /.NP. /.NX`p. n /( /.NP. /.NtX. /.NxX n ([. n /($/.NP`p. n /( /.NP n (W. n /($/.NP`R n (S. n /( /.NFP`0Jg gD g g gp`LN^NuNVH .SJo n X #f nSm n"hR9i`.p9i/NeX nSm n"hR9`>e LN^Nu* HH@f J`NVH$|&` .N>eLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N8Jl tp#* g.N6BB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"|B q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/N8~Prf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"|B 1$Jlp` &* HH"|B 1l.NJo,./ * HH/N8~Pg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"|B 1$Jlp` $* HH"|B 1l.Np`vNV".NX-@-AJg, . N./.NX-@-AB`( . N./ .".NX-@-AJgN . N-@-A .N-@-A.HnHn/./././.NJg B`B. /./. .".N/ .".N//./.NX` gF g2`B .".N-@ .".N-@``LN^NuNVH.0/9,/9(/9$HnHnHn HnNDJg*. /././././. /.N]X`LN^NuNVH n-P n-P n -P n-P.$/. /./././.N-@.$/. /./././.N-@Jf Jg .gp`-nJf-n.g< .䐮"..N".쒮.NҲЮ-@-n`.g< .䐮". .N".쒮.NҲЮ-@-n `.g< .쐮"..N".䒮.NҲЮ-@-n`B.g8 .쐮".$.N".䒮.NҲЮ-@-n$ .f8-n-n.$/. /./././.Nv-@`4-n-n.$/. /./././.N@h`.p9h/NeX`r`LN^NuNVH n "( n f& n "(`D n "(  n "( nSm n"hR.`.p./NeX nSm n"hR.`.p./NeX`LN^NuNVH n o <` n (r.Nix" n -h.h .Ni-@Jl h .Na.v/9rN^*X.n/9jN\X.f/9bNZXN_p-@ . nSm n"hR.`.p./NeX nSm n"hR.`.p./NeX`LN^NuNVH .SJo nSm n"hR n R `. n R p/NeX nSm n"hR n R `. n R p/NeX`p`LN^NuNVp./. /.NPN^NuNVH t-n-n .". ./9N\ XJ@l .". N_^-@-A R-n-n Jg0t ."../9NZX-@-A-| b`-| f .> H $n* HH$pl "| q%HA`N.N5 %Hg& * HH"|BA"jC `, "|ZA%HA&H* HH"|B#%j.N7Jg* f L N^NuNVH$n* HH"|B 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH Jf8 <@ @# <@ @### .^"$$yB`(ffR b~*f,`#$&R+g Ae Ad&Jp @$Hc` A#c# p @$A L N^Nu " #p.N7&H 9Ae 9.N7&H rf` y yAgp"y @" 9AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX-@`H n n n n p`LN^NuNVH .lp`> .op`, . lp` . op`p`LN^NuNVH ."nm8 ."nn( . "nm . "n np`p`LN^NuNVHJg.N p.N2.N LN^NuNVHp.N2.p/N\X.4N `LN^NuNVHHnHn/. /.N_$.N ./././././<N .N `LN^NuNVHLN^NuNVH f8p.p//. /.p//././. /.Na p-@ .\f .`g .#\. .#`/NXHn/. /.N^ ././././<tN Hn/./.N^ ././././<~N LN^NuNVH ."Ё"|dA HH./<N XLN^NuNVHLN^NuNVH n".  nr® `!A n". !A nr®@!A `LN^NuNVH .-@ . -@ p"../9N\ XJ@oXp-@-y-yHnNFdXJfp./.p/NmPp./< jp/NmP` ."../9N^*X./9NZX-@-A .". ./9N\ XJ@n$ .".N_p& Na-@-AJg./9NZX-@-A .". N_pNa-@-A .". ./.NZX-@-A ."../9N^*X./ .".NZX-@-A ./.NZX-@-A ."../9N^*X./ .". NZX-@-A j DD``Hn/./.NF ./9NZX./9N^*X-@-A 9"9./.N^*X-@-AHn//NF NFnJ@g B .". ./9N\ XJ@l .". N_^-@-A B .". . /9 N\ XJ@o .". ./N^*X-@-A 9 "9 ./.N^*X. /9 NZX./.N^*X. /9 NZX./.N^*X. &/9 "NZX./.N^*X. ./9 *NZX./.N^*X. 6/9 2NZX./.N^*X. >/9 :NZX./.N^*X. F/9 BNZX"nX .SJfd$ Ae A"% J L N^Nu 9ѯpN@dN9 9 @#NupN@dN9#pNuNVHn/<T/.N8 JlpN^Nup`pN@dN9NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN9NupN@dN9pNup6N@dN9NupN@dN9NuNVH<$.$n Jopo p#`,*|9 g g*J./N9X @*Hf | L<N^Nu "|G(S&9f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN9Nu#p @NuN/pN@NrNVH./.N9@LN^JogPO//<N9 Nwp&N@dN9Nu@(#)siline.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 ?!! %s: %c? -r!! %s: cannot open %s %-12g%c%s %s fitted%-12g%c@(#)getdoub.c 3.1 %F@(#)getlabel.c 3.1 @(#)getline.c 3.2 C@? p"" m"p`p n".  n". `!A . r"p "  n". !A n".@!A .r"@p" n `LN^NuNVHLN^NuNVHLN^NuNVH .N-@-A . N-@-A./././.Nd ./9NX-@-A.( .$NRN-@-A./.NX./.NŮXN-@.( .$NRN-@-A./.NX./.NŮXN-@-n$Jo. /./. ./ ./ . / ./NX. /./. .Ю/ .Ю/ . Ю/ .Ю/NX .j DD`-@ .j DD`-@S`BLN^NuNVHBp-@Hn/.N"Prg\Jg> g2 n"n"!A n n"n")!A n!AB .` -@-A .". ./.N^*X./.N^*X./ .". NZX-@-A . N/9 JN\ XJ@o-y R-y V Jg .". N_^` .". -@-A <ŃNa./ .".N\ XJ@n* <ŃNaN_^./ .".N\ XJ@lp-@HnNFdXJfp"#> .".L N^NuNV .". NFnJ@gp./. /.N*PN^Nu 9 Z"9 ^`NVHt .". . /9 N\ XJ@n .". NFnJ@f .". LN^Nup-@-| -n-n -y -y HnNFdXJfp./< p/NmPp!#> .".`Hn/. /.NJ -@-A .j DD`g S ."../NZX-@-A .".. /9 NZX-@-A .jDD`S././.NI\P-@-A .". ./.N\X./ .".NZX./ 9 "9 N^*X-@-ASn .".`NVpN^Nu"g rgr NuNVH$n . fp.Nir/NazX .". . /9 N\ XJ@m .". ` .". N_^-@-A. /9 N\ XJ@m$%n ` .".. /9 NZX$%A 9 . `( .@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H  jj>rf-np-@ nl n N-@-A .SCXA !n n (N-@-A .CXA !nTpѮ`HnHnXN P .N-@-A .ЮN-@ -A$ .ЮN-@(-A, .N-@0-A4 .N-@8-A< .N-@@-AD .N-@H-AL .N-@P-ATBB n .CXA./9 "(NäXJ@oD .RCXA./9 "(NäXJ@o B`p-@`B .RCXA./9 "(NäXJ@o p-@`p-@ .Ю-@T`0J g p-@`N .Jj DD`"|1-@.gp-@` .-@p-@B n.glR .CA-P-h .CXA !nR .RCA-P-h .CXA !n .-@T`pB .n .CXA "(N.N"n"o( .CXA "(N.N` n "n" .RCXA "(N.N"n")o* .RCXA "(N.N` n ("n#@ .CXA "(N? ./ "*N\ XJ@o$ 9 . / "*NZX$%A` .". . (/9 $N\ XJ@l "*N_^$%A .". ./NZXLN^NuNVHA -H. //.NLP$9 g pLN^Nu `NVHA-H.//. NLP$ n( g pLN^Nu `NVH $nJf.Nhb* f* g * HHrD€g&&| `+ g.NeH e%j* gp`* HH"| 1./** HH/NmHP$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". . H/9 DN\ XJ@f .". LN^NuHn/. /.NJ Jot Ю o>p.Nir/NazX`( .". . P/9 LN^*X-@-A ppbpNa./ .". N^*`p Ю l: 9 T"9 X`J .". . `/9 \N^*X-@-A pⴀep"DNa./ .". N\X`NVH$n . fp.Nir/NazXB .". . h/9 dN\ XJ@f .". LN^Nu .". . p/9 lN\ XJ@o* .". `.R .".. /9 |N^*X.N"n")l( .CXA "(N.N` n ("n#@ .RCXA "(N.N"n") l* .RCXA "(N.N` n ( "n#@ T`T`.-n .U-@Jo n "no n ` n "n" n ("no n (` n ("n#@ n ("nl n ` n ("n#@ n ( "nl n (` n ( "n#@ UpѮ`:`R.HnNtX .l .` .-@`$ b@0; NJ J gHn/. NDP` .`LN^NuNVH n (N./ 9"9NŮX-@-A./. n/(HnHnN n (N./ 9""9&NŮX-@-A./. n/(HnHnN n h N-@-A n h (N-@-A ."../.NX-@-A ."../.NX-@-A .".../9*N X./ .".NX-@-A ."..6/92N X./ .".NX-@-A n.$NN./.NŮX./ .".NX-@-A n.$NN` .". N_^-@-A .".. x/9 tN\ XJ@l .".. /9 N\ XJ@l S ."../NZX-@-A` .". . /9 N\ XJ@o .".` .".N_^`NVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/NeX`< + f./ /+NbP'H`./.p// N`6 Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ | 0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ | 0(fBHH hg lfRR-| HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-| H :g* .:D-@:`Jg -| H`Jg-| HpXf |@ P56?z t.text?z .data@"@.bss t#Q.A /H"HJfmY/H#N<.N?"pN@NVH n # .S-@ n A-HJo n P-H -fpѮ nJg nJg nRHH`l.N #~ nHH"|]1g R``X`T n(HH./9/</<N `$ g ,g cgz``VSSX` np-@B`p-@So.pѮ n /N2XJg Jf-|f`` n P -gJ. n /N3X-Hf* n ./9/</<N `t` R`hpP.Hn/.NPJg"Hn/</<N `p-@Hn/.N$Prg\./.NvX-@-A.~ .N:Jgp `p ./././<N R`.~ .N:rg4Stm yxRxr `.tp /N6X.N5:`^p.N?"LN^NuNVH. /</.N*P-@rg^Jo./.NŮX./ .".NX-@-A././././. NL././././. N. ."..>/9:NŮX./ .".NX-@-A ."..F/9BNŮX./ .".NX-@-A ."..N/9JNŮX./ .".NX-@-A ."..V/9RNŮX./ .".NX-@-A././././. N0././././. NLN^NuNVH . "..n/9jNäXJ@o& . "..f/9bNX "`" . "..^/9ZNX "-@ -A ."../9NäXJ@o& ."..~/9zNX "`" ."..v/9rNX "-@-A . ".N.N"n"o . ".N.N` n "n" .".N.N"n")o .".N.N` n ("n#@ . ".N.N"n")l . ".N.N` n ("n#@ .".N.N"n") l .".N.N` n ( "n#@ LN^NuNVPp./<p/N>P` ."..D/9@N.X.#!:):p./././. /.N`LN^NuNVH. /././. /.N 9):!: m8N>.A N\ XJ@g`*| (R .". . t/9 pN\ XJ@m,`: .". ./N\X-@-A -ђ` .". . |/9 xN\ XJ@m\-y -y ` -n-n 9 "9 ./.N^*X-@-A. /.N\ XJ@o` .". . /9 N\ XJ@ln`8 .". ./N^*X-@-A -` M o2 .". ./N^*X. /9 N\ XJ@l`Jgҹjeйc(| .". . /9 N\ XJ@g{e0`T .". N_p$ 0 Na./ .". NZX./ 9 "9 N^*X-@-A e$&L 5m0jf1jRJgR`R`R0R# 9nB |j L<N^Nu M o .". ./N\ XJ@m` .". ./.N\XN_p$ 0 Na./.N^*X./ .". NZX-@-A R .".. /9 N\ XJ@o^ .".. /9 N\X-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FAb.0`΂>GGg׃p./. /.N*PN^Nu 9"9`NVpN^Nu"g rgr NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVH$n . fp.N9/N1X .". .Sm jRp`.N-@谂gn./.N=/9/9(/9 /././. /.N*LN^NuNVH 9):!:-@rl`V fJ)>g`<./9/9(/./<!: y!6/N R)>`LN^NuNVH#(# #$#$B)B#!:):p./././. /.N`LN^NuNVH.$/././. /.NZ 9):!: m8N>./9/9(/9 /././. /.N*LN^NuNVH 9):!:-@rl`V fJ)Bg`<./9/9(/./<!: y!6/NR)B`LN^NuNVH ."."y!6.(/)$NŮX-@-A#!:): .". ./.NX-@-Ap././././.N .". ./.NX-@-Ap././././.N .". ./.NX-@-Ap././././.N.(/.$/. p//<!: y!6/N`LN^NuNVHp-@-n-n -n-nJgh-n-n -n-n-n n  g nJg R` n  f nRB . N./ 9D"9HNŮX./ .ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLA Xrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |]0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |]0(gpl-@  $pcgHp[gBSm jRp`.N-@"|]1f./.N=Xrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`vSm jRp`pL N^Nu.N$  +g -f$RS` jRp`.N$Sm |]0(fpfj0(g` |]0(gp0` |]0(gp7`pW"-A lJgJf. N2Ю-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.N$ |]0(f p+gp-f Sm`JgJgJgpBHnNhX-@-AJgN/-@-A lf nrӐ P h !n`` .".N2"nX"Q"i"".NX-@-AJgh . N./ 9L"9PNŮX./ .".NX-@-A.HnHn/././. /.N`B#!:):p././././.N.(/.$/. /././<!: y!6/NV-n`p././././.NLN^NuNVH#!:):p./././. /.N`./<!: y!6/NP`LN^NuNVH. /. y!6/NP`LN^NuNVHJgN y!6-h<-h@ y!6-h4-h8.HnHn/./././.N .". .p/9lNäXJ@mh .". .h/9dNäXJ@nF ."..`/9\NäXJ@m$ ."..X/9TNäXJ@o././. /./9*/</<NN .". .x/9tNäXJ@l-y|-y .". ./9NäXJ@o-y-y ."../9NäXJ@l-y-y ."../9NäXJ@o-y-y` .". ./9NäXJ@m& .". ./9NX "`" .". ./9NX "N"y):X):" .".N^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EAb.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.NgJf`pg pLN^Nu* HH"| (q. .Nb\$&j &n,.Nfrf Ю S. Ni". `d ` &././ NbPתJlp` (* HH"| 1l.Ni&f* HHrD€g.Nf .`(׮`Np%N@dNnpNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVNdT./. /.N

* g.NlBB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"| q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/NmPrf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"| 1$Jlp` &* HH-y.g ."../.N.X-@-AJg ."../N.X-@-A`Jl ."../.N,` ."../.N.X-@-A. N2././.NP-@-AJlN/-@-A .".LN^Nu B"C$BBHBB B6lB`l Bg BGo`R/v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.N8* f* g * HHrD€g&&|f`+ g.N5~e%j* gp`* HH"| 1./** HH/N=P$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". ./9N,XJ@f .". LN^NuHn/. /.N Jot Ю o>p.N9/N1X`( .". ./9N.X-@-A ppbpN2./ .". N.`p Ю l: 9"9`J .". ./9N.X-@-A pⴀep"DN2./ .". N,X`NVH$n . fp.N9/N1XB .". ./9N,XJ@f .". LNX-@-A .N.0/9,N X.(/9$NŮX./.NŮX"n "#A`LN^NuNVH Zf& n 4!y8 n !n` .N.@/9NäXJ@f-yF-yJ`" ."../.N X-@-A . N.b/9^N X-@-A . N.Z/9VN X-@-A./.NX./.NŮX-@-A./.NX./.NŮX./.NX./ .".NŮX.R/9NNX. /.NX"n"#A . N.z/9vN X-@-A . N.r/9nN X-@-A./.NX./.NŮX-@-A./.NX./.NŮX./.NX./ .".NŮX.j/9fNX./.NX"n"#ALN^NuNVH m op -@Sp. .N"| 1N"n "#Ap. .NҲ"| 1N"n"#Ap`LN^NuNVHp.Hn/.NPLN^NuNVHp-@-n-n-n-n .T-@Hn/.NDPLN^NuNVHp-@-n .R-@Hn/.NDPLN^NuNVHB-n-n-n-n .T-@Hn/.NDPLN^NuNV N^Nu " #p.Nl&H 9Ae 9.Nl&H rf` y yAgp"yƀ @" 9AA&#"<A"A `NVH $n&JY#p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 9:ѯpN@dNn 9: @#:NupN@dNn#:pNuNVHn/<T/.Nm JlpN^Nup`pN@dNnNuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dNnNupN@dNnpNup6N@dNnNupN@dNnNuNVH<$.$n Jopo p#>`,*|n g g*J./NnX @*Hf | L<N^Nu "|G(S&nf L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dNnNu#>p @NuNdpN@NrNVH./.NnxLN^JogPO//<No" Nwp&N@dNnNu@(#)title.c 3.1 @(#)s.h 3.1 C `p-@JfpdpѮ n -h:pdfBJ:l-|aH :g* .:D-@:`Jg -|cH`Jg-|eHpXf |g` |x-H&IX*L`Dp:-@ .:-@:.N:ЀЮ"n&1. .:N9-@:J:f Ю-@Jgʹg  Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N&(HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6.L/9HN,XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. Ff;$d*>?UUUUUU???cossin: TLOSS error ??sqrtsqrt: DOMAIN error C0C0C0?A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( Hfp.N9/N1X .". ./9N,XJ@lp`p"n"g .". N/-@-A B9B .". ./9N,XJ@g`*|R .". ./9 N,XJ@m,`: .". ./N,X-@-A -ђ` .". ./9N,XJ@m\-y-y ` -n-n 9$"9(./.N.X-@-A. /.N,XJ@o` .". .@/9Fg> FgPGg" G 9"9. /.N X-@-A B` .". . /9NäXJ@o^ .". ./9NX-@-A .". ./9NX./.N X-@-A B .". .*/9&NäXJ@m" .". ."/9NäXJ@o .". ./NŮX-@-A 9V"9Z./.NŮX.b/9^NX./.NŮX.j/9fNX./.NŮX.r/9nNX./.NŮX.z/9vNX./.NŮX./9~NX-@-A 9."92./.NŮX.:/96NX./.NŮX.B/9>NX./.NŮX.J/9FNX./.NŮX.R/9NNX./.N X./ .". NŮX-@-A g 9"9. /.N` g$ .". ./9NX-@-A g .". NLN^Nu .". `NVHt-n-n .".NJ@f .". NJ@flp-@-|-n-n-y-yHnNXJfp./<p/N~Pp!# : .".LN^Nu ."../9NäXJ@l .".N-@-AR ."../9 66 >D gBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA3 .0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5NäXJ@l .".N` ."../ .".NX./.NäXJ@f$Jg 9"9`L 9"9`< .". ./.N X-@-A./NX-@-A ./9NäXJ@g ."../9NäXJ@o .". `Jg .". ./9NX` .". ./9NX`NV .". ./9NäXJ@l .". NN^Nu .". `NVHn/. /.N ./9 NäXJ@l ."../9NXN^Nu .".`NVHn/. /.N ./9NäXJ@o ."../9NXN^Nu .".`NV ."..>/9:NäXJ@f .". N^Nu .". .F/9BNäXJ@l .". N` .". -@-A ."..N/9JNäXJ@l .".N` ."../ .".NX./.NäXJ@f 9R"9V`N .". ./.N X-@-AHn//N ."../.NŮX./ .". NX`NVp./. /.NPN^NuNVH t-n-n .". .v/9rNäXJ@l .". N-@-A R-n-n Jg0t ."..~/9zNP57T6j t.text6j .data7@.bss t#Q.A /H"HJfmY/H#N<.N6pN@NVH o n h -f n hA-H nJgd nRHH`6`J n(HH./9>/</<*N ` g ,g``SpѮ `\ fr-y-yHn/<NFPrg& ."../.N""X-@-A`p ./././<N `So.pѮ n /N*~X-Hgz-y-yHn/.NFPrg& ."../.N""X-@-A`p ./././<N .N,*`& n ./9>/</<*N `8p.N6LN^NuNVH. /</.N@P-@rg^Jop`V nSm n"hRp` .Nrf.p/N4X.N\`p`LN^NuNVH nSm n"hRp` .N-@rf./. /.NP`./.N4X n B` LUEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEE4 E m "E `>EA3 .0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N8Jf`pg pLN^Nu* HH"|(q. .N2$&j &n,.N7prf Ю S. N:0". `d ` &././ N2PתJlp` (* HH"| 1l.N9f* HHrD€g.N7p .`(׮`Np%N@dN?pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuE X-@-A-|B`-|F ."../9NäXJ@oXp-@-y-yHnNXJfp./.p/N~Pp./<Jp/N~P` ."../9NŮX./9NX-@-A .". ./9NäXJ@n$ .".N& N-@-AJg./9NX-@-A .". NN-@-A .". ./.NX-@-A ."../9NŮX./ .".NX-@-A ./.NX-@-A ."../9NŮX./ .". NX-@-A j DD``Hn/./.N ./9NX./9NŮX-@-A 9"9./.NŮX-@-AHn//N NJ@g B .". ./9NäXJ@l .". N-@-A B .". ./9NäXJ@o .". ./NŮX-@-A 9"9./.NŮX./9NX./.NŮX./9NX./.NŮX./9NX./.NŮX./9 NX./.NŮX./9NX./.NŮX./9NX.N^NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .N@ \g.HH`X nSm n"hR I` .N nSm n"hRp` .N@HHrg@ . g$ n "nCd n R ` n B n ``& |` LN^NuNVHA -H.//.NP$9(g pLN^Nu `NVHA-H.//. NP$ n( g pLN^Nu `NVA -H././<NPN^NuNVA-H./. /.NPN^NuNVH$nA-H|-J J-H.N1-@|./. HnNPLN^NuNVH $n&n Bp$g |0(gFSm jRp`.N-@"|1f./.N4Xrg`p%f p$p%f>Sm jRp`.N-@谂gn./.N4Xrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |0(gpl-@  $pcgHp[gBSm jRp`.NNVN4./. /.N

,P(mB @ Jg <` LN^Nu n rfp`p@ %H%H J`NVH$|f`~e LN^Nu* HH@f J`NVH$|f` .N~eLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N>Jl tp#* g.NPrf p. ` `* HHrrf"Jg jfJf* HHrD€f .N JfJ`pfD* HHrD€f.N@Sm jR. `.p. /NX/.NŮX.&/9"NX-@-A .". ./.NŮX./.NŮX./ .". NX-@-A ../9*NäXJ@o-y2-y6 Jg .". N` .". -@-A <ŃN./ .".NäXJ@n* <ŃNN./ .".NäXJ@lp-@HnNXJfp"# : .".L N^NuNV .". NJ@gp./. /.N*PN^Nu 9:"9>`NVHt .". .v/9rNäXJ@n .". NJ@f .". LN^Nup-@-|-n-n -yz-y~HnNXJfp./<p/N~Pp!# : .".`Hn/. /.N -@-A .j DD`g S ."../NX-@-A ."../9NX-@-A .jDD`S././.NP-@-A .". ./.N X./ .".NX./ 9"9NŮX-@-ASn .".`NVHt-|-n-n .". ./9NäXJ@l .". N-@-A R .". ./9NäXJ@oBp-@-y-yHnNXJfp./<p/N~P` .". ./9NE -@"|1f./.N4Xrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`vSm jRp`pL N^Nu.N$  +g -f$RS` jRp`.N$Sm |0(fpfj0(g` |0(gp0` |0(gp7`pW"-A lJgJf. N)Ю-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.N$ |0(f p+gp-f Sm`JgJgJgpBHnN ~X-@-AJgN&-@-A lf nrӐ P h !n`` .".NH"nX"Q"i"`@Jg g .D-@ lg< hf2 nrӐ P h0./N4Xrf nB .` nrӐ P h `NVH<$.&. (.$n&nJg nrӐ P h`(H-Lpcf fxSm kRp`.N*pg0psf |* gp`p. ` NVH $n&j *$%K* HHrD€gp`* HH"| 1$Jlp` &* HH"| 1l.NJo,./ * HH/N>Pg pL N^Nup`NVH$n* HHrrg** HH@f pLN^Nu* @ Jf.Nh jfV* HHrD€fH* HH"| 1$Jlp` $* HH"| 1l.Np`vNVH $n* HH$pl "|^ q%HA`N.N:%Hg& * HH"|A"jC `, "|A%HA&H* HH"|#%j.N=fJg* f L N^NuNVH$n* HH"| 1$l* HH%qLN^Nul$`pN@Nu B$/jD"jDa4J/jDNu B$/jD"jD/@a J/jDNu B$/" bphHA0H@2HA0BAHA$Nu BAHAH@B@"C6<ЀӁbR@Q& $Nu B$/a Nu oCJf NuNVH J.f8 <2@ @#. <.@ @#2#2:#.6 .^"$$y6BB`(:f.fRB Bb~*f,`#6$&R+g Ae ŮX./9NX-@-A .". ./9NäXJ@n .".N( N-@-A .". NN-@-A .". ./.NX-@-A ."../9NŮX./ .".NX-@-A ./.NX-@-A ."../9NŮX./ .". NX-@-A jDD` p`& .". .(/9$NäXJ@o .". . /9NäXJ@l .". NJ@fJg-y,-y0 -y4-y8`Hn/./.N ./9 NX./9NŮX-@-A 9"9./.NŮX-@-AHn//N NJ@fp` .". ./NŮX-@-A 9<"9@./.NŮX.H/9DNX./.NŮX.P/9LNX-@-A .". ./.NŮX./.NŮX./ .". NX-@-A 9T"9X./.NŮX.`/9\NX./.NŮX.h/9dNX./.NŮX.p/9lNX./.NŮX.x/9tNX-@-AJg .". N-@-A Jg .".N. /.` .". ./.N X0Xfp[fJ2XfJg RSnpgJo./N4Xrf nBf pL p6 @$A L N^Nu " #Bp.N=&&H 9BAe 9B.N=&&H rf` y: y:Agp"y: @" 9BAA&#:"<.A"A `NVH $n&JY#6p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"%> J L N^Nu 9ѯpN@dN? 9 @#NupN@dN?#pNuNVHn/<T/.N> JlpN^Nup`pN@dN?NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN?NupN@dN?pNup6N@dN?NupN@dN?NuNVH<$.$n Jopo p#`,*|?0 g g*J./N?X @*Hf | L<N^Nu "|BG(S&?0f L` M M`NVH$.o,pn& S"|F$q g f . /NXLN^Nup0N@dN?Nu#p @NuN5 pN@NrNVH./.N>LN^JogPO-@-A <ŃN./9N X./ .".NäXJ@n> <ŃNN./9|N X./ .".NäXJ@lp-@HnNXJfp"# : .".LN^NuNVpN^Nu"g rgr NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVH$n . fp.NҬ/NX .". ./9NäXJ@m .". ` .". N-@-A./9NäXJ@m$%n ` ."../9NX$%A 9.`( ../ "*NäXJ@o$ 9./ "*NX$%A` .". ./9NäXJ@l "*N$%A .". ./NXLN^NuNVHA -H.//.NP$9g pLN^Nu `NVHA-H.//. NP$ n( g pLN^Nu `NVH $nJf.N* f* g * HHrD€g&&|`+ g.Ne%j* gp`* HH"| 1./** HH/NVP$Sm jRpL N^Nu 6lB`l Bg BGo`R/v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.N/* f* g * HHrD€g&&|`+ g.N,&e%j* gp`* HH"|* 1./** HH/N4P$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". ./9N#XJ@f .". LN^NuHn/. /.N Jot Ю o>p.N0/N)X`( .". ./9N%X-@-A ppbpN)./ .". N%`p Ю l: 9"9`J .". ./9N%X-@-A pⴀep"DN)./ .". N$X`NVH$n . fp.N0/N)XB .". ./9N#XJ@f .". LN^Nu .". ./9N#XJ@o* .". `.R ."../9N%X` .". N&-@-A ."../9N#XJ@l ."../9N#XJ@l S ."../N""X-@-A` .". ./9N#XJ@o .//<N?l Nwp&N@dN?Nu@(#)sin.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 !! %s: %c? -r!! %s: cannot open %s %s %s sin%-12g%c@(#)getdoub.c 3.1 %F@(#)getlabel.c 3.1 @(#)getline.c 3.2 ?!TD-CI!TD-??_0mȃA?@ "K@ !TD-??>Ff;$d*>?UUUUUU???cossin: TLOSS error C0C0C0?C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7AF g ` * g* Bp`NVH$.g .". ./9NäXJ@f .". LN^NuHn/. /.N Jot Ю o>p.NҬ/NX`( .". .&/9"NŮX-@-A ppbpN./ .". NŮ`p Ю l: 9*"9.`J .". .6/92NŮX-@-A pⴀep"DN./ .". N X`NVH$n . fp.NҬ/NXB .". .>/9:NäXJ@f .". LN^Nu .". .F/9BNäXJ@o* .". `.R ."..V/9RNŮX` .". N-@-A ."..N/9JNäXJ@l ."..^/9ZNäXJ@l S ."../NX-@-A` .". .f/9bNäXJ@o .".` .".N`NVJfpN^Nup.N -@.p/NָX-HBBJgB .c .R`* .-@-nBS.p/NָX.N N&p.N -@Jm.p/NָXJn JlJg .Ю.N .Ю`(NVN^NupN@NupN@dNהpNuNVH-| n-H-H|".` .".N&` o/ "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N-X`< + f./ /+N)P'H`./.p// N' Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-|HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-| H :g* .:D-@:`Jg -| H`Jg-| HpXf |` | -H&IX*L`Dp:-@ .:-@:.N0ЀЮ"n&1. .:N0-@:J:f Ю-@Jgׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H B J~R|A-HHn//. N $ nB LN^NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N0X`< + f./ /+NɔP'H`./.p// NǺ Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |0(fBHH hg lfRR-|HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|H :g* .:D-@:`Jg -|H`Jg-|HpXf |` |-H&IX*L`Dp:-@ .:-@:.NЀЮ"n&1. .:NҲ-@:J:f Ю-@Jgʹg G 2}zwtqnkheb_\Y|yvspmjgda^[X{xurolifc`]ZWTQNKHEB?<9P56D t.textD .dataE>@.bss t#Q.A /H"HJfmY/H#N<.ND>pN@NVH n #z .S-@ n A-HJo n P-H -fpѮ nJg nJg nRHH`.N## n .gL n -g@ nHH"|A1f& n eg n +g n Ef R``.N## n .gL n -g@ nHH"|A1f& n eg n +g n Ef R``.N# nHH"|A1g R``l-n n -f#J` n  g n ,g nJg R` nJf p` nB./.N8X#f$./9z/</<fN nA-H`.N# nHH"|A1g R``.N## n .gL n -g@ nHH"|A1f& n eg n +g n Ef R`` .N## n .gL n Xg4 og xf-|H` lp-@`-|H`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N(HJ*g -|H`Jg -|H`Jg-|HKMJgHH`p0JfJg.-n`SJoJfIM .2".6./9NäXJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. LN^NuNVHBHn/.N2PrgR .l`p-@ .n n( f./.NXJg@ .R.N?*Jgp `p ./././<GN .йҀAC DҀ-A" .䰁n ."ѮJfd` kRr S .䰮"mDSl.p /N0X` kR"nHRH`. nHRHp/N0X nHJg$Sm` kRr0`.p0/N0XSmSm`Jol f$Sm kR`f.p/N0X`< + f./ /+NɔP'H`./.p// NǺ SmVSm kRr0`.p0/N0X` kR"nDRD`. nDRDp/N0X nDJg$Sm` kRr `.p /N0XS .䰮"mSm`Jg@p . .N0rD"nDp . .NҲ-@`pD nD0 nDCAbJ.n .2".6./9NäXJ@fp+`p-rD"nD |0(gpE`perD"nD`@NVp././././. /.N: N^NuNVp././././. /.N N^NuNVH<$n&|)N ."KI . fp.NҬ/NX .". . /9NäXJ@lp`p"n"g .". N-@-A B9)NB .". ./9NäXJ@g`*|R .". .b/9^NäXJ@m,`: .". ./N X-@-A -ђ` .". .j/9fNäN#XJ@m\-y-y` -n-n 9"9./.N%X-@-A. /.N#XJ@o` .". ./9N#XJ@ln`8 .". ./N%X-@-A -` M o2 .". ./N%X./9N#XJ@l`Jgeйc(| .". ./9N#XJ@ge0`T .". N&$ 0 N)./ .". N"X./ 9"9N%X-@-A e$&L 5m0f1RJgR`R`R0R# 9nB | L<N^Nu M o .". ./N#XJ@m` .". ./.N$XN&$ 0 N)./.N%X./ .". N"X-@-A R ."../9N#XJ@o^ ."../9N$X-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA).0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2-@Hn/.N2PrgR .l``V. .N?*rg4SXm y\R\r `.Xp /N;4X`LN^NuNVHp-@ .lJ n( f< y( f,Hn/.N2PHn/9N2PR`p-@ .lHn/.N2PrgHn/9N2Prg./.NNXJg@ .R.N?*Jgp `p ./././<ON p-@ .lJ n( f< y( f,Hn/.N2PHn/9N2PR`R` . .N?*rg4SXm y\R\r `.Xp /N;4X`LN^NuNVH. Hn/.NP-HJoVp-@HnJg y` |J/NPrgJoA".ȒR .n .SCA-P-h./.NXJgV .SCA-P-h. .N?*Jgp `p ./././<WN `$./9z/<_/<fN R`. .N?*rg4SXm y\R\r `.Xp /N;4X`HnJg y` |J/NPrgjJH XJ@m\-yn-yr` -n-n 9v"9z./.NŮX-@-A. /.NäXJ@o` .". ./9NäXJ@ln`8 .". ./NŮX-@-A -` M o2 .". ./NŮX./9NäXJ@l`Jgҹ)Neй)c(|) .". ./9NäXJ@g)_e0`T .". N$ 0 N./ .". NX./ 9"9NŮX-@-A e$&L 5m0)Nf1)NRJgR`R`R0R# 9nB |)N L<N^Nu M o .". ./NäXJ@m` .". ./.N XN$ 0 N./.NŮX./ .". NX-@-A R ."../9~NäXJ@o^ ."../9N X-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA".0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLprLN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEMo .S./9z/</<fN ."n AA-H n` LN^NuNVH. /</.NFP-@rN^Nu҃тvgRDӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEMH EHKNQTg^Jop`V nSm n"hRp` .Nrf.p/NBX.N`p`LN^NuNVH. /</.NFP-@rg^Jop`V nSm n"hRp` .Nrf.p/NBX.N`p`LN^NuNVH nSm n"hRp` .N-@rf./. /.NP`./.NBX n B` LN^NuNVHp.Hn/.NjPCc`LN^NuNVH n -H nSm n"hRp` .N@ \g.HH`X nSm n"hR I` .N nSm n"hRp` .N@HHrg@ . g$ n "nCd n R ` n B n ``& |` LN^NuNVH $nt&HH gX gN +g& -g` Ѐ"ЁHHЁr0$`RR 0m 9oJg DL N^NuR` `NVHA -H.X//.N!P$9dg pLN^Nu `NVHA-H.//. N!P$ n( g pLN^Nu `NVA -H././<JNPN^NuNVA-H./. E EgLEk< E l@DEE4 E m "E `>EA".0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N4Jf`pg pLN^Nu* HH"|(q. .N$&j &n,.Nψrf Ю S. N". `d ` &././ NɔPתJlp` (* HH"| 1l.NѴf* HHrD€g.Nψ .`(׮`Np%N@dNהpNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVH N-@f0p././</</<Np.N.p/NָX$H.p/NָX&HHnNdX-@찮g f.p/NָX.p/NָX f .L N^Nu .`NV.Hn /.NPN^Nup;N@NהpN@NrpN@dNהJgpNuE EgLEk< E l@DEE4 E m "E `>EA).0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N/ Jf`pg pLN^Nu* HH"|*(q. .N)$&j &n,.N.`rf Ю S. N1 ". `d ` &././ N)PתJlp` (* HH"|* 1l.N0f* HHrD€g.N.` .`(׮`Np%N@dN6pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN+./. /.N

Sm jRp`.N-@谂gn./.NBXrgr`tp*f Bp$`p-@B` .Ѐ"ЁЂr0-@p$ |A0(fJf-|-B rlg hfp$Jgp[fHn/ NP&H f pL N^Nu |A0(gpl-@  $pcgHp[gBSm jRp`.N-@"|A1f./.NBXrgjpcg psgp[fHn/ Hn/.//.N<`Hn/ /././/.N:-@g .ѮJg Jf`Jg .`p`NVH $nGBBBBBB . d bZ@0; NJ.***JJJJJJJ2JJJJJ.JJ6Rv `v`vSm jRp`pL N^Nu.N$  +g -f$RS` jRp`.N$Sm |A0(fpfj0(g` |A0(gp0` |A0(gp7`pW"-A lJgJf. NNVN./. /.N

p.N?/N7 X`( .". .CJf NuNVH J)f8 <)@ @#) <)@ @#)#))#)) .^"$$y)B)`()f)fR) )b~*f,`#)$&R+g Ae Ad&Jp @$Hc` A#)c#) p) @$A L N^Nu " #)p.N&H 9)Ae 9).N&H rf` y) y)Agp"y) @" 9)AA&#)"<)A"A `NVH $n&JY#)p @&L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"%) J L N^Nu 9 6ѯpN@dNה 9 6 @# 6NupN@dNה# 6pNuNVHn/<T/.N֜ JlpN^Nup`pN@dNהNupN@dNהJg o NupN@dNהNupN@dNהpNup6N@dNהNupN@dNהNuNVH<$.$n Jopo p# :`,*|׮ g g*J./N׆X @*Hf | L<N^Nu "|)G(S&׮f L` M M`NVH$.o,pn& J &L N^NuNVH &n+g.N +-@. N$H gngh-K-J . V"$d-B` nX"nX .SJfd$ Ae A"% J L N^Nu 9~ѯpN@dN6 9~ @#~NupN@dN6#~pNuNVHn/<T/.N5 JlpN^Nup`pN@dN6NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN6NupN@dN6pNup6N@dN6NupN@dN6NuNVH<$.$n Jopo p#`,*|6 g g*J./N5X @*Hf | L<N^Nu "|G(S&6 f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN6Nu#p @NuN+pN@NrNVH./.N5LN^JogPO//<N6\ Nwp&N@dN6Nu@(#)total.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 !! %s: %c? %-12g%cr%-12g%c!! %s: cannot open %s @(#)getdoub.c 3.1 %F@(#)getlabel.c/9N3X-@-A ppbpN7./ .". N3`p Ю l: 9"9`J .". ./9N3X-@-A pⴀep"DN7./ .". N2X`NVH$n . fp.N?/N7 XB .". ./9N1XJ@f .". LN^Nu .". ./9N1XJ@o* .". `.R ."../9N3X` .". N4-@-A ."../9N1XJ@l ."../9N1XJ@l S ."../N0(X-@-A` .". ./9 N1XJ@o .".` .".N4` o/ "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N;4X`< + f./ /+N7P'H`./.p// N5 Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |A0(f .g p-@`VR *fpѮ n -hR`8S"|)$q g f . /NXLN^Nup0N@dNהNu# :p @NuN"pN@NrNVH./.N@LN^JogPO//<N Nwp&N@dNהNu@(#)dev.c 3.1 @(#)setop.h 3.1 @(#)chtable 3.1 \fp|'3>EZeq!&,1?IZgx~ !1:@KS]iv}@(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 DN^DB@PB<>NX[gfsF3G[S@BRP2@@BRP@0p~>0\n~p-Nn#8x` nxpx` n0px8VC@0px80hy}nN=+9H@~> 3.1 @(#)getline.c 3.2 C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H  RRJ B` .Ѐ"Ё"0Ё-@RHH$ |A0(fBHH hg lfRR-|DHAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|EH :g* .:D-@:`Jg -|GH`Jg-|IHpXf |K` |\-H&IX*L`Dp:-@ .:-@:.N?*ЀЮ"n&1. .:N? -@:J:f Ю-@Jgʹg  Xg4 og xf-|mH` lp-@`-|pH`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N+(HJ*g -|sH`Jg -|uH`Jg-|wHKMJgHH`p0JfJg.-n`SJoJfIM .2".6.0/9,N1XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. ~pahfX80Pb^#n}yhh`nN-!@`^}qPhhnN-!@pu .^P`@!IWnN-!@`~wnN-!@`dn}xgW!0px8)->~P^`@!PXVVPp0>~>~p0\N^kN8xp050px8x80px80px80p0:\|vx80pt4x80pPXHZ\LZzl|zhxrT4xFp0pP\L8VPVxx8x80p0px8x80p8xpt488xZRp0pP0Tp0pdp`QDE'IJ]n~P^0@Qdeij]N>43st/tmp/dev.XXXXXX!! %s: %c? a!! %s: cannot open %s -r!! %s: cannot open %s !! %s: input not GPS r!! %s: cannot open %s rm %s@(#)compwind.c 3.1 @(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 @@@@?@?@@(#)dispfile.c 3.1 @(#)dev.h 3.1 &ZK @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 @(#)utodcoord.c 3.1 @(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 ??@(#)dispprim.c 3.1 @(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 ?陙@(#)linefill.c 3.1 @(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 @(#)fill.h 3.1 @`@??@iDg8?!$5??@>>>>????@(#)arcfill.c 3.1 @(#)dev.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)util.h 3.1 @(#)gsl.h 3.1 @(#)gpl.h 3.1 @(#)fill.h 3.1 @`@??@iDg8?!$5??@!TD-@!TD-@!TD-@!TD-@!TD-@!TD-@!TD-@!TD-@!TD-@!TD-@# @(#)ttoc.sh 3.1 : ttoc mm-file : LIB=/usr/lib/graf BIN=/usr/bin/graf trap "rm -f /tmp/ttoc*.$$" 1 2 3 set - `cvrtopt $@` while test -n "$1" do case $1 in -) break ;; -*) echo "!! ttoc: `expr $1 : '-\(.\)'`?" 1>&2 ;; *) break ;; esac shift done if test -z "$1" -o "$1" = "-" then cat - > /tmp/ttoc0.$$ file=/tmp/ttoc0.$$ else file=$1 fi if test -f $file then count=`grep -c "^.TC" $file` if test $count -eq 0 then ed - $file < $LIB/ttoc.d/ed.notoc > /tmp/ttoc.$$ else  ed - $file < $LIB/ttoc.d/ed.toc > /tmp/ttoc.$$ fi nroff -mm -n -rB1 -rC3 /tmp/ttoc.$$ | yoo /tmp/ttoc.$$ ed - /tmp/ttoc.$$ < $LIB/ttoc.d/ed.ttoc.t else echo "!! ttoc: cannot open $file" 1>&2 fi rm -f /tmp/ttoc*.$$ [^adgjmp r  $    0 .filegwrtfmt.c.text<.data<.bssmv_curw_edputncursorrecposelisterrnofatalcurunitcffseekw_ned0fmtbuf_iobfprintfabortwrt_IMwrt_Iwrt_LXwrt_Awrt_AWwrt_ELwrt_G wrt_F donewrecwrt_APwrt_Hicvtcplusscalefltodb%%ecvtdbcmp%%ldiv%%lrem%%dbneg%%dbmul%%dbdiv%%fcvterr.o/ 456260559 2 2 100664 3481 ` P1 /.textLK r!! %s: cannot open %s %s %-12g%c%-12g%c%F@(#)getdoub.c 3.1 %F@(#)getlabel.c 3.1 @(#)getline.c 3.2 C@@$C@@$?@A>???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H l t-n-n 9"9./.N-X-@-A. /.N+XJ@o` .". ./9N+XJ@ln`8 .". ./N-X-@-A -` M o2 .". ./N-X. /9N+XJ@l`Jgҹeйc(| .". .(/9$N+XJ@ge0`T .". N.$ 0 N0./ .". N)X./ 9,"90N-X-@-A e$&L 5m0f1RJgR`R`R0R# 9nB | L<N^Nu M o .". ./N+XJ@m` .". ./.N+XN.$ 0 N0./.N-X./ .". N)X-@-A R ."../9N+XJ@o^ ."../9 N+X-@-A`ZoNVH$.&. *HEM(HDL<>Fg> FgPGg" GgBGgbjBCEDF F5n F m2F փ&t`<Gg Gg BCE` <r`>FA1.0`΂>GGg׃ՂҁрjD@D JfJgX<Fg`:SF nH@HA0BAF` n BQF`ҁрSFgJFoDF`2prLN^Nu҃тvgRD= .dataLL @@.bssRRNV dlJm . N`@ zm./. /<{`Jl4./. /</<N yJf( |`* .rd"|L./. /<` y h. 9pr,/NX//</<N Jf |` y./</<NPJg |8` |A.Jg |"` |,/Jg |` |/Jg0 |//</<NNNN^Nu |`NVp#-|p n .N"n#@ nr!A n!A$-|L n .NV"n#@ nr!A nB$-|x n .N "n#@ nr!A n!A$N^NuNVHn n( HH/NPJno n( HH.NJfpN^Nup`NV nB$ n.N-@ n./<J/(NP fpN^Nup./. n/NPp`NV n.N-@ nr!A$ n./<L/(NP f" n./<O/(NP fpN^Nup./. n/NPp`,AP`s);T|L ӃуgRD<F FgLHDBDLN^Nu B"C$fBB$/fBB$/BCl6<`g6<`$/d6<`g6<JjJjDC0$& NuNVH$.&. (*HEME=E(HDLDgf Dg^*HEMEgZ EgHDEoH El6nH@HA:E@EAHBHC:EBEC-@-Ax=D=D-D-D-B-C6BBHBrRAECJ`::6@Bf"<`"6@g6E@z~C|0!ڀbBEHEGQbdSAEC@ӊӊJd=@TD Do .".Jng `8.SD=DDgFxфH@AHA*x8.LHDLN^Nu <r`pr`NVH$.&. fBC*HEM(HDL<>Fg FgGg GgGFo FlDDFz-E-E-E-EHvAz> g CEPt|0!ԀbBBHBCQ5UEj .".*zgRDӅхgRD<F Fl LHDBDLN^NuG Gg` <r`prLN^NugNuNuNVJj> fJf <N^NuBWaJk JWgDN^NuJWk <N^NuNVHJk^*HEME EgLEk< E l@DEberror in formatillegal unit numberformatted io not allowedunformatted io not alloweddirect io not allowedsequential io not allowedcan't backspace filenull file namecan't stat fileunit not connectedoff end of recordtruncation failed in endfileincomprehensible list inputout of free spaceunit not connectedread unexpected characterblank logical input fieldbad variable typebad namelist namevariable not in namelistno end recordvariable count incorrect%s: illegal error number %d %s: end of file %d %s: %s apparent state: unit %d named %s last format: %s lately %s %s %s %s IO readingwritingsequentialdirectformattedunformattedexternalinternalrr+w+!4JP"V#bn$"#"# (08@H PXP5->n t.text>n .data?@.bss t#Q.A /H"HJfmY/H#N<.N>pN@NVtH n #n .S-@ n A-HJob n P-H -fDpѮ nJg4 nJg& nRHH`.N\#~# n .gL n -g@ nHH"|51f& n eg n +g n Ef R``.N # nHH"|51g R``b`^ n(HH./9n/</<ZN `. g ,g bg cgp``SSX` 9~"9./9N+XJ@o 9~"9./9N+XJ@o:./9~NLX-@-A./.NX-@-A`&.n/</<ZN Pp.N>`-y-y np-@B`p-@So6.pѮ n /N1XJg Jf-|>`` n P -gJ. n /N2X-Hf* n ./9n/</<ZN `t` R`h 9~"9./9E4 E m "E `>EA1.0P΀ LN^NupLN^NupLN^NuNVH$nJ oLJoF* HHrrf"Jg jf Jf* HHrD€f.N7Jf`pg pLN^Nu* HH"|Z(q. .N1$&j &n,.N6drf Ю S. N9$". `d ` &././ N1zPתJlp` (* HH"|Z 1l.N8f* HHrD€g.N6d .`(׮`Np%N@dN> pNuNVBWJj>Di aJWg` <rN^NuNVH"gHp|4` H@HA0BAF o n BQF`ҁрSFgFHFLN^Nu o"o / o`H@QH@Q o Nu o"og fJfB` BB!NuNV B"C42HHAH@@0. 6HHCnAH@CH@$& N^NuNVN3./. /.N

LN^NuNVH. /<4/.N P-@rg^Jop`V nSm n"hRp` .Nrf.p/N`Ve LN^Nu* HH@f J`NVH$|>` .NVeLN^NuNVH$nt gd* HH@g2* gp`.NP$* HH.N=Jl tp#* g.N;>BB* B%j LN^NuNVH$n* fBpLN^Nu.N* f* gJg jb* gp`p`NVH$n * HHrRrBfT* HH"|Z q"jd jR.   fZ.Nrf LN^Nup. `* HHrrf:n p.Hn* HH/NN PN^NuNVA-H./. /.N PN^NuNVH$nA-H|-J J-H.N9-@|./. HnN PLN^NuNVH $n&n Bp$g |50(gFSm jRp`.N-@"|51f./.NSm jRp`.N-@谂gn./.N 9 @#NupN@dN> #pNuNVHn/<T/.N= JlpN^Nup`pN@dN> NuNVH$n gD* g jb jf(Jf$pѪp j ђ .LN^Nup`pN@dN> NupN@dN> pNup6N@dN> NupN@dN> NuNVH<$.$n Jopo p#`,*|>$ g g*J./N=X @*Hf | L<N^Nu "|G(S&>$f L` M M`NVH$.o,pn& S"|$q g f . /NXLN^Nup0N@dN> Nu#p @NuN3pN@NrNVH./.N=LN^JogPO//<N>` Nwp&N@dN> Nu@(#)log.c 3.1 @(#)s.h 3.1 @(#)debug.h 3.1 @(#)errpr.h 3.1 @(#)setop.h 3.1 @(#)util.h 3.1 @(#)title.h 3.1 **?*!! %s: %c? !! %s: base <= zero undefined, no output -r!! p`.N"\$Sm |G0(fpfj0(g` |G0(gp0` |G0(gp7`pW"-A lJgJf. N>zЮ-@R`zJgp.f .RJg^pegpEf^JgV .RJfH Sm jRp`.N"\$ |G0(f p+gp-f Sm`JgJgJgpBHnNX-@-AJgN;f-@-A lf nrӐ P h !n`` .".N!"nX"Q"i"`@Jg g .D-@ lg< hf2 nrӐ P h0./NKPXrf nB .` nrӐ P h `NVH<$.&. (.$n&nJg nrӐ P h`(H-Lpcf fxSm kRp`.N"\*pg0psf |G0Xfp[fJ2XfJg RSnpgJo./NKPXrf nBf pL???-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H N  r0N=-@-A 9"9./.N:2X./.N6X-@-A`RHH$ |G0(g$ ."../9N8(XJ@l`|p.f`l ."../9N8(XJ@lJ r0N=-@-A 9"9./.N:2X./.N6X-@-ASHH$ |G0(f|vpEgpefXHH$p+g$p-f|` Ѐ"Ё"0Ё&`SHH$ |G0(fJl D& Ѓ(|Jl| D(-y-y-y-y.g ."../.N:2X-@-AJg ."../N:2X-@-A`Jl ."../.N8` ."../.N:2X-@-A. N>z././.N#LP-@-AJlN;f-@-A .".LN^Nu B"C$BBHBB B6lB`l Bg BGo`R/v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.NE* f* g * HHrD€g&&|P`+ g.NAhe%j* gp`* HH"|l 1./** HH/NKP$Sm jRpL N^Nu g ` * g* Bp`NVH$.SnpgJo./Np.NGj/N=X`( .". ./9N:2X-@-A ppbpN=./ .". N:2`p Ю l: 9"9`J .". ./9N:2X-@-A pⴀep"DN=./ .". N8X`NVH$n . fp.NGj/N=XB .". ./9N8(XJ@f .". LN^Nu .". ./9N8(XJ@o* .". `.R ."../9N:2X` .". N;f-@-A ."../9N8(XJ@l ."../9 N8(XJ@l S ."../N6X-@-A` .". ./9N8(XJ@o .".` .".N;f` o/ "/ o`HAQHAQ o NuNVH $n* HH$Jg* g .NI* %n fz pl> "|H q%HA&H* HH"|l#%jBL N^Nu "|A%HA&H* HH"|l#`* HH"|lA"jC .NJJg `NVJfpN^Nup.N(-@.'p/NLX-HBBJgB .N /v橀RgB B8j6<8BK4<8B8JHB&$& NuNVH $nJf.N7* f* g * HHrD€g&&|>`+ g.N4Ve%j* gp`* HH"|Z 1./** HH/N<P$Sm jRpL N^Nu g ` * g* Bp`NVH$.g .". ./9N+XJ@f .". LN^NuHn/. /.N Jot Ю o>p.N8/N0X`( .". ./9N-X-@-A ppbpN0./ .". N-`p Ю l: 9"9`J .". ./9N-X-@-A pⴀep"DN0./ .". N+X`NVH$n . fp.N8/N0XB .". ./9N+XJ@f .". LN^Nu .". ./9N+XJ@o* .". `.R ."../9N-X` .". N.-@-A ."../9N+XJ@l ."../9N+XJ@l S ."../N*X-@-A` .". ./9N+XJ@o .".` .".N.` o/ .찮mJgp-` Jg p+. yNB` nRHH. yNR .찮mpLN^NuNV f n0` f nHH-@` n-Pp .HnHn/.N -HJfJgp-@`B .Ю찮 n .Ю찮 o"B . lp*. yNR`Jf(Jf"B . lp . yNR` .m . ` . -@B`p . yNR .mJgp-` Jg p+. yNB`p0. yNR .".mB .l nRHH. yNR`pN^NuNVNFJgN>N^Nu-n nRP nJg..fpѮ n.fHH. yNR`p`NV-n NJg NN^Nu nRHH. yN .SJfp`NV f n0` f nHH-@` n-PB`p . yNR .". SmJgpt`pf. yNpN^NuNV` nRHH. yN . S JnpN^NuNV`S p . yN . n . S Jo nRHH. yN`pN^NuNVJoR f n N` n "(-@-AHnHn/././.N-HJfJgp`wz} "/ o`HAQHAQ o NuNVH<$n&nBB.C(J`RHH$gp%f -@gpѮ f&Sm kR`N.p/N5 X`< + f./ /+N1zP'H`./.p// N/ Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |50(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |50(fBHH hg lfRR-|8HAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|9H :g* .:D-@:`Jg -|;H`Jg-|=HpXf |?` |P-H&IX*L`Dp:-@ .:-@:.N9ЀЮ"n&1. .:N8-@:J:f Ю-@Jgʹg  Xg4 og xfO p-@ . ".Үl$B`p*. yNR . m`B`p . yNR . ".Ү".mJgp-` Jg p+. yNJl| 9".Dojp.. yNB`p0. yNR ."9DmB .".ҹl nRHH. yNR`Jo 9".TlrB` nRHH. yNR .mp.. yNB` nRHH. yNR .".m`8p.. yNB` nRHH. yNR .m n N.@/9P'H`./.p// N<> Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ |G0(f .g p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ |G0(fBHH hg lfRR-|JHAC-HDp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p` p`p-@JlJgJo-n`p-@JfpdpѮ n -h:pdfBJ:l-|KH :g* .:D-@:`Jg -|MH`Jg-|OHpX-|aH` lp-@`-|dH`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N%(HJ*g -|gH`Jg -|iH`Jg-|kHKMJgHH`p0JfJg.-n`SJoJfIM .2".6.$/9 N+XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. B`( ."..p/9lNX-@-AR ."9DmHnHn/././.N-H .DmBJfJgp`p-@Jo .`p".ҮҀ . -@Jl$B`p*. yNR . m`B`p . yNR .mJgp-` Jg p+. yNB` nRHH. yNR .mp.. yNB`p0. yNR .".Dlm .l nJgRHH`pN^Nup0. yNR`??@$@$@$left offfmtw_ed, unexpected code: %d %s w_ned, unexpected code: %d %s   " , 2 : FNXfv |  &28>JlxO f |Q` |b-H&IX*L`Dp:-@ .:-@:.NGЀЮ"n&1. .:NGp-@:J:f Ю-@Jgʹg  Xg4 og xf-|sH` lp-@`-|vH`zJlp-@pѮ n -h2-h6Hn*Hn. .Rrl .R`p//.6/.2N2^(HJ*g -|yH`Jg -|{H`Jg-|}HKMJgHH`p0JfJg.-n`SJoJfIM .2".6.6/92N8(XJ@g ..S-@JlD`Jlp-@pѮ n -h2-h6Hn*Hn. R%n&'$  .$: B%L%b t %% %%  %   2  F% V  t  &   ( %    $) 2  B* ^) l  |*    % &   ( +   ( J( V%   ,  % ,& F% P% f l r, %   - % . $ N MIMK`6pѮ n (h*LJl.NH` @M`JgSlSJlBJlB nHJfp` nHJ(fp`p" -AҮҮҀAC DҀ-A" .䰁n ."ѮJfd` kRr S .䰮"mDSl.p /NBXX` kR"nHRH`. nHRHp/NBXX nHJg$Sm` kRr0`.p0/NBXXSmSm`Jol f$Sm kR`f.p/NBXX`< + f./ /+N>P'H`./.p// N<> SmVSm kRr0`.p0/NBXX` kR"nDRD`. nDRDp/NBXX nDJg$Sm` kRr `.p /NBXXS .䰮"mSm`Jg@p . .NG0rD"nDp . .NGp-@`pD nD0 nDCAbJ.n .2".6.>/9:N8(XJ@fp+`p-rD"nD |G0(gpE`perD"nD`@NVp././././. /.N: N^NuNVp././././. /.N N^NuNVH<$n&| ."KI . fp.NGj/N=X .". ./9N8(XJ@lp`p"n"g .". N;f-@-A B9 B .". .