ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/main_unix.cpp
(Generate patch)

Comparing SheepShaver/src/Unix/main_unix.cpp (file contents):
Revision 1.3 by gbeauche, 2002-04-21T15:07:08Z vs.
Revision 1.4 by gbeauche, 2003-05-13T16:59:57Z

# Line 107 | Line 107
107   #include "macos_util.h"
108   #include "rom_patches.h"
109   #include "user_strings.h"
110 + #include "vm_alloc.h"
111  
112   #define DEBUG 0
113   #include "debug.h"
# Line 420 | Line 421 | int main(int argc, char **argv)
421          }
422  
423          // Create Low Memory area (0x0000..0x3000)
424 <        if (mmap((char *)0x0000, 0x3000, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, zero_fd, 0) == (void *)-1) {
424 >        if (vm_acquire_fixed((char *)0, 0x3000) < 0) {
425                  sprintf(str, GetString(STR_LOW_MEM_MMAP_ERR), strerror(errno));
426                  ErrorAlert(str);
427                  goto quit;
# Line 450 | Line 451 | int main(int argc, char **argv)
451          D(bug("Kernel Data at %p, Emulator Data at %p\n", kernel_data, emulator_data));
452  
453          // Create area for Mac ROM
454 <        if (mmap((char *)ROM_BASE, ROM_AREA_SIZE, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, zero_fd, 0) == (void *)-1) {
454 >        if (vm_acquire_fixed((char *)ROM_BASE, ROM_AREA_SIZE) < 0) {
455                  sprintf(str, GetString(STR_ROM_MMAP_ERR), strerror(errno));
456                  ErrorAlert(str);
457                  goto quit;
458          }
459 + #if !EMULATED_PPC
460 +        if (vm_protect((char *)ROM_BASE, ROM_AREA_SIZE, VM_PAGE_READ | VM_PAGE_WRITE | VM_PAGE_EXECUTE) < 0) {
461 +                sprintf(str, GetString(STR_ROM_MMAP_ERR), strerror(errno));
462 +                ErrorAlert(str);
463 +                goto quit;
464 +        }
465 + #endif
466          rom_area_mapped = true;
467          D(bug("ROM area at %08x\n", ROM_BASE));
468  
# Line 465 | Line 473 | int main(int argc, char **argv)
473                  RAMSize = 8*1024*1024;
474          }
475  
476 <        mmap_RAMBase = mmap((void *)0x20000000, RAMSize, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, zero_fd, 0);
477 <        if (mmap_RAMBase == (void *)-1) {
476 >        mmap_RAMBase = (void *)0x20000000;
477 >        if (vm_acquire_fixed(mmap_RAMBase, RAMSize) < 0) {
478                  sprintf(str, GetString(STR_RAM_MMAP_ERR), strerror(errno));
479                  ErrorAlert(str);
480                  goto quit;
481          }
482 + #if !EMULATED_PPC
483 +        if (vm_protect(mmap_RAMBase, RAMSize, VM_PAGE_READ | VM_PAGE_WRITE | VM_PAGE_EXECUTE) < 0) {
484 +                sprintf(str, GetString(STR_RAM_MMAP_ERR), strerror(errno));
485 +                ErrorAlert(str);
486 +                goto quit;
487 +        }
488 + #endif
489          RAMBase = (uint32)mmap_RAMBase;
490          ram_area_mapped = true;
491          D(bug("RAM area at %08x\n", RAMBase));
# Line 567 | Line 582 | int main(int argc, char **argv)
582   #if !EMULATED_PPC
583          MakeExecutable(0, (void *)ROM_BASE, ROM_AREA_SIZE);
584   #endif
585 <        mprotect((char *)ROM_BASE, ROM_AREA_SIZE, PROT_EXEC | PROT_READ);
585 >        vm_protect((char *)ROM_BASE, ROM_AREA_SIZE, VM_PAGE_READ | VM_PAGE_EXECUTE);
586  
587          // Initialize Kernel Data
588          memset(kernel_data, 0, sizeof(KernelData));
# Line 779 | Line 794 | static void Quit(void)
794  
795          // Delete RAM area
796          if (ram_area_mapped)
797 <                munmap(mmap_RAMBase, RAMSize);
797 >                vm_release(mmap_RAMBase, RAMSize);
798  
799          // Delete ROM area
800          if (rom_area_mapped)
801 <                munmap((char *)ROM_BASE, ROM_AREA_SIZE);
801 >                vm_release((char *)ROM_BASE, ROM_AREA_SIZE);
802  
803          // Delete Kernel Data area
804          if (kernel_area >= 0) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines