2004-07-11 Bart * NEWS, dosemu.spec.in: Added one more NEWS entry. Adjust dosemu.spec.in. * README, THANKS, doc/EMUfailure.txt, doc/announce, etc/dosemu.conf, man/dosemu.1.in, man/dosemu.bin.1.in, src/arch/linux/Makefile.main: Some minor documentation updates. * src/: arch/linux/async/signal.c, base/misc/ioctl.c: Block all async signals before signal_init. Avoids that the portserver will catch any -- set_process_control is also called from raw_keyboard_init. 2004-07-10 Stas * src/dosext/dpmi/dpmi.c: (AllocateSpecificDescriptor): we dont need this anymore. * src/: base/mouse/mouse.c, base/mouse/mouseint.c, include/mouse.h: Dont enable mouse driver before post_boot. Dont process mouse events when driver is disabled, to avoid crash. Init mouse.speed_x and mouse.speed_y early to avoid divizion by zero at startup. * NEWS: Some more news worth to mention. 2004-07-10 Bart * ChangeLog.old, NEWS, ChangeLog, VERSION: Renamed old ChangeLog to ChangeLog.old The new ChangeLog is now a more GNU-style changelog based on the raw commit dates on log messages so we can track more easily when a specific change was made. User visible changes go into NEWS. * src/base/async/int.c: reset idle for int21 functions that output * src/: emu.c, emu-i386/ports.c, include/emu.h, arch/linux/async/signal.c, base/misc/ioctl.c: Block SIGIO until signal_init() is called. That's the easiest way to avoid problems... This makes it possible to avoid all the new extra code in ports.c. While I was at it I could remove some related old cruft. * src/env/video/vc.c: Limit memcpy for VC text mode switching to 32k. Avoids crashes if more than 25 lines are used. 2004-07-09 Bart * src/emu-i386/ports.c: Set all signals that dosemu changed either to a default or ignore handler. Unblock all of them. * src/dosext/mfs/mfs.c: Check for failed lseeks before reads and writes (may happen if the file offset is negative). Thanks to Jan Zuchhold 2004-07-08 Bart * src/arch/linux/mapping/mapshm.c: We need string.h for memcpy. * src/: base/bios/int10.c, env/video/miscemu.c, env/video/vgaemu.c: Fix two vgaemu regressions: fonts were wrong in 640x480 and 640x350 VGA graphics modes colours were wrong in these modes too Fixes some new issues with STDEMO. * src/: emu.c, emu-i386/ports.c: Fix for #984975. Easiest was after all to to do signal init before deviceinit and port server fork. Then block *all* signals in the port server. 2004-07-06 Bart * src/: emu-i386/ports.c, include/cpu-emu.h: Remove i/o port restrictions for 0x400, asking ioperm instead. Will help when the kernel supports a larger bitmap. * src/base/bios/int10.c: Adjust int10 CGA palette support to do brightness correctly. Now and` old CGA pacman is yellow instead of brown as it should be. * src/: include/vgaemu.h, base/bios/int10.c, env/video/miscemu.c, env/video/vgaemu.c: Implement CGA register 0x3d9 emulation + BIOS support. Fixes colours in bug #958717 2004-07-05 Bart * src/env/video/vgaemu.c: Correct screen height for CGA modes (part of #958717) * configure, src/include/config.h.in: Regenerate configure and config.h.in 2004-07-04 Stas * src/dosext/dpmi/: dpmi.c, msdos.c: Small fixes and cleanups from the failed Win3.1 support (R/W LDT is completely dropped): - Never allocate the system descriptors for client (UCODESEL, UDATASEL) - Set ldt_buffer and pm_stack to NULL after free() - Zero out the entire client struct on DPMI init, rather than some of its parts. - Dsable NULL-ptr fixing code again. * configure.ac, src/dosext/dpmi/Makefile, src/dosext/dpmi/dpmi.c: We want windows. (please re-run autoheader and autoconf) 2004-07-04 Bart * src/base/bios/int10.c: Fix || which should be && of course to determine if we use a text or a graphics mode. Fixes #982872 * src/base/mouse/mouse.c: Only init the xterm mouse once or you'll get a lot of traffic! Closes #959015. * etc/vga.bdf, src/env/video/X.c, src/env/video/vgafonts.c: The XCHAR kludge to translate 0 to 0x20 (' ') is only necessary for vga.pcf, not bitmap fonts. I've corrected vga.pcf but since people may use a different vga.pcf than ours (IIRC Debian has a seperate vgafonts package) I'll leave the kludge for non-bitmap fonts for the time being. In any case this fixes the zx_emul vertical bar problem (#911174) 2004-07-03 Stas * src/dosext/misc/emm.c: EMM fixes: - handle name is 8 bytes ASCII, but dosemu stores it as ASCIIZ, therefore 9 bytes must be reserved. - Fix usage of NULL_PAGE, it is not a handle. 2004-07-02 Stas * src/dosext/dpmi/dpmi.c: OK, but then the ms-linker stops to work again... Well, with this hack they both work, but no guarantee something else is not broken (this is an obscure case anyway). * src/dosext/dpmi/dpmi.c: Be more conservative about fixing %esp. Apparently there are the DPMI clients that put esp above the TASK_SIZE (somewhere to 0xffffff80) and work perfectly (unless I "fix" %esp). No idea how they work, but... 2004-06-28 Bart * etc/global.conf: Ignore empty "drives" directories for $_hdimage="drives/*". 2004-06-27 Stas * src/dosext/dpmi/msdos.c: Re-enabled NULL-ptr fixing in msdos.c. This is required by the unmodified Win3.1 kernel (not WinOS2 fortunately). * src/dosext/dpmi/dpmi.c: Properly check for selectors allocation limit. Unmodified Win3.1 requests too many descriptors which crash dosemu. * src/: dosext/dpmi/vxd.c, dosext/dpmi/Makefile, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, dosext/dpmi/msdos.c, dosext/dpmi/vxd.h, base/bios/bios.S, include/bios.h: VxD hooks for WinOS2. This seems to solve all the remaining problems with Win3.1, namely: - Alt-Tab now works (SHELL VxD) - Timer now works (VTDAPI VxD) Note: win32s support is disabled for now - it needs some porting efforts and I have lost my test-cases for it. Note: Only protected mode entry points are supported. WinOS2 doesnt seem to be using the real-mode entry points, so I have not added those. It seems Win3.1/WinOS2 works perfectly now as far as I can tell, at least similar to how it works under QDPMI. 2004-06-26 Stas * src/dosext/dpmi/msdos.c: Dont trash %esi if cwd failed. 2004-06-22 Stas * src/dosext/dpmi/dpmi.c: Make the error message to work again. * src/dosext/dpmi/dpmi.c: Refer to our docs, not to external. * src/dosext/dpmi/memory.c: DPMIfree() & co must account only the committed pages. +Some cosmetic. 2004-06-21 Bart * src/env/video/s3.c: From Reinhard: There is a small problem with s3.c, so I can't use it with $_console=1 and $_graphic=1. (thanks to Michael) 2004-06-12 Bart * src/env/video/vgaemu.c: Hercules port range patch from Ryan Underwood. * etc/dosemu.conf, src/plugin/extra_charsets/bg-mik.c, src/plugin/extra_charsets/cp895.c: Add cp895 (Czech/Slovak) (ZUB@atlas.cz) Add bg-mik character set (Ivo Tachev, ivotachev@mail.bg) 2004-06-11 Bart * src/arch/linux/dosext/sound/midid/timid.c: I really have to make seqbuf_dump non-static to avoid the gcc warning... 2004-06-09 Stas * src/arch/linux/dosext/sound/midid/timid.c: Fix gcc warning. * src/: dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, env/video/vc.c, include/emu.h: - Move _emu_stack_frame to emu.h - it must be globally available. - Restore fs/gs in console sighandlers - this way dosemu can survive the console switch on a NPTL-enabled systems. - Set NO_VC_NO_DEBUG to 0 - it only eats debug info. * src/arch/linux/async/debug.c: cat maps for the reason this time. 2004-06-07 Bart * src/env/video/instremu.c: From: dcoffin@cybercom.net To: bart@dosemu.org Subject: Incorrect bitshifts in instremu.c Hi Bart, My fiancee really loves playing her old DOS games on DOSEMU, so thanks for the hard work! Running my Scrabble game in DOSEMU, I saw visual defects. After many hours of debugging, I traced the problem to instremu.c. My code does "shl al,cl", which should set AL to zero when CL is 8. But DOSEMU treats the 8 as though it were a zero. No x86 CPU behaves this way. According to the MASM reference: "On the 80186-80386 processors, shift counts larger than 31 are masked off, but on the 8088 and 8086, larger shift counts are performed despite the inefficiency involved." I experimentated with the other shift and rotate commands, and then made a patch to imitate the behavior of 80186 and later CPUs. RCL and RCR are especially interesting... Dave Coffin 6/3/2004 2004-06-03 Stas * src/plugin/kbd_unicode/serv_8042.c: Allow booting with $_xms=(off). dosemu always maps HMA, regardless of the $_xms setting. This check does nothing but prevents dosemu from booting with $_xms=(off). Unfortunaltely Win98/DOS hates our XMS driver, so possibility to disable it, must work. * src/: arch/linux/debugger/mhpdbgc.c, base/data.c, base/dev/misc/lpt.c, base/misc/hma.c, base/misc/ioctl.c, dosext/dpmi/dpmi.c, dosext/misc/xms.c, dosext/net/net/pktnew.c, emu-i386/do_vm86.c, emu.c, env/video/vc.c, include/dosio.h, include/hma.h, include/xms.h, plugin/kbd_unicode/serv_8042.c: - dosio.h must die, use hma.h instead - small cleanups in hma.c - use separate a20_local and a20_global in xms.c * src/arch/linux/async/debug.c: The more debug info the better. 2004-05-31 Bart * src/dosext/mfs/mfs.c: Avoid fixed sized buffer and strcpy/strcat in exists() 2004-05-30 Bart * src/env/video/X.c: Use vga.seq.addr_mode == 2 instead of the number of planes to check for chain4 modes of planes. This fixes the Windows logo... #962683 * src/arch/linux/mapping/mapshm.c: For realloc_mapping_shm we can't expand shared anonymous memory using mremap so we must allocate a new region and memcpy to it. Fixes a problem with WP 5.1's use of EMS * src/base/bios/int10.c: The int10 BIOS now determines whether a mode is text or graphics from the byte at 40:49. Also reduce use of global co and li by peeking these values from 40:xx. Eventually co and li should be completely removed. 2004-05-29 Bart * src/base/init/parser.y.in: Change stop_mouse c_printf to be a little more legible. 2004-05-29 Stas * src/dosext/dpmi/msdos.c: - Rewrote old_dos_terminate() as per suggestions in bug #909015 - Disable fix-NULL-deref code as per suggestion in RFE #937984 2004-05-29 Bart * src/env/video/: X.c, vgaemu.c: Removed line_compare==0 workaround, since the CRTC init now initializes it correctly from the CRTC registers. Have to check at a few places in X.c to compensate. This fixes some display problems with bananoid. * src/env/video/X.c: Fix another scan_len case: fixes problems with resizing zx_emul. Only the bars remain. 2004-05-28 Bart * src/env/video/X.c: Force a redraw for bitmap text modes upon resizing. This helps for plain text modes but not for funny text modes such as the one zx_emul uses. * src/emu-i386/ports.c: Replace kernel 2.6 test as agreed upon during the last IRC 2004-05-25 Bart * src/env/video/crtcemu.c: Fix occasional wrong display or even page fault after an int10 mode change. 2004-05-24 Stas * src/dosext/dpmi/memory.c: Two use-after-free bugs in uncommitted mem code :( 2004-05-22 Bart * src/env/video/X.c: Fix hang when non-bitmap fonts were used. * src/env/video/: X.c, vgaemu.c: Decouple scan_len from co. Sometimes we must use scan_len instead of co... Since zx_emul has co=40 but scan_len=48 this is necessary. Now zx_emul displays everything correctly except for some annoying vertical bars I couldn't get rid off. * src/env/video/: X.c, vgaemu.c: Correct vgaemu height calculations and relax limits on columns on lines (as long as the product*2 is within 64k) * src/env/video/: X.c, seqemu.c, vgaemu.c: Respect sequencer for determining 8- or 9- pixel wide characters. X_update_text_screen should respect a changed display and resize. * src/: base/bios/int10.c, env/video/vgaemu.c: Text modes in X now update from the aliased memory (high up in the Linux address space), instead of 0xa0000-0xc0000; will be necessary to use instremu for text modes. Corrected one related screen_adr assignment. * src/dosext/dpmi/dpmi.c: Use syscall() for modify_ldt. Not sure if this fixes the Fedora problem yet but it is consistent with the other syscalls anyway. * src/: base/serial/ser_ports.c, arch/linux/async/sigsegv.c, dosext/dpmi/dpmi.c, dosext/dpmi/memory.c, include/Linux/serial.h: Avoid the direct inclusion of kernel headers that seem to creep in by using private copies. * src/base/init/parser.y.in: Reverted Stas' mouse change with respect to the parser. $_mouse_dev="" should not disable the mouse for X/terminal/gpm, only for console. 2004-05-20 Bart * src/: include/vgaemu.h, env/video/crtcemu.c, env/video/vgaemu.c: Implement CRTC readonly flag (thanks to the dosbox source code for the hint :-P) Fixes the myth bug --only 72 out of 200 lines were displayed (#930572) Stas please close if you can confirm. 2004-05-20 Stas * src/base/serial/ser_ports.c: Fix transmit IRQ triggering code of ser_ports.c. Closes bug #944346. 2004-05-19 Bart * INSTALL, src/emu-i386/ports.c: Added sanity check to see if catching port i/o works. 2004-05-18 Bart * src/dosext/net/net/ipxglt.c: ipx_interface really should get the same treatment as ipx_route... 2004-05-10 Stas * src/base/: mouse/mouseint.c, init/parser.y.in: Dont try internaldriver if $_mouse_dev="" 2004-05-09 Stas * src/: include/mapping.h, arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c: Dont use mapshm if MREMAP_FIXED is not available (this was implicitly checked together with mremap(,0,...), but not any longer). 2004-05-08 Bart * configure, configure.ac: Respect CFLAGS as set by the user. * etc/global.conf: Repair $_cpu="emulated" 2004-05-08 Stas * src/arch/linux/async/debug.c: asprintf() is a GNU extension and needs _GNU_SOURCE before 2004-05-08 Bart * etc/global.conf: Add missing endif. * configure.ac, default-configure, configure, src/base/bios/Makefile, src/env/video/Makefile: Don't use CFLAGS for the 16bit BIOS asm files. The -g in there confused binutils/gdb and that was the reason for the -gstabs+. Now we can just use the standard dwarf-2 debug info in dosemu. Also default-configure must check for gpm, not libgpm in compiletime-settings. * etc/global.conf: Remove warning that wasn't any more ... * etc/global.conf: Correct new problem with $_chipset 2004-05-07 Bart * src/arch/linux/async/: Makefile, debug.c, debug.h, signal.c, sigsegv.c: Added Stas' auto-gdb patch. I changed two small things: avoid buf[255] (potential buffer overflow), and also output what "ldd" says. getconf GNU_LIBC_VERSION must be quite recent (GLIBC 2.3+ I think) by the way, doesn't work here with 2.2.4 getconf: Unrecognised variable `GNU_LIBC_VERSION' That doesn't hurt though. * etc/global.conf, src/base/init/parser.y.in: Limit use of strlen in global.conf; move com port processing into a loop. For some reason foreach doesn't always play nicely with if :( Don't define a serial port in the parser with an empty device ("virtual" still works though) Please check if this doesn't break your favourite configuration. 2004-05-07 Stas * src/base/serial/: ser_init.c, ser_irq.c, ser_ports.c: Next round of serial low-latency work: disable the internal timers. Now, with the async notifications, we can sync with the real thing instead. This gains 20sec improvement here at burning a flash in MC. * src/base/serial/ser_ports.c: Remove wrong IRQ triggering code from ser_ports.c. Part of bug #944346 2004-05-05 Bart * src/: include/video.h, base/init/parsglob.h, base/init/parser.y.in: Hopefully last bunch of gcc-3.4 adjustments. Compiles cleanly and works now. * configure, configure.ac: gcc 3.4 doesn't like -mcpu= anymore. Use -mtune= instead. * src/dosext/misc/emm.c: Avoid lvalue casts. * src/dosext/dpmi/dpmi.c: Avoid lvalue casts... What a mess, probably push/pop style macros would be cleaner... * src/: emu-i386/do_vm86.c, include/cpu.h: Avoid more deprecated casts. Not sure if prefix66 ^ prefix67 is the right thing for ecx... Have to look that up. * src/emu-i386/cpu.c: Fixed GCC 3.3.3 warning: cpu.c:154: warning: use of conditional expressions as lvalues is deprecated cpu.c:154: warning: use of cast expressions as lvalues is deprecated * src/emu-i386/cputime.c: Don't zero trigger1 after usleep. 2004-05-02 Bart * src/: base/async/int.c, base/bios/int16.c, emu-i386/cputime.c, include/timers.h: Consolidated all idling calls that use a trigger into one common function with a common trigger. All triggers now reset after each usleep(). Also the MFS resets the trigger. There may be more places where that is useful. * src/env/video/: X.c, remap.c: reconfig.mem should become 0 again after redrawing the text screen. fixed an x-offset bug in remap.c: now X.c can properly draw rectangles of texts, and not just screen-wide blocks. The combination of these two changes makes bitmap fonts much faster. 2004-05-01 Bart * src/arch/linux/mapping/mapshm.c: From Stas: use MAP_SHARED | MAP_ANONYMOUS instead of IPC. 2004-04-30 Bart * src/: arch/linux/mapping/mapping.c, env/video/vc.c: Repair !have_mremap_fixed and related vc code. 2004-04-29 Bart * src/base/async/int.c: Correct int15/ax=e801. 2004-04-29 Stas * src/dosext/dpmi/memory.c: Fix return value check. * src/: arch/linux/mapping/mapping.c, env/video/vc.c: - Make MAPPING_COPYBACK to work for MAPPING_KMEM and MAPPING_LOWMEM in all cases. - Map lowmem instead of unmapping KMEM - this makes the interfaces more consistent. 2004-04-26 Bart * src/dosext/net/net/ipxglt.c: From Michael Karcher: also check /proc/net/ipx/route for kernel 2.6 2004-04-25 Stas * src/: include/emu.h, plugin/kbd_unicode/prestroke.c: Fix memory corruption in keystroke handling + cleanups. Bug #909588. 2004-04-16 Stas * src/emu-i386/cpu.c: Fix some in_dpmi misuses. Noticed by japheth@users.sf.net, bug #934921. 2004-04-14 Stas * src/: arch/linux/mapping/mapping.c, dosext/dpmi/memory.c: Fix mprotect size, cosmetic. 2004-04-12 Bart * src/plugin/term/keyb_slang.c: Get rid of the "inconsistency in define key" warning message where it's harmless. * src/env/video/: vc.c, vga.c: Fix a couple of small new bugs encountered in the cleaned up video code. 2004-04-11 Bart * src/: arch/linux/mapping/mapping.c, env/video/vc.c, include/mapping.h: Mostly from Stas: use COPYBACK cap to avoid a temporary buffer when flipping between /dev/mem memory and low memory. Bart: clean up a bit, use size_t instead of off_t (off_t is a signed type used for file offsets!) and remove the root checks (if extended mremap is available). * src/: include/vc.h, env/video/console.c, env/video/vc.c, env/video/vga.c, env/video/video.c: Clean up vc get/put video ram routines. It should now be clear how and where to apply Stas' patch. * src/: emu.c, env/video/X.c, include/video.h, plugin/term/terminal.c, env/video/console.c, env/video/dualmon.c, env/video/hgc.c, env/video/video.c: Introduced a priv_init field for the video system. priv_init (for now) calls the old console driver init procedure. init calls the console driver post_init and for the terminal and X the normal init. Hopefully this doesn't break too much -- terminal and X still work. 2004-04-08 Bart * src/dosext/mfs/lfn.c: Implemented our own LFN filematch routine, with a little help from GLIBC. Special trick is to add a period if it's not there so that: dir *. matches all files without an extension. log and log? match log (==log.), but log?? doesn't match. * src/dosext/mfs/lfn.c: LFN: wildcard delete and findfirst/next need to match both sfn's and lfn's! -- in Win98 "dir *1.*" will give you almost all LFNs. Next stage will be to dumb down fnmatch with a custom version. 2004-04-07 Stas * src/dosext/dpmi/dpmi.c: Sanity check triggers false-positives. 2004-04-06 Stas * src/include/emu.h: Restart syscalls after EINTR. Should fix #885692. * src/: dosext/dpmi/dpmi.c, emu-i386/cpu.c, include/emu.h: Dont allow client stack to run above the dosemu stack. This is a loosy attempt to work around a ESP CPU bug. Seems to get the ancient MS linker to work. (bug #929123) * src/include/emu.h: linux-2.6 needs SA_NODEFER to allow the recursive signal handling. We need 2 nesting levels of SIGSEGV sometimes. (part of bug #929123) 2004-04-02 Stas * src/dosext/dpmi/dpmi.c: Dont print debug info twice. Also avoids crash when trying to dump the content of an uncommitted page after a Page Fault. * src/: base/async/int.c, base/bios/bios.S, dosext/dpmi/dpmi.c, dosext/dpmi/msdos.c, dosext/dpmi/msdos.h, include/doshelpers.h, include/int.h, include/memory.h: - Added wrappers for DOS I/O (int21/ah=0x3f,0x40) to allow read/write >64K. - Added helpers to pass data between the high and low mem. - PM API Translator adjusted to use the new wrappers for I/O operations. - READ_DS_COPIED no longer needed, removed. This patch allows 32rtm to work. This is a noticeable step - 32rtm allows to run win32 console apps (PE). Many thanks to japheth@users.sourceforge.net for locating so many problems and providing a usefull hints. 2004-03-30 Bart * src/: dosext/mfs/lfn.c, dosext/mfs/mfs.c, dosext/mfs/util.c, include/dos2linux.h: LFN updates: ported FreeDOS' truename function to be able to handle int21/ax=7160 better, and to avoid escaping the drive letter "sandbox". "...." = "..\..\.." etc work too. Just like dir c:\foo\.. when foo does not exist (another DOS oddity). 2004-03-29 Bart * src/emu-i386/ports.c: Remove the munmap(low memory) in the portserver. It no longer makes sense. 2004-03-29 Stas * src/dosext/dpmi/memory.c: Always map the uncommitted mem to zeropage. * src/: arch/linux/mapping/mapping.c, base/init/init.c: - kmem_map_mapping() was necessary only to supply the lowmem hack. Since there is nomore a hack, kmem_map_mapping() is unnecessary. - add missing alloc_mapping() call. 2004-03-29 Bart * src/: emu.c, arch/linux/mapping/mapping.c, env/video/console.c, env/video/vc.c, env/video/vga.c, env/video/video.c, include/emu.h, include/video.h: Introduced video_post_init(): mmaps /dev/mem for video RAM and sets up VC switch functionality. This allows for the complete removal of the mapping.c hacks. * src/: emu.c, arch/linux/mapping/mapping.c, base/dev/misc/lpt.c, base/init/dev_list.c, base/init/init.c, base/mouse/mouse.c, base/mouse/mouseint.c, base/serial/ser_init.c, emu-i386/cputime.c, emu-i386/ports.c, env/video/X.c, env/video/console.c, env/video/vc.c, env/video/video.c, include/emu.h, include/mouse.h: Seperate low memory initialization from the rest of the init and fixed a few NULL pointer dereferences... Note: this allows us to remove some hacks but by keeping a temporary fd to /dev/mem open during init we will also be able to mmap video ram after dropping privs, so more can be removed in mapping.c... Dropping privs can then be done much earlier, and also is independent from memory mapping. * printer: set BIOS values in printer_mem_setup() * video: set BIOS values in video_mem_setup() * dev_list: add mouse_reset and serial_reset handlers which just like the keyboard reset handler fill in the BIOS values. * call the reset handler just before booting, not immediately after the init handler * move the mouse_reset_to_current_video_mode() during init to mouse_post_boot() (current_video_mode may be strange for fbdev now, was 0....) * mouse.c: fixed sptr null dereference * mouseint.c: fixed mice->dev NULL deref * cputime.c: Video may be NULL for first console switches at init while console code is playing with ioctls * ports.c -- can derive BIOS_VIDEO_PORT value from dosemu config * X.c check for config.X_font being NULL * removed a few superfluous calls to clear_screen() and set_video_bios_size() * vc.c: can't read the BIOS during the first get_video_ram and console switch --- this really needs to be cleaned up... 2004-03-28 Stas * src/arch/linux/mapping/mapping.c: MAPPING_LOWMEM implies MAPPING_ALIAS. * src/dosext/dpmi/memory.c: Account only the committed memory for $_dpmi. Also properly account committing/uncommitting pages. 2004-03-28 Bart * src/arch/linux/mapping/mapping.c: Apply mremap /dev/mem areas functionality. Move old skip code over to new memory structure. Add #ifdefs for "REQUIRED_KERNEL_VERSION" 2004-03-27 Bart * src/arch/linux/mapping/mapshm.c: From Stas: replace kernel 2.6.1 check by a cleaner one. * src/: arch/linux/mapping/mapping.c, base/init/init.c, include/mapping.h: Move my hack from init.c to mapping.c, hoping to merge with Stas' technique in case mremap is not available. Only one file left to change now though... * src/: arch/linux/mapping/mapping.c, env/video/dualmon.c, env/video/hgc.c, env/video/matrox.c, env/video/vc.c: Next chunk of Stas' changes -- this one doesn't really do anything except for limiting the size of the patch I want to have a closer look at. * src/arch/linux/mapping/mapping.c: The basic changes need this one too, or DOSEMU is completely broken ... (sorry, my fault, Bart) * etc/global.conf, src/arch/linux/mapping/mapfile.c, src/arch/linux/mapping/mapping.c, src/arch/linux/mapping/mapshm.c, src/base/misc/hma.c, src/dosext/dpmi/memory.c, src/dosext/misc/emm.c, src/include/mapping.h, src/include/Linux/mman.h: The small part of Stas' mapping cleanups. Remove "console" from global.conf for $_graphics=(1) since it already implies "console" in the parser anyway. 2004-03-16 Bart * src/base/dev/misc/lpt.c: Fix memory leak. 2004-03-15 Bart * Makefile.conf.in, src/commands/Makefile, src/arch/linux/Makefile.main: Define LD at the right place. Remove unnecessary exports in Makefile.main 2004-03-13 Stas * src/dosext/dpmi/msdos.c: Fix bug in function 0x56 (rename file), from #909015 Properly return the canonicalized filename to DPMI client (from bug #909015) * src/dosext/dpmi/: dpmi.c, memory.c: Escaped bits from previous commit (use RWX, not RW). 2004-03-12 Bart * configure: autoconf 2004-03-11 Bart * VERSION: Bump up VERSION in CVS already so people won't confuse it with 1.3.0 from the tarball. 2004-03-11 Stas * configure.ac: More escaped bits from the mapping redesign commit. * src/base/misc/: dosio.c, shared.c: Escaped bits from the mapping redesign commit. 2004-03-11 Bart * src/: arch/linux/mapping/mapping.c, base/init/init.c, include/mapping.h: Had to create an even bigger hack because the aliased low memory now overwrites any /dev/mem areas -- this broke console graphics. So we have to be careful to see which areas were already mapped to /dev/mem (using a char array that check if a page is /dev/mem or not) Hopefully with this working base I can start cleaning things up. 2004-03-10 Bart * src/dosext/dpmi/memory.c: Need to include "emu.h" before other headers to get config.h including _GNU_SOURCE... See /usr/include/features.h #ifdef _GNU_SOURCE # define __USE_GNU 1 #endif _GNU_SOURCE is documented. __USE_GNU is internal to Glibc (AFAICS) 2004-03-10 Stas * src/: arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c, dosext/dpmi/memory.c, dosext/sound/sound.c, arch/linux/dosext/sound/midid/midid.c, base/dev/dma/dma.c: - Use RWX permissions for IPC SHM by default instead of RW, otherwise we end up with the non-executable first meg (but it didnt hurt since on x86 it is possible to execute regardless). - Update my e-mail address :) 2004-03-08 Stas * src/: emu-i386/do_vm86.c, include/emu.h, plugin/commands/builtins.c: Alowing interrupts during the callbacks proved to be reliable, making a default. * src/plugin/commands/comcom.h, src/plugin/commands/commands.c: Remove the remaining traces of comcom. 2004-03-07 Stas * src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c: Properly free segregs after freeing memory block (from bug #909015) 2004-03-07 Bart * src/: emu.c, arch/linux/mapping/mapfile.c, arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c, emu-i386/ports.c, emu-i386/simx86/memory.c, include/mapping.h, include/vm86plus.h: Removed direct kernel interfaces where possible and replaced inline asm by syscall() otherwise -- the latter allows glibc to use sysenter and friends. The calls for syscall() are extended_mremap, dosemu_sigaction, vm86_old and vm86_plus. Note however that dosemu_sigaction is only called when sigaltstack is not supported. 2004-03-07 Stas * src/: base/bios/bios.S, dosext/dpmi/dpmi.c, include/bios.h: - Implemented extended exception stack frame (DPMI 1.0, needed by rtm32) - Allow Visible Page Faults (DPMI 1.0, needed by bug #909015 and rtm32) * src/: arch/linux/mapping/mapping.c, dosext/misc/emm.c, include/mapping.h: Update EMM to new mapping flag. 2004-03-07 Bart * src/: base/misc/disks.c, base/misc/utilities.c, include/disks.h, include/utilities.h, tools/periph/hdinfo.c: eliminate libless_llseek. For hdinfo we can use _FILE_OFFSET_BITS==64 as it's standalone. For disks.c it's safer to explicitly use *64 calls. #ifdef __linux__ is a little optimistic but doesn't hurt :) 2004-03-07 Stas * src/: arch/linux/async/signal.c, arch/linux/debugger/mhpdbg.c, arch/linux/mapping/mapfile.c, arch/linux/mapping/mapping.c, arch/linux/mapping/mapshm.c, base/data.c, base/init/init.c, base/misc/Makefile, base/misc/hma.c, dosext/dpmi/dpmi.c, dosext/dpmi/dpmi.h, dosext/dpmi/memory.c, emu-i386/ports.c, emu.c, include/emu.h, include/mapping.h, include/memory.h: Mapping system revamp. - Added support for lowmem region, it is now a part of SHM segment. - Moved DPMI memory away from SHM segment. - Updated HMA, DPMI and other subsystems to the new mapping features. * src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c: Next part of bug #902742: - remaining issues with is_dos_selector() fixed. - couple of 16/32bit registers confusion fixed. dos_read/dos_write case is not yet. 2004-03-06 Stas * src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c: Allocate 6 realmode stacks for each DPMI client instead of 16 for all clients. Blinker extender is now supported (closes SR #855611).