****************************************************************************** 2000-05-12: FreeMiNT 1.15.9 beta -------------------- Draco: ------ slb.c, slb_util.spp: - SLB extension cancelled (but that does not mean the flag definition is dropped!) cpu.spp: - minor size optimization info.c: - greet fixed to make both my Falcon and Q-Funk happy. Frank Naumann: -------------- global.*, dosmem.c, dosfile.c, memory.*, proc.*: - eliminated global symbol mint_errno - modified do_open that accept a additional pointer there it can store the error value - modified load_region, create_base, get_text_seg, fork_proc in the same way - corrected all calls to that functions to handle correctly the method filesys.c, dosdir.c: - fixed absolutly bad bug in disk_changed and d_lock; the array aliasdrv was possible accessed outside with strange side effects; how the hell the kernel worked until now? kernegt.c: - fixed memory protection bugs in get_proc_stat and get_proc_environ dosmem.c: - fix bug in terminate, exe cookie not freed info.c: - removed vt-52 clear screen command before greet1 Thomas Binder: -------------- cnf.c, fasttext.c: - Again made changes to make -DFASTTEXT work. Frank, maybe it would be a good idea to always test whether a kernel with all possible -Ds enabled and one with all disabled will build correctly _before_ releasing a beta ... memory.c: - Due to draco's changes in syscall.spp (copying 36 bytes of stack instead of 28), programs which called Pterm() using the initial stackpointer failed with a memory protection, because exec_region() set the usp to "end_of_tpa - 0x20". Looks like the new trap handler hasn't been tested very thoroughly. exec_region() now initializes the user stackpointer to "end_of_tpa - 0x28", curing the problem. filesys.c: - Yet another bug which makes me doubt the involved change has been tested ... getxattr() didn't check whether blksize >> 9 yiels 0 before dividing by it, causing an exception when calling Fxattr() on files in /proc, /shm, and others with a blksize of 1. - getxattr() also didn't properly initialize the "attr" field, leading to problems like shared memory no longer working or programs displaying wrong file types. *xattr is now bzero()ed before anything is written to it, to be on the safe side. Makefile: - Added missing ./ in calls to mkbuild and genmagic - having "." in $PATH isn't a good idea ... libkern/asm/Makefile: - Prevent "-include $(DEPENDENCIES)" to be executed when $(DEPENDENCIES) expands to the empty string ****************************************************************************** 2000-05-05: FreeMiNT 1.15.8 beta -------------------- Frank Naumann: -------------- libkern/* - new subfolder, contain kernel library used by the kernel and kernel modules - moved all string functions, utility functions to this directory; splitted all fucntions of into seperate files - splitted off assembler modules into seperate directory - changes all over the place to reflect these mint/*: - lot of new files, restructurization of all header files, lot of enhancements - splitted of machine dependencies - changes all over the place to reflect these time.c, util.c: - moved unix2xbios to util.c - replaced dostime by wrapper for unix2xbios - some fixes in time.c string.c, string.h: - ksprintf/vsprintf get the buflen as an additional argument; changed all ksprintf/vsprintf calls over the source to reflect these changes - added ksprintf_old for the kernel interface that wrap around the new ksprintf kernfs.c, kernfs.h, kernget.c, kernget.h: - finally integrated new kern pseudo filesystem - lot of corrections, simplification and cleanup; now a lot safer, smaller and faster - depend now on compile time switch dosfile.c, dosdir.c, unifs.c: - fixes for xfs_* call handling filesys.h: - export now DIRSEP, MAX_LINKS; deleted all other definitions welcome.c, welcome.h: - removed; welcome messages are now in info.c, info.h; this is neccessary as welcome message use __DATE__ and must be recompiled every time sys_emu.c, sys_emu.h (new): - new systemcall, emulation trap xhdi_emu.spp, xhdi_emu.h, xhdi.c, scsidrv_emu.spp, scsidrv_emu.h, scsidrv.c, scsidrv.h (new): - emulation of these non system call interfaces through systemcalls; necessary for nonblocking DMA operations - added sys_XHDOSLimits for system calls - some enhancements fatfs.c, tosfs.c, pipefs.c: - correction in stat64, 'blocks' is measured in 512 byte blocks init.h, init.c (new): - renamed main.* to init.* - moved global variables to global.* - corrected #include directives in most *.c files related to this change Guido Flohr: ------------ cmdline.c, cmdline.h kernfs.c, kernfs.h, kernget.c, kernget.h: - new kern pseudo filesystem filesys.c, unifs.c, mint/file.h: - some small modifications for the kern pseudo filesystem dosmem.c: - fix in waitpid Thomas Binder: -------------- cnf.c, mem.h, memory.c, mprot.h, mprot030.c, mprot040.c: - Processes always had unrestricted access to their parent's address space. Unfortunately, both Atari AES 4.x and N.AES depend on that behaviour (they use the OS_SPECIAL process flag, but seem to have overlooked that this only means supervisor access to their address space for other processes), thus this bug is not completely removed, but converted into an optional feature, with "on" being the default (i.e. you explicitly have to enable the "bugfix" in mint.cnf). - New config option MPFLAGS, a bitvector containing memory protection flags. Currently, only bit 0 is defined; if set, the memory protection is "strict", i.e. a process no longer has unrestricted access to its parent's address space (see above) mprot030.c, mprot040.c: - mark_proc_region() (used for attaching/detaching memory regions to/from a process) now restores the global access mode for a region when detaching it, instead of blindly setting it to "invalid" - the right thing to do, as detach_region() will only call mark_proc_region() for regions with a link count > 1, i.e. those still being attached to another process - mem_prot_special() no longer marks regions as "super" that are already marked as anything different than "private". Of course, this may cause problems if the program's memory flags are "readable", but an "OS_SPECIAL" program shouldn't need that, anyway. dosfile.c: - Fixed bug in f_datime(), which always read and wrote _two_ timestamps from/to the buffer (caused an annoyingly hard-to-find "bug" in Thing, as a local variable on the stack got currupted) fasttext.c: - Fixes to make it compile when enabled - once again ... fatfs.c: - Calculation of rdlen now rounds up, as described in the Microsoft FAT whitepaper - fatfs_root() no longer forces a media change on drive A when drive B gets accessed (and vice versa), but instead only syncs the buffer cache - this fixes crashes when both drive letters are accessed like this: A-B-A or B-A-B - Fixed wrong order of arguments in a macro call in fatfs_rename(), causing write accesses to wrong sectors mmu030.spp: - Added dummy symbol for compilation without 030 memory protection, as (older versions of?) GNU ld do not accept .o files without a symbol table Andreas Baer: ------------- slb.c: - detect new binutils 2.9.1 format, new style linked shared libs are now loaded Draco: ------ kernget.c: - in kern_get_cpuinfo() corrected the 68881/2 FPU information (4 is '68881 for sure', 6 is '68882 for sure'). - MMU assumed "none" for 68000, 68010, and 68020 (since MiNT doesn't care whether there is 68851 or not). mprot030.c: - fixed calls for new ksprintf(), exactly like in the mprot040.c info.c: - added vt-52 clear screen command before greet1 (to avoid mess) syscall.h, syscall.spp: - in mint_dos(), GEMDOS trap handler now copies 36 bytes of trap arguments onto supervisor stack (instead of 28 previously), which ensures the Sysemu() call will get all the parameters it needs, and e2fsck works again :) - unified syscall.*.reentrant and syscall.*.not.reentrant into single files controlled by the switch SYSCALL_REENTRANT. Nb. the switch must be defined in the Makefile, not in mint/mint.h. scsidrv_emu.spp, xhdi_emu.spp: - minor improvements bios.c: - changed EACCES to EPERM in Setexc() and Rwabs() - init_vectors(), table VEC[] and stuff commented out (not used in any place across the kernel, only waste space). xbios.c: - changed EACCES to EPERM in supexec() - functions vsetmode() and videl_patch() removed, these aren't efficient anyway. syscall_vectors.c: - removed vsetmode() from XBIOS table. proc.c: - in sleep(), sleepcond = 0 put before spl(sr); consider it temporary. slb.c, slb_util.h, slb_util.spp: - added the discussed SLB flag extension: when the flag field in the library header has its lowest bit set, library calls get an empty longword instead of a pointer to the basepage of the calling process. - added function getslbpath() which is searching the environment for the variable $SLBPATH. - in load_and_init_slb(): if user specified path for Slbopen() is NULL, then the return value of the getslbpath() is used as this. If this is NULL too, the current directory will be used. Usage: the default path pointing to a folder which contains SLB libraries must be specified in the environment as SLBPATH variable. For example: SLBPATH=u:\usr\local\lib\slb If one wants the previous behaviour, just undefine the variable. Limits: SLBPATH value can be only specified as a GEMDOS-like (not Unix-like) pathname. Hence such forms of the SLBPATH as: SLBPATH=c:\multitos\slb SLBPATH=u:\c\multitos\slb SLBPATH=u:\usr\local\lib\slb or SLBPATH=u:/usr/local/lib/slb are perfecly valid (provided these folders really do exist). ****************************************************************************** 2000-02-28: FreeMiNT 1.15.7 beta -------------------- Frank Naumann: -------------- mmu.h, intr.h, quickmove.h, quickswap.h, quickzero.h: - new files, replaced include/sproto.h - added various #include of these headers to some src files timeout.c: - removed timestamp, datestamp declaration as they are already declaration in time.c include/inline.h: - removed inline flush_pmmu; conflict with other MMU code mmu030.spp: - new file, moved 030 MMU code from CPU in this file mmu040.spp: - moved flush_mmu from cpu.spp in this file block_IO.c, include/block_IO.h: - changes all over the place to make the buffer cache reentrant dosdir.c: - fixed bug in d_create, missing check for nulldirectories - fixed bug in f_sfirst cache re-use; invalidate DTA in user space too - added extra check to f_snext procfs.c, shmfs.c, time.c: - corrected time stamp handling filesys.c, main.c: - rewritten completly module loading routines now much smarter and need less memory as before xhdi.c: - added XHMiNTInfo (XH_SET_KERINFO) in XHDI_init (disabled) include/file.h, global.c, dma.c, dma.h (new): - added DMA interface to kerinfo structure Thomas Binder: -------------- block_IO.c: - Added debug output of XHDI ID mprot030.c: - Memory areas that are neither ROM, RAM, nor IO are now marked "supervisor only". This avoids problems with the Falcon, which (due to its limited address bus) mirrors physical RAM at each 16 MB boundary, i.e. accessing 0x10203040 results in a physical access to 0x203040, bypassing any memory protection set for that area. - Removed serious bug in report_buserr(); I added %s to the format string for 1.15.6b (to display the type of access, read or write), but forgot to add the corresponding parameter to the list ... This resulted in strange crashs for unhandled memory violations. mprot040.c: - If not already set, walk_page() will enable supervisor protection for the first logical page, i.e. address 0 fatfs.c: - According to Microsoft's documentation, FAT32 still sets the start cluster of the parent directory to 0 if it's the root directory, even though the root directory actually has a real start cluster. - Fixed fatfs_readdir() that would abort on the first long name encountered when in compatibility mode (e.g. when internally used by Fsfirst()). Also, in compatibility mode, the short name wasn't always lowered for processes running in the MiNT domain. main.c: - When compiled with -DDEBUG_INFO, always halt on exit of the initial program, never reboot. I had some crashes which lead to a reboot without being able to read what caused it, so this is probably a good idea. signal.c: - The bus error report message mixed PC and AA syscall.spp, syscall_vectors.c: - addition of Sys_printf(), Sys-Mon's GEMDOS call to display debugging output, only in DEBUG kernel available crypt_IO.c, crypt_IO.h: - Added additional parameter to Dsetkey(), to select the cipher to use (although currently only Blowfish is supported). This shouldn't break existing code, as MiNT has not yet been officially release with -DCRYPTO_CODE. Draco: ------ startup.spp (new file): - replaces the standard libc startup code with own minimal one, this saves about 2k of memory - initial stack size reduced to 4k memset.spp, memset.h: - replacement for lib's memset(); this function is used by mprotxxx.c main.c: - removed reading command line at startup welcome.c: - removed two warning messages not used anymore after removing the command line stuff. ****************************************************************************** 2000-01-19: FreeMiNT 1.15.6 beta -------------------- Frank Naumann: -------------- pipefs.c, procfs.c, shmfs.c: - moved to UTC mode, added stat64 call - cleanup, moved ENOSYS functions to nullfs nullfs.c, nullfs.h: - added some more functions filesys.c, filesys.h: - added getxattr emulation if getxattr isn't avaialble biosfs.c, dosdir.c, fatfs.c, pipefs.c, procfs.c, shmfs.c, tosfs.c, unifs.c: - corrected wrong return code ENAMETOOLONG to EBADARG (related to new error codes) main.c: - detect_hardware() in getmch() only called for machines less than 040 (undefined behaviour on Milan060) cookie.*, ssystem.c, global.c, include/file.h: - moved cookie handling completly to the cookie module - added rsvf cookie handling - enhanced KERINFO structure for the new calls - new function for COOKIE remove (new Ssystem opcode) bios.c, biosfs.c, include/file.h, include/types.h: - added code for BIOS device remapping - new opcode DEV_INSTALL2 that can overlay already installed BIOS drivers (including BIOS functions) xbios.*, syscall_vectors.* - moved XBIOS table to the right place - some cleanup and reorganisation Thomas Binder: -------------- dosdir.c: - small fix in Fdelete to verify that a folder is deleted Draco: ------ intr.spp, cpu.spp, kernel.spp: - variables those don't need preinitializing (because are explicitly initialized by the code that is using them) are now in BSS. - tas instruction which can supposedly cause problems with some broken 68000 accelerator boards, is now replaced with bset #$07 (also slightly faster, thx Joerg for the point) - changed the way it is decided if it is the time to recalculate load averages detect.spp: - removed superfluous move.l from detect_fpu() vm5.spp: - removed the dummy rts at the end, label kept (because if the module is completely empty, linker cries). procfs.c: - in proc_ioctl(): inserted a compile time conditional to exclude code checking for the 68000 CPU in 68020+ kernels. - in proc_write(): added code for preserving security critical stuff across writes to the PROC structure at SECURELEVEL > 0 (this is against the mh.c exploit) - in proc_write(): blocked writes to parent memory space. Is there any use of this "feature"? - changed EACCES to EPERM in proc_ioctl(PSETFLAGS) dossig.c: - Psigintr() now returns ENXIO if the vector being registered is NULL or has an odd value. - sig_user(): removed superfluous extern - in p_sigintr(): removed superfluous declaration `extern long mcpu' (not used in this module) mprot030.c: - in mark_pages(): removed superfluous check for the CPU type. ssystem.c: - formal improvement of a compile time conditional - removed superfluous declaration `extern int no_mem_prot' - rest of extern ints changed to `extern short' unifs.c, unifs.h: - added FS_INFO so that Fsetter does not display garbage for U: dos.c: - checking the Shutdown() parameter, whether it is -1, moved to the begin of the function (where only makes sense). - removed conditional excluding close_filesys(), this is always called now. pipefs.c: - added temporary workaround for the shutdown bug (better than before, now it at least allows close_filesys() to do its things). main.c: - exception shadow area is now allocated with kmalloc(), I forgot to change this, sorry. - mcpu does not to be preinitialized with a 0, because it is explicitly intialized by detect_cpu() - removed old stuff related to save_dos, save_bios and save_xbios variables, which are not used by any code anymore. syscall.spp: - removed obscure undocumented function, which returned MiNT function table address in d0 for the appropriate handler while trapping to it with opcode value of -1. - BIOS and GEMDOS functions unknown to the kernel are no longer passed along to the underlying system (ENOSYS is returned instead). The only subsystem that is still routed to ROM this way, is XBIOS. include/mint.h: - corrected weird typo info.c: - corrected a minor typo dosfile.c: - corrected minor messages. ****************************************************************************** 1999-11-16: FreeMiNT 1.15.5 official release -------------------------------- Thomas Binder: -------------- bios.c: - Removed bug in setexc() that caused write accesses to address 0 on machines with less than an 68020 - this usually resulted in a bus error on the first call to Setexc(), sometimes stalling the system block_IO.c: - Workaround for bug in XHInqDev() of HDDRIVER prior to 7.8 (calling it with a NULL pointer for the BPB didn't report the correct values of a newly insterted medium, if the last call to Getbpb() mas made with no medium present) - bio_get_di() didn't correctly react on XHInqDev() returning -1 for the start sector, which means that the device is not currently accessible mprot030.c: - mark_region() does no longer try to write to the global mode page table if it has not yet been allocated (I already added that check to mprot040.c in an earlier beta, but forgot that it's useful in mprot030.c as well - until MiNT crashed on startup with MP enabled on my Falcon again ...) cnf.c, fasttext.c: - -DFASTTEXT now works again dos.c, dos.h, main.c: - Removed shutdown-stuff from main.c and created a new function shutdown() in dos.c (and the corresponding prototype in dos.h). This saves some code, and also ensures that on exit from MiNT, the correct code is called (the old one in main.c was missing unmounting of filesystems) dosdir.c: - Made d_lock() not only DEBUG-report the PID, but also the name of the process having an open file on the affected drive fatfs.c: - Added "| 0777" to the mode returned for symbolic links in fatfs_getxattr(). This is the behaviour of other filesystems like Minix or ext2, so no need to do it differently. This does _not_ influence the protection of the link, as it's impossible to read from/write to it directly, it will always be dereferenced, so that the access bits of the destination decide whether access is allowed. signal.c, signals.h, Makefile: - Added new signal SIGPWR and removed a flaw in the Makefile (incomplete dependencies for genmagic.ttp) main.c: - Until TOSFS is completely removed, try to trigger media changes on drives which have already been "grabbed" by TOSFS, but are supposed to be handled by NEWFATFS, according to mint.cnf shmfs.c: - Replaced code that searched the memory region for a given memory block address by the corresponding call to addr2mem() tosfs.c: - Removed the #ifdefs in tosfs_root (FATFS_TESTING is only set in fatfs.h, and actually equivalent to OLDTOSFS), so that TOSFS will never touch NEWFATFS drives, even if NEWFATFS decided not to accept them memory.c: - Added two useless tests in sanity_check() crypt_IO.c: - d_setkey() now removes a key from memory when ciphering gets disabled - Disabling ciphering now only works on drives where it is currently active Frank: ------ dosdir.c: - missing UTC -> localtime recalculation for UTC mode filesystems in f_sfirst/f_snext fatfs.c, shmfs.c, biosfs.c: - wrong time/date and uid/gid for ROOT cookie missing initializations Draco: ------ detect.spp: - size optimization procfs.c: - Fcntl(PSETMEMFLAGS) requires euid root when setting F_OS_SPECIAL at securelevel > 1. bios.c: - added detection of installing exception handlers by programs, which have improper protection mode set in the program header. - old "automatic" code to handle this commented out (this WON'T work). - corrected the OLDTOSF to OLDTOSFS define in a compile time conditional. memory.c: - small correction of the F_SMALLTPA related code in create_base() - Srealloc() filled with asserts and FATALs temporarily for debuging crypt_IO.c: - corrected a typo in the legal message - added preprocessor conditional to exclude 68000 code when compiling for 68020+. - fixed a bug in the aforementioned 68000 code (or Gryf, it was meant so perhaps? I am not a crypto guru...) Makefile: - added -DTRAPS_PRIVATE, please keep it defined, or prove it creates problems. debug.c, main.c: - removed (commented out) the rest of code that served for returns to TOS. Guido Flohr: ------------ include/dcntl.h: - Added TIOCSCTTY to set controlling tty. tty.c: - Support for TIOCSCTTY (set controlling tty) and TIOCNOTTY (disassociate from controlling tty). Makefile: - generate dependencies for genmagic.ttp. signal.c: - Behave like BSD4.4 for negative PID arguments to Pkill. Furthermore, the update daemon and PID 1 (if not AESSYS) cannot get SIGKILLed or SIGSTOPped. ****************************************************************************** 1999-10-11: FreeMiNT 1.15.4 beta -------------------- Frank: ------ include/mint.h, include/file.h, dosdir.c, filesys.c: - removed FCOOKIE_CACHE stuff, never worked and pollute the src syscall_vectors.* (new): - moved bios_tab and dos_tab to this files Makefile, dos.c, stubs.*, syscall.spp, trapatch.*: - removed trapatch trap handler and trapatch functions sorry Joerg but it's a bad concept, not the right way for MiNT dos.c, dosdir.c, dosfile.c, global.c: - added native UTC filesystem support, changes related to convert unix times to local and back - added new system call Fstat(), 64bit clean, UTC times see in file.h or in the MiNT-Lib - added new ioctl(FSTAT64) and FUTIME_UTC - Fstat() finally ready now, UTC mode work ok with the updated xfs driver proc.c: - bugfix for Dchroot(), string not copied on fork Draco: ------ dos.c: - enhanced Shutdown() main.c: - if the init (pid 1) terminates, the kernel does not return to TOS, but reboots. This is useful when we manage to kill the init while being logged onto a remote terminal - in this case we can hope the system will be back after awhile. at the occasion, the internal shutdown() function is removed and replaced by the "real" Shutdown() call from dos.c. dosmem.c: - Maddalt() now requires root euid. main.c, welcome.c, welcome.h: - copyright notice for the random generator moved and reformatted a bit. Thomas Binder: -------------- blowfish.*, md5.*, crypt_IO.*: - new crypto low level layer for block devices new system call for set keyword (experimental) block_IO.c: - bugfix in get_di; sector size not checked Guido Flohr: ------------ errno.h (new), atarierr.h (expired): - new error codes - changed all definitions in the kernel dosmem.c: - bugfix in p_waitpid Andreas B„r: ------------ include/dcntl.h, procfs.c: - new ioctl to get allocated memory regions per process ****************************************************************************** 1999-08-20: FreeMiNT 1.15.3 beta -------------------- Frank: ------ ssystem.h, ssystem.c: - added S_INITIALTPA for runtime configuration of the new config option unifs.c: - added Dcntl(FUTIME) main.c, main.h: - removed not used pointer variable - removed LATTICE support - cleanup bios.c, tosfs.c, tosfs.h: - moved clsizb array from bios.c to tosfs.c; now only compiled with OLDTOSFS define - added OLDTOSFS define in bios.c to the clsizb access biosfs.c, dev-null.*, dev-mouse.*, nullfs.* (new): - started restructurization of the biosfs, minimized biosfs.c to the main functions main.c, update.*: - moved all filesystem update stuff from main.c to update.c activated update daemon instead timeout method for default (this is neccessary for non-blocking fs operations) include/file.h, filesys.*, dos*.*, *fs.c: - added code for non blocking filesystem operations (not ready) include/file.h, dosdir.*, dos.c, global.c: - added code for (not ready) new Fstat() systemcall - enhanced kernel interface, allow now access to UTC time - enhanced filesystem interface for the new call - added wrapper code to Fxattr() to compensate UTC times for UTC working filesystems include/proc.h, filesys.c, dosdir.c, dos.c: added code to handle new Dchroot() systemcall: - current dir and drv will be changed to new root dir and drv - getcwd map out the root path - d_setdrv don't work after Pchroot() - absolute DOS addressing is blocked in relpath2cookie - '..' on new root dir is mapped to '.' in relpath2cookie - Dlock() check for active root mapped prozesses include/mint.h, Makefile, filesys.c: - removed DIRSEP_SLASH define - without it, MiNT isn't very useful; so it's now always active proc.c: - removed two redundant strcpy block_IO.c, include/block_IO.h: - added new feature - fixed memory leak fatfs.c: - bugfix Joerg: ------ trapatch.*, stubs.* (all new) syscall.spp, dos.c: - experimental new trap handler based on trapatch see in the files for detailed informations Gryf: ----- cnf.c: - changed drive-letter-to-drive-number conversion to handle drives 1: to 6: correctly cnf.c, memory.c: - added support for new mint.cnf-keyword "INITIALMEM" that limits the amount of memory allocated for TPAs (in addition to the size of the program segments); unlike "MAXMEM", it does not limit Malloc()ed memory dos.c: - fixed bug in s_hutdown() (syncing was done after invalidating) drives ("not written out" errors on shutdown) memory.c: - support for the new program header flag F_SMALLTPA (originating from MagiC) - fix bug in get_text_seg mint.h, procfs.c, util.c: - changed the hardcoded maximum PID of 1000 into the constant MAXPID mprot030.c, mprot040.c, memory.c: - for MMU trees smaller than MAX_TEMPLATE, four additional template trees (one for each protection type) are generated and then used in mark_pages(), to speed up mark_region() - speed improvement in 040 MP code - bugfix in memory calculation proc.c: - add missing #include of random.h, to avoid compiler warning dos.c, dosmem.c, dosmem.h, genmagic.c, mint.h, signal.c slb.c (new), slb.h (new), include/slb.h (new), slb_util.spp (new), Makefile: - experimental support for MagiC-style "shared libraries" (it's not fully compatible, see slb.c for details) Draco: ------ main.c: - fix bug in install cookie; fpu cookie is now always installed ****************************************************************************** 1999-07-01: FreeMiNT 1.15.2 beta -------------------- Frank: ------ dosfile.c, dosfile.h, dos.c: - added two new systemcalls: Ffchown() and Ffchmod() to change uig/gid and mode bits on open files dosdir.c: - removed Fchown() workaround; must be handled by MiNT-Lib (or the xfs) fatfs.c: - fix some bugs (rename, rmdir, xdd) detect.h, detect.spp, main.c: - removed required defines for CPU and FPU detection - MiNT now always detect itself the CPU and FPU type Ralph: ------ cnf.c: - fix bug in include mechanism Joerg: ------ detect.spp: - fixed ST-ESCC detection Guido: ------ random.h, random.c (new): - new random device - minor changes for this also in biosfs.c, block_IO.c and some other xbios.c, xbios.h, kernel.spp, kernel.h: - new & better XBIOS random generator - removed old routine ****************************************************************************** ****************************************************************************** ****************************************************************************** 1999-04-13: FreeMiNT 1.15.1 --------------- revision 1.5 - final release Frank: ------ main.c: - added MILAN check fatfs.c: - fix bug in symlink Gryf: ----- cpu.spp: - fix bug cpush060 mprot040.c: - fix bug in read_tables Draco: ------ - fix small bug in detect.h (missing clr) Guido: ------ biosfs.c: - added /dev/zero ****************************************************************************** 1999-04-13: revision 1.4: Gryf: ----- mprot040.c: - enhancements and optimizations block_IO.c: - fix 0 division bug intr.spp: - on Milan old VBL vector was inactive Frank: ------ fatfs.c: - fix little bug in free cluster calculation (32bit FAT) main.h, main.c, welcome.h, welcome.c, cnf.c, syscall.spp: - removed latest changes filesys.c: - removed initial FILEPTRs; FILEPTRs will now always kmalloced/kfreed ****************************************************************************** 1999-04-13: revision 1.3: Frank: ------ dos.c, dosdir.c: - unmount support for xfs (Shutdown(), Dlock()) include/file.h: - new extensions for xfs interface intr.spp: - readded 040 MMU exception handling main.h, main.c, welcome.h, welcome.c: - clean up startup messages until init_intr() we must use Trap #1 calls after init_intr() we call directly our own functions Joerg: ------ sycall.h (new), syscall.c (from syscall.h.new) - changes related to reentrant trap handler - prototypes for Trap #1 emulation and some needed ROM-GEMDOS functions biosfs.c, tosfs.c: - changed Trap #1 GEMDOS calls to ROM-GEMDOS calls through Trap #1 emulation ****************************************************************************** 1999-04-13: revision 1.2: Draco: ------ intr.spp, main.c: - clean up Milan VBL emulation Frank: ------ cnf.c: - new CNF keyword to support write protection at startup include/proc.h: - increased super stack dma.c (new): - new file for nonblocking DMA support (in development) tosfs.c: - fixed bug in root for drives >= P: access is only rejected if it's a XHDI drive - better executable_extension() for x-bit emulation fatfs.c - added configurable write protection (soft/hard) block_IO.c: - some changes related to write protection support Gryf: ----- mprot030.c: - bugfix in init_tables (missing braces) ****************************************************************************** 1999-03-15: revision 1.1: Frank: ------ renamed memprot.c to mprot030.c: - more consistent now memory.c: fixed typo in s_realloc introduced in beta 1.0 include/fsting.h: added _STRNCP_F; same as _mint_strncpy_f string.c, string.h: added _mint_strncpy_f - fast strncpy with always NULL termination (copy (n - 1) character maximum, add always '\0') Gryf: ----- memory protection support for 040/060 (060 not tested yet): mprot040.c, mmu040.spp: - new files intr.spp, main.c, include/mint.h, include/sproto.h, include/proc.h: - minor changes to reflect this cpu.spp: - added missing cpushas/cinvas in ccw_set - added log2phys (not needed yet) Draco: ------ welcome.c: unused notice commented out (waste of memory) memory.c: O_DENYNONE changed to O_DENYW in load_region() as the comment there suggested. MultiTOS still works as it did, do we support SingleTOS GEM forever? main.c, detect.spp, detect.h: small blurp added to be displayed on boot (notice on whether the memprot is enabled or not). Similar blurp on ST-ESCC. intr.spp: corrected a comment. syscall.spp.new: trap #1 handler no longer wraps to ROM. This makes TOSFS no longer valid. Underlying functions not supported by MiNT are still called via wrapper trap_1_emu(). Also similar wrappers are done for BIOS and XBIOS (now commented out for future usage). This also causes a (very small) reduction of GEMDOS call overhead. To still be able to use old TOSFS XFS, one will have to change TOS bindings so that they do jsr _tos_1_emu instead of trap #1. ****************************************************************************** 1999-03-15: revision 1.0: Frank: ------ fatfs.c: fix new bug (typo) cnf.c: better message if NEWFATFS is default FS VFAT drives implies NEWFATFS now Draco: ------ welcome.c: removed compiler options from the initial welcome text (pure waste of memory) proc.c, intr.spp: uptime & uptimetick stuff removed from calc_load_average() and inlined directly into intr.spp. Thanks Frank for pointing this out, I liked the gcc's way of calculating the remainder (i.e. the code was funny :-)) main.c, kernel.spp, kernel.h: removed the reset handler movement stuff (no work, sorry). On reset problems please run MiNT from ST-RAM (applies to Afterburner040 and BlowUp FX, probably). ****************************************************************************** 1999-03-10: revision 0.9: Gryf: ----- intr.spp: added VBL Milan kludge to reactivate preemptive Multitasking on Milans cdef.sh: changed to sh syntax memory.c: fix bad bug in MMU table initialization for MP fatfs.c: high speed ffree32 (enabled by default) some optimizations Frank: ------ kmemory.c: disabled default debug mode, some optimizations & corrections fatfs.c: updating (FAT32 info sector stuff), bugfixes block_IO.c, fatfs.c, time.c: fix some PureC warnings ****************************************************************************** 1999-02-26: revision 0.8: Frank: ------ fatfs.c: fix in lookup info.h, info.c, cdef.h & cdef.sh: new files (experimental); compiler informations info.c replace build.c ssystem.h, ssystem.c: new opcodes for compiler informations block_IO.c: optimizations dosmem.c: replace if else if construct with switch statement Thomas: ------- block_IO.c: additional caching strategie; new CNF keyword for customization (CNF keyword is experimental for the moment) Draco: ------ 1999-02-25: ----------- detect.h, detect.spp, main.c: some changes in detect_fpu() kernel.spp: nothing, I am just not sure if the previous file I sent was correct... memory.c: Srealloc() fixed to do proper screen pads on Falcons. It it now so, that the screen size is rounded up to a 256 byte boundary (= like TOS). Previous code just blindly added 256 bytes, so the screen pad was always 512 bytes, thus 800x608/mono under Videl Inside II was a bit of mess. Fixed now and I hope it won't make any problems. It shouldn't unless a screen enhancer has a fix against that MiNT's Srealloc() "feature". 1999-02-17: ----------- main.c, detect.spp: final (I hope) changes in FPU detection code, a cookie for a memory mapped FPU is copied to the new Cookie Jar, but MiNT doesn't consider such FPU "true". ssystem.c, ssystem.h, cpu.spp, cpu.h (new file): new cache control mode ($0017) for Ssystem() call. See included examples, more documentation soon. ssystem.c, ssystem.h, xhdi.c: "improved" names of Ssystem() modes. bios.c: Setexc() called in secure mode now raises SIGSYS rather than explicitly terminates the caller. dos.c: Super() at securelevel == 2 now raises SIGSYS. xbios.c: so does Supexec() main.c, syscall.spp: unused traps (except for trap #15, see comments in main.c) now sell the caller SIGSYS rather than draw 32 bombs on the console. system.c: slight changes related to debug info. S_FLUSHCACHE mode added (guess, what does it do :)) intr.spp, kernel.spp, kernel.h, main.c: reset routine relocated to ST-RAM if MiNT runs in fast RAM. This is to prevent "black crashes" on AB040 et consortes. main.c, kernel.h, kernel.spp: experimental replacement routine for Random(). Uses similar algorithm as TOS does, but is supposedly faster. bios.c, dosmem.h, dossig.c, dossig.h, intr.spp, main.c: The code behind Psigintr() cleaned up, assembler part rewritten, the call now actually works, isn't so hopelessly limited and shouldn't cause system freezes anymore. Changes in behaviour are: - the registered interrupt is now passed over to the original interrupt service, once a signal has been posted. - Psigintr(0,0) does cancel all interrupts previously registered by the caller. - ERANGE is now returned when signal number bigger than 30 was specified to be registered. - also ERANGE is returned if vector number other than for autovectors, traps and user specified interrupts was specified. Other vectors either already generate own signals or are of no interest. - also, the call now returns E_OK on success rather than the old value of the interrupt vector (what a cleanly written program is supposed to do with that number, eh?). Unless I miss something, it seems to be now guaranteed, that all interrupts will be still serviced as before a Psigintr() call was made (previous implementation was just stealing a vector to point to new_intr(), then that last was doing rte... of course, the proper service routine was ignored, until the process terminated, yet the sig_usr() hacked the MFP to pretend the interrupt to be serviced... urg,...). Multiple processes are still allowed to register same interrupt, or different interrupts or whatever. There are no special limits, except for common sense. If two processes registered same interrupt, both receive requested signals, when the interrupt occurs. However, it is not guaranteed that all interrupts will result in signal delivery. A single interrupt results in 1 signal posted, but 1000 interrupts also may result in 1 turn of posting signals (1 turn means that there will be 1 signal posted per signal registered per proces :)). UNFORTUNATELY, all this has two side effects: a) the kernel takes 1k more memory (yes, interrupt vectors shadow) b) all this doesn't work on a 68000 anymore (did it any time, though?), at least 68020 is needed, because only 68020 and up save all necessary information in the stack frame. On a 68000 machine the Psigintr() call doesn't work simply returning EINVFN. Psigintr() may be useful to create for example a system clean screen saver. detect.h, detect.spp, main.c: detect_fpu() now directly returns the _FPU cookie value instead of cryptic codes, what allowed to simplify the relevant part of main.c. Only an FPU in coprocessor mode ( >= 68020 ) is considered a `true' FPU. Guido: ------ time.c: - Duplicate line removed (typo). - Mysterious clock leap for localtime kernel clocks should now be fixed. Forgot to change the kernel clock when timezone information was applied via Tsettimeofday. ****************************************************************************** 1999-02-04 revision 0.7: Frank: ------ kmemory.c: moved block free pointer into system area fatfs.c: changed short datatypes to ushort block_IO.c, include/block_IO.h: added new functionality - revision level 1 changed short datatypes to ushort Thomas: ------- unifs.c: better behaviour for removable drives with no media at bootup filesys.c: fix possible bug in PATH2COOKIE fatfs.c: small upper/lowercase correction in dirread Guido: ------ time.c: - Consistency check for timezone argument to Tsettimeofday removed. It was previously assumed that the maximum allowed offset to UTC was 12 hours which was not enough for DST in Auckland/New Zealand. What is a reasonable value? 13 hours may not be enough. 14 hours? (TODO!) Draco: ------ xbios.c, syscall.spp: removed Vsetscreen() patch, conflict with Centurbo 2 (grrr...) dosfile.c: old GEM (MTOS) kludge commented out, watch out, might be necessary anyways... ****************************************************************************** 1999-01-20 revision 0.6: Frank: ------ include/dcntl.h: - added new FS number for STonXfs4MiNT ssystem.c: - added support for debug device and level block_IO.c, fatfs.c: - updates, bugfixes - implement missing functionality Ralph: ------ cnf.c: - complete new enhanced CNF parser Draco: ------ detect.spp: added a routine for hardware CPU detection. began a routine for hardware FPU detection. main.c, detect.h: changes reflecting the detect_cpu() and detect_fpu(). the loop that copies the TOS Cookie Jar into new location is simplified (though may look more complex =)) cpu.spp: init_cache() rewritten. Makefile: added $(DEFAULTDEFS) for asm module compiling, this is *necessary* there! dossig.c: Psigintr(0,0) now removes user handlers installed by process. There are two new definitions: `CPU_TEST' causes the TOS _CPU cookie to be ignored and enables own hardware test for CPU type. The result of this test is later written to the MiNT Cookie Jar. The routine should automatically detect 68000, 68010, 68020, 68030, 68040 and 68060. `FPU_TEST' (valid only if CPU_TEST is defined!) enables own hardware test for FPU type. In this case the TOS _FPU cookie is ignored completely and if own test indicates a true coprocessor, MiNT establishes entirely new _FPU cookie. The CPU_TEST routine should be considered already completed and fully working unless it contains a bug. In other words, it needs only testing, and if tests succeed, there's nothing against enabling it permanently. The routine should be tested "against" =) various CPU types, as well as new install_cookies() code should be tested on a machine where TOS didn't establish the Cookie Jar. The FPU_TEST is not finished. However, I am very interested about results generated on various machines. So my proposal is to enable it in next beta, then observe reactions =) An alternative is to distribute both tests in a form of separate program, which users could try on their machines and give results back to us. For now I can only prove that both tests work perfectly on a 68030/68882. ****************************************************************************** 1998-12-22 revision 0.5: Frank: ------ fatfs.c: - bugfix in rename - bugfix for read with negative bytecount (suggestion from Draco) time.c, intr.spp: - deactivated get_time from hardware clock (bootproblem) Draco: ------ syscall.spp: - bugfix Joerg: ------ detect.spp, detect.h: - automatic detection of Harun Sheutzows ST-ESCC - removed defines in include/mint.h ****************************************************************************** 1998-12-11 revision 0.4: Frank: ------ fatfs.c: - bugfixes and updates - rewritten readlabel/writelabel - position save renaming on non VFAT partitions string.c, string.h (new): - moved all string functions in this file (from util.c) include/kctype.h, include/fstring.h: - some name changes related to the string functions time.c, intr.spp Draco: ------ intr.spp: - fixed a possible bug in mint_timer(). main.c, intr.spp, syscall.spp: - new way of linking some vectors using new_xbra_install() function. Not all for now, but this will change. main.c, cpu.spp: - inserted a NOP into cpush() to sync pipelines. - new way of cache type selection, now proper cache handling is selected by a vector initialized at startup. main.c: - variable gemdos_version and a call to Sversion() commented out if OLDTOSFS is not used. syscall.spp, xbios.c: - byzantine construction to patch the syncbug in Vsetscreen() on Falcons (so far only Vsetmode() was patched). But guys, please note that it only patches programs making system calls to change resolutions! If a proggy switches it by hardware directly (e.g. some versions of vconsd), the syncbug will still occur! ****************************************************************************** 1998-11-24 revision 0.3: Frank: ------ fatfs.c: fix bug in fat12 access routines block_IO.c: some fixes in initalization fix for logical Rwabs mode include/file.h, *fs.c: remove DP_MAXREQ definition, correct all internal filesystems main.c: add cpush after xbra chain manipulation (Michael) ****************************************************************************** 1998-11-03 revision 0.2: Frank: ------ include/fstring.h, include/block_IO.h, include/default.h, fatfs.c, unicode.h: removed all USE_INLINE_FUNCS stuff removed all unused makros cleanup, small corrections block_IO.c: cleanup, corrections, some bugfixes kmemory.c: cleanup, alignment fixes xhdi.c: add XHDrvMap to drvmap() unifs.c, dosdir.c: remove "| PSEUDORVS" to drvmap (always done at boottime in main.c) Julian: ------- include/file.h: add new Spin FS_INFO types include/dcntl.h: new Dpathconf (DP_VOLNAMEMAX) updated man2/Dpathconf.2 ****************************************************************************** 1998-10-26 revision 0.1: Frank: ------ dos.c: return our own GEMDOS version if OLDTOSFS is disabled Draco: ------ contex.spp, intr.spp: update & bugfixes ****************************************************************************** 1998-10-22 revision 0.0: Frank: ------ fatfs.c: added uid/guid/mode for the root cookie for every drive (same method as in TOSFS) block_IO.c: some fixes, fix a bug in bio_res_di memory.c, memory.h: removed new_region/dispose_region -> replaced by kmr_get/kmr_free in kmemory -> some replacements and adjustments for this change kmemory.c, kmemory.h: new files, handles the complete internal small block memory management, three different strategies main.c: added patch for centek2 user, TOS is reported as 7.0x (falcontos detection) ****************************************************************************** ****************************************************************************** ****************************************************************************** 1998-10-08 FreeMiNT 1.15.0 --------------- revision 3.1: (final) Frank: ------ fatfs.c, cnf.c: added LCASE keyword; force use of lower case FAT names main.c: add pseudodrives before xfs are loaded bios.c, biosfs.c, xbios.c, main.c, cnf.c: replaced st_escc variable with preprocessor defines for ESCC support -> new compile time switch (old method doesn't work at bootup) block_IO.c: fixed a possible bug include/block_IO.h: cleanup (moved struct cbl definition to ./block_IO.h) ****************************************************************************** 1998-09-27 revision 3.0: Frank: ------ ssystem2.c renamed to ssystem.c: added new call Ssystem(SYNC_TIME) to set time for filesystem sync. cnf.h, cnf.c (new): moved MiNT.CNF parser from main.c here added new HIDE_B= keyword to remove drive B: from drive list fatfs.c, block_IO.c, include/block_IO.h: some minor fixes and updates Draco: ------ Speed optimizations done in order to reduce the total overhead of the scheduling code and GEMDOS timer. BTW.: all this somehow fixes the problem with FastCOPY Pro, which was always very slow formatting and writing floppies under MultiTOS. Works much much much faster now. kernel.spp: new file with assembler routines enter_gemdos(), enter_bios() and leave_kernel() - equivalents for functions removed from main.c. changed the way of redirecting system calls to ROM, currently trap vectors are not saved/restored at each kernel entrance anymore. This significantly reduces the enter/leave procedures. main.c, main.h: enter_kernel() and leave_kernel() removed. variables save_dos, save_bios and save_xbios removed as well. bios.c: Setexc() updated for handling trap vectors correctly. timeout.c, timeout.h: timeout() moved to intr.spp. intr.spp: enter_bios() and leave_kernel() inlined into mint_vbl(). skipped setting IPL 7 before enter_bios() and after preempt() in mint_vbl(). optimized assembly equivalent of the timeout() inlined into mint_timer(). removed two movem.l instructions saving/restoring registers in mint_timer(). syscall.spp: changes reflecting the removal of enter_kernel(). subroutine check_priv now inlined into mint_xbios(). context.spp: skipping change to IPL 7 in restore_context(). tiny optimizations (removed maybe four instructions). genmagic.c: update for new indexes needed in assembler modules. Other changes made at the occasion: time.c, intr.spp: init_time() now seems to read the IKBD time-of-day packets. struct ikbd_time simplified. See comments there. newcvec() fixed to work. main.c, dos.c: kernel's Sversion() no longer calls the ROM GEMDOS. Small step on a way to get rid of the ROM GEMDOS completely. bios.c, vm5.spp, main.c, intr.spp, ssystem2.c: the rest of the VM code ifdef'd out if VM_EXTENSION is not defined. this makes the kernel shorter about 3k. ****************************************************************************** 1998-09-09 revision 2.9: Frank: ------ fatfs.c: fix a bug in symlink; some additional checks block_IO.c: added XHReserve/XHLock support for removable medias include/types.h: added llong (64bit int) type include/dcntl.h: some updates of Dcntl and data types ****************************************************************************** 1998-09-03 revision 2.8: Frank: ------ bcache.c & hdio.c: merged into block_IO.c, buffer cache rewritten (dirty cache units are now blocked and written back in sorted order on each drive) Medichange bug fixed dosdir.c: f_chown return E_OK if function isn't supported by xfs (problems with some GNU tools) include/ctype.h renamed to include/kctype.h: avoid problems with ctype.h from MiNT-Lib ****************************************************************************** 1998-08-24 revision 2.7: Frank: ------ dosdir.c: fixed a bug in d_delete and f_delete (dupcookie/releasecookie mechanism) mfp.h (new), time.c, dossig.h, bios.c, xbios.c, biosfs.c: replaced MFP hardware adresses by preprocessor define (defined in mfp.h) include/misc.h (new): moved all compiler specific stuff from mint.h in this file fatfs.c: fixed a bug in delete_cookie ****************************************************************************** 1998-08-06 revision 2.6: Frank: ------ bios.c, biosfs.c, dossig.c, welcome.c: add simple MILAN support for different hardware addresses (preprocessor define) time.c, time.h, dos.c, xbios.c, proc.c: disabled new timer from guido (doesn't work on Milan at the moment) fatfs.c: some optimizations Rainer: ------- include/dcntl.h: Add some opcodes from biosfs.c, MiNTlib's include/ioctl.h and HSMODA. biosfs.c, fasttext.c, pipefs.c, xbios.c: Fcntl(..., TCURS*) work uniq and as documented in The Atari Compendium. Cursconf() works at all. biosfs.c, pipefs.c, procfs.c, shmfs.c, tosfs.c, unifs.c: *_getname(), *_readdir() and *_readlabel terminate the name with 0 if it has the maximum length resp. correctly check the length. Also a bit faster (strncpy() clears the complete buffer!). biosfs.c, shmfs.c: *_rename() respects mame truncation. dosdir.c: Dsetpath() recognizes drives "A..Z1..6" and "A..Z[\]^_`". Changes on file attribute handling for ISO/IEC 9293 compatibility. Fattrib() allows all but changes between file/directory/label type. dosmem.c: Pexec() names the drives for the PLOADINFO buffer "A..Z1..6". fatfs.c: getcl12()/fixcl12() work on 68000. falcon.h, memory.c, xbios.c: Renamed Montype() to VgetMonitor(), Vgetsize() to VgetSize(), Vsetmode() to VsetMode() and Vsetscreen() to VsetScreen(). Corrected Lattice binding for VgetSize(). ssystem2.c: Ssystem(TOSHEADER, ...) returns always a complete and corrected OSHEADER and works at all. tosfs.c: Fchmod(..., S_ISUID) hides subdirectories as on HP-UX. Changes on file attribute handling for ISO/IEC 9293 compatibility. unifs.c: unifs_init() names the drives on U:\ "a..z1..6". xbios.c, syscall.spp: Replaced call_dosound() by Dosound(). diverse: Changes for Pure C (not complete). Changed the type of date and time variables from short to ushort. Replaced error code "0" by "E_OK". Also for some other codes. Replaced seekmode numbers by "SEEK_*". Changed some mixed space/tabulator use to tabulators. Please use only tabulators for indentation. Changed some calendar dates in various formats to the format YYYY-MM-DD as defined in ISO 8601. Please use only this date format in international contexts. intr.spp, syscall.spp, vm5.spp: Removed some useless code avoiding "clr" for not-hardware on 68000. Add some missing ":" after labels. ****************************************************************************** 1998-07-23 revision 2.5: Frank: ------ include/fstring.h: (new) introduce new file - fast string - with inline string functions for time critical parts, moved string stuff from mint.h fatfs.c: remove string stuff (now in fstring.h) some minor fixes (FAT32 detection) Rainer: ------- fatfs.c: some minor fixes (see in fatfs.c for a detailed list of changes) unicode.*: name correction ****************************************************************************** 1998-07-13 revision 2.4: Frank: ------ dosdir.c: dlock() now sync the filesystems before a lock is made filesys.c, include/file.h: add new dskchng strategie (new fsflag and a extended dskchng routine) if the new flag is set the kernel ask the xfs for a mediachange (old: kernel do this itself but this fail on non BIOS devices) this introduce a new flag to dskchng: 0 = aks, 1 = force disk change bcache.c, include/bcache.h: extend buffercache interface, add some new useful functions (see in bcache.c for a detailed list of changes) fatfs.c: some minor fixes (see in fatfs.c for a detailed list of changes) ****************************************************************************** 1998-07-10 revision 2.3: Frank: ------ include/bcache.h, include/hdio.h, file.h: extend Kernelinterface for new buffer cache and so, experimental!!! (will be removed or will be changed in the next time) global.*, timeout.c: add global 20ms counter global.*: introduce new file that holds global useful data, move kernelinfo from main.c to global.c bcache.*: new files, replace hdcache.* new, memory optimizing, intelligent buffer caching fatfs.*, bcache.*, hdio.*, xhdi.*: update and bugfixes, see in the files itself for a detailed list of changes unicode.*: add new table for Atari ST character set -> Unicode (thank to gryf who create this table), add translate function include/dcntl.h: new file with all known opcodes (moved from file.h and other places) include/atarierr.h: add some new error codes (Rainer Seitel) dos.c: update security check in super (final I hope) xbios.c: update security check in supexec (final I hope) *fs.c: add Dcntl opcode MX_KER_XFSNAME to all filesystems in FreeMiNT Draco: ------ dos.c: Super() now ignored when called by an unprivileged process. main.c, syscall.spp: added a kludge for DSP XBIOS calls, Dsp_LodToBinary() works now. all XBIOS calls except Random() and Cursconf() are now restricted for root only. xbios.c: most of security code moved to syscall.spp. ssystem2.c: filesystem control removed, use Dcntl() instead. genmagic.c: update. ssystem2.doc: update, clarifications, corrections. ****************************************************************************** 1998-06-23 Frank: ------ hdio.c, hdio.h: new files. biosfs.c: improved syntax of a conditional in iread() filesys.c, mint.h, main.c, ssystem.h, ssystem2.c, tosfs.c: various changes to reflect -DOLDTOSFS compiler switch. fatfs.c, fatfs.h, xhdi.h: update and bugfixes, see in the files itself for a detailed list of changes unifs.c: fixed a warning. Draco: ------ ssystem2.c: added trace & debugging code. dosfile.c: added a check in F_write() against negative block counts. console.c: applied Thomas Binder's patch for C_conrs() tosfs.c: applied Thomas Binder's patch for filtering VFAT entries on TOS filesystems. bios.c: inquire part of the Setexc() open for all processes (suggestion from the mintlist). ****************************************************************************** 1998-05-25 (b4) Frank: ------ fatfs.c, fatfs.h, hdcache.c, hdcache.h: update Makefile: update for 68040 kernels Draco: ------ cpu.spp, Makefile: Mikko's 68060 patch applied. main.c, ssystem2.c, mint.h, Makefile: The switch -DONLY030 is now obligatory for all CPUs from 68020 to 68060. ****************************************************************************** 1998-05-19 (b3) Frank: Source tree redintegration of Guido's patches. Draco: Final review and textfiles corrections util/uname/uname.c: updated. util/cjar/clist.c: updated. ****************************************************************************** 1998-04-24 Guido: ------ Directory structure has been radically resorted. Manual pages (out of date) and more docs (also out of date) and an occasional README added every here and there. Further: time.c (new), time.h (new), dos.c, main.c, mint.h, ssystem.c, ssystem.h, timeout.c, xbios.c: New kernel time-keeping model implemented with new system calls Tgettimeofday and Tsettimeofday. Old Tgettime, Tgetdate, Tsettime, Tsetdate, Gettime and Settime are bypassed by the new routines. resource.c (new), resource.h (new), dos.c: New system calls Pgetpriority and Psetpriority. Moved compatibility code for Pnice and Prenice to resource.[ch]. Docs/timezone.doc, Docs/minttime.doc: New files describe new time facilities. Docs/ssystem.doc: Updated. Changed the meaning of the `beta-tag'. Every printable character that may characterize the current version of MiNT is now allowed (not only `b'). bios.c, biosfs.c, dosfile.c, tty.c: Added typecasts, initializations to make MiNT compile with less warnings. Makefile, build.c (new): Avoid re-compilation of ssystem.o over and over again. DEBUG_INFO is now default, optimization default is -O3. dosmem.c, proc.c, proc.h, signal.c: Pwaitpid now returns the signal numbers for signalled processes (as the MiNTLib implementation of wait4 and friends already expects). mkbuild.c: Month and week numbers for build.h are now calculated correctly. ssystem.c: Allowed read access to everybody. Disabled checking of real user-id when checking privileges (the super-user needs some way to get rid of the privileges). ****************************************************************************** 1998-05-10 Frank: ------ fatfs.c, fatfs.h, hdcache.c, hdcache.h, unicode.c, unicode.h, pun.c, pun.h, xhdi.h (all new): new FAT/FAT32/VFAT filesystem integrated with the kernel. main.c: also related cnf commands added: NEWFATFS, VFAT, WB_ENABLE, CACHE proto.h: gone; separate header files introduced instead. asm translator moved to ./asm top level header moved to ./include complete new Makefile, automatic dependencies Draco: ------ ssystem2.c: added modes 20 and 21 to control the new filesystem on the fly. xbios.c: Videl patch modified (should be closer to a 100% fix). main.c, mem.c, ssystem2.c: modified for new FASTLOAD cnf keyword. mkbuild.c: fixed inappropriate month for build date, fixed bogus warnings. version.h: modified mem.c: TOS-4-ramvalid fix #ifdef'd depending on the VM_EXTENSION (caused problems with real fastram on all computers (?)) ssystem2.c, intr.spp: singlemode abandoned (moved to the future, that is). ssystem2.c: Ssystem(GETCOOKIE) call expanded to be able to return any slot value (the previous implementation didn't handle cookies with a value of -1). The previous behaviour is still kept however. See ssystem.doc for details. ssystem2.c: Ssystem(SYS_SLEVEL) now allows to inquire the security level by user processes. dos.c: Super() protection bugfix (it should work now) bios.c: Setexc() now allows user processes to change the critical error handler and the GEMDOS terminate vector (oups!) bios.c, biosfs.c, xbios.c, main.c: ST ESCC support added, controlled by STESCC cnf keyword ****************************************************************************** Draco Sun Apr 05 17:25:16 CET 1998 mint-1.14.7-beta pipefs.c: pipe_write() and pipe_read() now wake process sleeping on the corresponding pipe conditions immediately. Bi-directional IPC should now work better (Guido). intr.spp: scheduler modified for single mode. system2.c: added definitions for SET/GET_SMODE, RUN_LEVEL, T_SLICE. falcon.h: added. xbios.c: Videl patch applied for Vsetscreen() and Vsetmode() (no more sync errors in mono res on Falcons). Vsetscreen(), Vsetmode(), Rsconf(), Midiws(), Dosound(), Iorec(), Bconmap() restricted for euid root at level 1. cpu.spp: line 67 modified for 68060 machines. mem.c: fix for ramvalid under TOS 4 incorporated to init_mem(). nottram.prg: no longer needed. dosdir.c: Dsetpath() no longer needs +r for the directory (as in Unix). main.c: SINGLEMODE keyword added to MINT.CNF. version.h: modified proto.h: int in the Ssystem() prototype changed to short. mkbuild.c: new file by Guido (replacement for my hack known as makebuildtime.c ;)) ssystem.h: modified. ************************************** Draco Thu Dec 07 03:01:26 CET 1997 mint-1.14.6-beta version.h, dos.c, proto.h, makefile: modified. ssystem2.c, ssystem.h (all new): New system call, Ssystem(), is introduced into the kernel. See ssystem2.c and included examples for details and use. The code is based on that developed by Jerry Geiger (jerry@zedat.fu-berlin.de) by Draco (draco@mi.com.pl). main.c: the SECURITY command removed from the kernel, SECURELEVEL introduced instead as more flexible. See MINT.CNF. mem.c, mem.h: ST_LEFT_AFTER_VM removed. mem.c, makefile: VERBOSE_BOOT option added. bios.c: Setexc() protected for euid root at level 1. dos.c: Super() restricted for euid root at level 2. xbios.c: Supexec() restricted for euid root at level 2. ************************************** Draco Sun Sep 14 06:14:22 CET 1997 mint-1.14.5-beta: version.h: patchlevel number modified mint.h: #undef VM_EXTENSION if ONLY030 is not defined main.c: PMMU cookie will be set if VM is active. Cookie Jar size increased - now 8 entries more. New command, SECURITY, introduced to the MINT.CNF (see readme.1st for details). New global symbol, secure_mode, defined (set to 1 if SECURITY=YES). bios.c: if SECURITY=YES, Rwabs() is not available for anyone but superuser. dosdir.c: if SECURITY=YES, Dwritelabel() is available for superuser only. procfs.c: fixed a bug so that regular users are no longer able to remove processes those aren't their own. vm5.spp: "Falcon cold start bombing problem" fixed. VM stability improved noticeably. nottram.s, nottram.prg: added to the binary distribution (see nottram.doc for details and use). ************************************** Draco Mon Aug 25 00:52:44 CET 1997 mint-1.14.4: mem.c: Harry Eaton's pexec() patch applied. mem.h: #define ST_LEFT_AFTER_VM only if VM_EXTENSION is defined. version.h: patchlevel number modified. mint.h: -DMULTITOS, -DONLY030, -DDIRSEP_SLASH, -DVM_EXTENSION, -DVM_DEBUGGING moved to the makefile. makefile: see above + new kernel version definition (030 with the VM) vm5.spp: some testcode (accidentally left in 1.14.3) removed. physical disk access changed to BIOS logical mode. Three binaries are included/will be produced: mintvmx.prg - 68030 with VM extension mint030.prg - 68030 without VM extension mint.prg - 68000 (without VM extension, of course) All binaries compiled with gcc 2.7.2. ************************************** Draco Wed Jun 11 00:55:40 CET 1997 mint-1.14.3: tty.c: Torsten Lang's serial patch applied. vm5.spp: modified to run VM on Falcon IDE (still not stable). quickmov.spp: skipping some 68000 junk while compiling for 68030. welcome.c: modified. version.h: patchlevel number modified. Kernel compiled with gcc 2.7.2. ************************************** mint-1-14(.0): ************************************** Sven Karlsson Sat Sep 21 20:15:00 GMT 1996 makefile, mem.c, mem.h, intr.spp, version.h, welcome.c: modified. vm5.spp (new): VM is introduced in the kernel. True lattice projectfile added. doswap utility is added. se doswap/read.me for details on usage. mint-1.13 is skipped