Diff markup
001 001
002 002
003 003
004 004
005 005
006 006
007 007
008 008
009 009
010 010
011 011
012 012
013 013
014 014
015 015
016 016
017 017
018 018
019 #include <crt.h> 019 #include <crt.h>
020 #include <libc.h> 020 #include <libc.h>
021 #include <stdarg.h> 021 #include <stdarg.h>
022 #include <debug.h> 022 #include <debug.h>
023 023
024 024
025 025
026 026
027 027
028 028
029 029
030 030
031 031
032 032
033 int main() 033 int main()
034 { 034 {
035 char * zoup; 035 char * zoup;
036 036
037 zoup = fakemmap((void*)4096, 8*1024*1024, !! 037 zoup = mmap((void*)4096, 8*1024*1024,
038 PROT_READ | PROT_WRITE, !! 038 PROT_READ | PROT_WRITE,
039 MAP_SHARED, !! 039 MAP_SHARED,
040 "/dev/zero", 34); !! 040 "/dev/zero", 34);
041 bochs_printf("mapped @%x\n", (unsigned)zoup) 041 bochs_printf("mapped @%x\n", (unsigned)zoup);
042 042
043 043
044 fork(); 044 fork();
045 fork(); 045 fork();
046 046
047 _sos_syscall1(4004, (unsigned)"Initial"); 047 _sos_syscall1(4004, (unsigned)"Initial");
048 mprotect(zoup, 10*4096, PROT_READ); 048 mprotect(zoup, 10*4096, PROT_READ);
049 zoup += 10*4096; 049 zoup += 10*4096;
050 _sos_syscall1(4004, (unsigned)"After mprotec 050 _sos_syscall1(4004, (unsigned)"After mprotect Low");
051 051
052 mprotect(zoup-4096, 2*4096, PROT_READ); 052 mprotect(zoup-4096, 2*4096, PROT_READ);
053 zoup += 4096; 053 zoup += 4096;
054 _sos_syscall1(4004, (unsigned)"After mprotec 054 _sos_syscall1(4004, (unsigned)"After mprotect Before Low");
055 055
056 mprotect(zoup-4096, 4096, PROT_READ); 056 mprotect(zoup-4096, 4096, PROT_READ);
057 _sos_syscall1(4004, (unsigned)"After mprotec 057 _sos_syscall1(4004, (unsigned)"After mprotect Before low (bis)");
058 058
059 mprotect(zoup + 1024*1024, 4096, PROT_READ); 059 mprotect(zoup + 1024*1024, 4096, PROT_READ);
060 _sos_syscall1(4004, (unsigned)"After mprotec 060 _sos_syscall1(4004, (unsigned)"After mprotect Middle");
061 061
062 mprotect(zoup + 1024*1024, 4096, PROT_READ); 062 mprotect(zoup + 1024*1024, 4096, PROT_READ);
063 _sos_syscall1(4004, (unsigned)"After mprotec 063 _sos_syscall1(4004, (unsigned)"After mprotect Middle (bis)");
064 064
065 mprotect(zoup + 8*1024*1024 - 11*4096 - 4096 065 mprotect(zoup + 8*1024*1024 - 11*4096 - 4096, 4096, PROT_READ);
066 _sos_syscall1(4004, (unsigned)"After mprotec 066 _sos_syscall1(4004, (unsigned)"After mprotect High");
067 067
068 mprotect(zoup + 8*1024*1024 - 11*4096 - 2*40 068 mprotect(zoup + 8*1024*1024 - 11*4096 - 2*4096, 3*4096, PROT_READ);
069 _sos_syscall1(4004, (unsigned)"After mprotec 069 _sos_syscall1(4004, (unsigned)"After mprotect Past High");
070 070
071 mprotect((void*)0x40000000, 0x10000000, PROT 071 mprotect((void*)0x40000000, 0x10000000, PROT_READ);
072 _sos_syscall1(4004, (unsigned)"After mprotec 072 _sos_syscall1(4004, (unsigned)"After mprotect Complete VR");
073 073
074 mprotect((void*)0x40000000, 0x10000000, PROT 074 mprotect((void*)0x40000000, 0x10000000, PROT_READ);
075 _sos_syscall1(4004, (unsigned)"After mprotec 075 _sos_syscall1(4004, (unsigned)"After mprotect Complete VR (bis)");
076 076
077 return 0; 077 return 0;
078 } 078 }