/* *********************************************************************** * * * X X XXXX XXXXX XXXX * * XX XX X X X X X * * X XX X X X X X XXXX * * X X X X X X X * * X X X X X X X X * * X X XXXX XXXXX XXXX * * * * The following defines represent certain improvements and * * enhancements to the unix 'op sys'. To negate the effect of * * these changes just delete the define by commenting it out. * * Corrections of obvious deficiencies and so on are not to be * * `ifdefed' since they will always be required. See FIXES below * * * * For those who intend to alter the 'op sys' please bear the * * following points in mind: * * * * 1. please indicate time - date - who * * * * 2. why was mod needed. what was done. how it was done. * * which source modules were altered. etc . . . * * * * 3. any other information which may be considered helpful * * for a person following your alterations. * * * * Ian J. * * * *********************************************************************** */ /* (not _1170) #define _1170 /* * bio.c once.c m70.s l70.s trap.c user.h * rdwri.c sys1.c * * includes stuff specific to 70 cpu's. * such as UNIBUS MAP etc... * Use JNR m70.s which handles floating point properly, * handles an 11/70 cpu as an 11/70 cpu - that is to * say uses the ERROR registers properly etc... * This entails altering 'trap' ,user.h and l.s */ /* ( no UNIBUS_MAP ) #ifdef _1170 #define UNIBUS_MAP #endif _1170 /* * bio.c powerf.s m70.s * * enable code for Unibus Map. */ /* (not _1145) #define _1145 /* * bio.c once.c m45.s l45.s trap.c user.h * rdwri.c sys1.c * * includes stuff specific to 45 cpu's. * Use JNR m45.s which handles floating point properly, * handles an 11/45 cpu as an 11/45 cpu - that is to * say uses the ERROR registers properly etc... * This entails altering 'trap' ,user.h and l.s */ #define _1140 /* * clock.c param.h slp.c * * includes stuff specific to 40 cpu's. */ #define FPU /* * user.h m70.s m45.s * * FP11-b or FP11-c installed */ #define RHSTART /* * bio.c * * include code for newer type controllers * e.g. RJP04 on RH70 or RP04 on RH11 */ /* (no DEVSTART) #define DEVSTART /* * bio.c * * rk type contollers on system !! */ /* (not PROG_CLOCK) #define PROG_CLOCK /* * clock.c once.c * * if you have a programmable clock only * saves some code ... */ #define SHARED_DATA /* * Ian Johnstone FEBRUARY '76 * * sig.c slp.c sys4.c sysent.c trap.c user.h * sys1.c text.c text.h once.c param.h * * New special a.out magic number 0412 signifies shared data * segment (r/w text area). Must be swapped out on last use * not just abandoned. Swap synchronization initially a problem, * definitive solution made AUG 77 in conjunction with * LOWER_TEXT_SWAPS alteration. * `x_spid' and word 6 of A.OUT header contain shared data * identification field - inode pointer not good enough (not unique), * since shared data segments are shared between any number * of co-operating processes. * Initially implemented to support UNSW batch system. * P and V system calls implemented to allow process * synchronization. LKED does the linking needed for * creation of 412 a.outs. * db4.s needs to be altered to define text,data,stack size * displacements in user.h. cdb,ddt too. */ #define ZOMBIE /* * Chris Maltby MARCH 77 * * sys1.c proc.h sys4.c slp.c clock.c * * Several variables in the proc structure are used to store * post-mortem information about processes. This avoids the swap * out & in of previous version for exit & wait. Process * terminations (exit&wait) go substantially faster. * Alternative process structure pz_* contains definition of * process area for dead processes. A few of the scheduling * routines have been altered so that no attempts are made * to alter the process area of `dead'ns'. */ #define INIT_FIX /* * Chris Maltby MARCH 77 * * sys1.c * * /etc/init (process one) only woken up when required. * Previously every process termination in the system woke * the init process. This is only necessary if the parent * of the dying process is already dead. ``the whole piece * of code that deals with this is still a mess''. * PS needs to know of this alteration. * * Piers Lauder AUGUST 77 * * The whole thing re-written using a single scan of the * proc array (up to 4 previously). MORE efficient. * Now the code is understandable. * */ #define TIME_LIMITS /* * Chris Maltby MARCH 77 * * clock.c param.h user.h sys4.c sysent.c sig.c proc.h * * User area variables 'u.u_cpusec' and 'u.u_tix' contain * seconds and clock ticks left before time limit expiry. * A signal SIGCPULT is generated when * cpusec becomes zero. A process with a limit of zero is * not restricted - this is normal state. * Limit passed to children so that if `n' seconds * to go before expiry before fork, after * fork each process will have `n' seconds to go!! * * Ian Johnstone AUGUST 77 * * sys4.c sysent.c user.h * * New system call "clktim" is implemented by these changes. * Allows user to request a signal SIGTIMEOUT in `n' seconds(real) * `n' is passed in r0. If p_rtl is non-zero then a real * time limit has been set. When a limit has been set * the clock interrupt routine decrements p_rtl once a second * until zero when the signal is sent. This involves little extra * cost to the system as the whole proc array is scanned each * second anyway. Main cost is extra word in process table entry. * Limit passed to children so that if 'n' seconds * to go before expiry before fork, after fork each process * will have 'n' seconds before being signalled. */ #define GPROCS /* * received JUNE 77 second mailing (Rand) * * sys1.c sysent.c * * Returns system proc array to user. Returns also the number of * process slots. * PS modified to use this - makes PS go faster */ #ifndef ZOMBIE #define BETTER_EXIT /* * john lions class of '76 * * sys1.c * * Shrink process to USIZE on entry to exit. */ #endif ZOMBIE #define BETTER_TIME /* * Ian Johnstone & Andrew Hume SEPTEMBER 76 * * alloc.c * * update() always updates on root file system super block. * After booting time more likely to be correct. Also allows * knowledge of when a system crashed to within 30 seconds. * Omitting to set date at BOOT of system less likley * to cause havoc with incremental dumps. */ #define EP_ADDRESS /* * Craig McGregor AUGUST 76 * * sys1.c user.h * * Implement entry point address as described in programmers * manual. * * db4.s needs to be altered to define text,data,stack size * displacements in user.h. ps,cdb,ddt too. * see /usr/source/s1/errlog.c for error logger code. */ /* #ifdef _1140 #define BIG_UNIX #endif /* * Jeff Rottman jul 77 * * once.c m40.s user.h * * This mod is a means of expanding the available addressing * space for the resident operating system on pdp-11/40 style * memory-management UNIX systems. A new linker `sysld' is * used to generate such a system - A sysld command file specifies * the division of the resident system into _s_e_g_m_e_n_t_s, one of * which, the _r_o_o_t segment, is always addressable using * segmentation pages 0 through 4. All the other segments * share page 5, and are addressable only when running. Page * 6, as is usual, is reserved for the _U-table addressing, and * page 7 for the I/O page. * */ #define VICAR /* * Chris Maltby JUNE 77 Ian Johnstone AUGUST 77 * * systm.h user.h ( with side effects in tty.c ) * * Utilize `u.u_heap' as scratch area for erase and delete * processing. Eliminates canonb[] from systm.h. * Saves space. */ #define NEW_TIMEOUT /* * Piers Lauder AUGUST 77 * * m40.s m45.s clock.c param.h systm.h * * New timeout function utilises blocks off the clist * for increased efficiency. */ /* (not UN_TIMEOUT) #ifdef NEW_TIMEOUT #define UN_TIMEOUT #endif /* * Piers Lauder AUGUST 77 * * clock.c * * Allows cancellation of the effect of a previous call * to timeout. */ /* (not SETPSW) #define SETPSW /* * clock.c sys4.c sysent.c trap.c m40.s m45.s */ #define CBLOCK_16 /* * Piers Lauder AUGUST 77 * * m70.s m40.s m45.s once.c tty.c * * Allow larger cblocks. PUTC,GETC re-written to be 15% faster, * as well as being parametric. */ #define TTY_TRUE_RAW /* * Piers Lauder AUGUST 77 * * tty.c tty.h & all tty drivers * * Allows the use of full 8 bit data * on tty lines iff RAW flag set * and other flags except HUPCL are reset. */ #define TTY_HISPEED /* * Piers Lauder AUGUST 77 * * tty.c tty.h & all tty drivers * * Provides suitable water marks for high speed terminals. */ /* (not TTY_FLOW_CONTROL) #define TTY_FLOW_CONTROL /* * Piers Lauder AUGUST 77 * * tty.c tty.h & getty stty * * Allows tty.c to drive DIABLO type terminals * at high baud rates ( >= 1200 ) */ #define STACK_LIMIT /* * Peter Hewitt & Dave Horsfall & Craig McGregor MAY 77 * * once.c param.h * * Implement stack limit register. */ #define SMDATE /* * UNIX version 6 with mod by Ian Johnstone AUGUST 77 * * sys4.c sysent.c * * Enable smdate from level 6 system distribution. * This call was originally commented out because of * problems with incremental dumps - pseudo old * files not dumped. Smdate as implemented * now only allows super-user to modify the access date * hopefully super users know what they are doing. */ #define NEW_SLEEP /* * Piers Lauder + Ian Johnstone AUGUST 77 * * proc.h sys2.c clock.c systm.h param.h sys4.c * * Sleep system calls now do unique sleeps * ( avoiding thrashing on wakeups of TOUT ) * * Each proc entry has one additional word p_stl * which when non-zero indicates that a sleep is in progress * once a second the clock interrupt routine decrements this * count, when reaches zero process woken up. This involves * little extra overhead as the proc array is already scanned * once a second for other purposes. */ #ifdef BIG_UNIX #define ONCE #endif /* * Ian Johnstone AUGUST 77 * * once.c(main.c) slp.c tty.c bio.c alloc.c c.c * * Normally this change only in effect when BIG_UNIX is in effect * however there exists no reason why ONCE can not be used without * BIG_UNIX. main.c renamed once.c. The initialization routines * cinit,binit,iinit are moved to once.c from tty.c,bio.c and * alloc.c respectively by this change. Also estabur,nseg,sureg * are moved from once.c to slp.c. Buffer allocation(declaration) * is moved to c.c (in conf). */ #ifdef _1170 #define CRASH_TRACE #endif /* * Ian Johnstone AUGUST 77 * * trap.c param.h * * When system panics print out contents * of cpu error registers. */ /* (not MALLOC_CHECK) #define MALLOC_CHECK /* * Ian Johnstone + Andrew Hume AUGUST 77 * * malloc.c * * Introduce means of gathering statistics of memory * and swap space allocation under unix. * Statistics gathered from this change instigated the * LOWER_TEXT_SWAPS mod below. */ #define RAW_BUFFER_POOL #define NRAWBUFS 10 /* * Ian Johnstone SEPTEMBER 77 * * once.c bio.c and others disk/tape raw i/o interfaces as reqd. * * In order to improve system performance allocate 'NRAWBUFS' * buffer headers - these headers to be used for swapping and * general raw i/o. Instead if using 'swbuf' for all swap * i/o in the system, allocate from the raw buffer pool. * If 'physio' is passed a null buffer pointer then * it will allocate a buffer for the i/o and free it on completion * of the i/o. Current raw i/o interfaces then do not have to be * altered unless desired. The main benefit to these interfaces * will be that on multiple devices overlapped seeks will * possible, also ordered queueing of raw * i/o requests can also be done. (assuming a clever driver) * Improves swapping. 'NRAWBUFS' should be 2 greater * than the expected number of simultaneous raw i/o operations * to prevent lockout of swap i/o. * */ #define SLOSHED /* * Chris Maltby SEPTEMBER 77 * * tty.c * * Change to canon to allow erases to delete kills * In the process rewrote it to be more * deterministic (and better). * Handles \ erase-char properly. ie. doesnt assume '#' & '@' * For penny-pinchers this change costs 44 bytes * */ #define LOWER_TEXT_SWAPS /* * Chris Maltby SEPTEMBER 77 * * slp.c text.c text.h * * This alteration drastically reduces the number of swaps * undertaken by UNIX. For example on Ian J's 11/70 swapping * was reduced by about 85%. What more can I say !! * When attaching to a shared text segment that was not * already core resident the following procedure was * followed: * 1. If in swap space goto 6 * 2. Expand process size to enable read of * text from the a.out. * 3. Read text segment. * 4. Allocate swap space for text segment * and swap the segment out * 5. Expand process size to USIZE. * 6. Swap out process!! * 7. Call sched. * When the process is swapped back in to core * all will magically be taken care of. * * This is a little inefficient to say the least and * 47 % of all swaps counted were for 1024 bytes. * * The new scheme: * 1. if in swap space goto 6 * 2. Expand process size to enable read of * text from the a.out. * 3. Read text segment. * 4. Separate User Per Process area and text Segment * and install text segment in core. Mark it as not yet * swapped. * 5. Continue execution of process * 6. Swap in text segment. * 7. goto 5 * Note that only if required will the shared text segment now * be swapped. It is now possible to run a shared * text program that will cause no swapping if * the program is not "sticky bit"ed. * * AND all this only costs 98 bytes... */ #define B_AGE /* * Jeff Rottman Sep 77 * * buf.h bio.c * * Allow proper handling of write behind blocks * on freelist. Put at head of free queue those blocks * that have to be written. */ /* (not SLOW_CONSOLE) #define SLOW_CONSOLE /* * ian johnstone oct 77 * * prf.c * * enable the generation of filler characters * by system putchar routine - if '\r' output */ #define LARGE_FILE_REFERENCES /* * Ian Johnstone Nov '77 * * user.h fio.c sys1.c sys3.c * * Allows > 127 references to a file structure, * up to maximum of 255 with ENREF error if exceeded. * Previously this condition would cause (catastophic) * errors. */ /* #define ERROR_LOG /* * Piers Lauder Nov '77 * * prf.c c.c * * change putchar to allow system program "errlogger" * to record "printf" messages instead of console. * Implements device "/dev/errlog". */ /* #define NICE_PUTCHAR /* * Piers Lauder Nov '77 * * prf.c * * change putchar to use tty driver for non-panic * messages; */ /* (not TTY_INVCASE) #define TTY_INVCASE /* * Piers Lauder Nov '77 * * tty.h tty.c * * handle inverted case terminals * yes - they exist. */ #define COOL_NO_SPACE /* * Piers Lauder Nov '77 * * alloc.c * * Since most programs ignore errors on write, * attempt to be a little less enthusiastic * with "no space" messages. The change is a * call to sleep on "lbolt", the effect is to * slow up programs doing repeated write calls * after no space error. */ /* (not ILLEGAL_C) #define ILLEGAL_C /* * Piers Lauder Nov '77 * * partab.c bx.c * * Enhance the table to know about communication * bytes which are illegal in a 7-bit + parity * protocol. */ #define UPRINTS /* * Piers Lauder Jan '78 * * prf.c * * This includes code implementing the routine "uprints" * which will print a system message on the tty * associated with the current process. */ #define DELAY /* * Piers Lauder Jan '78 * * clock.c * * this includes code implementing the routine "delay" * which will delay the caller for a period using a * "timeout - sleep - wakeup" sequence. */ #define MAX_PROC /* * Ian Johnstone Jan '78 * * clock.c sig.c slp.c sys1.c sys4.c proc.h * * Keep track of which slot in the proc table is the last one * in use, and when searching the proc table only go up to maxproc * rather than &proc[NPROC]. This does speed things up a little. * Ken Thompson is also supposed to have found that the * system spends most of its time scanning the proc array. * For example ps is now many times faster less to transfer less to scan. * For example consider a system with NPROC=200 and 5 active processes * ZOMBIE defined - WITHOUT MAX_PROC time for executing wait was 1.18ms * - WITH MAX_PROC time for executing wait was 0.34ms - thus the benefits * are obvious in those parts of the system that search the proc table. * NOTE: time == elapsed time == user time + system time * These values obtained on AGSM's 11/70 */ #ifdef MAX_PROC /* (no HIGH_PROC ) #define HIGH_PROC /* * Ian Johnstone Jan '78 * * proc.h slp.c * * Enable code to keep proc high water mark in high_proc. */ #endif #define LRU_INODE /* * UNKNOWN HACKER -- university of toronto * Improved debugged installed Ian Johnstone Jan 78 * * inode.h iget.c clock.c sys3.c sys4.c * * Incore inode structures are allocated on an LRU basis, and * if a requested Inode is still in core, it is not read in * again. This seems to dramatically speed up pathname * searches, which do an awful lot of iget's and iput's. * For example a stat of a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a * previously took 1.1 seconds (avg) per call this change * reduces this to 0.07 seconds (avg) !!!! * These tests carried out on AGSM 11/70 (1 RP04) */ /* (not U_LOCK) #define U_LOCK /* * Pies Lauder Feb '78 * * sys4.c bio.c * * provide code to implement system calls "slockon", "slockoff" * so that super users may lock themselves in memory. */ /* (not IGNORE_SIGNALS) #define IGNORE_SIGNALS /* * Piers Lauder Apr '78 * * proc.h sig.c slp.c sys1.c sys4.c * * Introduce "p_ignsig" - a sixteen bit boolean array * in which "true" means that the correspondingly * numbered signal is being ignored. Basically this * stops swaps for ignored signals. */ /* #define MEM_PAR_INTR /* * Piers Lauder Apr '78 * Ian Johnstone May '78 * * once.c trap.c * * For 11/40s enable parity checking if it exists (once.c). * In trap.c report all memory parity errors, if user mode * then SIGMEMPAR the process. */ /* (no POWER_FAIL) #define POWER_FAIL /* * Ian Johnstone May '78 * * l70.s powerf.s m70.s * conf.h c.c dz.c dj.c hp.c rk.c msc.c kl.c lp.c cr.c * crd.c ht.c tm.c prf.c user.h * * If defined all singing all dancing powerfail recovery. * If not defined just loop .... */ /* (not U_DELAY) #ifdef DELAY #define U_DELAY #endif /* * Piers Lauder Apr '78 * * sys4.c sysent.c * * Implement new system call "sdelay" for sleeping for a number of ticks. */ #define AUSAM16 #define AUSAML /* * Andrew Hume - Peter Ivanov - Ian Johnstone * Piers Lauder - John Lions - Chris Maltby * Greg Rose * * bio.c dz.c rk.c tty.c inode.h * alloc.c clock.c debug.c fio.c iget.c * malloc.c nami.c once.c pipe.c rdwri.c * sig.c slp.c subr.c sys1.c sys2.c * sys3.c sys4.c sysent.c text.c trap.c * user.h proc.h pzomb.h systm.h * * AUSAM16 - change to support 16 bit user id's * AUSAML - Limit structures * limits system call (sys4) * proc limits (sys1) * modified wait (sys1) * */ #define LOCKING /* * GGR 17-3-78. * Enables the locking and unlocking of files to ensure safe read/write * accesses on a "n-reader, one writer" basis. * Three new syscalls (readlock, writelock, unlock), and attendent * software all over the place. */ #ifndef AUSAM16 #define GROUP_ACCESS #endif /* * so well established no known author !! * * fio.c sysent.c sys4.c * * allow groups access checking etc. * by defing this symbol will allow unix so * generated to support groups as distributed * by BELL - yuk. */ #define MANY_USERS /* * C. Maltby 6/4/78 * * slp.c clock.c * * Really a fix to allow for more CPU bound * in-core tasks. Where there are likely to be several * of these then original BELL 'SCHMAG' (clock.c) and * the 'PRIORATE' in setpri could lead the scheduler * to select a CPU-bound task first. * * SCHMAG ==> clock ticks/second upper limit for I/O bound things * * PRIORATE ==> rate at which cpu-bound priority is dropped */ #define MORE_USER_PRIORITIES /* * Chris Maltby May 78 * * param.h sys4.c * * Changes PUSER to 64, thus allowing a greater diversity * of user priority levels. Coupled with MANY USERS mod * it should provide better scheduling on busy machines */ /* ( no SWITCH_DISPLAY ) #define SWITCH_DISPLAY /* * Chris Maltby APR 78 * * slp.c m70.s * * make an interesting display in location 70 * count of swtch's in last 8 ticks */ /* ( no DEBUG_SWAP ) #define DEBUG_SWAP /* * Peter Ivanov, John Lions, and Greg Rose APR 78 * * slp.c clock.c bio.c debug.c * * certain debugging aids inserted to check * for erroneous swaps. */ #define BETTER_PANIC /* * slp.c prf.c * * Greg Rose and John Lions APR 78 * Ian Johnstone MAY 78 * * Changes to "swtch" to make it refuse to * schedule processes during a panic. * The first panic is the most important - remember * its message string only. */ #define TTY_CONNECT /* * * user.h tty.h tty.c c.c conf.h sysent.c * param.h * * Ian Johnstone MAY 78 * * Support for the logical connection of two tty ports * a great assistance for inter-machine communication !! * NEW sys call: * sys connect; master-fd; slave-fd; master cntrl-char * where * master-fd and slave-fd are files descriptors associated * with teletype ports ( dj-dz-kl ). * * ALL chars received from master or slave tty are re-directed * to the output queue of the slave or master tty respectively. * IF the master cntrl-char is received from the master tty * then - * 1. the connect system call returns to caller. * 2. all re-direction of chars from master/slave stops. * */ /* ( no TTY_SUSER ) #define TTY_SUSER /* * Chris Maltby MAY 78 * Ian Johnstone JUN 78 * * tty.c * * Non-super users restricted to 'TTY_MAXSPD' baud as max * attainable speed !! * ONLY super-users may 'stty/gtty' terminals that are * not the controlling tty for the process. */ /* ( no SYS_time ) #define SYS_TIME /* * Ian Johnstone MAY 78 * * m70.s trap.c * * Include code (optionally) in m70.s to return * the systems idea of the time (hh:mm). * Found to be useful for noting times of system crashes !! * call: systime( timstr ) * char timestr[6]; * */ /* ( no MAPPED_BUFFERS ) #define MAPPED_BUFFERS #define ZOMBIE #define QMOUNT /* * Ian Johnstone - Greg Rose - Chris Maltby MAY 78 * * alloc.c binit.h bio.c buf.h * crd.c defines.h iget.c iinit.h * lp.c nami.c once.c param.h * rdwri.c subr.c sys1.c sys3.c * systm.h user.h * * Use KDA5 to page buffers from the buffer pool. * In binit at system startup the buffer pool is * malloced and the buffer headers setup to addrees * them - if UNIBUS_MAP defined then b_xmem & b_addr * are set up so that unibus map will work - otherwise * b_xmem & b_addr contain full n-bit address. * This change costs 8Kb from kernal data space (loss of reg) * but does recover the data space previously occupied * by the buffers. * The only hassle is having to load KA5 prior to accessing * a buffers contents, bswtch (m70.s) will do this given * address of buffer header. */ #define QMOUNT /* * Ian Johnstone - Greg Rose - Chris Maltby MAY 78 * * iinit.h bio.c alloc.c sys3.c * * Use buffers out of buffer pool for mounted * super-blocks mark these buffers with B_MOUNT flag * Main advantage is that when an update happens * buffers need not be allocated to copy super-blocks to * but can merely be written in-place !! * icheck -s, df ... should work better too * NOTE: MUST BE USED IF MAPPED_BUFFERS IN USE ******* */ /* #define MALLOC_UMAP /* * Chris Maltby Jun 78 * * param.h systm.h binit.c bio.c * * Allows better allocation of UNIBUS-MAP via * a call to malloc to allocate only as much as is * required for this I/O. Avoids problem with previous * method when used with MAPPED_BUFFERS. This should * allow multiple raw I/O's and swaps. * * MUST BE USED WITH MAPPED_BUFFERS */ /* *********************************************************************** * * * XXXXXX X X X XXXXXX XXXX * * X X X X X X * * XXXXX X XX XXXXX XXXX * * X X XX X X * * X X X X X X X * * X X X X XXXXXX XXXX * * * * Please document all necessary fixes (fix obvious bugs) to the * * 'op sys' here. no defines etc just documentation. Same plea * * with respect to documenting mods apply. * * To indicate a fix in source code just put a comment on altered * * lines referencing 'fixnnn' and document it here. * * * *********************************************************************** */ /* * fix000 * Ian Johnstone AUGUST 77 * * bio.c file.h filsys.h ino.h inode.h * alloc.c clock.c fio.c iget.c nami.c once.c * pipe.c rdwri.c sig.c subr.c sys1.c sys2.c * sys4.c text.c proc.h systm.h user.h * * These alterations mainly concerned with * utilizing the facilities of the latest C compiler. * All char * and int * which really were of unsigned type * have been altered. * Register arguments to procedures declared where noted * Ian Johnstone early 77 * All int [2] type whose purpose was to implement 32-bit * arithmetic have been declared long - code altered as required * to cope with new declarations. * Ian Johnstone et al 77 * Correctly declare pointers. for example if a pointer * is a pointer to an inode structure then declare it thus */ /* * fix001 * Jeff Rottman JUNE 77 * * bio.c rdwri.c * * It has been suggested that `read ahead' * may cause deadly embraces, so dmr/bio.c * can be modded to stop read ahead if desired. * The problem exists when ever the number of * processes in "breada" + the number of processes * in "exec" + the number of mounted file systems * exceeds NBUF. */ /* * fix002 * Dave Horsfall APRIL 77 * Ian Johnstone APRIL 78 (corrected) * * bio.c * * There appears to be a race condition in swap() whereby * the same priority (PSWP) was used to wait for completion of * i/o and for the buffer. A lower priority now used for * buffer allocation sleep. See bio.c */ /* * fix003 * John Lions `op sys' class 76 * * sig.c * * No limit to priority because of typo. * See sig.c */ /* * fix004 * UNSW * * text.c * * No swap error panic given ? */ /* * fix005 * UNSW * * trap.c * * Partial fix to overlaying which signal is being * processed. * ******* WITHDRAWN ********* */ /* * fix006 * * George Goble purdue university JUNE 77 * * sys2.c * * Chdir sys call could leave free "leaves" * chdir /tmp * mkdir a; chdir a * rmdir /tmp * cp /null orphan * chdir /null */ /* * fix007 * Piers Lauder AUGUST 77 * * tty.c * * Get tty.c to echo nl to cr on half duplex terminals * with CRMOD set. */ /* * fix008 * Piers Lauder AUGUST 77 * * tty.c * * Fix tty.c not to call device start routine * if timing out. */ /* * fix009 * ************************** * fix made unnecessary by * SLOSHED modification * ************************** * * Piers Lauder AUGUST 77 * * Maptab.c changed to allow other escaped * characters e.g. '\b'. * */ /* * fix010 * * Piers Lauder AUGUST 77 * * Cret in m40.s & m45.s changed to allow long values * to be returned. */ /* * fix011 * Piers Lauder AUGUST 77 * * once.c * * Console start up printout "mem =" altered to give Kb. */ /* * fix012 * 1976 * * once.c(main.c) * * Saves time at initialisation. * The author hereby declares that no infringement * of Western Electric copyrights is intended. */ /* * fix013 * Chris Maltby SEPTEMBER 77 * * fio.c * * Super user can now change to zero * mode directories. (fio.c) */ /* * fix014 * P A Hardie uni of saskatchewan * * tty.c * * "lost characters fix" * Ttwrite in tty.c - the mod stops ttstart being interrupted * and losing the character it was about to output. */ /* fix015 * Greg Rose & Chris Maltby UNSW * * trap.c m40-45-70.s * * make system do t bit tracing properly. * Rti's are done from all traps except * t or bpt traps. */ /* fix016 * Piers Lauder Nov '77 * * prf.c * * always output panic messages * even if switches down */ /* fix017 * Piers Lauder Nov '77 * * bio.c * * ensure b-resid always zero - drivers may not always * do this */ /* fix018 * Piers Lauder Apr '78 * * sig.c * * Prevent SIGINS from overlaying other signals. * ( only if simulating floating point ) */ /* fix019 * Piers Lauder Apr '78 * Chris Maltby May '78 * * slp.c * * Remove spl6() from "sched" while searching proc array. * It is not clear why this was done in the first place, * and its effect of locking out interrupts for several * milliseconds was disastrous for high frequency interrupts. * At sloop in sched protect runin from the clock !! * also protect runout after spl6 removed. */ /* fix020 * Apr '78 * * bio.c * * correct code that checks if physical i/o * is wholly within data/stack spaces. * the following should have worked but didn't !! * mov $fd,r0 / fd is files descriptor * / for raw i/o * sys read ; 64 ; 64 / this generated a segmentation * / error !! * The correction is simplicity itself - merely subtract one * from the sum of 'base+u.u_count'. */ /* fix021 * APR 78 * * sig.c * * Don't even create 'core' file if this is a setuid * process!!. Just test earlier. */ /* * fix022 * MAY 78 * * tty.c * * A really triffic bug this one !! * when tabs are being expanded in ttyoutput the * assumption is made that the character queues never fill * this assumption is FALSE hence infinite loops can occur !! * */ /* * fix023 * MAY 78 * * m70.s powerf.s trap.c * * instead of these routines magically knowing about * certain displacements in the user structure define * their addresses and use these indirectly to reference * the desired location... */ /* * fix024 * MAY78 * * slp.c * * p_cpu not being initialized in newproc. * causing new processes to inherit this value * from last process to occupy the proc slot. */ /* * fix025 * JUN 78 * * fixes etc from bell for level 6 - more docco to come */ /* * fix026 * JUN 78 * * alloc.c sys3.c filsys.h * * Avoid locking problems in ialloc & ifree. * Improves search for free inodes (makes it faster). */ /* * fix027 * JUN 78 * * once.c * * Avoid parity errors at start up - use suiword * instead of fuibyte. Also free all of core in one * hit not in zillions of little chunks. */ /* * fix028 * JUN 78 * * trap.c * * Remove special significance of system call 63. * You may now use it for anything. Indirect calls * of indir will now give SIGSYS. */