|
|
1.1 root 1: Changes are listed in *reverse* order, most recent changes being
2:
3: first.
4:
5:
6:
1.1.1.5 ! root 7: version 1.12
! 8:
! 9:
! 10:
! 11: dos.c, dosdir.c: [email protected]
! 12:
! 13: Added Dreadlabel() and Dwritelabel() system calls.
! 14:
! 15:
! 16:
! 17:
! 18:
! 19: version 1.11
! 20:
! 21:
! 22:
! 23: tty.c: [email protected]
! 24:
! 25: Added T_ECHOCTL flag.
! 26:
! 27: proc.c,file.h: [email protected]
! 28:
! 29: Added iwake() function to go with isleep().
! 30:
! 31: tty.c: [email protected]
! 32:
! 33: Fixed Fselect() collision detection.
! 34:
! 35: pipefs.c,shmfs.c: [email protected]
! 36:
! 37: Use effective user id's when creating files.
! 38:
! 39: mint.h,debug.c: [email protected]
! 40:
! 41: Added code to call debugging routines only if the debugging
! 42:
! 43: level is appropriately set.
! 44:
! 45: signal.c,tty.c,etc.: [email protected]
! 46:
! 47: Fixed a big security hole in killgroup().
! 48:
! 49: all over the place: [email protected]
! 50:
! 51: Extensive changes to the modem code, to support
! 52:
! 53: new ioctls (e.g. for VMIN and VTIME) and to support
! 54:
! 55: SIGHUP.
! 56:
! 57: timeout.c: [email protected]
! 58:
! 59: Added an optional long argument for timeouts.
! 60:
! 61: *fs.c: [email protected]
! 62:
! 63: Added DP_MODEATTR and DP_XATTRFIELDS to Dcntl() call.
! 64:
! 65: dosfile.c: [email protected]
! 66:
! 67: Made Fselect correctly handle collisions.
! 68:
! 69: signal.c: [email protected]
! 70:
! 71: Fix ikill.
! 72:
! 73: various places: [email protected]
! 74:
! 75: Patches for Lattice C compatibililty.
! 76:
! 77: signal.c: [email protected]
! 78:
! 79: For traced processes, notify tracer about all signals
! 80:
! 81: sent (even if they are ignored or blocked).
! 82:
! 83: dosdir.c: [email protected]
! 84:
! 85: Don't follow links in Fchown.
! 86:
! 87: dos.c,main.c,quickmov.spp,procfs.c: [email protected]
! 88:
! 89: Various bug fixes and enhancements.
! 90:
! 91: unifs.c: [email protected]
! 92:
! 93: Added date,time fields for drive U:, and made
! 94:
! 95: the root directory accessible only to administrators.
! 96:
! 97: timeout.c: [email protected]
! 98:
! 99: Fixed timeouts so that canceltimeout() on an
! 100:
! 101: expired timeout will no longer cancel a new one.
! 102:
! 103: pipefs.c:
! 104:
! 105: Made it no longer fatal to use FIONREAD or FIONWRITE
! 106:
! 107: on unidirectional pipes.
! 108:
! 109:
! 110:
! 111: version 1.11 BETA
! 112:
! 113:
! 114:
! 115: biosfs.c, pipefs.c, tty.c: [email protected]
! 116:
! 117: Improved ^S/^Q handling for ptys.
! 118:
! 119: biosfs.c, proc.c, xbios.c: [email protected]
! 120:
! 121: Cleaned up xbios and related initializations.
! 122:
! 123: dos.c, dosmem.c, dossig.c, intr.spp, proto.h: [email protected]
! 124:
! 125: Added new system call Psigintr().
! 126:
! 127: dos.c, proc.[ch]: [email protected]
! 128:
! 129: Implemented Tsetitimer() system call.
! 130:
! 131: biosfs.c,pipefs.c,tty.c: [email protected]
! 132:
! 133: add readb+writeb for ptys (for the slave->master pipe),
! 134:
! 135: use memcpy for all pipes
! 136:
! 137: really buffer 4K not 4K - 1 byte so the copies are aligned more often
! 138:
! 139: bios.c,biosfs.c,file.h,mint.h,proto.h,quickmov.spp,sproto.h
! 140:
! 141: tty.c,types.h,xbios.c: [email protected]
! 142:
! 143: add shortcuts for fast RAW tty IO in the DEVDRV
! 144:
! 145: make memcpy an extended quickmove
! 146:
! 147: add an XDEF'd _bcopy as a hint for gcc
! 148:
! 149: mint.h: [email protected]
! 150:
! 151: Moved definition of INLINE here.
! 152:
! 153: bios.c,biosfs.c,xbios.c: [email protected]
! 154:
! 155: Better serial line support, particularly for SCC ports,
! 156:
! 157: and work arounds for some BIOS bugs.
! 158:
! 159: dosmem.c: [email protected]
! 160:
! 161: Fix a memory leak with M_KEEP regions.
! 162:
! 163: dosmem.c,main.c: [email protected]
! 164:
! 165: Allow memory protection to work with the old AES (if
! 166:
! 167: MULTITOS is not defined).
! 168:
! 169: dosfile.c fasttext.c *fs.c: [email protected]
! 170:
! 171: Add FIOEXCEPT ioctls, and make Fselect() able to
! 172:
! 173: select for exceptional conditions.
! 174:
! 175: dosfile.c, proc.c: [email protected]
! 176:
! 177: Solve the 'endless serial overruns' bug.
! 178:
! 179: dosmem.c: [email protected]
! 180:
! 181: Don't allocate memory for shared text regions in a fork().
! 182:
! 183: dos.c: [email protected]
! 184:
! 185: New system calls to support supplementary group id's.
! 186:
! 187: dosfile.c dosmem.c filesys.c mem.[ch]: [email protected]
! 188:
! 189: Improve the shared text sticky bit code.
! 190:
! 191: dosmem.c, mem.c: [email protected]
! 192:
! 193: Keep shared-text memory regions in memory even after
! 194:
! 195: the last process using them exits (like a sticky bit)
! 196:
! 197: dos.c,intr.spp,proc.c,loadave.h: ++steve usher (?)
! 198:
! 199: Added uptime/load average code.
! 200:
! 201: bios.c biosfs.c intr.spp: [email protected],[email protected], et. al.
! 202:
! 203: Allow select() on serial devices.
! 204:
! 205: lots of places: [email protected]
! 206:
! 207: Diffs for Pure C compatibility.
! 208:
! 209: biosfs.c: [email protected]
! 210:
! 211: Made Dcntl() check for already existing devices
! 212:
! 213: with the same name, when installing a new device.
! 214:
! 215: tosfs.c: [email protected]
! 216:
! 217: Fixed a bug in the force media change code.
! 218:
! 219: biosfs.c,pipefs.c: [email protected]
! 220:
! 221: Made blksize 1024.
! 222:
! 223: dosmem.c: [email protected]
! 224:
! 225: When a process exits both its own and its children's
! 226:
! 227: process time should be added to the parent's children
! 228:
! 229: time. Also the time reported as resource usage
! 230:
! 231: should include the children's time.
! 232:
! 233: pipefs.c: [email protected]
! 234:
! 235: Don't cancel selects when pipes are closed, unless
! 236:
! 237: it is the last close for the pipe.
! 238:
! 239: dos.c: [email protected]
! 240:
! 241: Added Pseteuid() and Psetegid() system calls.
! 242:
! 243: dos.c,dosdir.c: [email protected]
! 244:
! 245: Added Dxreaddir() system call.
! 246:
! 247: signal.c: [email protected]
! 248:
! 249: Provide more information about program crashes
! 250:
! 251: to the ALERT pipe.
! 252:
! 253: tosfs.c,bios.c: [email protected]
! 254:
! 255: Allowed permissions to be changed on the root
! 256:
! 257: directories of TOS drives; added CRC code for
! 258:
! 259: inode numbers; fixed blocksize reported when
! 260:
! 261: sector size != 512.
! 262:
! 263: signal.c:
! 264:
! 265: Provided a version of "kill" that device drivers may
! 266:
! 267: safely call from an interrupt. This function (ikill)
! 268:
! 269: is available in the kerinfo structure.
! 270:
! 271: tty.c,dosfile.c:
! 272:
! 273: Made Fselect() recognize extended escape sequences.
! 274:
! 275: tty.c: [email protected]
! 276:
! 277: Improved job control checks for SIGTTIN/SIGTTOU.
! 278:
! 279: dosmem.c,proc.c: [email protected]
! 280:
! 281: Give more time to starting processes.
! 282:
! 283: proc.c: [email protected]
! 284:
! 285: Reduce the amount of time the kernel spends at ipl 7.
! 286:
! 287: tty.c: [email protected]
! 288:
! 289: When the window size for a tty, has changed, send SIGWINCH to the
! 290:
! 291: foreground process group of the tty.
! 292:
! 293: Do CRMOD input translation only in COOKED mode.
! 294:
! 295: dosfile.c,dosdir.c,proc.c: [email protected]
! 296:
! 297: Fixed some bugs in the re-entrant open() function.
! 298:
! 299: timeout.c,file.h,proc.h: [email protected]
! 300:
! 301: Added Kay Roemer's MiNTNet code.
! 302:
! 303: filesys.c:
! 304:
! 305: Relax the conditions for EUNDEV drives (OK, I was wrong :-)).
! 306:
! 307: dosfile.c,proc.c:
! 308:
! 309: Finished the select() collision detection code (inspired by
! 310:
! 311: Kay Roemer's patch for 1.09).
! 312:
! 313: dosmem.c: [email protected]
! 314:
! 315: Only release the controlling terminal when all members of a pgroup
! 316:
! 317: exit.
! 318:
! 319: biosfs.c: [email protected]
! 320:
! 321: Don't "follow the chain" for character special devices
! 322:
! 323: in bios_getxattr().
! 324:
! 325: tty.c, file.h, xbios.c: [email protected]
! 326:
! 327: Add a real TIOCSETP (differs from TIOCSETN in that it waits for
! 328:
! 329: the output buffer to be empty if the device supports TIOCOUTQ.)
! 330:
! 331: Remove a kludge in rsconf() which is not needed if a real TIOCSETP
! 332:
! 333: exists.
! 334:
! 335: various places: [email protected]
! 336:
! 337: Added __attribute__((noreturn)) support.
! 338:
! 339: debug.c, fasttext.c: [email protected]
! 340:
! 341: Assorted bug fixes.
! 342:
! 343: intr.spp: [email protected]
! 344:
! 345: Improved select() for repeating keys.
! 346:
! 347: various places: [email protected]
! 348:
! 349: All kinds of useful optimizations and bug fixes.
! 350:
! 351: Thanks, Andreas!
! 352:
! 353: various places: [email protected]
! 354:
! 355: Removed various PureC warnings.
! 356:
! 357: main.c: [email protected]
! 358:
! 359: Initialize timestamp and datestamp before
! 360:
! 361: doing file system initialization.
! 362:
! 363: pipefs.c: [email protected]
! 364:
! 365: Changed FIONREAD to correctly return the number
! 366:
! 367: of bytes available for reading, even if there
! 368:
! 369: are no writers.
! 370:
! 371: tosfs.c: [email protected]
! 372:
! 373: Make FIONREAD return an accurate count of the
! 374:
! 375: number of bytes left to read.
! 376:
! 377: tty.c: [email protected]
! 378:
! 379: Fcntl(TIOCSETP) now puts the terminal into RAW or
! 380:
! 381: cooked mode immediately (it used to take until
! 382:
! 383: the next read or write).
! 384:
! 385: dosfile.c: [email protected]
! 386:
! 387: Watch out for aliasing of pointers passed to
! 388:
! 389: Fselect().
! 390:
! 391:
! 392:
1.1.1.4 root 393: version 1.10
394:
395:
396:
397: procfs.c: [email protected]
398:
399: New Fcntl() command (PFSTAT) for finding
400:
401: control terminals of processes.
402:
403: dosfile.c: [email protected]
404:
405: Make f_open and f_create reentrant.
406:
407: main.c: [email protected]
408:
409: Better Falcon Bconmap() fix.
410:
411: dos.c: [email protected]
412:
413: NEW SYSTEM CALL: Tmalarm() for millisecond resolution
414:
415: alarms.
416:
417: biosfs.c: [email protected]
418:
419: Fixed ioctl(,,TCSETBAUD) when oldbaud == newbaud.
420:
421: dosdir.c,unifs.c: [email protected]
422:
423: Extended Dfree() to work properly on arbitrary drives,
424:
425: not just ones that are root directories or aliased
426:
427: (this arises e.g. for Dfree() on U:, when the current directory
428:
429: isn't a root).
430:
431: syscall.spp,inline.h: [email protected]
432:
433: Bugfix for TOS 1.4: the BIOS expects register A5 to
434:
435: contain a 0 when it is called.
436:
437: bios.c: [email protected]
438:
439: Make reads on console interrupt driven.
440:
441: procfs.c,shmfs.c:
442:
443: Fixed Fseek(offset,f,2) to properly add "offset" to the
444:
445: end of file position, rather than subtracting it.
446:
447: proc.c,signal.c: [email protected]
448:
449: Made sleep return a value specifying whether or not the
450:
451: sleeping process was interrupted by any signals.
452:
453: file.h,biosfs.c,fasttext.c: [email protected]
454:
455: Added XATTR structure to bios files, to allow them to have
456:
457: ownership, access modes, and time stamps. Restricted
458:
459: Dcntl on u:\dev to superuser processes.
460:
461: biosfs.c, pipefs.c, file.h: [email protected]
462:
463: Fix TIOCFLUSH on biosfs.
464:
465: Give meaning to TIOCFLUSH's argument: it is now a pointer
466:
467: to a longword mask specifying the type of flush:
468:
469: *arg & 1 -> flush input only
470:
471: *arg & 2 -> flush output only
472:
473: *arg == 0 -> flush input and output
474:
475: arg == NULL -> flush input and output (backwards compatibility)
476:
477: Add TIOCOUTQ to biosfs and pipefs. The argument is a pointer
478:
479: to a longword to be filled with the number of bytes in the
480:
481: output buffer.
482:
483: *fs.c,file.h:
484:
485: Added an "rdev" field to the XATTR structure, so that programs
486:
487: can find the BIOS device number for character devices.
488:
489: biosfs.c: [email protected]
490:
491: Added a /dev/fd subdirectory.
492:
493: biosfs.c: [email protected]
494:
495: Restrict some operations to privileged users.
496:
497: filesys.c: [email protected]
498:
499: Create new device filenames in lower case, for consistency.
500:
501: dosdir.c,tosfs.c: [email protected]
502:
503: Improved security for Fdelete, Dsetpath, and some other
504:
505: calls; made TOS file systems accessible only to root and
506:
507: the admin group.
508:
509: bios.c,syscall.spp,main.c,proc.h:
510:
511: Added a flag (in_dos) to the PROC structure; the BIOS can use
512:
513: this for security checking on Rwabs and similar calls.
514:
515: procfs.c: [email protected]
516:
517: Bug fix: memory protection modes weren't being properly reset
518:
519: after memory was read from/written to.
520:
521: mem.c: [email protected]
522:
523: Fixed a bug with memory initialization when the screen is
524:
525: at a fixed location (i.e. with 3rd party graphics cards).
526:
527: context.spp: [email protected]
528:
529: Only check for 64 bytes of supervisor stack, rather than 1K; also,
530:
531: corrected some loop counters.
532:
533: tty.c: [email protected]
534:
535: Hack so that ^S/^Q work on BIOS devices other than the keyboard.
536:
537: intr.spp: [email protected]
538:
539: Check for auto-repeating keys so that Fselect() wakes up more
540:
541: quickly.
542:
543: bios.c: [email protected]
544:
545: Made BIOS devices take less CPU time while waiting for characters.
546:
547: filesys.c:
548:
549: If a search for a path component (other than the last one)
550:
551: fails, always return EPTHNF (like GEMDOS does).
552:
553: pipefs.c:
554:
555: When freeing a closed fifo, free any associated tty as well.
556:
557: main.c: [email protected]
558:
559: New command for mint.cnf: "include".
560:
561: mem.c:
562:
563: In create_base(), limited the amount of memory assigned to
564:
565: a new basepage if the current process has a limit assigned
566:
567: by Psetlimit().
568:
569: biosfs.c:
570:
571: Fixed the DEV_NEWBIOS call (it wasn't linking the newly created
572:
573: device into the bios file system chain).
574:
575: dosdir.c:
576:
577: Based on a suggestion by Uwe Seimet: made Dlock() return
578:
579: ELOCKED when called twice by the same process, so that under
580:
581: single tasking AES accessories may use it.
582:
583: unifs.c:
584:
585: Fixed a bug in FS_UNMOUNT (fc->index is not necessarily
586:
587: a pointer to a UNIFILE, since the file system may use
588:
589: that for its own purposes).
590:
591: debug.c: [email protected]
592:
593: Make only ctrl-alt-key characters significant to the
594:
595: debug code (before, any character could start/stop output).
596:
597: memprot.c,mem.c,dosmem.c: [email protected]
598:
599: Andreas did a major clean-up of the memory protection code.
600:
601: It's now faster, and quite a few bugs have been fixed.
602:
603: mem.c: [email protected]
604:
605: Made sure that only even addresses are passed to zero() (I guess
606:
607: some linkers don't make sure that text, data, and bss are all
608:
609: even lengths?)
610:
611: util.c: [email protected]
612:
613: In kmalloc(), the size passed to nalloc_add_arena() was wrong.
614:
615: main.c,debug.c,mem.c: [email protected]
616:
617: Restore the screen to its original address when exiting MiNT.
618:
619: fasttext.c: [email protected]
620:
621: Allowed the fasttext device to be opened more than once.
622:
623: nalloc2.c: [email protected]
624:
625: Fixed the code for figuring out when to free an arena (it didn't
626:
627: use to take account of the arena size itself).
628:
629: proc.c: [email protected]
630:
631: Allocate all memory before doing file duplication, so that
632:
633: if a fork() runs out of memory we don't leave cookies
634:
635: hanging.
636:
637: main.c: [email protected]
638:
639: Allow quotes to delimit arguments in the MINT.CNF file.
640:
641: xbios.c:
642:
643: Installed a work-around in dosound() for Pure C's problem
644:
645: with "volatile".
646:
647: filesys.c:
648:
649: Put in a temporary kludge so that .XFSes that don't install
650:
651: BIOS vectors can work (for a while). Note that .XFSes should
652:
653: either install BIOS vectors, or should mount themselves on
654:
655: drive U: without taking up a drive letter. THIS KLUDGE WILL
656:
657: GO AWAY SOMEDAY SOON!!!
658:
659: syscall.spp: [email protected]
660:
661: Various optimizations.
662:
663:
664:
665: version 1.09
666:
667:
668:
669: biosfs.c:
670:
671: Implement file locking for BIOS devices.
672:
673: dosmem.c:
674:
675: Fix the Pexec(200,...) bug (trying to save the command line
676:
677: image must be done *before* the existing program's memory
678:
679: is freed).
680:
681: nalloc2.c,util.c:
682:
683: Allow kmalloc()'d memory to be returned to the OS, if possible.
684:
685: xbios.c:
686:
687: Dosound() can be called with a negative number as its parameter,
688:
689: in which case it is only an inquiry function.
690:
691:
692:
1.1.1.3 root 693: version 1.08
694:
695:
696:
697: dosfile.c,dosdir.c,filesys.c:
698:
699: Made the file and directory operations re-entrant, by replacing
700:
701: the global variable "temp1" with local variables (where needed).
702:
703: dosdir.c,filesys.c: [email protected]
704:
705: Cleaned up the directory closing functions.
706:
707: dosmem.c: [email protected]
708:
709: Fixed a bug in do_vfork (the child's PROC structure could be
710:
711: freed when signals are checked for, and the old code wasn't
712:
713: prepared for that).
714:
715: purec\*.*: [email protected]
716:
717: Updated for the new version of MiNT.
718:
719: *.*: [email protected]
720:
721: Lots of fixes to get rid of warnings and some small optimizations.
722:
723: dosmem.c,procfs.c: [email protected]
724:
725: In Pexec, save the name and arguments a process was started with
726:
727: into the PROC structure, so that they can be recovered at run time.
728:
729: filesys.c,main.c,unifs.c: ++Ulrich Kuehn
730:
731: At boot time, load files called *.xdd which contain external
732:
733: device drivers.
734:
735: Also, provide Dcntl calls for drive U: to allow installing and
736:
737: de-installing file systems at run time.
738:
739: bios.c: [email protected]
740:
741: Only busy-wait for the parallel port, not for serial ports.
742:
743: unifs.c: [email protected]
744:
745: Pass Dcntl commands along to file systems.
746:
747: signal.c: [email protected]
748:
749: Make Fselect interruptable.
750:
751: procfs.c: [email protected]
752:
753: Check for illegal signal numbers in ioctl(PTRACEGO,...).
754:
755: dosdir.c:
756:
757: Fattrib should have been following links.
758:
759: *.spp: ++Claus Brod and Uwe Seimet
760:
761: Various optimizations
762:
763:
764:
765: version 1.07
766:
767:
768:
769: debug.c: [email protected]
770:
771: Translated the German "FATAL ERROR" message.
772:
773: intr.spp:
774:
775: The bus error handler shouldn't use 68030 MMU instructions unless
776:
777: it is on a 68030. (Thanks to Stephen Henson for catching this.)
778:
779:
780:
781: version 1.06
782:
783:
784:
785: bios.c: [email protected]
786:
787: Fixed a bug with Bconout and TOS 1.02.
788:
789: dosmem.c:
790:
791: Bug fix: Pexec mode 4 should cause the child to inherit its parent's
792:
793: memory.
794:
795: filesys.c:
796:
797: if disk_changed() detects an invalid drive, return EDRIVE from
798:
799: it and also from path2cookie().
800:
801: main.c:
802:
803: Fixed the PRN= line in mint.cnf (it was redirecting AUX:, not
804:
805: PRN:).
806:
807: xbios.c:
808:
809: Made Dosound() automatically grant supervisor access to the
810:
811: region the sound is in.
812:
813: debug.c:
814:
815: Make the "FATAL ERROR" message multilingual, and also less
816:
817: confusing if debugging information is not provided.
818:
819: timeout.c,main.c:
820:
821: Make the addtimeout() and canceltimeout() functions available
822:
823: for device drivers.
824:
825: signal.c: [email protected]
826:
827: Reduce the amount of space needed for signal calls (we were
828:
829: being overly cautious on that),
830:
831: dosmem.c: [email protected]
832:
833: Make sure that the text segment in which a process will be
834:
835: executing is attached to that process when it is started with
836:
837: a Pexec (4,...).
838:
839: asmtrans: [email protected]
840:
841: Enhanced to accept some 68030 specific addressing modes.
842:
843: proc.c:
844:
845: Removed the save/restore of the logical screen pointer for the
846:
847: MultiTOS kernel (this causes problems on a Falcon, since if the
848:
849: AES changes resolution its parent process may be left with a
850:
851: logical screen pointer pointing at invalid memory).
852:
853: bios.c: [email protected]
854:
855: Some small optimizations.
856:
857: biosfs.c:
858:
859: Fcntl() was not interacting properly with rsconf(), so that
860:
861: setting baud rates via Fcntl didn't work.
862:
863: dosfile.c:
864:
865: Fforce() should return 0 on success.
866:
867: context.spp,cpu.spp: [email protected]
868:
869: Patches for PureC.
870:
871: intr.spp: [email protected]
872:
873: Small optimization: no return value is needed for spl().
874:
875:
876:
877: version 1.05
878:
879:
880:
881: main.c: [email protected]
882:
883: A better Falcon BIOS fix: if we're on a broken Falcon, turn
884:
885: off Bconmap completely.
886:
887: various places: [email protected]
888:
889: Applied Michael's patch to make MiNT compile with PureC and
890:
891: the MiNT library.
892:
893: memprot.c: [email protected]
894:
895: Fixed a bug in prot_temp (the cookie values weren't being
896:
897: parsed out correctly). Also, added "const" where appropriate.
898:
899: dosfile.c: [email protected]
900:
901: Fixed some places where the fdflags[] for file handles
902:
903: wasn't be set up correctly (default is 0 for std handles,
904:
905: FD_CLOEXEC for non-std).
906:
907: cpu.spp,main.c: [email protected]
908:
909: Saved the MMU context when starting MiNT, so that we can
910:
911: restore it again afterwards (and thus exit MiNT gracefully).
912:
913: main.c: [email protected]
914:
915: Supplied a PMMU cookie if memory protection is on; if a PMMU
916:
917: cookie already exists, don't do memory protection.
918:
919: fasttext.c: [email protected]
920:
921: Added ESC-t support to the fasttext device.
922:
923: bios.c: [email protected]
924:
925: Some modem port TSRs also don't return the correct value from
926:
927: Bconout.
928:
929: dos.c:
930:
931: Made Tsettime() and Tsetdate() available only to the super user.
932:
933: various places: [email protected],[email protected]
934:
935: Portability fixes to make the code compile with PureC and
936:
937: Lattice C; also, Alex fixed up the cache clearing code.
938:
939: tosfs.c: [email protected]
940:
941: Fixed a bug in the NEWWAY code (during disk change, don't
942:
943: free file cookies that may be in use).
944:
945: context.spp: [email protected]
946:
947: In the restore context code, touch the page containing the
948:
949: (new) supervisor stack pointer before switching stack pointers.
950:
951: Otherwise, if the page is not resident (a 3rd party virtual
952:
953: memory system has swapped it out) then the resulting
954:
955: bus error is fatal.
956:
957: tosfs.c: [email protected]
958:
959: Fixed a bug that could cause crashes on disk changes (the
960:
961: 'open' field was an integer for directories).
962:
963: rendez.c, mem.c: [email protected]
964:
965: Fixed some memory leaks (semaphores weren't freed after being
966:
967: destroyed, and if load_and_reloc failed then the memory
968:
969: allocated for the shared text region wasn't freed).
970:
971: procfs.c:
972:
973: When tracing is cancelled for a process with PTRACESFLAGS,
974:
975: start the process again by sending it SIGCONT.
976:
977: procfs.c: [email protected]
978:
979: Don't allow processes to be removed by a different user.
980:
981: signal.c:
982:
983: Fixed the debug tracing code so that SIGCONT doesn't stop
984:
985: a process, even if it is being traced.
986:
987: procfs.c:
988:
989: Dpathconf was returning the wrong value (8 instead of 12 -- it
990:
991: wasn't taking the pid number extension into account).
992:
993:
994:
995: version 1.04
996:
997:
998:
999: bios.c:
1000:
1001: Changed the way timeout worked for Bconout() stuff (basically,
1002:
1003: rewrote the code so that it really does work -- the old code
1004:
1005: used the system clock in timeout.c, which doesn't get updated
1006:
1007: if no context switches are happening; the new code uses the
1008:
1009: 200hz counter, which is always updated).
1010:
1011: proc.h:
1012:
1013: Increased the number of Fsfirst searches that can happen
1014:
1015: simultaneously to 10 from 6 (this is a per-process
1016:
1017: limit, not system wide).
1018:
1019:
1020:
1021: version 1.03
1022:
1023:
1024:
1025: xbios.c: [email protected]
1026:
1027: In old versions of TOS, Rsconf could get stuck waiting for the
1028:
1029: transmit buffer to empty if flow control was on. Added a timeout.
1030:
1031: dos.c:
1032:
1033: Changed Psetpgrp so that passing a pgrp of -1 makes it into
1034:
1035: an inquiry call.
1036:
1037: filesys.c: [email protected]
1038:
1039: Fixed a bug in Flock (regions were being locked 1 byte too far).
1040:
1041: mem.h:
1042:
1043: Changed the memory allocation quantum to 256 bytes, so that
1044:
1045: Srealloc will always work right on ST's.
1046:
1047:
1048:
1049: version 1.02
1050:
1051:
1052:
1053: main.c:
1054:
1055: Run any AUTO folder programs appearing after MINTNP.PRG
1056:
1057: as well as just plain MINT.PRG.
1058:
1059: syscall.spp:
1060:
1061: Pop more stuff off the stack in sig_return, since we
1062:
1063: did push more onto it in handle_sig. (It really shouldn't
1064:
1065: matter, restore_context will restore the stack pointer
1066:
1067: anyway, but better safe than sorry.)
1068:
1069: filesys.c,mem.c:
1070:
1071: Made the open file associated with shared text memory
1072:
1073: regions be closed automatically when a media change occurs.
1074:
1075: xbios.c:
1076:
1077: Changed the do_usrcall function into an assembly language
1078:
1079: routine which preserves all registers. Apparently some
1080:
1081: programs rely on being able to pass parameters to Supexec
1082:
1083: in registers. We only used to kill register A0, which was
1084:
1085: reserved for BIOS use anyway, but obviously some programmers
1086:
1087: choose not to read the f'ing manual.
1088:
1089: dosdir.c: [email protected]
1090:
1091: Fixed a typo (PATH_MAX where ERANGE should have been).
1092:
1093: biosfs.c: [email protected]
1094:
1095: Check control keys on every newline, so users get quick response
1096:
1097: to their key hits.
1098:
1099: tty.c: [email protected]
1100:
1101: Fixed a typo (t_startc is the character to use to resume terminal
1102:
1103: output, not t_stopc!)
1104:
1105: dosdir.c,dosmem.c,filesys.c,tosfs.c: [email protected]
1106:
1107: Fixed many dup_cookie and release_cookie bugs; the code should be much
1108:
1109: more usable now.
1110:
1111: main.c:
1112:
1113: Corrected a flaw in the 68030 only version -- it assumed that
1114:
1115: 68030 was synonymous with memory protection. Also: set
1116:
1117: mcpu correctly.
1118:
1119: main.c:
1120:
1121: Checked to see if we're called "MINTNP.PRG"; if so, turn off
1122:
1123: memory protection automatically. Commented out the code
1124:
1125: for automatically turning MP off on 1 meg machines.
1126:
1127:
1128:
1129: version 1.01
1130:
1131:
1132:
1133: main.c,intr.spp:
1134:
1135: Use init_tail for the temporary stack (saves us 128 bytes of bss,
1136:
1137: oh boy).
1138:
1139: main.c:
1140:
1141: If less than 1 megabyte is free, turn off memory protection
1142:
1143: automatically.
1144:
1145: mem.h:
1146:
1147: If there's no memory protection, do all ROUNDing etc. to
1148:
1149: 16 byte boundaries rather than 8K page boundaries.
1150:
1151: mem.c:
1152:
1153: Added a check for the ability to move screen RAM; evidently
1154:
1155: some boards use ST RAM but still don't allow Setscreen()
1156:
1157: to work.
1158:
1159: all over the place: [email protected]
1160:
1161: Cleaned up the code for PureC compatibility.
1162:
1163: all over the place: [email protected]
1164:
1165: Cleaned up the code for Lattice compatibility.
1166:
1167: fasttext.c: [email protected]
1168:
1169: Sped up by special casing some of the gotoxy() calls, and
1170:
1171: also allowed 8 pixel high characters in monochrome mode.
1172:
1173: dosdir.c: [email protected]
1174:
1175: Allow Frename() to succeed on symbolic links.
1176:
1177: signal.c: [email protected]
1178:
1179: Save processor context stuf in the reserved BIOS area even for
1180:
1181: bus errors with memory protection on.
1182:
1183: dosfile.c: [email protected]
1184:
1185: Initialize the exception file descriptors to 0, in anticipation
1186:
1187: of future use of this Fselect feature.
1188:
1189: dosfile.c: [email protected]
1190:
1191: Allow pipes to be opened and written to with O_APPEND mode.
1192:
1193: version.h:
1194:
1195: Got rid of the PATCHLEVEL define. Now that I've finally
1196:
1197: checked everything into RCS, it's much easier to just bump
1198:
1199: up the version numbers on each release.
1200:
1201:
1202:
1203: version 1.00
1204:
1205:
1206:
1207: welcome.c,version.h:
1208:
1209: Sigh. This is MultiTOS 1.0's MiNT, so even though I don't
1210:
1211: consider it "finished", I'm changing the version number to
1212:
1213: 1.0. At least it's no worse than TOS 1.0 :-).
1214:
1215: memprot.c:
1216:
1217: We want to flush the ATC cache, *not* the CPU cache. Thanks
1218:
1219: for pointing this out, Alex.
1220:
1221: bios.c:
1222:
1223: Fixed a problem with Speedo GDOS; if the printer's buffer was
1224:
1225: full, Bconout(2,...) would do a context switch, which is not
1226:
1227: a good thing for Speedo.
1228:
1229:
1230:
1231: version 0.99
1232:
1233:
1234:
1235: PATCHLEVEL 2::
1236:
1237:
1238:
1239: main.c:
1240:
1241: Big bug fix -- the do_exec_os routine was being called with a
1242:
1243: basepage that occupied all of memory, so that the Pexec(200) it
1244:
1245: did was failing due to insufficient memory. Now we Mshrink the
1246:
1247: basepage; this also necessitates fixing up the stack pointer.
1248:
1249: main.c:
1250:
1251: Handle mint.cnf files that don't end in a carriage return/line feed
1252:
1253: combination.
1254:
1255: filesys.c:
1256:
1257: New path parsing code to correct a bug in the way symbolic
1258:
1259: links were being handled on loadable file systems.
1260:
1261:
1262:
1263: PATCHLEVEL 1::
1264:
1265:
1266:
1267: debug.c:
1268:
1269: Made the default debugging level give ALERT messages.
1270:
1271: dosfile.c:
1272:
1273: Corrected a bug in the way global file handles are closed.
1274:
1275:
1276:
1277: PATCHLEVEL 0::
1278:
1279:
1280:
1281: dosmem.c:
1282:
1283: Made it so that overlay Pexec modes (e.g. 200) set up
1284:
1285: the basepage to preserve the same "parent".
1286:
1287: main.c:
1288:
1289: Added in a kludge so that if we're starting GEM from a file
1290:
1291: (e.g. gem.sys) then we do it via the exec_os vector. I hope
1292:
1293: this makes the Codeheads happy :-).
1294:
1295: dosmem.c,tty.c:
1296:
1297: Backed out entropy's and schwab's changes. Random programs
1298:
1299: were getting stopped under MultiTOS because of them; I can't
1300:
1301: find the cause, so let's go back to something that worked
1302:
1303: (if suboptimally).
1304:
1305: main.c:
1306:
1307: Fixed a silly initialization error: we should not
1308:
1309: assume a default language, we should get it from
1310:
1311: the ROMs.
1312:
1313: dosdir.c: [email protected]
1314:
1315: Extended Dlock: if bit 1 of the mode is set, then the
1316:
1317: process id of the process using the drive is returned
1318:
1319: instead of ELOCKED or EACCDN; this allows for more
1320:
1321: informative error messages.
1322:
1323: welcome.c:
1324:
1325: Updated the copyright notice.
1326:
1327:
1328:
1329: version 0.98
1330:
1331:
1332:
1333: PATCHLEVEL 4::
1334:
1335:
1336:
1337: dosmem.c,tty.c: [email protected]
1338:
1339: Corrected some silliness in the job control code.
1340:
1341:
1342:
1343: PATCHLEVEL 3::
1344:
1345:
1346:
1347: xbios.c:
1348:
1349: Took out the ONLY030 optimization; it didn't work correctly
1350:
1351: (I can't see any reason why it shouldn't have worked, but
1352:
1353: it didn't; perhaps a compiler bug bit us?)
1354:
1355:
1356:
1357: PATCHLEVEL 2::
1358:
1359:
1360:
1361: main.c:
1362:
1363: Changed magic shift key to LEFT shift key.
1364:
1365: filesys.c:
1366:
1367: Make loaded .XFS files go into supervisor accessible
1368:
1369: memory.
1370:
1371: welcome.c,main.c:
1372:
1373: Ask user in her own language whether or not to boot if the
1374:
1375: kernel is a MultiTOS one and she held down the shift key.
1376:
1377: filesys.c:
1378:
1379: Relax O_COMPAT mode opens somewhat so that any
1380:
1381: number of processes can open the file for reading,
1382:
1383: as long as no more than 1 has it open for writing.
1384:
1385: ALSO: make sure O_EXEC gets treated the same as O_RDONLY.
1386:
1387: dosfile.c:
1388:
1389: Change TRACE() to TRACELOW() on Fread and Fwrite.
1390:
1391: tosfs.c:
1392:
1393: Went back to old method of doing tosfs.c; this is
1394:
1395: better tested and safer.
1396:
1397: dos.c:
1398:
1399: New system call, Salert(msg), for doing an alert message.
1400:
1401: debug.c:
1402:
1403: Terminate messages written to the alert pipe with a 0.
1404:
1405: Also: pour them into alert boxes so that programs like
1406:
1407: sysalert don't have so much to do.
1408:
1409:
1410:
1411: PATCHLEVEL 1::
1412:
1413:
1414:
1415: fasttext.c: ++shenson
1416:
1417: Corrected the quote_putch function.
1418:
1419: dosdir.c:
1420:
1421: Allow Dfree(n) to work if "n" is a big number (e.g. BIOSDRV)
1422:
1423: and the corresponding pseudo-drive is a current or root directory
1424:
1425: of the current process.
1426:
1427: pipefs.c: [email protected]
1428:
1429: Return a new error number, EPIPE, for writes to broken pipes.
1430:
1431: tty.c: [email protected]
1432:
1433: If a tty loses its owner, the next process to do i/o to it
1434:
1435: will become the owner.
1436:
1437: dosfile.c: [email protected]
1438:
1439: FA_RDONLY doesn't mean "read only" on the process file system,
1440:
1441: so allow such processes to be opened for writing.
1442:
1443:
1444:
1445: PATCHLEVEL 0::
1446:
1447:
1448:
1449: xbios.c:
1450:
1451: Fixed Supexec to pass the function pointer on the stack, too
1452:
1453: (just as TOS does). This is still undocumented behaviour,
1454:
1455: so you rely on it at your own risk.
1456:
1457: xbios.c: [email protected]
1458:
1459: Applied a fix for Rsconf() with TOS 1.04, and made the
1460:
1461: old TOS Rsconf stuff #ifndef ONLY030.
1462:
1463: proc.c,dosmem.c:
1464:
1465: Wrap all calls to add_q/rm_q in spl7(), so that the
1466:
1467: wakeselect() function truly can be called from
1468:
1469: interrupt code.
1470:
1471: makefile,*.spp:
1472:
1473: Make provisions for compiling an 030/040 only version
1474:
1475: of MiNT; this should be faster and smaller than the
1476:
1477: generic version.
1478:
1479: version.h:
1480:
1481: The file system interface changes warrant a new version
1482:
1483: number, so here it is.
1484:
1485:
1486:
1487: version 0.97
1488:
1489:
1490:
1491: PATCHLEVEL 3::
1492:
1493:
1494:
1495: dosdir.c,proc.c:
1496:
1497: Keep a chain of open directories, so that if a program
1498:
1499: terminates without calling closedir() we can still clean
1500:
1501: up after it. Also: allocate directory structures from
1502:
1503: kernel memory rather than user memory, so that we don't
1504:
1505: take an 8K hit on each one. PROBLEM: a bug in the mntlib
1506:
1507: readdir() function causes bus errors if memory protection
1508:
1509: is on. This is a library bug that needs to be fixed
1510:
1511: real soon now.
1512:
1513: dosmem.c:
1514:
1515: TSRs now get forced into global memory if they were running
1516:
1517: privately; this should make things easier for users who
1518:
1519: forgot to change prgflags on their TSR programs.
1520:
1521: filesys.c:
1522:
1523: New meaning for O_COMPAT mode: deny write access to all other
1524:
1525: processes.
1526:
1527: tosfs.c:
1528:
1529: Added a define to turn on/off the RO_FASCISM code. Personally,
1530:
1531: I think it should always be on.
1532:
1533: dosdir.c,filesys.c,file.h,*fs.c:
1534:
1535: New file system functions, release() and dupcookie(), so that
1536:
1537: the kernel can inform file systems when it is finished
1538:
1539: with a file cookie; networked file systems will be very
1540:
1541: happy about this.
1542:
1543:
1544:
1545: PATCHLEVEL 2::
1546:
1547:
1548:
1549: procfs.c:
1550:
1551: Moved the memory protection checks for proc_read and
1552:
1553: proc_write to a separate function in memprot.c.
1554:
1555: dosfile.c:
1556:
1557: Remove the old compatibility code for Fcntl(F_SETFL,...).
1558:
1559: (Actually, it's commented out, so we can put it back in
1560:
1561: if we need to.)
1562:
1563: signal.c:
1564:
1565: Change default behaviour for SIGFPE (which is raised
1566:
1567: by division by 0) to "ignore", same as TOS.
1568:
1569: dosdir.c:
1570:
1571: Made Dgetcwd() use the new size parameter, so that it
1572:
1573: works as advertised.
1574:
1575: file.h, *fs.c:
1576:
1577: Provide a "size" parameter for the getname() file system
1578:
1579: function, so that we can do Dgetpath() of arbitrary length
1580:
1581: paths.
1582:
1583: util.c:
1584:
1585: BIG_MEM_DUMP is a nasty thing for users to get;
1586:
1587: so we shouldn't do it on all failed mallocs!
1588:
1589:
1590:
1591: PATCHLEVEL 1::
1592:
1593:
1594:
1595: proc.c:
1596:
1597: Plugged a memory leak (dispose_proc was failing to
1598:
1599: free the process table memory, because fork_proc
1600:
1601: was zeroing that field in the PROC structure).
1602:
1603: main.c:
1604:
1605: Fixed MAXMEM= (it was setting the maximum CPU time,
1606:
1607: not the maximum memory -- I thought I tested this!)
1608:
1609:
1610:
1611: PATCHLEVEL 0::
1612:
1613:
1614:
1615: main.c:
1616:
1617: Added MAXMEM= and SLICES= variables for mint.cnf.
1618:
1619: bios.c:
1620:
1621: Fixed Setexc so that if the new vector is in a global
1622:
1623: region, the region is re-marked to be super.
1624:
1625: dosmem.c:
1626:
1627: Fixed a race condition with memory protection and
1628:
1629: Pexec(100,...) (if the new process exited early,
1630:
1631: the old process might still try to access it).
1632:
1633: realloc.c:
1634:
1635: New file, for doing the Srealloc system call (for
1636:
1637: Falcon TOS).
1638:
1639: *.*:
1640:
1641: Merged in Allan's memory protection and debugging
1642:
1643: code. New files: memprot.c, nalloc2.c, welcome.c.
1644:
1645:
1646:
1.1.1.2 root 1647: version 0.96
1648:
1649:
1650:
1651: PATCHLEVEL 14::
1652:
1653:
1654:
1655: tosfs.c:
1656:
1657: Aaargh! Just after cutting this patch I discovered
1658:
1659: that I had the test backwards.
1660:
1661:
1662:
1663: PATCHLEVEL 13::
1664:
1665:
1666:
1667: tosfs.c:
1668:
1669: Changed so that Fsfirst()/Fsnext() always return
1670:
1671: upper case, regardless of domain. (MiNT aware
1672:
1673: programs should use the new directory functions.)
1674:
1675: dosdir.c: ++akiernan
1676:
1677: Got rid of the special hack for drive x:, since
1678:
1679: drive x: no longer exists.
1680:
1681: asm.y: ++akiernan
1682:
1683: Cleaned up a bit.
1684:
1685: *.c: ++julian
1686:
1687: Some minor patches for PureC.
1688:
1689: dosdir.c: ++julian
1690:
1691: New system call, Dgetcwd(), with a 'size' parameter;
1692:
1693: this doesn't do anything different from Dgetpath
1694:
1695: now, but it's there for future expansion.
1696:
1697:
1698:
1699: PATCHLEVEL 12::
1700:
1701:
1702:
1703: version.h:
1704:
1705: Update the patchlevel correctly.
1706:
1707: pipefs.c,dosfile.c:
1708:
1709: Keep the Unix style semantics for pipes created with
1710:
1711: Fpipe, but not for other fifo's (which by default will
1712:
1713: continue to read the number of bytes requested).
1714:
1715:
1716:
1717: PATCHLEVEL 11::
1718:
1719:
1720:
1721: tty.c: ++schwab
1722:
1723: Support word-erase and quote-next-char.
1724:
1725: fasttext.c: ++schwab
1726:
1727: support fgcol/bgcol
1728:
1729: (screen_ioctl): tty_ioctl is now called by parent by default if
1730:
1731: EINVFN
1732:
1733: signal.c (check_sigs): ++schwab
1734:
1735: Use an int to index signals, not a long
1736:
1737: biosfs.c (bios_getxattr): ++schwab
1738:
1739: u:\dev\stdin, etc., get the attributes of
1740:
1741: the associated files
1742:
1743: dos.c (p_setuid, p_setgid): ++schwab
1744:
1745: Allow setting to the current real [gu]id
1746:
1747: bios.c (checkkeys): [email protected]
1748:
1749: Keys read by do_func_key should not be
1750:
1751: interpreted (esp. UNDO -> SIGQUIT). also recheck shift status
1752:
1753: since do_func_key may take some time
1754:
1755: xbios.c: [email protected]
1756:
1757: Added code to support old (tos < 1.4) Rsconf()
1758:
1759: semantics.
1760:
1761: mem.c:
1762:
1763: Changed so that attempts to execute a shared text program
1764:
1765: which has data/bss references in the text segment will
1766:
1767: get an ENOEXEC error instead of ENSMEM.
1768:
1769: *.c: [email protected]
1770:
1771: Applied Julian's purec patches.
1772:
1773:
1774:
1775: PATCHLEVEL 10::
1776:
1777:
1778:
1779: pipefs.c:
1780:
1781: Changed so that read() on a pipe will return as
1782:
1783: soon as some data is available; this is how
1784:
1785: all Unixes work.
1786:
1787: *.c:
1788:
1789: Applied Julian's patches to allow compilation with
1790:
1791: PureC.
1792:
1793: main.c:
1794:
1795: New variable, MAXMEM=, for setting maximum memory
1796:
1797: size (in K).
1798:
1799: main.c:
1800:
1801: Removed PSEUDODRIVES= command, since "alias" has
1802:
1803: replaced it.
1804:
1805: util.c:
1806:
1807: Changed atoi to atol; it's more generally useful.
1808:
1809: asmtrans:
1810:
1811: Applied Howard's patches; in particular, made %ifdef
1812:
1813: apply to other commands (like %define) as well as to
1814:
1815: code generation.
1816:
1817:
1818:
1819: PATCHLEVEL 9::
1820:
1821:
1822:
1823: asmtrans:
1824:
1825: Cleaned up a bit more for cross-compilation.
1826:
1827: intr.spp:
1828:
1829: in_kernel can be set while the process is in user mode
1830:
1831: (if the critical error handler calls GEM)
1832:
1833: syscall.spp:
1834:
1835: Get rid of some more magic numbers.
1836:
1837: bios.c:
1838:
1839: While fixing the mtt bug, a new bug was introduced. So,
1840:
1841: let's try again :-).
1842:
1843:
1844:
1845: PATCHLEVEL 8::
1846:
1847:
1848:
1849: bios.c:
1850:
1851: Fixed a particularly silly bug in bios.c: in do_bconin(),
1852:
1853: r was being returned without being initialized. Why didn't
1854:
1855: gcc catch this?
1856:
1857: *.c:
1858:
1859: Applied Alex's patches for Lattice, and Julian's patches for
1860:
1861: Pure C.
1862:
1863: signal.c:
1864:
1865: Kill programs with p_term() instead of terminate() (except for
1866:
1867: signal SIGKILL) so as to allow them a chance to clean up via
1868:
1869: the term_vec vector.
1870:
1871: shmfs.c:
1872:
1873: Allow Fattrib() call to change the read-only
1874:
1875: bit. Made Fxattr() return the correct mode
1876:
1877: for shared memory files.
1878:
1879: main.c, fasttext.c:
1880:
1881: Allowed HARDSCROLL=AUTO to set the number of
1882:
1883: lines of scrolling to the current screen size.
1884:
1885: syscall.spp, inline.h:
1886:
1887: New functions, callout2() and callout1(), with
1888:
1889: less overhead; used by bios.c to call the
1890:
1891: Bconxxx functions.
1892:
1893: bios.c:
1894:
1895: Changed calls to Bconxxx functions into
1896:
1897: jumps through the defined vector table in
1898:
1899: low memory, when this is possible (TOS 1.0
1900:
1901: doesn't have the table).
1902:
1903: asmtrans, *.spp:
1904:
1905: Added %ifdef, %else, and %endif commands (for
1906:
1907: future expansion). Removed the requirement that
1908:
1909: macros to be expanded be delimited by % signs,
1910:
1911: and cleaned up the definitions. Changed
1912:
1913: "SECTION FOO" to "FOO". Added -purec compilation
1914:
1915: option.
1916:
1917: filesys.c:
1918:
1919: Fixed a bug in changedrv (there was no
1920:
1921: check to see if "d" was a BIOS drive before
1922:
1923: aliasdrv[d] was tested).
1924:
1925:
1926:
1927: PATCHLEVEL 7::
1928:
1929:
1930:
1931: biosfs.c,fasttext.c:
1932:
1933: Fixed incorrect code that assumed TCURSON
1934:
1935: was 0.
1936:
1937: makefile:
1938:
1939: Fixed Makefile to work with older versions
1940:
1941: of gmake, as well as generic make programs.
1942:
1943:
1944:
1945: PATCHLEVEL 6::
1946:
1947:
1948:
1949: *.s:
1950:
1951: Radical overhaul of how assembly language is
1952:
1953: handled. We now provide 2 utility programs,
1954:
1955: "genmagic" (for producing symbolic names for
1956:
1957: various offsets into structures) and "asmtrans"
1958:
1959: (for processing .spp files, replacing macros
1960:
1961: defined by "genmagic" and optionally translating
1962:
1963: Motorola to MIT syntax). Now we only have to
1964:
1965: maintain the .spp files; the Lattice and gcc
1966:
1967: versions of the .s files are generated automatically,
1968:
1969: and as a side benefit we can get rid of magic
1970:
1971: numbers in the .s files and be sure that if we
1972:
1973: change proc.h, the assembly language will be
1974:
1975: updated properly.
1976:
1977: main.c,filesys.c,file.h:
1978:
1979: Added a new command to mint.cnf, "alias", to
1980:
1981: enable aliases for pseudo (and other) drives
1982:
1983: to be created. Also, deleted drives q:, v:, and
1984:
1985: x:. Programs should no longer be using these;
1986:
1987: if they are, users can put things like
1988:
1989: "alias q: u:\pipe" into mint.cnf.
1990:
1991: file.h:
1992:
1993: Fixed the definitions for TCURSON and TCURSOFF.
1994:
1995: console.c:
1996:
1997: Moved the handle checks in file_* functions into
1998:
1999: separate functions, since for example we *know*
2000:
2001: that handle 0 falls within the legal range; this
2002:
2003: should remove a bit of overhead on BIOS and
2004:
2005: single character GEMDOS I/O.
2006:
2007: main.c:
2008:
2009: Got rid of the zeroexit() code; since we now
2010:
2011: allow the whole boot process to be aborted by
2012:
2013: right shift.
2014:
2015: pipefs.c:
2016:
2017: Allow Cursconf() to work on TOSWIN pipes.
2018:
2019: mem.c:
2020:
2021: Check the date and time of shared text regions
2022:
2023: before re-using them.
2024:
2025: bios.c,syscall.s:
2026:
2027: Changed the trap #13 entry point to allow quick
2028:
2029: evaluation of BIOS functions that don't need
2030:
2031: the full context save/restore done.
2032:
2033: everywhere:
2034:
2035: Macro-ize TRACE and DEBUG so that it's possible
2036:
2037: to produce a smaller version of MiNT without
2038:
2039: them.
2040:
2041: biosfs.c:
2042:
2043: Don't check for keyboard presses after every
2044:
2045: BIOS write, it's too time consuming.
2046:
2047:
2048:
2049: PATCHLEVEL 5::
2050:
2051:
2052:
2053: mem.c:
2054:
2055: Another bug: we shouldn't do the dLibs Pexec
2056:
2057: hack on the first process we start up, because
2058:
2059: it means messing with the MiNT basepage (which
2060:
2061: is not ours to mess with, it's TOS's).
2062:
2063: main.c:
2064:
2065: Fixed bug in enter_kernel (rootproc->base is no
2066:
2067: longer necessarily MiNT's basepage).
2068:
2069: various places:
2070:
2071: Tried to remove gcc warnings about constant
2072:
2073: expression overflow.
2074:
2075: syscall.s:
2076:
2077: Applied Alex's patch to allow trace mode to work
2078:
2079: with non-MiNT debuggers.
2080:
2081: various places:
2082:
2083: Applied Alex's patches to get rid of Lattice warnings
2084:
2085: about unneeded assignments.
2086:
2087: mem.c:
2088:
2089: Added extra traces to exec_region() in an effort to
2090:
2091: track down the mysterious crash problems that others
2092:
2093: have had.
2094:
2095:
2096:
2097: PATCHLEVEL 4::
2098:
2099:
2100:
2101: dosmem.c:
2102:
2103: Made do_vfork not bother to save shared text regions.
2104:
2105: bios.c:
2106:
2107: Made Rwabs respect Dlock.
2108:
2109: tosfs.c:
2110:
2111: Made the TOS media change routines lazier (actual
2112:
2113: disk access is deferred until the disk is next
2114:
2115: needed).
2116:
2117: main.c:
2118:
2119: Applied Alex's patches for setenv.
2120:
2121: everywhere:
2122:
2123: Applied Julian's patches for Pure/Turbo C. The
2124:
2125: resulting kernel doesn't actually work yet, but
2126:
2127: at least we don't get so many error messages when
2128:
2129: compiling. (Who needs lint when you have three
2130:
2131: fussy ANSI compilers?)
2132:
2133: mint.h:
2134:
2135: Oops; we should have had #include "inline.h" here.
2136:
2137: inline.h:
2138:
2139: Applied jrb's GCC patches, and Alex's Lattice patches.
2140:
2141:
2142:
2143: PATCHLEVEL 3::
2144:
2145:
2146:
2147: bios.c:
2148:
2149: Some optimizations in bflush(). I tried something like
2150:
2151: this before, but messed up the terminal output modes.
2152:
2153: Let's hope I got it right this time. Also:
2154:
2155: removed some dependencies on sizeof(int).
2156:
2157: makefile:
2158:
2159: Tried -O2 instead of -O. It seems to work, so let's
2160:
2161: leave it on for now.
2162:
2163: inline.h:
2164:
2165: New file to keep short, inlined versions of frequently
2166:
2167: called functions.
2168:
2169: intr.s:
2170:
2171: Check the floppy disk locking flag before doing a
2172:
2173: pre-emption. Not really necessary now, but it doesn't
2174:
2175: hurt to be careful.
2176:
2177: dosfile.c,*fs.c:
2178:
2179: Applied Alex's F_SETLKW patches. If Alex isn't careful,
2180:
2181: he's going to make MiNT Posix compliant on us :-).
2182:
2183: dosmem.c:
2184:
2185: Applied Alex's patches to add a Pwaitpid system call.
2186:
2187: main.c:
2188:
2189: If running from the AUTO folder, adjust the basepage
2190:
2191: chains so that MiNT is invisible to programs that
2192:
2193: (incorrectly!) make assumptions about basepages.
2194:
2195: proc.c:
2196:
2197: Some optimizations in do_wakeup.
2198:
2199: filesys.c:
2200:
2201: Don't call (*fs->dskchng)() twice when a disk
2202:
2203: change is detected.
2204:
2205: main.c:
2206:
2207: Make sure the _resvalid system variable has the
2208:
2209: correct magic number in it for indicating that
2210:
2211: we want to catch the reset.
2212:
2213:
2214:
2215: PATCHLEVEL 2::
2216:
2217:
2218:
2219: dosdir.c:
2220:
2221: Really forbid deleting other process' current
2222:
2223: directories (the actual "return EACCDN" was missing!)
2224:
2225: proc.c:
2226:
2227: Inlined the check_time() function, and re-arranged
2228:
2229: do_wakeup_things a bit to be more efficient.
2230:
2231: syscall.s:
2232:
2233: Streamlined a bit; things are now kept in registers
2234:
2235: where possible.
2236:
2237: filesys.c:
2238:
2239: When loading file systems at startup time, don't
2240:
2241: check the \MINT directory if that's the current one.
2242:
2243: filesys.c:
2244:
2245: After a media change, instead of throwing away all
2246:
2247: handles that pointed to the changed drive, make
2248:
2249: them point to /dev/null instead, so that they
2250:
2251: won't be re-used until the user explicitly closes
2252:
2253: them.
2254:
2255: dosdir.c:
2256:
2257: Allow Dlock() to succeed even if there is an
2258:
2259: unfinished Fsfirst/Fsnext sequence on the drive.
2260:
2261: mem.c:
2262:
2263: Allow relocations outside of the program load area;
2264:
2265: apparently, some programs actually need these.
2266:
2267: mem.c:
2268:
2269: Insert some sanity checks on memory addresses.
2270:
2271: signal.c:
2272:
2273: Restart check_sigs if the process stopped because of
2274:
2275: a signal, since the parent may reset the set of
2276:
2277: pending signals.
2278:
2279: cpu.s:
2280:
2281: New file from Alex, to control caching &c.
2282:
2283: various places:
2284:
2285: More debugging patches from Alex, to make attaching
2286:
2287: to existing processes work correctly.
2288:
2289:
2290:
2291: PATCHLEVEL 1::
2292:
2293:
2294:
2295: various places:
2296:
2297: Cleaned up the debugging stuff a bit. For example, if a
2298:
2299: process does PTRACESFLAGS on itself, it's the same
2300:
2301: as if the parent did; also, if the process does a
2302:
2303: Pexec with overlay (i.e. Unix exec()) then it stops
2304:
2305: before its first instruction. This makes emulating
2306:
2307: the Unix ptrace() system call much easier.
2308:
2309:
2310:
2311: PATCHLEVEL 0::
2312:
2313:
2314:
2315: biosfs.c:
2316:
2317: Changed Fcntl TIOCISPEED/TIOCOSPEED to return the
2318:
2319: next lowest legal baud rate if an illegal one is
2320:
2321: specified.
2322:
2323: filesys.c:
2324:
2325: Fix a bug that would cause an infinite loop if a
2326:
2327: bad .XFS format is encountered.
2328:
2329: mem.c,mem.h,dosmem.c:
2330:
2331: Implemented shared text; if the appropriate bit
2332:
2333: (for now, 0x800) in the program header is set, then
2334:
2335: the loader will set up a shared text region for
2336:
2337: the program, and subsequent executions of it will
2338:
2339: run out of the same text segment. Note that this
2340:
2341: does require appropriate compiler support!
2342:
2343: filesys.c:
2344:
2345: Fixed bug in the way directory searches are closed
2346:
2347: after a media change.
2348:
2349: biosfs.c,intr.s:
2350:
2351: Applied Julian's third mouse button patch for
2352:
2353: /dev/mouse.
2354:
2355: *.s:
2356:
2357: Applied Alex's debugging patches. Also: wrote a
2358:
2359: Motorola->MIT syntax converter, so that we only
2360:
2361: have to maintain the stuff in the "asm" directory.
2362:
2363: signal.c,proc.h,procfs.c,etc.:
2364:
2365: Applied Alex's debugging patches, with a few
2366:
2367: slight modifications.
2368:
2369:
2370:
1.1 root 2371: version 0.95
2372:
2373:
2374:
1.1.1.2 root 2375: PATCHLEVEL14::
2376:
2377:
2378:
2379:
2380:
2381: filesys.c:
2382:
2383: Check for the existence of the \MINT directory before
2384:
2385: trying to load .XFS files from there.
2386:
2387:
2388:
2389: --- patchlevel 13 released to the public ---
2390:
2391:
2392:
1.1 root 2393: PATCHLEVEL13::
2394:
2395:
2396:
2397: proto.h,filesys.c:
2398:
2399: Added Alex's patches for Lattice.
2400:
2401:
2402:
2403: PATCHLEVEL12::
2404:
2405:
2406:
2407: dosdir.c:
2408:
2409: Fsnext() on symbolic links was broken, because
2410:
2411: relpath2cookie no longer checks drive letters
2412:
1.1.1.3 root 2413: unless "depth" is > 0. Fixed this. (why did
2414:
2415: we change relpath2cookie that way?? this is
2416:
2417: changed back in 0.99pl2)
1.1 root 2418:
2419: main.c,filesys.c:
2420:
2421: Added support for putting the mint.cnf file
2422:
2423: and any *.XFS files into the directory \mint.
2424:
2425: dos.c:
2426:
2427: Added Pgeteuid() and Pgetegid() system calls.
2428:
2429: main.c:
2430:
2431: Fixed the "set current directory" code to
2432:
2433: work properly.
2434:
2435: main.c:
2436:
2437: Added a sanity check; if GEM is already running,
2438:
2439: don't try to run it again.
2440:
2441: procfs.c:
2442:
2443: Added FIONWRITE and FIONREAD ioctl calls.
2444:
2445: proc.c,bios.c:
2446:
2447: Fixed the type of the critical error handler.
2448:
2449: dosfile.c,file.h,proc.c:
2450:
2451: Added Alex's patches for O_APPEND and O_NOINHERIT.
2452:
2453: shmfs.c:
2454:
2455: Fixed lseek() on shared memory segments, and added
2456:
2457: FIONWRITE and FIONREAD ioctl calls.
2458:
2459: fasttext.c:
2460:
2461: Tried once again to tame the wild cursor.
2462:
2463: dosmem.c,proc.c:
2464:
2465: Modified process startup code so that PROC structures are no
2466:
2467: longer kept forever by the kernel (which should help alleviate
2468:
2469: memory fragmentation problems a bit).
2470:
2471:
2472:
2473: PATCHLEVEL11::
2474:
2475:
2476:
2477: dosmem.c:
2478:
2479: Applied Alex Kiernan's SIGTRAP bug fix (and kicked myself for
2480:
2481: forgetting C's precedence rules; thanks, Alex!).
2482:
2483: filesys.c:
2484:
2485: Fixed relpath2cookie so that names like "C:\Z:" aren't
2486:
2487: interpreted as referring to drive Z:.
2488:
2489: fasttext.c:
2490:
2491: Restored the "turn on cursor when opening()" code, because
2492:
2493: without it the fasttext driver and BIOS aren't in sync.
2494:
2495: main.c:
2496:
2497: Moved the check for the presence of an already existing MiNT
2498:
2499: cookie to earlier in the initialization process, so that
2500:
2501: the error message can be printed properly.
2502:
2503: shmfs.c:
2504:
2505: Fixed Dpathconf() on U:\SHM (filenames are truncated automatically
2506:
2507: on that file system) and corrected the comment there.
2508:
2509: syscall.s:
2510:
2511: New function, call_aes, used to check for the presence of GEM
2512:
2513: (so we can tell whether or not we're running from the AUTO folder).
2514:
2515: main.c:
2516:
2517: Run any programs which come after mint.prg in the AUTO
2518:
2519: folder.
2520:
2521: version.h:
2522:
2523: Changed so that the patchlevel is always printed on boot-up.
2524:
2525:
2526:
2527: PATCHLEVEL10::
2528:
2529:
2530:
2531: unifs.c:
2532:
2533: Add U:\SHM as an interface for shared memory.
2534:
2535: shmfs.c:
2536:
2537: New file system for doing shared memory.
2538:
2539: xbios.c:
2540:
2541: Fixed Bconmap() to always return an error if the underlying
2542:
2543: TOS doesn't support Bconmap.
2544:
2545: main.c:
2546:
2547: Fixed a bug in the argument parsing code for the "exec"
2548:
2549: command in mint.cnf.
2550:
2551: dosdir.c:
2552:
2553: Changed Dlock() to return ELOCKED if an attempt is made to
2554:
2555: lock a drive that's already locked, and ENSLOCK if an attempt
2556:
2557: is made to remove a non-existent lock.
2558:
2559: version.h:
2560:
2561: I forgot again to update this. Aargh!
2562:
2563:
2564:
2565: PATCHLEVEL9::
2566:
2567:
2568:
2569: mem.c,mem.h:
2570:
2571: Align everything on 16 byte boundaries.
2572:
2573: mem.c,dosmem.c:
2574:
2575: Actually fix the "memory being allocated twice" bug.
2576:
2577: The problem was that setting m->links to 0 before calling
2578:
2579: attach_region was a no-no.
2580:
2581:
2582:
2583: PATCHLEVEL8::
2584:
2585:
2586:
2587: mem.c:
2588:
2589: Attempt to fix the strange "memory being allocated
2590:
2591: twice" bug.
2592:
2593: tosfs.c:
2594:
2595: Truncating names at 14 characters came *before* the
2596:
2597: 8.3 kludge, which meant that long names were being
2598:
2599: interpreted incorrectly (e.g. gcc-cc1plus.ttp was
2600:
2601: becoming "gcc-cc1p.tt"). Temporary kludge: only
2602:
2603: truncate at 32 characters. Long term solution:
2604:
2605: re-write this code to do the 8.3 truncation at the
2606:
2607: same time as the truncation.
2608:
2609: main.c, proc.h:
2610:
2611: Provide a more explicit type for criticerr.
2612:
2613: proc.c:
2614:
2615: Don't make _logbase per-process if hardware scrolling
2616:
2617: is active, since this makes for all kinds of weirdness!
2618:
2619: mem.c:
2620:
2621: Allow NULL commandline to be the same as an empty
2622:
2623: string. (It was acting this way before, due to the MiNT
2624:
2625: library strncpy; now that we use our own strncpy some
2626:
2627: programs were passing funny arguments.)
2628:
2629: dosmem.c:
2630:
2631: Provide a more detailed trace of Pexec activity.
2632:
2633: mem.c:
2634:
2635: Added a sanity check in get_region().
2636:
2637: proc.c:
2638:
2639: Set the time/date stamp of process 0 to the
2640:
2641: date & time when the system was booted.
2642:
2643: fasttext.c:
2644:
2645: Commented out the code that turns the cursor
2646:
2647: on when u:\dev\fasttext is opened.
2648:
2649: tty.c:
2650:
2651: Unsigned characters are always >= 0, so we
2652:
2653: don't need to check this.
2654:
2655:
2656:
2657: PATCHLEVEL7::
2658:
2659:
2660:
2661: makefile.lcc,mintlc.prj:
2662:
2663: Added Alex's patches.
2664:
2665: assert.h:
2666:
2667: Added Alex's patch to cast the result to void.
2668:
2669: filesys.c:
2670:
2671: Make sure the file system media change routine
2672:
2673: is called every time a disk change is forced;
2674:
2675: this corrects the Dlock() bug (it wasn't forcing
2676:
2677: media change as it should have).
2678:
2679: version.h:
2680:
2681: Oops! I forgot to increment this for pl6, so
2682:
2683: it jumps by 2 this time.
2684:
2685:
2686:
2687: PATCHLEVEL6::
2688:
2689:
2690:
2691: biosfs.c,pipefs.c,tty.c:
2692:
2693: New Fcntl calls for controlling terminal baud
2694:
2695: rates and flags such as parity and stop bits.
2696:
2697: These have been integrated with the old TIOC*
2698:
2699: calls where applicable.
2700:
2701: dosfile.c:
2702:
2703: Changed Fcntl to make a call to tty_ioctl be the
2704:
2705: default if the device is a terminal and the device
2706:
2707: ioctl routine returns EINVFN.
2708:
2709: procfs.c, proc.c:
2710:
2711: The date/time stamp of a process now shows when the
2712:
2713: process was started, rather than being the number
2714:
2715: of seconds of CPU time used.
2716:
2717: tosfs.c:
2718:
2719: Degrade an ALERT to a TRACE; there is a circumstance
2720:
2721: in which a root directory can apparently be changed,
2722:
2723: and that's when a program tries to open an empty
2724:
2725: file name. We don't need to warn the user that
2726:
2727: something is wrong in this case; we can just fail
2728:
2729: silently.
2730:
2731: proc.c:
2732:
2733: Save the logical screen base for each process.
2734:
2735: main.c,bios.c,proc.h:
2736:
2737: Made the critical error handler per-process.
2738:
2739: bios.c,syscall.s:
2740:
2741: A cleaner way of saving registers when calling
2742:
2743: functions... this wasn't really necessary, but I
2744:
2745: did it to make tracking a bug down easier.
2746:
2747: tty.c:
2748:
2749: New terminal flag, T_NOFLUSH, to suppress flushing of
2750:
2751: input when SIGINT or SIGQUIT is received.
2752:
2753: *fs.c, file.h:
2754:
2755: Added a new Dpathconf() option that tells whether or
2756:
2757: not a file system is case sensitive.
2758:
2759: dos.c:
2760:
2761: Forbid Prenice() on processes that you don't own.
2762:
2763: dosmem.c:
2764:
2765: Correct a typo that was causing terminal process groups
2766:
2767: to be incorrectly set.
2768:
2769:
2770:
2771: PATCHLEVEL5::
2772:
2773:
2774:
2775: makefile:
2776:
2777: The -DOWN_LIB declaration should have been on (actually,
2778:
2779: it was, in my copy... sorry for the mix-up).
2780:
2781: fasttext.c:
2782:
2783: Applied Alex's patch for the disappearing cursor bug.
2784:
2785: everywhere:
2786:
2787: Applied Alex's patches to add "const" declarations where
2788:
2789: appropriate, and to get rid of size_t (since if OWN_LIB
2790:
2791: is defined we use "int" instead).
2792:
2793: dosmem.c:
2794:
2795: Fixed M_KEEP to attach memory to rootproc *only* at
2796:
2797: process termination.
2798:
2799:
2800:
2801:
2802:
2803: PATCHLEVEL4::
2804:
2805:
2806:
2807: proto.h:
2808:
2809: Added prototype for do_func_key().
2810:
2811: everywhere:
2812:
2813: Applied apratt's debugging/trace patches.
2814:
2815:
2816:
2817: PATCHLEVEL3::
2818:
2819:
2820:
2821: xbios.c, biosfs.c:
2822:
2823: Change Bconmap to actually do the equivalent of an
2824:
2825: Fforce(-2, foo) call; this way, we don't need the
2826:
2827: ugly DFLTMODM kludge. (On the other hand, we introduce
2828:
2829: some new ugly kludges :-)).
2830:
2831: main.c,proc.c:
2832:
2833: Wait until everything is initialized before opening
2834:
2835: devices; this avoids bogus critical error messages from
2836:
2837: AHDI.
2838:
2839: util.c, mint.h, ctype.h:
2840:
2841: Add all sorts of utility routines (for string processing,
2842:
2843: character type recognition, and the like). This is
2844:
2845: designed to make sure that MiNT works the same regardless
2846:
2847: of what library is used to compile it. We're not quite
2848:
2849: totally independent of library yet (the startup code and
2850:
2851: <osbind.h> aren't replaced) but we're pretty close.
2852:
2853: main.c, proc.c:
2854:
2855: Initialize the current directory for the root
2856:
2857: process *after* file systems have been loaded, since
2858:
2859: otherwise the info is nuked when a new fs is loaded in.
2860:
2861: bios.c:
2862:
2863: Allow output to BIOS device 5 to be redirected along
2864:
2865: with BIOS device 2; we do this by using the MW
2866:
2867: ESC-Q control sequence to quote characters. A bit of
2868:
2869: a hack, but then, not many people use device 5.
2870:
2871: quickmov.s:
2872:
2873: Fixed two bugs in quickmove: (1) it didn't work for
2874:
2875: regions bigger than 0x00fffe00 bytes in length,
2876:
2877: and (2) it assumed the length was a multiple of 4
2878:
2879: bytes.
2880:
2881: fasttext.c:
2882:
2883: Re-arrange things a bit to get rid of a gcc 2.1 warning.
2884:
2885: dosmem.c:
2886:
2887: Change flag 0x4000 to mean "don't free the memory
2888:
2889: automatically on process termination"; explicit
2890:
2891: Mfree requests are still allowed, and after
2892:
2893: termination *any* process may Mfree the memory.
2894:
2895:
2896:
2897: PATCHLEVEL2::
2898:
2899:
2900:
2901: makefile:
2902:
2903: Remove -fcombine-regs from CFLAGS, since gcc 2.1
2904:
2905: doesn't understand it.
2906:
2907: bios.c:
2908:
2909: Ignore value returned by Bconout for the screen
2910:
2911: (many text accelerators get this wrong :-( ).
2912:
2913: dossig.c, signal.h:
2914:
2915: New system call, Psigaction(), by AGK.
2916:
2917: xbios.c:
2918:
2919: Added support for Bconmap.
2920:
2921: bios.c, biosfs.c:
2922:
2923: Rationalized the way biosfs and bios interact;
2924:
2925: no more funny device numbers are needed. Also:
2926:
2927: added support for Bconmap, and a new default
2928:
2929: modem device.
2930:
2931: pipefs.c:
2932:
2933: Applied Michael Hohmuth's patch for pipe_close (thanks,
2934:
2935: Michael!)
2936:
2937: filesys.c:
2938:
2939: Don't try to initialize all the drives at boot time; path2cookie
2940:
2941: is quite capable of initializing, and it saves having
2942:
2943: to access drive B: (for example) while booting is going
2944:
2945: on.
2946:
2947: main.c:
2948:
2949: Allow the user to avoid booting MiNT if the right shift key
2950:
2951: is held down.
2952:
2953: main.c:
2954:
2955: Added safety checking, as suggested by AKP.
2956:
2957: dosmem.c:
2958:
2959: In Mxalloc, if (mode & 0x4000) is nonzero then allocate non-freeable
2960:
2961: memory (we do this by attaching the memory to the root process).
2962:
2963: fasttext.c:
2964:
2965: Tabs should be non-destructive on the ST!
2966:
2967: proc.h:
2968:
2969: Re-arranged some things. Note that "slices" was never supposed
2970:
2971: to be visible to users! Also, added a "bconmap" variable to
2972:
2973: give the current Bconmap mapping for the process.
2974:
2975: dosdir.c:
2976:
2977: Fail Ddelete of current directories only on the current
2978:
2979: drive; for other drives, reset the current directory
2980:
2981: to the root directory. NOTE: Ddelete of a current directory
2982:
2983: is forbidden only if the directory is someone else's
2984:
2985: current directory; if it's only your current dir., you
2986:
2987: can delete it (and get automatically bumped back to
2988:
2989: root).
2990:
2991:
2992:
2993: PATCHLEVEL1::
2994:
2995:
2996:
2997: dosmem.c:
2998:
2999: Fixed a bug that caused processes with no '.' in their names
3000:
3001: to have the wrong process name.
3002:
3003: dosmem.c:
3004:
3005: In Pexec, make sure we yield to the new process so that
3006:
3007: it gets at least one timeslice to do an Mshrink().
3008:
3009: proc.c:
3010:
3011: In preempt(), don't punish processes that have buffered
3012:
3013: BIOS output and are preempted; the process of flushing the
3014:
3015: buffer may very well put them to sleep, and in any event
3016:
3017: processes doing I/O should not be considered "hogs".
3018:
3019: tosfs.c:
3020:
3021: Don't look for volume labels in opendir/readdir/lookup etc.
3022:
3023: main.c:
3024:
3025: AGK: added DEBUG_LEVEL and DEBUG_DEVNO options to mint.cnf.
3026:
3027: dossig.c:
3028:
3029: New system call (Psigpause()) courtesy of Alex Kiernan.
3030:
3031: dosmem.c:
3032:
3033: In Pexec(200,...), don't reset base->p_parent, since the
3034:
3035: "parent" in an overlay exec is oneself.
3036:
3037: tty.c:
3038:
3039: Fixed so that RAW mode reads will return all of an
3040:
3041: extended escape sequence at once, rather than waiting
3042:
3043: for the next read.
3044:
3045: dosmem.c:
3046:
3047: When terminating a process, make sure that it's "number of
3048:
3049: memory regions" is set to 0; otherwise, calls to memused()
3050:
3051: on the process (e.g. by procfs) can crash the system.
3052:
3053: dosdir.c:
3054:
3055: When removing directories, make sure that the directory
3056:
3057: isn't in use as someone's current directory (so that
3058:
3059: they don't get left in limbo).
3060:
3061: fasttext.c:
3062:
3063: Screen memory must come from ST RAM -- otherwise hardware
3064:
3065: scrolling crashes and burns. Fixed thanks to AGK.
3066:
3067: xbios.c:
3068:
3069: Moved the prototype for midiws to proto.h, and corrected the
3070:
3071: type of its argument (it should have been "int", not "short").
3072:
3073:
3074:
3075: PATCHLEVEL0::
3076:
3077:
3078:
3079: bios.c:
3080:
3081: Terminal modes weren't being set correctly in Bconout, and also
3082:
3083: weren't being set in bflush (which should have employed RAW
3084:
3085: mode output, but didn't).
3086:
3087: everywhere:
3088:
3089: Merged in Alex Kiernan's latest Lattice C patches.
3090:
3091:
3092:
3093:
3094:
3095: version 0.94
3096:
3097:
3098:
3099: PATCHLEVEL4::
3100:
3101:
3102:
3103: filesys.c:
3104:
3105: Use U:\DEV\CON for CON:, instead of V:\CON, since we're
3106:
3107: going to make drive V: go away soon.
3108:
3109: unifs.c:
3110:
3111: When looking up a drive, make sure that it has a valid file
3112:
3113: system attached to it -- otherwise, newly installed ramdisks
3114:
3115: can cause system crashes :-(.
3116:
3117: fasttext.c:
3118:
3119: Patches to make the fast text device work correctly on a TT,
3120:
3121: courtesy of Erling Henanger.
3122:
3123: main.c:
3124:
3125: Install 16 extra cookies, instead of 8, just to be friendly.
3126:
3127:
3128:
3129: PATCHLEVEL3::
3130:
3131:
3132:
3133: main.c:
3134:
3135: Allow PSEUDODRIVES=MAP to put the extra drives in
3136:
3137: _drvbits without installing new drivers for them.
3138:
3139: unifs.c:
3140:
3141: Don't rely on drvmap() to figure out what drives exist;
3142:
3143: it isn't accurate if PSEUDODRIVES=NO.
3144:
3145:
3146:
3147: PATCHLEVEL2::
3148:
3149:
3150:
3151: main.c:
3152:
3153: Added an option for turning off the BIOS routines for the
3154:
3155: pseudo-drives.
3156:
3157: filesys.c:
3158:
3159: Moved the vector set/restore code to main.c (where all the
3160:
3161: other vector stuff is).
3162:
3163: tosfs.c:
3164:
3165: If the _FLK cookie was already set when MiNT started, we
3166:
3167: pass file sharing and locking requests through to GEMDOS.
3168:
3169: main.c:
3170:
3171: Turn the cursor off when leaving, if we were started from
3172:
3173: the desktop.
3174:
3175: tosfs.c:
3176:
3177: Fixed a bug in which tos_chmode was returning an incorrect
3178:
3179: value.
3180:
3181: debug.c:
3182:
3183: Added code for octal output to sprintf().
3184:
3185: dosdir.c:
3186:
3187: Make Fsfirst() with the FA_LABEL bit set work on non-TOS
3188:
3189: file systems (via the file system readlabel function).
3190:
3191: (This used to work only when the search was restricted to
3192:
3193: labels only.)
3194:
3195: various places:
3196:
3197: Get rid of gcc 2.0 warnings.
3198:
3199:
3200:
3201: PATCHLEVEL1::
3202:
3203:
3204:
3205: file.h:
3206:
3207: Because Fmidipipe and the disk change code can close
3208:
3209: files other than the files of the current process,
3210:
3211: the device driver "close" function needs another
3212:
3213: parameter, namely the process id being closed; this
3214:
3215: allows device drivers to remove locks properly.
3216:
3217: tosfs.c:
3218:
3219: Volume labels shouldn't be found by Dreaddir().
3220:
3221: tosfs.c:
3222:
3223: Added file locking.
3224:
3225: filesys.c, main.c, file.h:
3226:
3227: New utility routine (denylock) to make implementing file
3228:
3229: locking easier for file systems.
3230:
3231:
3232:
3233: PATCHLEVEL0::
3234:
3235:
3236:
3237: tosfs.c:
3238:
3239: Canonicalize file names (i.e. convert to 8.3 format).
3240:
3241: Also, keep track of the value returned from the last
3242:
3243: readdir() call, so that a subsequent Fxattr() will take
3244:
3245: place quickly.
3246:
3247: proc.c:
3248:
3249: In sleep(), make sure interrupts are disabled while queue
3250:
3251: manipulations are occuring.
3252:
3253: bios.c:
3254:
3255: Correct a stuttering problem for ^C and similar interrupts.
3256:
3257: dosmem.c:
3258:
3259: 8 character process names weren't terminated properly.
3260:
3261: tty.c:
3262:
3263: Aaargh! Shift+cursor keys were being interpreted even when
3264:
3265: they shouldn't have been.
3266:
3267:
3268:
3269: version 0.93
3270:
3271:
3272:
3273: PATCHLEVEL6::
3274:
3275:
3276:
3277: filesys.c:
3278:
3279: Check for newly installed drives when parsing an
3280:
3281: absolute path without an explicit drive letter, as
3282:
3283: well as when looking at ones with drive letters.
3284:
3285:
3286:
3287: PATCHLEVEL5::
3288:
3289:
3290:
3291: biosfs.c, fasttext.c:
3292:
3293: Allow TIOCGWINSZ calls on the console (we use the line A
3294:
3295: variables to get the number or rows and columns).
3296:
3297: filesys.c:
3298:
3299: Fix a typo in the file system initialization checking.
3300:
3301: pipefs.c:
3302:
3303: Make "VIRGIN_PIPE" more obviously a magic value, and
3304:
3305: document it.
3306:
3307: pipefs.c:
3308:
3309: Make u:\pipe have a sensible date/time; also, make
3310:
3311: Dfree on u:\pipe return some useful statistics about
3312:
3313: the number of pipes in the system.
3314:
3315: procfs.c:
3316:
3317: u:\proc has a sensible time and date now, namely the
3318:
3319: time/date of the last process creation or destruction.
3320:
3321: dosfile.c:
3322:
3323: Fcreate() of a volume label now returns a handle to
3324:
3325: u:\dev\null.
3326:
3327: dosmem.c:
3328:
3329: Make sure the BIOSBUF buffer is flushed when terminating.
3330:
3331: main.c:
3332:
3333: There's a bug in TOS 1.4: GEM seems to assume that all
3334:
3335: memory is zero initially, and if it isn't (e.g. if a large
3336:
3337: AUTO folder program like MiNT terminates and leaves behind
3338:
3339: dirty memory) then having too many (or the wrong kind of)
3340:
3341: desk accessories can lead to a crash. This was a real bear
3342:
3343: to track down, and the work-around is very ugly; before
3344:
3345: MiNT exits we copy a short machine language subroutine into
3346:
3347: the command line, and then execute it; the routine zeros
3348:
3349: all of the TPA and then does a Pterm0().
3350:
3351: rendez.c:
3352:
3353: Change a "short" to "int" for the benefit of gcc 2.0.
3354:
3355: bios.c:
3356:
3357: Stop process dumps from stuttering.
3358:
3359: console.c:
3360:
3361: Added support for global file handles.
3362:
3363:
3364:
3365: PATCHLEVEL4::
3366:
3367:
3368:
3369: dosfile.c:
3370:
3371: In Fselect(), we have to re-validate file handles after
3372:
3373: a sleep() call, since signal handlers may close files.
3374:
3375: proc.c:
3376:
3377: Pre-allocate more PROC structures (this should help
3378:
3379: reduce memory fragmentation).
3380:
3381: tty.c, file.h:
3382:
3383: Allow cursor/function keys to send escape sequences.
3384:
3385: dosdir.c:
3386:
3387: As suggested by S. Henson: Dsetpath through a symbolic link
3388:
3389: may also require changing the current drive as well.
3390:
3391: proc.c,dos.c,timeout.c:
3392:
3393: New process scheduling algorithm, as suggested by A. Pratt.
3394:
3395: dosdir.c:
3396:
3397: Make only the low bit of Dlock() significant, for future
3398:
3399: expansion.
3400:
3401: dosfile.c:
3402:
3403: Allow Fcreate() to create a global file handle.
3404:
3405:
3406:
3407: PATCHLEVEL3::
3408:
3409:
3410:
3411: debug.c:
3412:
3413: Changed TRACE mode output so that not just any keys will
3414:
3415: start/stop output, but only Help and Undo.
3416:
3417: dosdir.c, filesys.c:
3418:
3419: Add a Dlock() system call to lock/unlock drives.
3420:
3421: filesys.c:
3422:
3423: Only initialize drives if the BIOS drive map says that
3424:
3425: they exist.
3426:
3427: dosmem.c:
3428:
3429: In Pexec, make a copy of any name we're going to use
3430:
3431: before freeing memory for overlayed programs; the old
3432:
3433: way was decidedly incorrect!
3434:
3435: dosfile.c:
3436:
3437: Allow for global file handles, so that shared libraries
3438:
3439: can use file handles that are the same for all processes.
3440:
3441: dosmem.c:
3442:
3443: In Mxalloc, ignore bits that we don't understand, to
3444:
3445: allow for future expansion.
3446:
3447: syscall.s:
3448:
3449: Fix a bug that could cause the wrong system call to be
3450:
3451: made if BIOS buffering is on (!).
3452:
3453: bios.c:
3454:
3455: Streamline the BIOS buffering mechanism, and make it
3456:
3457: more conservative about multiple processes doing Bconout
3458:
3459: output.
3460:
3461: procfs.c:
3462:
3463: Allow "foo.-1" to stand for the current process, and
3464:
3465: "foo.-2" to stand for our parent. Also, add new
3466:
3467: Fcntls for getting/setting memory flags.
3468:
3469: bios.c:
3470:
3471: In Setexc(), don't actually change any vectors, let the BIOS
3472:
3473: do it -- some TSR's install trap handlers that look for
3474:
3475: certain Setexc functions...
3476:
3477: signal.c:
3478:
3479: Allow nested Supexec() calls, or Supexec()'s from a terminate
3480:
3481: vector.
3482:
3483: procfs.c:
3484:
3485: Change the definition of PPROCADDR and add a new Fcntl,
3486:
3487: PCTXTSIZE.
3488:
3489: mem.c:
3490:
3491: In exec_region, set the stack based on the value of p_hitpa
3492:
3493: from the basepage, instead of the size of the memory
3494:
3495: region -- some programs rely on being able to set the initial
3496:
3497: stack pointer for a Pexec(4,...) this way.
3498:
3499: main.c, context.s:
3500:
3501: Avoid using 68020 instructions if we're on a 68010.
3502:
3503:
3504:
3505: PATCHLEVEL2::
3506:
3507:
3508:
3509: dos.c,proc.c:
3510:
3511: More tweaking of the priority code.
3512:
3513: main.c:
3514:
3515: Change the type of "tosbp" from char ** to BASEPAGE **,
3516:
3517: since that's what it really is.
3518:
3519: main.c:
3520:
3521: Add a special case for the Spanish TOS 1.0 act_pd variable.
3522:
3523: pipefs.c:
3524:
3525: When a writer is waiting to write a small amount of data
3526:
3527: atomically, remember to wake up readers so that they
3528:
3529: can clear the pipe!
3530:
3531: debug.c:
3532:
3533: Add the %u flag to ksprintf() (Fselect uses it, maybe others
3534:
3535: do too...)
3536:
3537: dosmem.c:
3538:
3539: In Pterm(), put the exit code onto the stack when calling
3540:
3541: etv_term. It won't be in the same place as it was for TOS,
3542:
3543: but c'est la vie. (People asked for this feature...)
3544:
3545: xbios.c:
3546:
3547: Provide a way to pass arguments to Supexec(). Note that Atari
3548:
3549: never documented that this was possible, but some people were
3550:
3551: relying on it anyway :-(. (Don't use this feature, it's only
3552:
3553: there as a compatibility hack.)
3554:
3555: main.c:
3556:
3557: In shutdown(), don't bother waiting a second for processes
3558:
3559: to finish if there are no other processes.
3560:
3561: filesys.c:
3562:
3563: Make sure that path names are null terminated after strncpy.
3564:
3565: mem.c:
3566:
3567: Fix the code to zero process registers so that it *only* zeros
3568:
3569: process registers.
3570:
3571: dosmem.c:
3572:
3573: Eliminate some redundant code.
3574:
3575: dosfile.c:
3576:
3577: Open u:\pipe\sys$pipe.xxx rather than q:\sys$pipe.xxx.
3578:
3579: main.c:
3580:
3581: Change a "malloc" into "kmalloc", and restore the #include
3582:
3583: of <minimal.h> that was inadvertently deleted.
3584:
3585: main.c:
3586:
3587: Allow parameters to be passed to the initial program specified
3588:
3589: by the INIT= string.
3590:
3591:
3592:
3593: PATCHLEVEL1::
3594:
3595:
3596:
3597: main.c:
3598:
3599: Fix a typo in shutdown() that was causing problems when
3600:
3601: MiNT was shut down while processes were active.
3602:
3603: tosfs.c:
3604:
3605: Make sure that tfullpath() returns a string less than
3606:
3607: PATH_MAX characters long.
3608:
3609: everywhere:
3610:
3611: Replace "sprintf" with "ksprintf".
3612:
3613: debug.c:
3614:
3615: Add a "ksprintf" function that's like sprintf(), but
3616:
3617: (a) doesn't have so many features (making it smaller),
3618:
3619: and more importantly (b) won't try to write more than
3620:
3621: SPRINTF_MAX characters into a buffer.
3622:
3623: filesys.c:
3624:
3625: In path2cookie, make sure we don't try to copy more than
3626:
3627: PATH_MAX characters into the fixed size buffers.
3628:
3629: dosmem.c:
3630:
3631: The "sleep if no memory available during Malloc" code
3632:
3633: was causing more problems than it solved, so it was
3634:
3635: removed. To compensate, we increase the priority of
3636:
3637: newly Pexec'd processes to make sure that they get
3638:
3639: to run.
3640:
3641: dosmem.c:
3642:
3643: Aaaargh! A very serious screw-up in terminate() was
3644:
3645: causing us to wake up processes sleeping in vfork()
3646:
3647: even when their children were still using the address
3648:
3649: space; needless to say, horrible (and mysterious)
3650:
3651: crashes could ensue. Fix: only force the parent awake
3652:
3653: if wait_q == WAIT_Q && wait_cond matches the terminating
3654:
3655: process, otherwise let post_sig() handle waking.
3656:
3657: While fixing this bug, re-arrange the terminate code
3658:
3659: to do the waking up at the very end, just in case some
3660:
3661: of the other code may cause a sleep() temporarily.
3662:
3663: bios.c:
3664:
3665: Fix the scan code for the UNDO key.
3666:
3667: fasttext.c:
3668:
3669: Use Setscreen() to set the hardware screen base, since setting
3670:
3671: the variable at 0x45e causes TOS to keep setting the screen base
3672:
3673: ad infinitum.
3674:
3675:
3676:
3677: PATCHLEVEL0::
3678:
3679:
3680:
3681: rendez.c:
3682:
3683: When waking a process up from a semaphore, check to see
3684:
3685: if it's on the WAIT_Q before trying to remove it from
3686:
3687: that queue (it might have been moved off the wait queue
3688:
3689: by a signal).
3690:
3691: bios.c:
3692:
3693: Make sure that Bconout(2,c) always succeeds, to compensate
3694:
3695: for text accelerators and other programs that don't return
3696:
3697: sensible values from Bconout. Also, ignore the Bconout
3698:
3699: return value when flushing the text output buffer.
3700:
3701:
3702:
3703: version 0.92
3704:
3705:
3706:
3707: PATCHLEVEL4::
3708:
3709:
3710:
3711: biosfs.c:
3712:
3713: Provide devices for the extra Mega STe serial ports.
3714:
3715: biosfs.c:
3716:
3717: Make the kernel info structure available to device drivers
3718:
3719: loaded with Dcntl.
3720:
3721: xbios.c:
3722:
3723: Provide a modified Midiws function so that this is also
3724:
3725: affected by Fmidipipe and Fforce.
3726:
3727: biosfs.c:
3728:
3729: Split bios_device into two device drivers; one for
3730:
3731: terminal devices, and one for plain character devices
3732:
3733: (the printer and IKBD port fall into this category).
3734:
3735: Also: provide a new Dcntl call to install plain BIOS
3736:
3737: devices in U:\DEV.
3738:
3739: tty.c:
3740:
3741: Check for terminal start/stop keys while reading.
3742:
3743: bios.c:
3744:
3745: In checkkeys, loop through all keys received since our last
3746:
3747: interrupt, rather than just checking the last thing in the
3748:
3749: buffer (as A. Pratt suggested).
3750:
3751: bios.c, tty.c:
3752:
3753: Made the "disable" character for special terminal functions
3754:
3755: (e.g. the EOF key) be 0 instead of -1; this matches System V,
3756:
3757: is more POSIX friendly, and also makes confusing function keys
3758:
3759: and ^@ less likely. (Thanks to Scott Willingham for this
3760:
3761: suggestion.)
3762:
3763: file.h, elsewhere as needed:
3764:
3765: Renamed the O_BIOS flag O_TTY (since that's what it really
3766:
3767: represents) and renamed the is_bios macro is_terminal.
3768:
3769: dosmem.c:
3770:
3771: Make Pexec mode 106 cause the child to be truly independent
3772:
3773: of the parent (i.e. it doesn't get the parent's address space,
3774:
3775: nor does the parent get the child's).
3776:
3777: biosfs.c:
3778:
3779: Allow symbolic links from U:\DEV; this lets us do things like
3780:
3781: Fsymlink("U:\PIPE\SERVERFIFO", "U:\DEV\SERVERDEV").
3782:
3783: main.c:
3784:
3785: When PRN=d:\foo is specified, create the file foo instead of
3786:
3787: just trying to open it; this makes no difference to devices,
3788:
3789: but makes redirecting printer output to a file much more
3790:
3791: convenient.
3792:
3793: unifs.c:
3794:
3795: Fix a bug that was causing Dgetpath() to return incorrect
3796:
3797: information for U:\A.
3798:
3799: timeout.c:
3800:
3801: Make sure "searchtime" is up-to-date; bconout uses this for
3802:
3803: the time out.
3804:
3805: biosfs.c:
3806:
3807: Fix bios_write so that if bconout fails, so does the write.
3808:
3809: bios.c:
3810:
3811: Fix bconout so that it doesn't hang forever if the device isn't
3812:
3813: going to be ready (e.g. the printer is off); instead, there's
3814:
3815: a 10 second timeout.
3816:
3817: main.c:
3818:
3819: Send all processes SIGTERM when we're shutting down, so that
3820:
3821: they have a chance to clean up after themselves.
3822:
3823: mint.h:
3824:
3825: The KBDVEC structure was missing the "clockvec" element (!).
3826:
3827:
3828:
3829: PATCHLEVEL3::
3830:
3831:
3832:
3833: biosfs.c:
3834:
3835: Revised to allow support for loading/removing device drivers
3836:
3837: dynamically, via a Dcntl() call.
3838:
3839: dosmem.c,mem.c,dosfile.c,file.h:
3840:
3841: Added support for setuid/setgid. These bits are only checked
3842:
3843: in Pexec modes 0, 100, and 200, i.e. the "load and go" modes.
3844:
3845: rendez.c:
3846:
3847: Added new semaphore code from Allan Pratt.
3848:
3849: main.c:
3850:
3851: New command for mint.cnf: "exec foo.prg bar" runs the program
3852:
3853: "foo" with argument(s) "bar".
3854:
3855: main.c:
3856:
3857: Use the XBRA protocol for all interrupt routines that we grab.
3858:
3859: filesys.c:
3860:
3861: When terminating MiNT, close all open files to make sure data
3862:
3863: is flushed and devices are nicely shut down.
3864:
3865: main.c:
3866:
3867: Add some more variables, such as CON and PRN for redirecting
3868:
3869: those handles, and HARDSCROLL for controlling the fast text
3870:
3871: output.
3872:
3873: proc.c:
3874:
3875: Make sure the "links" field for the prn and aux handles is
3876:
3877: correct.
3878:
3879: syscall.s, bios.c:
3880:
3881: Special case the BIOS Bconout code to try to speed it up
3882:
3883: a bit. We allow for buffering of Bconout output; the buffer
3884:
3885: is flushed on the next non-Bconout system call or context
3886:
3887: switch. This should usually work OK, but as a precaution
3888:
3889: we provide for a way to turn it off (BIOSBUF=NO in mint.cnf).
3890:
3891: fasttext.c.fasttext.h:
3892:
3893: New files for a faster text output device; changes were
3894:
3895: made to biosfs.c to support this, too.
3896:
3897: tty.c:
3898:
3899: Streamline writes to terminals by sending data to the
3900:
3901: tty device in chunks instead of 1 character at a time.
3902:
3903: dosfile.c:
3904:
3905: In do_open, always return EFILNF, never EPTHNF.
3906:
3907: dosmem.c:
3908:
3909: Use supexec() to execute the terminate vector code, to
3910:
3911: avoid duplication of signal 0 faking.
3912:
3913: xbios.c:
3914:
3915: In Supexec() does leave the kernel, so we have to make
3916:
3917: appropriate adjustments. We do this by faking a signal
3918:
3919: (signal 0) and installing the user's function as a signal
3920:
3921: handler.
3922:
3923: dosdir.c:
3924:
3925: Make Dfree(x) actually look at free space on the drive which
3926:
3927: corresponds to the current directory on <x>; this should make
3928:
3929: Dfree on drive U: much more useful.
3930:
3931: proc.h:
3932:
3933: Make the "base" field of the PROC structure have type BASEPAGE *
3934:
3935: (since that's what it is!)
3936:
3937: basepage.h, dosdir.c, dosmem.c:
3938:
3939: Support some undocumented fields in the basepage a little bit
3940:
3941: (i.e. they're read only). Programs that try to write to these
3942:
3943: fields break. Surprise, surprise.
3944:
3945:
3946:
3947: PATCHLEVEL2::
3948:
3949:
3950:
3951: dosmem.c, mem.c:
3952:
3953: The docs say that children started with Pexec(104,...) or
3954:
3955: Pexec(106,...) share the parent's memory. This was unfortunately
3956:
3957: not the case; if the parent exited and the child was running
3958:
3959: in the parent's address space (e.g. see tfork() in mntlib)
3960:
3961: the child died very soon thereafter (like when the next program
3962:
3963: comes along and clears the memory the child was running out of).
3964:
3965: This is now fixed.
3966:
3967: dos.c, proc.c, timeout.c:
3968:
3969: More tuning of the process scheduler.
3970:
3971: main.c:
3972:
3973: Added "setenv" function for mint.cnf.
3974:
3975:
3976:
3977: PATCHLEVEL1::
3978:
3979:
3980:
3981: filesys.c:
3982:
3983: In some circumstances, AHDI will keep telling us that a drive
3984:
3985: has changed, ad infinitum. To avoid this, we stop trying after
3986:
3987: 8 media changes occur in a row.
3988:
3989: util.c:
3990:
3991: Tuned the kmalloc() strategy to reduce memory fragmentation
3992:
3993: (every process will be allocating 264 bytes for its
3994:
3995: memory region maps right after creation, and this should
3996:
3997: come from kernel memory).
3998:
3999: tty.c:
4000:
4001: Under TOS, 1 byte writes should always be in raw mode.
4002:
4003: dos.c:
4004:
4005: In Syield(), we should call sleep() even if no other processes
4006:
4007: are waiting, just to make sure that signals, alarms, etc.
4008:
4009: are properly dealt with.
4010:
4011: filesys.c, dosfile.c:
4012:
4013: The media change code was wedged (actually, the fault was in
4014:
4015: do_pclose, which sometimes neglected to check to see whether
4016:
4017: or not the file had a still-valid device driver).
4018:
4019: dosmem.c:
4020:
4021: In the termination code, close "files" referring to a process
4022:
4023: *before* freeing all the process memory; that way, we don't
4024:
4025: have to worry in do_pclose() and other places about what
4026:
4027: kind of state the process is in.
4028:
4029: mem.h:
4030:
4031: Round off memory regions only to a word boundary for better
4032:
4033: TOS compatibility.
4034:
4035:
4036:
4037: PATCHLEVEL0::
4038:
4039: dos.c,intr.s,syscall.s:
4040:
4041: Changed s_yield() to actually give up the processor if
4042:
4043: another process is waiting for it; this means that processes
4044:
4045: that call Syield() won't be penalized by the priority code.
4046:
4047: Also: added a new kernel function, preempt(), which does
4048:
4049: what the old s_yield() did (and hence penalizes CPU hogs).
4050:
4051: makefile:
4052:
4053: Cleaned up a bit, per suggestions from A. Pratt and D. Gymer.
4054:
4055:
4056:
4057:
4058:
4059: version 0.91
4060:
4061:
4062:
4063: dosmem.c:
4064:
4065: Only the high 4 bits of the program load flags give memory
4066:
4067: requirements (we were using 8 bits).
4068:
4069: dosdir.c:
4070:
4071: Add a hack so that ksh still works (it was using '/' in a
4072:
4073: path name). THIS HACK WILL GO AWAY SOMEDAY!
4074:
4075: tty.c:
4076:
4077: CBREAK mode shouldn't do erase, kill, or EOF processing.
4078:
4079: dosdir.c:
4080:
4081: Freadlink should check first to make sure the file really
4082:
4083: is a link!
4084:
4085: file.h,tty.c:
4086:
4087: Change the name "struct winsiz" to "struct winsize" to match
4088:
4089: what Unix calls it (cosmetic change only).
4090:
4091: unifs.c:
4092:
4093: Allow renaming of the drives, and allow rmdir() to work
4094:
4095: like unlink() for symbolic links (since we fake the return
4096:
4097: value from Fsfirst to look like a directory if the link
4098:
4099: points to a directory).
4100:
4101: biosfs.c:
4102:
4103: lseek() on the null device should not return 0 always;
4104:
4105: otherwise, it will look like a terminal to many programs!
4106:
4107: dosfile.c:
4108:
4109: If a MiNT domain process closes stdin or stdout, they
4110:
4111: really do want them closed (for compatibility with
4112:
4113: MiNT 0.8).
4114:
4115: syscall.s:
4116:
4117: When returning from traps, don't pre-empt the current process
4118:
4119: if it's in supervisor mode.
4120:
4121: mem.c:
4122:
4123: Fake some stuff in the basepage so that programs compiled
4124:
4125: with dLibs will work some of the time.
4126:
4127: tosfs.c:
4128:
4129: Make the value returned from Dgetpath() lower case in the MiNT
4130:
4131: domain. Also, make tosfs a little less verbose when debugging
4132:
4133: or tracing is on.
4134:
4135: dosmem.c:
4136:
4137: Try to allocate space for saved fork() memory in the alternate (TT)
4138:
4139: memory map first, as well as in core (ST) memory.
4140:
4141: mem.h:
4142:
4143: Round allocation requests up to multiples of 8 bytes instead
4144:
4145: of 4; this automatically gives us a bit of slush for ill
4146:
4147: behaved programs, and also means that requests will always
4148:
4149: be for a multiple of sizeof(double) bytes.
4150:
4151: util.c:
4152:
4153: Get rid of the extra slush around kmalloc'd regions (which
4154:
4155: was a lot bigger than originally intended anyway!)
4156:
4157:
4158:
4159:
4160:
4161: version 0.9
4162:
4163:
4164:
4165: PATCHLEVEL21:: released version
4166:
4167:
4168:
4169: dosmem.c:
4170:
4171: Make Malloc and Mxalloc try again if there isn't enough memory;
4172:
4173: maybe the situation is temporary.
4174:
4175: mem.c:
4176:
4177: Plug a memory leak in load_region(); also make load_region try again
4178:
4179: if there isn't enough memory to load the program (just in case the
4180:
4181: situation is temporary).
4182:
4183: dosdir.c:
4184:
4185: Add a check to Fattrib to make sure that attributes of directories
4186:
4187: are never changed.
4188:
4189:
4190:
4191: PATCHLEVEL20::
4192:
4193:
4194:
4195: dosdir.c:
4196:
4197: Allow Frenames of processes and other special kinds of files even
4198:
4199: if they do have the FA_RDONLY bit set.
4200:
4201: dosfile.c:
4202:
4203: Allow creation of files with the read-only attribute.
4204:
4205: tosfs.c:
4206:
4207: Change the file deletion code so that an attempt to delete an
4208:
4209: open file no longer fails, but rather marks the file to be
4210:
4211: deleted when it is closed.
4212:
4213: file.h:
4214:
4215: Add some extra space to the tty struct, for future expansion.
4216:
4217: filesys.c,main.c:
4218:
4219: Make sure the fake BIOS disk routines are available before
4220:
4221: any of the pseudo-drives are used, by having them set up
4222:
4223: in init_filesys() instead of init_intr().
4224:
4225: tosfs.c:
4226:
4227: Remove some debugging output that isn't needed anymore.
4228:
4229:
4230:
4231: PATCHLEVEL19::
4232:
4233: Beta release.
4234:
4235:
4236:
4237: intr.s,main.c:
4238:
4239: provide some fake BIOS disk routines for the pseudo-drives,
4240:
4241: in hopes of avoiding "drive U: is not responding" types of
4242:
4243: messages that some have reported
4244:
4245: pipefs.c:
4246:
4247: half.ttp was failing under mgr, because of a race condition:
4248:
4249: our select() returns "ready" for a pipe if nobody exists to
4250:
4251: write to it (since then a read will return immediately). half
4252:
4253: would make a pipe that would end up being destroyed immediately
4254:
4255: by mgr before it got attached to a process. Solution: pipes that
4256:
4257: have *never* been opened yet for writing get a special marker
4258:
4259: and select doesn't worry about them, only about ones that were
4260:
4261: once written to.
4262:
4263: pipefs.c:
4264:
4265: Fixed FIONWRITE to return the correct value.
4266:
4267: dosdir.c:
4268:
4269: Refuse to Frename a file with the FA_RDONLY attribute.
4270:
4271: biosfs.c:
4272:
4273: Fixed bios_write to return the number of bytes successfully
4274:
4275: written.
4276:
4277: bios.c:
4278:
4279: LAST_DEVICE was inaccurate. This could happen again, so I'm simply
4280:
4281: getting rid of it and leaving all errors to the BIOS.
4282:
4283: pipefs.c:
4284:
4285: Make sure the FA_RDONLY attribute is sensible (i.e. unidirectional
4286:
4287: pipes that don't have a writer can still be written to).
4288:
4289: filesys.c:
4290:
4291: Fixed relpath2cookie so that it doesn't *always* follow symlinks
4292:
4293: (it only should when lastname == follow_links)
4294:
4295: dosfile.c:
4296:
4297: If the FA_RDONLY bit is set on the file, even the superuser should
4298:
4299: be denied access for writing.
4300:
4301: dosfile.c:
4302:
4303: Requiring write permission for Fdatime is a Bad Idea, since GEMDOS
4304:
4305: doesn't; so now MiNT doesn't either.
4306:
4307: tosfs.c, filesys.c:
4308:
4309: Fixed a bug with media changes (Fsfirst would sometimes try to close a
4310:
4311: directory that had already been automatically closed by a media change).
4312:
4313:
4314:
4315: PATCHLEVEL18::
4316:
4317:
4318:
4319: main.c:
4320:
4321: Fixed the machine type detection code; it needs to run before
4322:
4323: biosfs is initialized, i.e. before init_filesys().
4324:
4325: main.c:
4326:
4327: Provide a configuration file so that users can automatically
4328:
4329: setup symbolic links and can change their init program.
4330:
4331: biosfs.c:
4332:
4333: Allow rename on bios devices, so people who want terminals called
4334:
4335: "ttyX" instead of "modemX" can do so.
4336:
4337: dosdir.c:
4338:
4339: Flink shouldn't need write permission on the destination
4340:
4341: directory, only the source.
4342:
4343: dosfile.c:
4344:
4345: Added FSTAT function for Fcntl, to allow a better version of
4346:
4347: fstat() for the library.
4348:
4349: dosfile.c:
4350:
4351: Add code to fcntl to automatically convert MiNT 0.8 O_NDELAY
4352:
4353: into MiNT 0.9 O_NDELAY. This is a temporary measure only,
4354:
4355: to let older versions of mgr continue to work for a while.
4356:
4357: filesys.c:
4358:
4359: Symbolic links with relative paths were always failing with
4360:
4361: ELOOP. Oops! (Thanks to Stephen Henson for catching this.)
4362:
4363: file.h, tosfs.c, dosfile.c:
4364:
4365: Added a new flag, FS_NOXBIT, to control whether or not the
4366:
4367: file system has a sensible notion of execute permission.
4368:
4369: This removes an ugly check for &tos_filesys.
4370:
4371: mint.h,util.c,mem.c:
4372:
4373: Added a compile time option, JUNK_MEM, to deliberately fill
4374:
4375: the memory MiNT acquires with garbage; this is for debugging
4376:
4377: (to help track down silly failures to initialize memory) and
4378:
4379: not for production code.
4380:
4381: proc.c:
4382:
4383: Fixed a typo in init_proc() that was causing memory not to
4384:
4385: be initialized to 0 correctly. (Thanks are due to Stephen
4386:
4387: Usher for catching this one.)
4388:
4389: tosfs.c:
4390:
4391: Added a tos_rewinddir that works.
4392:
4393: file.h:
4394:
4395: Added blocks and blksize fields to the XATTR structure, and
4396:
4397: provided a few extra reserved fields for future expansion.
4398:
4399: (Also: re-arranged some fields to match what the gcc library
4400:
4401: already has.)
4402:
4403: file.h, main.c:
4404:
4405: Add sleep, wake, and wakeselect to the kernel info structure;
4406:
4407: some device drivers will need these.
4408:
4409: biosfs.c:
4410:
4411: Make nodskchng do a Getbpb on the (non-existent) device; the officially
4412:
4413: documented way of forcing a disk change requires this.
4414:
4415: file.h,filesys.c,*fs.c:
4416:
4417: Remove the "flag" argument from the dskchng function, and
4418:
4419: have the kernel check Rwabs for E_CHNG; this should save
4420:
4421: a lot of duplication in user file systems, since everyone
4422:
4423: really has to do this anyways.
4424:
4425: dosdir.c:
4426:
4427: Make sure that Fsfirst names can be null-terminated.
4428:
4429: filesys.c:
4430:
4431: Oops: a misplaced bracket in disk_changed was causing
4432:
4433: write-protected disks to always appear to have changed!
4434:
4435: tosfs.c:
4436:
4437: Made it illegal to delete or truncate an open file.
4438:
4439:
4440:
4441: PATCHLEVEL17::
4442:
4443:
4444:
4445: version.h:
4446:
4447: I think we can call this version an "alpha" one, now. No more
4448:
4449: major features remain to be added (fingers crossed, here).
4450:
4451: filesys.c,dosdir.c,*fs.c,file.h:
4452:
4453: Media change detection code; this is now the kernel's
4454:
4455: responsibility. This necessitated an additional function
4456:
4457: for file systems; I hope this is the last one.
4458:
4459: main.c,biosfs.c:
4460:
4461: Check what kind of machine we're on, and adjust what devices are
4462:
4463: present accordingly. The rs232 file has been renamed to "modem1".
4464:
4465: WARNING: This will break existing code that uses the name "rs232".
4466:
4467: filesys.c:
4468:
4469: Code for loading file systems (finally!)
4470:
4471: bios.c,context.s:
4472:
4473: Made Rwabs, Getbpb, and Mediach save registers (since device
4474:
4475: drivers often don't, and loadable file systems will be calling
4476:
4477: these directly).
4478:
4479: main.c:
4480:
4481: Implemented the "struct kerinfo" to pass information to loadable
4482:
4483: file systems.
4484:
4485: filesys.c:
4486:
4487: Re-wrote path2cookie to provide for symbolic links; a new routine
4488:
4489: (relpath2cookie) helps us out.
4490:
4491: unifs.c:
4492:
4493: Code for creating, reading, and deleting symbolic links.
4494:
4495: *fs.c, dosfile.c, file.h:
4496:
4497: Changed the way file opens and creates are done; the former
4498:
4499: (*getdev) routine for file systems has been split into
4500:
4501: (*creat) and (*getdev), both of which are quite a bit simpler.
4502:
4503: This whole scheme is clearer, less work for the file system,
4504:
4505: and will support symbolic links much better.
4506:
4507: various places:
4508:
4509: Add security checks. This is still pretty sad, but at least it
4510:
4511: can provide one with a modicum of protection against silly
4512:
4513: mistakes.
4514:
4515: dosfile.c:
4516:
4517: Require write permission on a file before changing its date via
4518:
4519: Fdatime.
4520:
4521: tosfs.c:
4522:
4523: Cleaned up and streamlined a bit, and fixed tos_readlabel.
4524:
4525: *fs.c,dosdir.c,file.h:
4526:
4527: Changed the file system "getxattr", "chmode", "chown", and
4528:
4529: "chattr" functions to take a single file cookie instead of a
4530:
4531: (directory, name) pair. This should make most uses of these
4532:
4533: functions (e.g. in name lookups) more efficient. Also,
4534:
4535: changed the readdir() function to return a file cookie to go
4536:
4537: along with the newly read file name.
4538:
4539: main.c:
4540:
4541: If "init.prg" isn't found, try starting GEM instead.
4542:
4543: unifs.c:
4544:
4545: Re-arranged to allow for symbolic links.
4546:
4547: filesys.c:
4548:
4549: Implemented some media change routines.
4550:
4551: dosdir.c:
4552:
4553: Added Fchown and Fchmod system calls.
4554:
4555: dosdir.c:
4556:
4557: Added security check for Fattrib().
4558:
4559:
4560:
4561: PATCHLEVEL16::
4562:
4563:
4564:
4565: lots of places:
4566:
4567: Try to make TRACE() and DEBUG() messages more useful for people
4568:
4569: who don't know the internals of the kernel, and who just want to
4570:
4571: debug their own programs.
4572:
4573: dosdir.c:
4574:
4575: Added Flink, Fsymlink, Freadlink, and Dcntl system calls.
4576:
4577: *fs.c,file.h:
4578:
4579: Added a new mode to Dpathconf() to determine whether the
4580:
4581: file system uses DOS type file naming conventions, ordinary
4582:
4583: Unix type, or _POSIX_NO_TRUNC type.
4584:
4585: file.h:
4586:
4587: Add an "fscntl" field to the file system structure.
4588:
4589: tosfs.c:
4590:
4591: Fix the mode values returned from getxattr() (regular files
4592:
4593: have type S_IFREG, not S_IFMT).
4594:
4595: proc.c:
4596:
4597: Zero the child's srchdta field after fork_proc(); otherwise,
4598:
4599: the accounting for Fsfirst/Fsnext can get messed up. Thanks
4600:
4601: again to S. Henson.
4602:
4603: mem.c:
4604:
4605: As Steve Henson pointed out, resetting the effective user and
4606:
4607: group id's in exec_region is probably a Bad Idea.
4608:
4609: dosdir.c:
4610:
4611: Change Dopendir/Dclosedir to use umalloc and ufree instead of
4612:
4613: kmalloc and kfree.
4614:
4615:
4616:
4617: PATCHLEVEL15::
4618:
4619:
4620:
4621: dosdir.c:
4622:
4623: When terminating, clean up after any Fsfirst/Fsnext sequences that
4624:
4625: didn't go to completion.
4626:
4627: tosfs.c:
4628:
4629: Streamlined garbage collection code, and also corrected a bug in
4630:
4631: which file indices used in directory searches could be garbage
4632:
4633: collected.
4634:
4635: file.h, *fs.c:
4636:
4637: Add symlink and hard link functions.
4638:
4639: pipefs.c:
4640:
4641: Make FIONWRITE work again (a line was accidentally deleted).
4642:
4643: Make sure that Fselect() will select any pipes that have been
4644:
4645: closed.
4646:
4647: dossig.c:
4648:
4649: Put back the user id check in Pkill.
4650:
4651: dos.c, proc.c:
4652:
4653: Make sure that the "euid" and "egid" fields are set with
4654:
4655: the Psetuid and Psetgid calls. Also, make sure the fields
4656:
4657: are reset after an exec.
4658:
4659: mem.c:
4660:
4661: Make exec_region shrink the process 'mem' and 'addr' tables
4662:
4663: to the default again if extra regions had been allocated.
4664:
4665: dosmem.c:
4666:
4667: Get rid of the magic number "100", and introduce a maximum user
4668:
4669: settable priority MAX_NICE so that the kernel can make sure
4670:
4671: that a process that needs to run (e.g. an aborted vfork) will
4672:
4673: run first by setting its priority to MAX_NICE+1.
4674:
4675: proc.c:
4676:
4677: Make sure the initial process memory tables are zeroed.
4678:
4679: proc.c:
4680:
4681: Adjust the process scheduling algorithm (yet again!). Also,
4682:
4683: rename "nice_count" to "curpri".
4684:
4685: dosdir.c,dos.c:
4686:
4687: Added Dopendir, Dreaddir, Drewinddir, Dclosedir system calls.
4688:
4689: *fs.c:
4690:
4691: Made readdir return a file index (inode number) if it's not
4692:
4693: doing a TOS mode search.
4694:
4695: biosfs.c:
4696:
4697: PHYSCONS is such an ugly name; CONSOLE makes more sense.
4698:
4699:
4700:
4701: PATCHLEVEL14::
4702:
4703:
4704:
4705: mem.c:
4706:
4707: Allow the kernel to dynamically allocate memory region
4708:
4709: descriptors if it runs out; also, increase the number that
4710:
4711: it starts with by default.
4712:
4713: util.c:
4714:
4715: Made it harmless to call kfree with a NULL argument.
4716:
4717: proc.h,mem.c,dosmem.c,proc.c:
4718:
4719: Eliminate the 64 region per process limit, by making the "mem"
4720:
4721: and "addr" arrays dynamically allocated.
4722:
4723: proc.c:
4724:
4725: Change the code for selecting which process to run next; if more
4726:
4727: than one process is on the ready queue, we use a per-process
4728:
4729: counter to prevent high priority processes from hogging all the
4730:
4731: time.
4732:
4733: dosmem.c:
4734:
4735: Release a process' controlling terminal (by setting it's process
4736:
4737: group back to 0) if the process is a process group leader and
4738:
4739: is exiting.
4740:
4741: dosfile.c,tty.c,*fs.c:
4742:
4743: Made do_open set terminals up correctly on open/close, and
4744:
4745: handle assigning process groups to them. Also, made the terminal's
4746:
4747: process group be set automatically on Fforce(-1,...).
4748:
4749: main.c,timeout.c:
4750:
4751: Added AKP's code for better resolution of time usage.
4752:
4753: DELETED FILES:
4754:
4755: xlate.c, xlate32.s, newdisk.s
4756:
4757: everywhere:
4758:
4759: Removed all references to NEED_TRANSLATION. This is getting to be a
4760:
4761: pain to maintain, and nobody seems to actually use it.
4762:
4763: *fs.c:
4764:
4765: Fixed the ENAMETOOLONG detection code in readdir (thanks, Steve!).
4766:
4767: timeout.c:
4768:
4769: New function, nap, for processes that are in busy loops waiting for
4770:
4771: an event that probably won't happen for a while (e.g. waiting for
4772:
4773: the user to hit a key); use e.g. nap(60) to sleep for 60 milliseconds
4774:
4775: instead of yield().
4776:
4777: mem.c:
4778:
4779: create_env() should use the value from the current process' basepage,
4780:
4781: since this may *not* be the same as the environment the process
4782:
4783: was actually started with
4784:
4785: dosfile.c:
4786:
4787: Make Fcntl(fh, arg, F_SETFL) leave the file sharing mode alone as well
4788:
4789: as the read/write mode.
4790:
4791: unifs.c:
4792:
4793: Change the name "fifo" to "pipe"; change "drva", "drvb" etc. into just
4794:
4795: "a", "b" etc.
4796:
4797: dosmem.c:
4798:
4799: Make it possible to provide a name with Pexec mode 104. Provide a new
4800:
4801: mode 106 that starts a process in the background and automatically
4802:
4803: detaches the process TPA from the parent's memory.
4804:
4805:
4806:
4807: PATCHLEVEL13::
4808:
4809:
4810:
4811: biosfs.c:
4812:
4813: Made sure that tty_getchar() won't see (long) negative values
4814:
4815: returned from a successful read, by clearing the high bit
4816:
4817: of read values.
4818:
4819: *fs.c,atarierr.h:
4820:
4821: Made file systems responsible for dealing with "." and "..";
4822:
4823: introduced a new (fake) EMOUNT error to indicate when ".." is
4824:
4825: found in a root directory (this is for the benefit of the
4826:
4827: unified file system code)
4828:
4829: dosdir.c,filesys.c:
4830:
4831: Changes to allow for the unified file system.
4832:
4833: unifs.c, makefile:
4834:
4835: New file, for a "unified" file system.
4836:
4837: filesys.c, *fs.c:
4838:
4839: Renamed denyaccess() to denyshare().
4840:
4841: dosdir.c:
4842:
4843: Changed getname() to work from the root down instead of from
4844:
4845: the directory up; this should work better for mounting and
4846:
4847: symbolic links.
4848:
4849: dosdir.c:
4850:
4851: Moved the check for a drive specifier (A:\FOO) in Dsetpath to
4852:
4853: where it should have been, namely before any use of the drive.
4854:
4855: biosfs.c,pipefs.c:
4856:
4857: In opendir, make sure the directory structure is properly
4858:
4859: initialized.
4860:
4861: dos.c:
4862:
4863: Changed snice and srenice to pnice and prenice; also modified the
4864:
4865: return values to be 16 bit (for the normal case), and 32 bit
4866:
4867: negative for errors, so that low priority processes can be
4868:
4869: distinguished from errors.
4870:
4871: debug*.c:
4872:
4873: The Bconstat() check for the printer should be applied to device
4874:
4875: 0, not 1.
4876:
4877:
4878:
4879: PATCHLEVEL12::
4880:
4881:
4882:
4883: dosdir.c,filesys.c:
4884:
4885: Re-wrote Fsfirst/next to use opendir/readdir/closedir. Re-wrote
4886:
4887: the pat_match function to work correctly (at least, according
4888:
4889: to the TOS rules :-).
4890:
4891: *fs.c, file.h:
4892:
4893: Added opendir/readdir/closedir calls to file systems to allow
4894:
4895: more general file systems; also changed getattr into getxattr
4896:
4897: (again, to allow file systems with extra goodies), setattr into
4898:
4899: chattr, and added chown and chmod calls. Deleted sfirst/snext
4900:
4901: file system entry points, and the Xsfirst/Xsnext system calls.
4902:
4903: *fs.c,file.h,dosfile.c,dosdir.c:
4904:
4905: Changed file systems to have separate calls for reading/writing
4906:
4907: volume labels. Added checks to Fattrib and Fcreate to avoid creating
4908:
4909: files with bad attributes (e.g. FA_LABEL or FA_DIR and anything
4910:
4911: else).
4912:
4913: main.c:
4914:
4915: Change the definition of tosvers so that TOS 1.0 corresponds
4916:
4917: to tosvers == 0x100, not tosvers == 0. Also, clean up the
4918:
4919: code for testing TOS versions.
4920:
4921: WARNING: This may break RAM TOS versions. I doubt it matters.
4922:
4923: bios.c,main.c:
4924:
4925: Always set the kbshft variable, so that kbshift is more
4926:
4927: efficient.
4928:
4929: dos.c:
4930:
4931: Eliminated the old code that allowed Super(-1L) to work (GEMDOS
4932:
4933: doesn't support this, so why should MiNT?)
4934:
4935: dos.c:
4936:
4937: Added GEMDOS date and time routines, and made sure that
4938:
4939: datestamp and timestamp are initialized properly when
4940:
4941: MiNT is started.
4942:
4943: mem.c:
4944:
4945: Increased the size of the buffer used for reading relocation
4946:
4947: information in load_region.
4948:
4949: *fs.c, dosfile.c:
4950:
4951: Changed the filesystem getdev call to return a file cookie
4952:
4953: (this saves a call to lookup on every open).
4954:
4955: *fs.c, filesys.c:
4956:
4957: Eliminated static variables, changed all routines that used to
4958:
4959: return pointers to cookies to take an extra argument (a pointer
4960:
4961: to the place to put the result).
4962:
4963: tosfs.c:
4964:
4965: Turn O_COMPAT sharing mode into O_DENYNONE (after making other
4966:
4967: appropriate changes to the access modes).
4968:
4969: debugold.c:
4970:
4971: Updated to reflect changes in debug.c.
4972:
4973: debug.c:
4974:
4975: Added calls to va_end where appropriate.
4976:
4977: debug.c:
4978:
4979: Before, hitting a key paused debugging output; now, debug_ws
4980:
4981: checks the device that output is going to, so that e.g. if it's
4982:
4983: going to the MIDI port, the output is paused when a character
4984:
4985: arrives on the MIDI port.
4986:
4987: mem.c:
4988:
4989: Made exec_region use O_DENYNONE sharing mode instead of O_DENYW
4990:
4991:
4992:
4993: PATCHLEVEL11::
4994:
4995:
4996:
4997: dosfile.c:
4998:
4999: Forbid closing file handles < 0; this will prevent accidental
5000:
5001: destruction of the BIOS handles.
5002:
5003: dosfile.c:
5004:
5005: Change Fbiosdev to be MIDI specific, rename it to Fmidipipe, and
5006:
5007: move it to dosfile.c. The semantics are a bit different, too;
5008:
5009: see the comments in dosfile.c.
5010:
5011: bios.c:
5012:
5013: Really fix the MIDI output routines, this time. (sigh)
5014:
5015:
5016:
5017: PATCHLEVEL10::
5018:
5019:
5020:
5021: signal.c:
5022:
5023: Fixed a typo in the message printed when bombs occur. Also,
5024:
5025: removed the copying of data from the supervisor stack to the
5026:
5027: BIOS area -- this was causing very strange problems, and it's
5028:
5029: not clear that the info would be useful under MiNT anyway.
5030:
5031: Finally, all this is only supposed to happen for certain
5032:
5033: signals, not for any random killings.
5034:
5035:
5036:
5037: PATCHLEVEL9::
5038:
5039:
5040:
5041: file.h, *fs.c:
5042:
5043: Changed the definition of the DTA buffer to free up space for
5044:
5045: user/group id fields and an extended attributes field. Made
5046:
5047: sfirst/snext use the 'aux' field of the directory cookie
5048:
5049: as an index.
5050:
5051: dos.c:
5052:
5053: Fixed Talarm() to return the number of seconds left before an
5054:
5055: alarm, not the number of milliseconds.
5056:
5057: dosdir.c:
5058:
5059: New system calls, Xsfirst/Xsnext, for accessing file systems
5060:
5061: with long (>12 character) names.
5062:
5063: signal.c:
5064:
5065: Fill in the BIOS post-mortem dump error correctly after
5066:
5067: bus errors, address errors, etc. Also, made the "bomb" replacement
5068:
5069: routine give the process basepage address and program counter,
5070:
5071: as suggested by AKP.
5072:
5073: tosfs.c:
5074:
5075: Fixed the tos_lookup bug that was causing bus errors during file
5076:
5077: opens.
5078:
5079:
5080:
5081: PATCHLEVEL8::
5082:
5083:
5084:
5085: tosfs.c:
5086:
5087: Made opens with O_COMPAT sharing mode always open for both reading
5088:
5089: and writing; this is so broken TOS programs that write to read-only
5090:
5091: handles will continue to work.
5092:
5093: file.h, tty.c:
5094:
5095: Added TIOCGWINSZ/TIOCSWINSZ and the appropriate window size
5096:
5097: fields to the tty structure to support them.
5098:
5099: dossig.c:
5100:
5101: Remove user id checks (for now). Make it impossible to catch
5102:
5103: SIGSTOP.
5104:
5105: bios.c:
5106:
5107: Fix so Bconout returns a value (it really should, at least for
5108:
5109: the printer).
5110:
5111: mem.c:
5112:
5113: Don't context switch and retry alloc_region; file systems and some
5114:
5115: parts of the kernel aren't expecting the context switch, and besides
5116:
5117: the previous change makes this tactic less likely to be helpful.
5118:
5119: mem.c:
5120:
5121: Don't allocate *all* of the memory to the basepage, leave some for
5122:
5123: the kernel and other programs.
5124:
5125: pipefs.c:
5126:
5127: Add a check for broken pipes when a program is trying to write
5128:
5129: atomically.
5130:
5131: dosmem.c:
5132:
5133: Block job control signals during a vfork instead of ignoring
5134:
5135: them; this will result in the "right" thing happening after
5136:
5137: the exec (since the blocked signals will then be unblocked).
5138:
5139: tosfs.c:
5140:
5141: Eeek! Fixed a very serious bug in the garbage collection
5142:
5143: routines ("i" was used where "j" should have been in a loop:
5144:
5145: result: things could be garbage collected that shouldn't
5146:
5147: have been!)
5148:
5149: procfs.c:
5150:
5151: changed the return value from "dfree" to more accurately indicate
5152:
5153: the free memory in the system, and to also provide information
5154:
5155: about the smallest unit of allocable memory (currently a longword)
5156:
5157: *fs.c,dosfile.c,dosdir.c,filesys.c:
5158:
5159: instead of passing fcookies to file systems, pass pointers to
5160:
5161: them; this should slightly improve efficiency, and greatly
5162:
5163: improve portability (otherwise, compilers used to make
5164:
5165: installable file systems would have to have the same structure
5166:
5167: passing/return conventions as the one that compiled the kernel)
5168:
5169: dos.c:
5170:
5171: new system call, Srenice(), to change priority of a different
5172:
5173: process
5174:
5175: dos.c:
5176:
5177: change Fbiosdev() system call to take a pid argument
5178:
5179: proc.h, dosfile.c:
5180:
5181: add per-file descriptor flags for things like "close on exec"
5182:
5183: file.h, mem.c, *fs.c:
5184:
5185: new file open mode, O_EXEC, for the kernel to use in Pexec
5186:
5187: rendez.c, dos.c:
5188:
5189: new file from AKP to implement a simple and fast message based
5190:
5191: IPC; the new system call is Pmsg. Also note that the syscall number
5192:
5193: of Pmsg is 0x125, which used to be used by Fbiosdev; Fbiosdev has
5194:
5195: been moved to 0x126.
5196:
5197: filesys.c:
5198:
5199: applied Steve Henson's patches to improve path2cookie's handling of
5200:
5201: repeated slashes
5202:
5203: proc.h:
5204:
5205: MAX_OPEN should be 32, not 20!
5206:
5207: mem.c:
5208:
5209: Ignore "close on exec" flag for the standard handles (for some
5210:
5211: reason, bash manages to set these for 0,1,2; this is probably a bug
5212:
5213: in the port of bash, but on the other hand it's unlikely that
5214:
5215: anyone would really want to close the standard handles when doing
5216:
5217: an exec, anyway)
5218:
5219: tty.c:
5220:
5221: Fixed RAW mode reads on terminals so that they're no longer
5222:
5223: terminated by '\r' or '\n' (and so that pty slaves aren't forced
5224:
5225: to read just 1 character at a time). Thanks to AKP for catching
5226:
5227: this.
5228:
5229:
5230:
5231: PATCHLEVEL7::
5232:
5233:
5234:
5235: *fs.c:
5236:
5237: Cleaned up the Dpathconf() return values to better reflect
5238:
5239: reality, and made the code a little easier to understand.
5240:
5241: bios.c:
5242:
5243: Adjust bcostat() parameters so that V:\MIDI and V:\KBD call
5244:
5245: the right (wrong) device (BIOS devices 3 and 4 are mixed
5246:
5247: up for Bcostat).
5248:
5249: dosmem.c:
5250:
5251: Made sure that Malloc(0L) always returns a NULL pointer.
5252:
5253: dosfile.c:
5254:
5255: Made Fclose() of handles 0, 1, 2, and 3 restore the default
5256:
5257: mappings. (Apparently TOS _does_ do this, after all.)
5258:
5259: bios.c:
5260:
5261: AHDI 3.1 added a new parameter to Rwabs; we now pass that
5262:
5263: along too.
5264:
5265: timeout.c:
5266:
5267: Make canceltimeout() free the memory used by the time out
5268:
5269: descriptor. (another Fselect bug)
5270:
5271: signal.h:
5272:
5273: Removed ABORT and ALARM from list of signals that are reported
5274:
5275: by the kernel.
5276:
5277: proc.c:
5278:
5279: Moved checkalarms() to do_wakeup_things() so that short time outs
5280:
5281: will be properly recognized; this fixes a nasty bug in Fselect.
5282:
5283:
5284:
5285: PATCHLEVEL6::
5286:
5287:
5288:
5289: pipefs.c:
5290:
5291: Make writes of 1024 or fewer bytes atomic. Also, increase pipe
5292:
5293: buffer size to 4096.
5294:
5295: tosfs.c:
5296:
5297: Make O_EXCL and O_TRUNC bits useful.
5298:
5299: tosfs.c,pipefs.c,filesys.c:
5300:
5301: Fully implement file sharing modes for tosfs and pipefs. A new
5302:
5303: routine (denyaccess) is provided in filesys.c for checking
5304:
5305: file open modes and determining conflicts (if any).
5306:
5307: pipefs.c:
5308:
5309: If a process writes on a broken pipe while ignoring SIGPIPE,
5310:
5311: the write now returns -1. (Thanks, Stephen)
5312:
5313: debug.c, bios.c:
5314:
5315: Applied bammi's patches to PATCHLEVEL 5 to fix some typos.
5316:
5317:
5318:
5319: PATCHLEVEL5::
5320:
5321:
5322:
5323: debug.c, bios.c:
5324:
5325: Applied AKP's debugging output patches, to allow TRACE and
5326:
5327: DEBUG output to go to serial ports as well as the printer.
5328:
5329:
5330:
5331: PATCHLEVEL4::
5332:
5333:
5334:
5335: dos.c:
5336:
5337: NEW SYSTEM CALL: Fbiosdev() to control redirection of BIOS
5338:
5339: devices.
5340:
5341: bios.c, proc.h:
5342:
5343: Added binput and boutput arrays to allow for per-process redirection
5344:
5345: of BIOS device input and output to GEMDOS file handles.
5346:
5347: biosfs.c:
5348:
5349: Changed "mdi" to "midi".
5350:
5351: WARNING: this change could (I suppose) break existing code.
5352:
5353: util.c:
5354:
5355: Added a umalloc() function to allocate memory in user space,
5356:
5357: and modified the various sfirst routines to use this to
5358:
5359: allocate space for patterns instead of kmalloc.
5360:
5361: dosdir.c,file.h:
5362:
5363: Added an FS_CASESENSITIVE flag to control conversion of file
5364:
5365: names to upper case for TOS domain processes.
5366:
5367: dosdir.c, *fs.c:
5368:
5369: Made sfirst/snext functions take an extra argument, the length
5370:
5371: of the file name field in the DTA buffer (so that we can provide
5372:
5373: Xsfirst/Xsnext functions that can work with longer names)
5374:
5375: mem.c:
5376:
5377: Fixed exec_region so that the close-on-exec flag works.
5378:
5379: filesys.c:
5380:
5381: Made path2cookie take the name of the place to store the last
5382:
5383: component of the path name as an argument (instead of always
5384:
5385: storing it in the global variable temp1).
5386:
5387: biosfs.c:
5388:
5389: Added code for O_NDELAY on bios devices.
5390:
5391: tosfs.c:
5392:
5393: Cleaned up garbage collection a bit -- I hope this fixes the
5394:
5395: problems with running out of indices.
5396:
5397: filesys.c:
5398:
5399: Returned the special parsing code for CON:, AUX:, etc.
5400:
5401: file.h:
5402:
5403: OOPS! The flock structure was missing an element (l_whence). It
5404:
5405: was added.
5406:
5407: WARNING: This change may break existing code.
5408:
5409: util.c:
5410:
5411: Made kmalloc take a long parameter, just in case installable
5412:
5413: file systems need lots of memory.
5414:
5415: file.h, atarierr.h, pipefs.c:
5416:
5417: Made file modes compatible with _FLK specification. Also
5418:
5419: added the ELOCKED and ENSLOCK errors to atarierr.h, and made
5420:
5421: pipefs.c use ELOCKED instead of EACCDN.
5422:
5423: WARNING: this *will* break existing programs. In particular, mgr
5424:
5425: no longer works :-( because O_NDELAY has changed. (this was
5426:
5427: temporarily patched)
5428:
5429: dos.c,dosfile.c:
5430:
5431: Added Flock() system call.
5432:
5433: mem.c:
5434:
5435: Made the initial user stack pointer low enough so that syscall.s
5436:
5437: won't run into the end of memory if the user makes a system call
5438:
5439: right away and doesn't push many parameters (the code in syscall
5440:
5441: always tries to copy a large chunk of the caller's stack).
5442:
5443: dosmem.c:
5444:
5445: Made vfork'd processes ignore job control signals (thanks to
5446:
5447: Stephen for pointing out how some shells rely on BSD's similar
5448:
5449: behaviour).
5450:
5451:
5452:
5453: PATCHLEVEL3::
5454:
5455:
5456:
5457: dosfile.c, file.h, *fs.c, bios.c:
5458:
5459: Changed f_select to use the new timeout mechanism, and provided
5460:
5461: routines in device drivers to wake up selecting processes.
5462:
5463: proc.h:
5464:
5465: New queue, SELECT_Q, for processes doing "select", to match above
5466:
5467: changes
5468:
5469: dos.c:
5470:
5471: Changed t_alarm to use the new timeout mechanism.
5472:
5473: timeout.c,proc.h:
5474:
5475: Added a new "timeout" mechanism, so that processes can specify
5476:
5477: an action to be taken when a counter expires.
5478:
5479: various places:
5480:
5481: Cleaned up TRACE and DEBUG output
5482:
5483: proc.c:
5484:
5485: Set current directory based on the TOS current directory
5486:
5487: when MiNT is starting up.
5488:
5489: debug.c:
5490:
5491: Added AKP's "trace" mode patch
5492:
5493: filesys.c:
5494:
5495: Replaced strcmp() for . and .. with direct comparisons, again
5496:
5497: per AKP.
5498:
5499: tosfs.c:
5500:
5501: Improved search performance a bit (indicies are now allocated
5502:
5503: at the beginning of the list, instead of at the end)
5504:
5505: main.c, version.h:
5506:
5507: Introduced PATCHLEVEL for alpha and beta test versions
5508:
5509: util.c:
5510:
5511: Made kmalloc() try the kernel memory region first for small
5512:
5513: regions, to cut down fragmentation of the user's memory space
5514:
5515: proc.h:
5516:
5517: Made the system stacks bigger, to compensate for the bigger
5518:
5519: contexts now that there's FPU support
5520:
5521: dosmem.c:
5522:
5523: Fixed bug with Pexec mode 6 (thanks again, AKP)
5524:
5525: biosfs.c:
5526:
5527: Changed FD0 to STDIN, FD1 to STDOUT, etc.
5528:
5529: WARNING: this change could break existing code
5530:
5531: filesys.c:
5532:
5533: '/' is no longer a directory separator for MiNT domain processes
5534:
5535: (few were using it, and it simplifies things to be able to
5536:
5537: assume '\' is the only such separator).
5538:
5539: WARNING: this change could break existing code
5540:
5541: all over the place:
5542:
5543: Changed the way directories/files are stored. We now have
5544:
5545: "file cookies" for directories, instead of strings. We
5546:
5547: also now have two directories per drive per process
5548:
5549: (a root and current).
5550:
5551: minixfs.c:
5552:
5553: Removed from the main compile, and MINIX_FS symbol was also
5554:
5555: removed -- this will be a loadable file system someday
5556:
5557: (soon, I hope).
5558:
5559: various places:
5560:
5561: Added Alex Kiernan's patches to support compilation under
5562:
5563: Lattice C v5
5564:
5565: proc.h, context.s:
5566:
5567: Added Alex Kiernan's FPU co-processor patches. WARNING: this
5568:
5569: changes the layout of the proc structure in memory, and so
5570:
5571: breaks "ps" and similar programs.
5572:
5573: proc.c:
5574:
5575: Changed sleep() to take the wait condition as an argument; this
5576:
5577: means that fewer things need to know the internals of the
5578:
5579: PROC structure
5580:
5581: various places:
5582:
5583: Added AKP's T_TOSTOP flag changes
5584:
5585: minixfs.c:
5586:
5587: Changed the 8K buffer in do_change to a static variable; our
5588:
5589: stacks aren't *that* big!
5590:
5591: intr.s:
5592:
5593: Fixed a typo that was causing serious problems with the bus
5594:
5595: error and other exception codes on the TT (thanks for
5596:
5597: catching this, Allan).
5598:
5599: dosmem.c,signal.c:
5600:
5601: Corrected the GEMDOS termination vector code (the system stack
5602:
5603: was being corrupted if the user's code returned). Thanks to
5604:
5605: Julian Reschke for catching this error.
5606:
5607: ===========================================================================
5608:
5609: version 0.8
5610:
5611:
5612:
5613: biosfs.c, pipefs.c:
5614:
5615: fix ^C and ^Y to send the signals to the whole process group,
5616:
5617: and also to make sure processes don't read these keys if
5618:
5619: they're turned into signals
5620:
5621: intr.s,dossig.c:
5622:
5623: fix exception handlers to be more careful about the distinction
5624:
5625: between being in or out of the kernel
5626:
5627: intr.s, syscall.s, main.c:
5628:
5629: make sure interrupts are off before changing any vectors
5630:
5631: bios.c:
5632:
5633: fixed the annoying problems with CTRL-ALT-Fx sometimes leaving
5634:
5635: keys in the buffer
5636:
5637: signal.c:
5638:
5639: forced p_sigreturn() with no signal pending to unwind the
5640:
5641: *whole* signal stack, in case there were multiple signals
5642:
5643: pending at the time the user did a longjmp() (or whatever
5644:
5645: prompted the Psigreturn())
5646:
5647: dosmem.c:
5648:
5649: p_wait3 now supports the WUNTRACED bit; if this isn't set,
5650:
5651: processes stopped due to job control are *not* returned
5652:
5653: dosmem.c:
5654:
5655: removed dLibs kludge -- some programs rely on p_parent being
5656:
5657: non-zero to tell them that they're not accessories
5658:
5659: various places:
5660:
5661: cleaned up job control stuff to be more Unix like
5662:
5663: mem.c,util.c:
5664:
5665: added a new memory map for the kernel -- this should ease
5666:
5667: the problems with programs grabbing all of available memory
5668:
5669: mem.c,dosmem.c:
5670:
5671: incorporated Allan's bugfixes; alternative RAM should work now
5672:
5673: signal.c, main.c, intr.s:
5674:
5675: integrated signals with normal exceptions, so that e.g.
5676:
5677: a bus error raises SIGBUS. This improves the survivability
5678:
5679: of the kernel, so that a bus error resulting from a bad
5680:
5681: system call parameter won't kill MiNT, just the offending
5682:
5683: process.
5684:
5685: proc.c:
5686:
5687: kludge to let low priority processes run every so often, even
5688:
5689: in the presence of a high priority process that is ready to run
5690:
5691: atarierr.h:
5692:
5693: ENMFIL is -49, not -47 -- so much for Abacus' docs :-)
5694:
5695: procfs.c:
5696:
5697: changes to allow read/write from process space
5698:
5699: minixfs.[ch]:
5700:
5701: changed lots of function parameter types to avoid promotion and
5702:
5703: prototype problems with 32 bit code
5704:
5705: bios.c:
5706:
5707: changed IOREC to IOREC_T to avoid name conflicts with some osbind.h
5708:
5709: biosfs.c:
5710:
5711: made mouse driver change the line A mouse position variables, so MGR
5712:
5713: will work with bigscrn and similar large screen emulators
5714:
5715: minixfs.c:
5716:
5717: new version from Stephen, now supports floppies and other removable
5718:
5719: media
5720:
5721: mem.c, dosmem.c, dos.c:
5722:
5723: added code to support new TT TOS calls Mxalloc and Maddalt, plus
5724:
5725: program flags for loading/mallocing in alternate memory
5726:
5727: bios.c,biosfs.c,dosfile.c:
5728:
5729: changed so that bios handles 0 and 1 can be redirected just like
5730:
5731: handle 2 (via the new file handles -3 and -2 respectively; AUX:
5732:
5733: and PRN: now refer to these files, and RS232 and CENTR to the
5734:
5735: physical devices)
5736:
5737: dosdir.c:
5738:
5739: Dsetdrv() fixed to return an error indication when one happens
5740:
5741: dos.c:
5742:
5743: fixed Super() bug (thanks Stephen)
5744:
5745: minixfs.c:
5746:
5747: incorporated changes to handle 1K sector sizes
5748:
5749:
5750:
5751: =============================================================================
5752:
5753: version 0.7
5754:
5755:
5756:
5757: minixfs.c:
5758:
5759: new file, courtesy of Stephen N. Henson ([email protected])
5760:
5761: this is still "under construction"; see minixfs.doc for more details
5762:
5763: bios.c:
5764:
5765: CTRL-ALT-UNDO now raises SIGQUIT, for the benefit of people with
5766:
5767: foreign ROMs (some have trouble with ^\)
5768:
5769: filesys.c:
5770:
5771: changed pathname resolution code so that multiple slashes in a file
5772:
5773: name have the same effect as single slashes. POSIX mandates this,
5774:
5775: and some Unix programs expect it, too
5776:
5777: dosmem.c:
5778:
5779: changed do_vfork() code so that the text segment of processes is
5780:
5781: *not* saved in a fork() if the process has separate text, data, and
5782:
5783: bss segments; this saves a fair bit of memory
5784:
5785: proc.c:
5786:
5787: changed the process initialization code to better deal with job
5788:
5789: control; also changed handle 2 to be AUX: (as under TOS) rather
5790:
5791: than PRN:
5792:
5793: bios.c:
5794:
5795: added CTRL-ALT-F5 (show memory usage) and CTRL-ALT-F6
5796:
5797: (show processes)
5798:
5799: filesys.c:
5800:
5801: make explicit the fact the individual file names are limited to
5802:
5803: 14 characters
5804:
5805: everywhere:
5806:
5807: change FILENAME_MAX to PATH_MAX
5808:
5809: mem.c:
5810:
5811: fixed up comments and debugging/trace info for load_region
5812:
5813: dossig.c:
5814:
5815: NEW SYSTEM CALL: Psigpending() returns the set of signals that
5816:
5817: have been sent to the process, but not yet delivered.
5818:
5819: dos.c, dosdir.c:
5820:
5821: NEW SYSTEM CALLS:
5822:
5823: Sysconf(n) returns information about the global limits of the
5824:
5825: currently running version of MiNT
5826:
5827: Dpathconf(name, n) returns information about the file system that
5828:
5829: the file "name" is located on
5830:
5831: bios.c:
5832:
5833: allow CTRL-ALT-C, CTRL-ALT-\, and CTRL-ALT-Z to force a SIGINT,
5834:
5835: SIGQUIT, or SIGTSTP, respectively, even if the terminal is in raw
5836:
5837: mode
5838:
5839: various places:
5840:
5841: call zero() instead of bzero()
5842:
5843: context.s,intr.s:
5844:
5845: changes to make MiNT TT compatible. Thanks to Allan Pratt for this!
5846:
5847: biosfs.c, tosfs.c, pipefs.c, procfs.c:
5848:
5849: fsfirst/fsnext return all upper case in TOS domain now, but
5850:
5851: lower case (or mixed) in MiNT domain; this is to try to wean
5852:
5853: programmers off of the habit of assuming everything is upper case
5854:
5855: (and converting accordingly)
5856:
5857: biosfs.c:
5858:
5859: made mouse compatible with TOS ALT-cursor keys (the Y direction was
5860:
5861: wrong before)
5862:
5863: intr.s:
5864:
5865: IPL 7 before reboot (thanks, Allan)
5866:
5867: version.h, main.c:
5868:
5869: made version numbering a bit easier (big deal)
5870:
5871: main.c:
5872:
5873: AARGH! The cookie jar stuff was plain wrong (the last cookie should
5874:
5875: have the total number of slots, not just the ones that are free).
5876:
5877: main.c:
5878:
5879: pass current environment along to init.prg, instead of forcing an
5880:
5881: empty environment
5882:
5883: signal.c:
5884:
5885: corrected killpg() bug (wasn't checking signals, so the current
5886:
5887: process didn't get the signal until later)
5888:
5889: mem.c, dosmem.c:
5890:
5891: made sure that all sizes would always be rounded to the nearest
5892:
5893: longword. Just in case they aren't, Malloc(-1L) rounds down to the
5894:
5895: next smallest longword.
5896:
5897: lots of places:
5898:
5899: memory handling was overhauled completely; kmalloc now allocates
5900:
5901: memory from the same space as do m_alloc and p_exec, so there is
5902:
5903: no artificial constraint on the number of processes
5904:
5905: ===========================================================================
5906:
5907: version 0.6
5908:
5909:
5910:
5911: dos.c:
5912:
5913: added Talarm() and Pause() system calls
5914:
5915: bios.c, tty.c, pipefs.c:
5916:
5917: added real tty structures that programs can manipulate
5918:
5919: proc.c:
5920:
5921: added some sanity checks for things like stack overflow
5922:
5923: signal.c:
5924:
5925: revamped signal handling so that Psigreturn() no longer needs an
5926:
5927: argument.
5928:
5929: dosmem.c:
5930:
5931: made Pexec'ing processes immune to SIGINT, SIGHUP, and SIGTSTP
5932:
5933: intr.s:
5934:
5935: fixed the Psigreturn race condition bug
5936:
5937: biosfs.c, pipefs.c, filesys.c, util.c:
5938:
5939: added case-insensitive string comparison routine, and modified the
5940:
5941: file systems to use it
5942:
5943: bios.c, console.c:
5944:
5945: changed return values of status calls from 1 to -1, to be TOS
5946:
5947: compatible
5948:
5949: dos.c:
5950:
5951: added new calls to get resource usage, and set resource limits
5952:
5953: dosfile.c:
5954:
5955: added new call, f_select
5956:
5957: signal.c:
5958:
5959: changed so stopped processes always have a return code of 0177
5960:
5961: biosfs.c:
5962:
5963: added a fake "third button" on the mouse (you get it by holding down
5964:
5965: a shift key and a mouse button)
5966:
5967: made mouse_read return at least 1 byte
5968:
5969: bios.c, proc.c, biosfs.c:
5970:
5971: added code to check for CTRL-ALT-key combinations on every
5972:
5973: process switch; thus, debugging, rebooting, etc. do not require
5974:
5975: waiting for a read from the keyboard. Also, ^C sends a SIGINT
5976:
5977: immediately, and ^Z (SIGTSTP) and ^\ (SIGQUIT) take effect
5978:
5979: right away, too.
5980:
5981: CTRL-ALT-DEL supported for TOS < 1.4
5982:
5983:
5984:
5985: =========================================================================
5986:
5987: version 0.5
5988:
5989:
5990:
5991: First publically released version (made available for FTP as a beta test)
5992:
5993:
5994:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.