wine: mapping memory problems

asgard asgard at etersoft.ru
Wed Jun 28 12:57:37 UTC 2006


hi, all.

in wine project there are few problems on freebsd with windows 16-bits
programs.
when you'll run such program, wine will crashed with stack overflow.
in fact, on freebsd wine doesn't  map 1st megabyte of virtual memory,
but it should.
see ./libs/wine/mmap.c ./dlls/winedos/dosmem.c ./libs/wine/ldt.c
in dosmem.c DOSMEM_system should has mapped address, but programs
crashes on memset:

static void DOSMEM_FillBiosSegments(void)
{
    BYTE *pBiosSys = (BYTE*)DOSMEM_dosmem + 0xf0000;
    BYTE *pBiosROMTable = pBiosSys+0xe6f5;
    BIOSDATA *pBiosData = DOSVM_BiosData(); /* in this case *pBiosData
=  (BIOSDATA *)(DOSMEM_sysmem + 0x400);*/
    static const char bios_date[] = "13/01/99";

      /* Clear all unused values */
    memset( pBiosData, 0, sizeof(*pBiosData) ); /* !!crashes here!! */
/* ... */

have you any suggestions how to resolve this problem?

beforehand 10x for help.



More information about the freebsd-hackers mailing list