diff --git a/doc/xml/8259_8c.xml b/doc/xml/8259_8c.xml index 35ce12e..949bd5a 100644 --- a/doc/xml/8259_8c.xml +++ b/doc/xml/8259_8c.xml @@ -6,40 +6,40 @@ sys/io.h lib/kprintf.h - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/8259_8h.xml b/doc/xml/8259_8h.xml index 2b8f1cf..9a8bb26 100644 --- a/doc/xml/8259_8h.xml +++ b/doc/xml/8259_8h.xml @@ -15,97 +15,97 @@ src/sys/pci/lnc.c src/sys/sys/idt.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -300,7 +300,7 @@ _int13 - kpanic + kpanic ne2kHandler diff --git a/doc/xml/__types_8h.xml b/doc/xml/__types_8h.xml index 851f392..b0190ac 100644 --- a/doc/xml/__types_8h.xml +++ b/doc/xml/__types_8h.xml @@ -5,1567 +5,1565 @@ src/sys/include/ubixos/times.h src/sys/include/ubixos/types.h - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - - - + - + + + + + - + + + + + + + + + + + + + + + + + - + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + - + + + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/doc/xml/ap-boot_8S.xml b/doc/xml/ap-boot_8S.xml index ac1f7e1..131beb9 100644 --- a/doc/xml/ap-boot_8S.xml +++ b/doc/xml/ap-boot_8S.xml @@ -455,13 +455,15 @@ addDirEntry biosCall - execFile + elf_loadfile + execFile fstat initLNC kmod_load ldEnable mmap - sysExec + sys_exec + sysExec ubixFSUnlink vmm_cleanVirtualSpace vmm_getFreeMallocPage @@ -492,7 +494,7 @@ cpuInfo - execFile + execFile hdWrite diff --git a/doc/xml/arp_8h.xml b/doc/xml/arp_8h.xml index 599c3ad..cbfa69a 100644 --- a/doc/xml/arp_8h.xml +++ b/doc/xml/arp_8h.xml @@ -6,23 +6,23 @@ net/ipv4/ip_addr.h net/netif.h - + - + - + - + - + - + - + diff --git a/doc/xml/assert_8c.xml b/doc/xml/assert_8c.xml index cb63a7e..bad2515 100644 --- a/doc/xml/assert_8c.xml +++ b/doc/xml/assert_8c.xml @@ -6,37 +6,37 @@ lib/kprintf.h ubixos/kpanic.h - + - + - + - + - + - + - + - + - + - + - + @@ -64,13 +64,13 @@ failedexpr - +The underlying assertion call which is wrapped by assert(). - - kpanic + + K_PANIC kprintf NULL @@ -113,41 +113,19 @@ #include<lib/kprintf.h> #include<ubixos/kpanic.h> -void__assert(constchar*func,constchar*file,intline,constchar*failedexpr){ -if(func==NULL) -kprintf( -"Assertionfailed:(%s),file%s,line%d.\n",failedexpr, -file,line); -else -kprintf( -"Assertionfailed:(%s),function%s,file%s,line%d.\n", -failedexpr,func,file,line); -kpanic("Asserted\n"); -} - -/*** -$Log$ -Revision1.1.1.12006/06/0112:46:16reddawg -ubix2 - -Revision1.22005/10/1200:13:37reddawg -Removed - -Revision1.1.1.12005/09/2617:24:10reddawg -nomessage - -Revision1.22005/08/0417:11:11fsdfs - ----------------------------------------- - -------------------- - -Revision1.12004/07/2022:29:55reddawg -assert:remadeassert - -END -***/ - +void__assert(constchar*func,constchar*file,intline,constchar*failedexpr){ +if(func==NULL) +kprintf("Assertionfailed:(%s),file%s,line%d.\n",failedexpr,file,line); +else +kprintf("Assertionfailed:(%s),function%s,file%s,line%d.\n",failedexpr,func,file,line); + +K_PANIC("Asserted\n"); +} + +/*** +END +***/ + diff --git a/doc/xml/assert_8h.xml b/doc/xml/assert_8h.xml index 514ea8f..0c11812 100644 --- a/doc/xml/assert_8h.xml +++ b/doc/xml/assert_8h.xml @@ -24,133 +24,133 @@ src/sys/vmm/paging.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -202,8 +202,8 @@ adjustCowCounter biosCall - execFile - execThread + execFile + execThread fclose fork_copyProcess fread @@ -217,7 +217,7 @@ openFileUbixFS PCtoNIC readUbixFS - sysExec + sysExec ubixfs_cacheAdd ubixfs_cacheFind ubixfs_cacheNew @@ -246,13 +246,13 @@ const char * - +The underlying assertion call which is wrapped by assert(). - - kpanic + + K_PANIC kprintf NULL diff --git a/doc/xml/atan_8c.xml b/doc/xml/atan_8c.xml index e35e3ef..95771e4 100644 --- a/doc/xml/atan_8c.xml +++ b/doc/xml/atan_8c.xml @@ -4,26 +4,26 @@ atan.c math.h - + - + - + - + - + - + - + diff --git a/doc/xml/atkbd_8c.xml b/doc/xml/atkbd_8c.xml index 44ed4ea..a6513d6 100644 --- a/doc/xml/atkbd_8c.xml +++ b/doc/xml/atkbd_8c.xml @@ -18,230 +18,218 @@ ubixos/kpanic.h ubixos/vitals.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + diff --git a/doc/xml/atkbd_8h.xml b/doc/xml/atkbd_8h.xml index ce0c394..23a3da2 100644 --- a/doc/xml/atkbd_8h.xml +++ b/doc/xml/atkbd_8h.xml @@ -5,26 +5,26 @@ src/sys/include/ubixos/init.h src/sys/isa/atkbd.c - + - + - + - + - + - + - + diff --git a/doc/xml/bcopy_8c.xml b/doc/xml/bcopy_8c.xml index 01beaf5..874b821 100644 --- a/doc/xml/bcopy_8c.xml +++ b/doc/xml/bcopy_8c.xml @@ -7,45 +7,45 @@ string.h src/sys/lib/memcpy.c - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/bioscall_8c.xml b/doc/xml/bioscall_8c.xml index 5d99509..8aeb844 100644 --- a/doc/xml/bioscall_8c.xml +++ b/doc/xml/bioscall_8c.xml @@ -11,156 +11,148 @@ sys/video.h assert.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + diff --git a/doc/xml/bioscall_8h.xml b/doc/xml/bioscall_8h.xml index 2073b10..aefcdf6 100644 --- a/doc/xml/bioscall_8h.xml +++ b/doc/xml/bioscall_8h.xml @@ -6,37 +6,37 @@ src/sys/kernel/bioscall.c src/sys/kernel/systemtask.c - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/block_8c.xml b/doc/xml/block_8c.xml index 1551f18..4238747 100644 --- a/doc/xml/block_8c.xml +++ b/doc/xml/block_8c.xml @@ -6,142 +6,134 @@ vfs/file.h vfs/mount.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + diff --git a/doc/xml/buf_8h.xml b/doc/xml/buf_8h.xml index 7896216..548192a 100644 --- a/doc/xml/buf_8h.xml +++ b/doc/xml/buf_8h.xml @@ -7,98 +7,98 @@ sys/device.h src/sys/ufs/ffs.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/cdefs_8h.xml b/doc/xml/cdefs_8h.xml index a4031ae..c147c45 100644 --- a/doc/xml/cdefs_8h.xml +++ b/doc/xml/cdefs_8h.xml @@ -5,32 +5,32 @@ ubixos/types.h src/sys/lib/strtol.c - + - + - + - + - + - + - + - + diff --git a/doc/xml/classogDisplay__UbixOS.xml b/doc/xml/classogDisplay__UbixOS.xml index 096aa53..1ff95c0 100644 --- a/doc/xml/classogDisplay__UbixOS.xml +++ b/doc/xml/classogDisplay__UbixOS.xml @@ -366,21 +366,21 @@ - + - + - + VESAInfo - + modeInfo - + diff --git a/doc/xml/copyvirtualspace_8c.xml b/doc/xml/copyvirtualspace_8c.xml index 54847bc..90c80c4 100644 --- a/doc/xml/copyvirtualspace_8c.xml +++ b/doc/xml/copyvirtualspace_8c.xml @@ -8,90 +8,90 @@ ubixos/kpanic.h string.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -114,7 +114,7 @@ adjustCowCounter cvsSpinLock - kpanic + kpanic memset PAGE_COW PAGE_DEFAULT diff --git a/doc/xml/createvirtualspace_8c.xml b/doc/xml/createvirtualspace_8c.xml index 2e0174d..7871a2b 100644 --- a/doc/xml/createvirtualspace_8c.xml +++ b/doc/xml/createvirtualspace_8c.xml @@ -4,58 +4,58 @@ createvirtualspace.c vmm/vmm.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -83,7 +83,7 @@ vmm_getPhysicalAddr vmmGetFreePage vmmUnmapPage - execFile + execFile diff --git a/doc/xml/devfs_8c.xml b/doc/xml/devfs_8c.xml index 78bf422..2e4983d 100644 --- a/doc/xml/devfs_8c.xml +++ b/doc/xml/devfs_8c.xml @@ -12,134 +12,134 @@ lib/string.h lib/kprintf.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/devfs_8h.xml b/doc/xml/devfs_8h.xml index 9bbf115..e217e03 100644 --- a/doc/xml/devfs_8h.xml +++ b/doc/xml/devfs_8h.xml @@ -9,79 +9,79 @@ src/sys/isa/fdc.c src/sys/pci/hd.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/device_8c.xml b/doc/xml/device_8c.xml index 3c56e27..b20400e 100644 --- a/doc/xml/device_8c.xml +++ b/doc/xml/device_8c.xml @@ -8,56 +8,56 @@ lib/kprintf.h assert.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/device_8old_8h.xml b/doc/xml/device_8old_8h.xml index e1c625c..7fa683b 100644 --- a/doc/xml/device_8old_8h.xml +++ b/doc/xml/device_8old_8h.xml @@ -6,52 +6,52 @@ src/sys/include/isa/ne2k.h src/sys/isa/ne2k.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/dirCache_8c.xml b/doc/xml/dirCache_8c.xml index 626c5b1..0e7025c 100644 --- a/doc/xml/dirCache_8c.xml +++ b/doc/xml/dirCache_8c.xml @@ -10,178 +10,170 @@ lib/string.h ubixos/spinlock.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + diff --git a/doc/xml/dirCache_8h.xml b/doc/xml/dirCache_8h.xml index 474153c..29ca8dc 100644 --- a/doc/xml/dirCache_8h.xml +++ b/doc/xml/dirCache_8h.xml @@ -8,515 +8,533 @@ src/sys/ubixfs/dirCache.c src/sys/ubixfs/ubixfs.c - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/directory_8c.xml b/doc/xml/directory_8c.xml index ba862d9..52b130e 100644 --- a/doc/xml/directory_8c.xml +++ b/doc/xml/directory_8c.xml @@ -10,168 +10,160 @@ lib/kprintf.h lib/string.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + diff --git a/doc/xml/divdi3_8c.xml b/doc/xml/divdi3_8c.xml index 753ed54..1c58800 100644 --- a/doc/xml/divdi3_8c.xml +++ b/doc/xml/divdi3_8c.xml @@ -4,26 +4,26 @@ divdi3.c math.h - + - + - + - + - + - + - + diff --git a/doc/xml/dma_8c.xml b/doc/xml/dma_8c.xml index 08e462b..e25f38b 100644 --- a/doc/xml/dma_8c.xml +++ b/doc/xml/dma_8c.xml @@ -6,33 +6,33 @@ sys/io.h ubixos/types.h - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/dma_8h.xml b/doc/xml/dma_8h.xml index 6de1ab2..48f426f 100644 --- a/doc/xml/dma_8h.xml +++ b/doc/xml/dma_8h.xml @@ -6,37 +6,37 @@ src/sys/isa/fdc.c src/sys/sys/dma.c - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/driver_8h.xml b/doc/xml/driver_8h.xml index 3945cff..6a97c40 100644 --- a/doc/xml/driver_8h.xml +++ b/doc/xml/driver_8h.xml @@ -4,20 +4,20 @@ driver.h ubixos/types.h - + - + - + - + - + diff --git a/doc/xml/elf_8c.xml b/doc/xml/elf_8c.xml index 99e8ab2..171cd65 100644 --- a/doc/xml/elf_8c.xml +++ b/doc/xml/elf_8c.xml @@ -3,31 +3,195 @@ elf.c ubixos/elf.h + ubixos/kpanic.h + lib/kmalloc.h + vmm/vmm.h - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + int + int elf_loadfile + (kTask_t *p, const char *file, u_int32_t *addr, u_int32_t *entry) + elf_loadfile + + kTask_t * + p + + + const char * + file + + + u_int32_t * + addr + + + u_int32_t * + entry + + + + + + + + + _current + elfHeader::eEntry + elfHeader::eIdent + elfHeader::ePhnum + elfHeader::ePhoff + ET_DYN + ET_EXEC + elfHeader::eType + fclose + fopen + fread + fseek + taskStruct::id + K_PANIC + kfree + kmalloc + kprintf + memset + PAGE_DEFAULT + PAGE_PRESENT + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_LOAD + vmm_remapPage + vmm_setPageAttributes + vmmFindFreePage + x1000 + char * char* elfGetPhType @@ -43,9 +207,9 @@ - + elfPhType - phTypeName + phTypeName char * @@ -62,9 +226,9 @@ - + elfRelType - relTypeName + relTypeName kmod_load ldEnable @@ -83,9 +247,9 @@ - + elfShType - shTypeName + shTypeName @@ -100,8 +264,8 @@ - - elfGetPhType + + elfGetPhType @6 @@ -114,8 +278,8 @@ - - elfGetRelType + + elfGetRelType @5 @@ -128,8 +292,8 @@ - - elfGetShType + + elfGetShType @3 @@ -142,7 +306,7 @@ - + char * @@ -155,7 +319,7 @@ - + uInt32 @@ -168,7 +332,7 @@ - + uInt32 @@ -181,7 +345,7 @@ - + uInt32 @@ -194,7 +358,7 @@ - + uInt32 @@ -207,7 +371,7 @@ - + char * @@ -220,8 +384,8 @@ - - elfGetPhType + + elfGetPhType char * @@ -234,8 +398,8 @@ - - elfGetRelType + + elfGetRelType char * @@ -248,8 +412,8 @@ - - elfGetShType + + elfGetShType @@ -287,87 +451,166 @@ *****************************************************************************************/ #include<ubixos/elf.h> - -conststruct{ -char*elfTypeName; -uInt32id; -}elfType[]={ -{"ET_NONE",0}, -{"ET_REL",1}, -{"ET_EXEC",2}, -{"ET_DYN",3}, -{"ET_CORE",4}, -{"ET_LOPROC",0xff00}, -{"ET_HIPROC",0xffff}, -}; - -conststruct{ -char*phTypeName; -uInt32id; -}elfPhType[]={ -{"PT_NULL",0}, -{"PT_LOAD",1}, -{"PT_DYNAMIC",2}, -{"PT_INTERP",3}, -{"PT_NOTE",4}, -{"PT_SHLIB",5}, -{"PT_PHDR",6}, -{"PT_LOPROC",0x70000000}, -{"PT_HIPROC",0x7fffffff}, -}; - -conststruct{ -char*shTypeName; -uInt32id; -}elfShType[]={ -{"SHT_NULL",0}, -{"SHT_PROGBITS",1}, -{"SHT_SYMTAB",2}, -{"SHT_STRTAB",3}, -{"SHT_RELA",4}, -{"SHT_HASH",5}, -{"SHT_DYNAMIC",6}, -{"SHT_NOTE",7}, -{"SHT_NOBITS",8}, -{"SHT_REL",9}, -{"SHT_SHLIB",10}, -{"SHT_DYNSYM",11}, -}; - -conststruct{ -char*relTypeName; -uInt32id; -}elfRelType[]={ -{"R_386_NONE",0}, -{"R_386_32",1}, -{"R_386_PC32",2}, -{"R_386_GOT32",3}, -{"R_386_PLT32",4}, -{"R_386_COPY",5}, -{"R_386_GLOB_DAT",6}, -{"R_386_JMP_SLOT",7}, -{"R_386_RELATIVE",8}, -{"R_386_GOTOFF",9}, -{"R_386_GOTPC",10}, -}; - - -char*elfGetShType(intshType){ -return((char*)elfShType[shType].shTypeName); -} - -char*elfGetPhType(intphType){ -return((char*)elfPhType[phType].phTypeName); -} - -char*elfGetRelType(intrelType){ -return((char*)elfRelType[relType].relTypeName); -} - -/*** -END -***/ - +#include<ubixos/kpanic.h> +#include<lib/kmalloc.h> +#include<vmm/vmm.h> + +conststruct{ +char*elfTypeName; +uInt32id; +}elfType[]={ +{"ET_NONE",0}, +{"ET_REL",1}, +{"ET_EXEC",2}, +{"ET_DYN",3}, +{"ET_CORE",4}, +{"ET_LOPROC",0xff00}, +{"ET_HIPROC",0xffff}, +}; + +conststruct{ +char*phTypeName; +uInt32id; +}elfPhType[]={ +{"PT_NULL",0}, +{"PT_LOAD",1}, +{"PT_DYNAMIC",2}, +{"PT_INTERP",3}, +{"PT_NOTE",4}, +{"PT_SHLIB",5}, +{"PT_PHDR",6}, +{"PT_LOPROC",0x70000000}, +{"PT_HIPROC",0x7fffffff}, +}; + +conststruct{ +char*shTypeName; +uInt32id; +}elfShType[]={ +{"SHT_NULL",0}, +{"SHT_PROGBITS",1}, +{"SHT_SYMTAB",2}, +{"SHT_STRTAB",3}, +{"SHT_RELA",4}, +{"SHT_HASH",5}, +{"SHT_DYNAMIC",6}, +{"SHT_NOTE",7}, +{"SHT_NOBITS",8}, +{"SHT_REL",9}, +{"SHT_SHLIB",10}, +{"SHT_DYNSYM",11}, +}; + +conststruct{ +char*relTypeName; +uInt32id; +}elfRelType[]={ +{"R_386_NONE",0}, +{"R_386_32",1}, +{"R_386_PC32",2}, +{"R_386_GOT32",3}, +{"R_386_PLT32",4}, +{"R_386_COPY",5}, +{"R_386_GLOB_DAT",6}, +{"R_386_JMP_SLOT",7}, +{"R_386_RELATIVE",8}, +{"R_386_GOTOFF",9}, +{"R_386_GOTPC",10}, +}; + + +char*elfGetShType(intshType){ +return((char*)elfShType[shType].shTypeName); +} + +char*elfGetPhType(intphType){ +return((char*)elfPhType[phType].phTypeName); +} + +char*elfGetRelType(intrelType){ +return((char*)elfRelType[relType].relTypeName); +} + +intelf_loadfile(kTask_t*p,constchar*file,u_int32_t*addr,u_int32_t*entry){ +inti=0x0; +intx=0x0; +intnumsegs=0x0; +u_int32_tbase=0x0; +u_int32_tbase_addr=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +fileDescriptor*exec_fd=0x0; + +exec_fd=fopen(file,"r"); +if(exec_fd==0x0) +return(-1); +kprintf("MOO"); +/*LoadtheELFheader*/ +if((binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)))==0x0) +K_PANIC("mallocfailed!"); +fread(binaryHeader,sizeof(elfHeader),1,exec_fd); + +/*CheckIfAppIsARealApplication*/ +if((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F')){ +kfree(binaryHeader); +fclose(exec_fd); +return(-1); +} + +if(binaryHeader->eType==ET_DYN) +base=*addr; +elseif(binaryHeader->eType==ET_EXEC) +base=0x0; +else +return(-1); + +/*LoadTheProgramHeader(s)*/ +if((programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum))==0x0) +K_PANIC("mallocfailed!"); +fseek(exec_fd,binaryHeader->ePhoff,0); +fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,exec_fd); +kprintf("MEW:[0x%X]",base); +for(i=0x0;i<binaryHeader->ePhnum;i++){ +switch(programHeader[i].phType){ +casePT_LOAD: +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +/*Makereadonlyandread/write*/ +if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x+base),PAGE_DEFAULT)==0x0) +K_PANIC("Error:RemapPageFailed"); +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x+base),0x0,0x1000); +} + +/*NowLoadSectionToMemory*/ +fseek(exec_fd,programHeader[i].phOffset,0); +fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,exec_fd); + +if((programHeader[i].phFlags&0x2)!=0x2){ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x+base,PAGE_PRESENT|PAGE_USER))!=0x0) +K_PANIC("vmm_setPageAttributesfailed"); +} +} +if(numsegs==0x0) +base_addr=(programHeader[i].phVaddr&0xFFFFF000)+base; +numsegs++; +break; +} +} +*addr=base_addr; +kprintf("entry:[0x%X]\n",*entry); +*entry=binaryHeader->eEntry+base; +kprintf("entry:[0x%X]\n",*entry); +return(0x0); +} + +/*** +END +***/ + diff --git a/doc/xml/elf_8h.xml b/doc/xml/elf_8h.xml index 6ed2632..8589c7d 100644 --- a/doc/xml/elf_8h.xml +++ b/doc/xml/elf_8h.xml @@ -3,405 +3,123 @@ elf.h ubixos/types.h - src/sys/include/ubixos/sched.h + ubixos/sched.h src/sys/kernel/elf.c + src/sys/kernel/exec.c src/sys/kernel/ld.c src/sys/kernel/syscall.c src/sys/kmods/kmod.c - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + Elf_Auxargs elfDynamic elfDynSym elfHeader @@ -420,7 +138,7 @@ - + ELF32_R_SYM @@ -432,7 +150,7 @@ - + kmod_load ldEnable @@ -446,7 +164,7 @@ - + kmod_load ldEnable @@ -459,7 +177,7 @@ - + elfLibrary @@ -470,7 +188,7 @@ - + EM_386 @@ -481,7 +199,7 @@ - + EM_68K @@ -492,7 +210,7 @@ - + EM_860 @@ -503,7 +221,7 @@ - + EM_88K @@ -514,7 +232,7 @@ - + EM_M32 @@ -525,7 +243,7 @@ - + EM_MIPS @@ -536,7 +254,7 @@ - + EM_NONE @@ -547,7 +265,7 @@ - + EM_SPARC @@ -558,7 +276,7 @@ - + ET_CORE @@ -569,7 +287,7 @@ - + ET_DYN @@ -580,7 +298,8 @@ - + + elf_loadfile ET_EXEC @@ -591,7 +310,9 @@ - + + elf_loadfile + sys_exec ET_HIPROC @@ -602,7 +323,7 @@ - + ET_LOPROC @@ -613,7 +334,7 @@ - + ET_NONE @@ -624,7 +345,7 @@ - + ET_REL @@ -635,7 +356,7 @@ - + EV_CURRENT @@ -646,7 +367,7 @@ - + EV_NONE @@ -657,7 +378,7 @@ - + PT_DYNAMIC @@ -668,10 +389,10 @@ - + kmod_load ldEnable - sysExec + sysExec PT_GNU_EH_FRAME @@ -682,7 +403,7 @@ - + PT_GNU_RELRO @@ -693,7 +414,7 @@ - + PT_GNU_STACK @@ -704,7 +425,7 @@ - + kmod_load ldEnable @@ -717,7 +438,7 @@ - + PT_HIPROC @@ -728,7 +449,7 @@ - + PT_INTERP @@ -739,8 +460,9 @@ - - sysExec + + sys_exec + sysExec PT_LOAD @@ -751,10 +473,12 @@ - + + elf_loadfile kmod_load ldEnable - sysExec + sys_exec + sysExec PT_LOOS @@ -765,7 +489,7 @@ - + PT_LOPROC @@ -776,7 +500,7 @@ - + PT_NOTE @@ -787,7 +511,7 @@ - + PT_NULL @@ -798,7 +522,7 @@ - + PT_PAX_FLAGS @@ -809,7 +533,7 @@ - + kmod_load ldEnable @@ -822,7 +546,8 @@ - + + sys_exec PT_SHLIB @@ -833,7 +558,7 @@ - + R_386_32 @@ -844,7 +569,7 @@ - + kmod_load ldEnable @@ -857,7 +582,7 @@ - + R_386_GLOB_DAT @@ -868,7 +593,7 @@ - + R_386_GOT32 @@ -879,7 +604,7 @@ - + R_386_GOTOFF @@ -890,7 +615,7 @@ - + R_386_GOTPC @@ -901,7 +626,7 @@ - + R_386_JMP_SLOT @@ -912,7 +637,7 @@ - + R_386_NONE @@ -923,7 +648,7 @@ - + R_386_PC32 @@ -934,7 +659,7 @@ - + kmod_load ldEnable @@ -947,7 +672,7 @@ - + R_386_RELATIVE @@ -958,12 +683,69 @@ - + kmod_load ldEnable + + int + int elf_loadfile + (kTask_t *p, const char *file, u_int32_t *addr, u_int32_t *entry) + elf_loadfile + + kTask_t * + p + + + const char * + file + + + u_int32_t * + addr + + + u_int32_t * + entry + + + + + + + + + _current + elfHeader::eEntry + elfHeader::eIdent + elfHeader::ePhnum + elfHeader::ePhoff + ET_DYN + ET_EXEC + elfHeader::eType + fclose + fopen + fread + fseek + taskStruct::id + K_PANIC + kfree + kmalloc + kprintf + memset + PAGE_DEFAULT + PAGE_PRESENT + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_LOAD + vmm_remapPage + vmm_setPageAttributes + vmmFindFreePage + x1000 + char * char* elfGetPhType @@ -978,9 +760,9 @@ - + elfPhType - phTypeName + phTypeName char * @@ -996,9 +778,9 @@ - + elfRelType - relTypeName + relTypeName kmod_load ldEnable @@ -1016,9 +798,9 @@ - + elfShType - shTypeName + shTypeName @@ -1059,165 +841,182 @@ #define_ELF_H #include<ubixos/types.h> - -#defineelfExecutable0x002 -#defineelfLibrary0x003 - -#defineR_386_NONE0/*nonenone*/ -#defineR_386_321/*word32S+A*/ -#defineR_386_PC322/*word32S+A-P*/ -#defineR_386_GOT323/*word32G+A-P*/ -#defineR_386_PLT324/*word32L+A-P*/ -#defineR_386_COPY5/*nonenone*/ -#defineR_386_GLOB_DAT6/*word32S*/ -#defineR_386_JMP_SLOT7/*word32S*/ -#defineR_386_RELATIVE8/*word32B+A*/ -#defineR_386_GOTOFF9/*word32S+A-GOT*/ -#defineR_386_GOTPC10/*word32GOT+A-P*/ - +#include<ubixos/sched.h> + +#defineelfExecutable0x002 +#defineelfLibrary0x003 + +#defineR_386_NONE0/*nonenone*/ +#defineR_386_321/*word32S+A*/ +#defineR_386_PC322/*word32S+A-P*/ +#defineR_386_GOT323/*word32G+A-P*/ +#defineR_386_PLT324/*word32L+A-P*/ +#defineR_386_COPY5/*nonenone*/ +#defineR_386_GLOB_DAT6/*word32S*/ +#defineR_386_JMP_SLOT7/*word32S*/ +#defineR_386_RELATIVE8/*word32B+A*/ +#defineR_386_GOTOFF9/*word32S+A-GOT*/ +#defineR_386_GOTPC10/*word32GOT+A-P*/ -/*ElfTypes*/ -#defineET_NONE0//Nofiletype -#defineET_REL1//Relocatablefile -#defineET_EXEC2//Executablefile -#defineET_DYN3//Sharedobjectfile -#defineET_CORE4//Corefile -#defineET_LOPROC0xff00//Processor-specific -#defineET_HIPROC0xffff -/*EndElfTypes*/ - -/*ElfMachineTypes*/ -#defineEM_NONE0//Nomachine -#defineEM_M321//AT&TWE32100 -#defineEM_SPARC2//SPARC -#defineEM_3863//Intel80386 -#defineEM_68K4//Motorola68000 -#defineEM_88K5//Motorola88000 -#defineEM_8607//Intel80860 -#defineEM_MIPS8//MIPSRS3000 -/*EndElfMachinesTypes*/ - -/*ElfVersion*/ -#defineEV_NONE0//Invalidversion -#defineEV_CURRENT1//Currentversion -/*EndElfVersion*/ - -/*ElfProgramHeaderTypes*/ -#definePT_NULL0 -#definePT_LOAD1 -#definePT_DYNAMIC2 -#definePT_INTERP3 -#definePT_NOTE4 -#definePT_SHLIB5 -#definePT_PHDR6 -#definePT_LOOS0x60000000 -#definePT_HIOS0x6fffffff -#definePT_LOPROC0x70000000 -#definePT_HIPROC0x7fffffff -#definePT_GNU_EH_FRAME0x6474e550 -#definePT_GNU_STACK(PT_LOOS+0x474e551) -#definePT_GNU_RELRO(PT_LOOS+0x474e552) -#definePT_PAX_FLAGS(PT_LOOS+0x5041580) - -/*EndElfProgramHeaderTypes*/ - -typedefstruct{ -uInt8eIdent[16];/*Fileidentification.*/ -uInt16eType;/*Filetype.*/ -uInt16eMachine;/*Machinearchitecture.*/ -uInt32eVersion;/*ELFformatversion.*/ -uInt32eEntry;/*Entrypoint.*/ -uInt32ePhoff;/*Programheaderfileoffset.*/ -uInt32eShoff;/*Sectionheaderfileoffset.*/ -uInt32eFlags;/*Architecture-specificflags.*/ -uInt16eEhsize;/*SizeofELFheaderinbytes.*/ -uInt16ePhentsize;/*Sizeofprogramheaderentry.*/ -uInt16ePhnum;/*Numberofprogramheaderentries.*/ -uInt16eShentsize;/*Sizeofsectionheaderentry.*/ -uInt16eShnum;/*Numberofsectionheaderentries.*/ -uInt16eShstrndx;/*Sectionnamestringssection.*/ -}elfHeader; - -typedefstruct{ -uInt32phType;/*Entrytype.*/ -uInt32phOffset;/*Fileoffsetofcontents.*/ -uInt32phVaddr;/*Virtualaddressinmemoryimage.*/ -uInt32phPaddr;/*Physicaladdress(notused).*/ -uInt32phFilesz;/*Sizeofcontentsinfile.*/ -uInt32phMemsz;/*Sizeofcontentsinmemory.*/ -uInt32phFlags;/*Accesspermissionflags.*/ -uInt32phAlign;/*Alignmentinmemoryandfile.*/ -}elfProgramHeader; - -typedefstruct{ -uInt32shName;/*Sectionname(indexintothesectionheaderstringtable).*/ -uInt32shType;/*Sectiontype.*/ -uInt32shFlags;/*Sectionflags.*/ -uInt32shAddr;/*Addressinmemoryimage.*/ -uInt32shOffset;/*Offsetinfile.*/ -uInt32shSize;/*Sizeinbytes.*/ -uInt32shLink;/*Indexofarelatedsection.*/ -uInt32shInfo;/*Dependsonsectiontype.*/ -uInt32shAddralign;/*Alignmentinbytes.*/ -uInt32shEntsize;/*Sizeofeachentryinsection.*/ -}elfSectionHeader; - -typedefstruct{ -uInt32pltOffset; -uInt32pltInfo; -}elfPltInfo; - -typedefstruct{ -uInt32dynName; -uInt32dynValue; -uInt32dynSize; -uInt32dynInfo; -}elfDynSym; - -typedefstruct{ -uInt32dynVal; -uInt32dynPtr; -}elfDynamic; - -char*elfGetShType(int); -char*elfGetPhType(int); -char*elfGetRelType(int); - -#defineELF32_R_SYM(i)((i)>>8) -#defineELF32_R_TYPE(i)((unsignedchar)(i)) -#defineELF32_R_INFO(s,t)((s)<<8+(unsignedchar)(t)) - -#endif - -/*** -$Log$ -Revision1.1.1.12006/06/0112:46:13reddawg -ubix2 - -Revision1.22005/10/1200:13:37reddawg -Removed - -Revision1.1.1.12005/09/2617:23:54reddawg -nomessage - -Revision1.72004/09/1101:20:08apwillia -Cleanup'UnhandledHeader'printfswhencompiledinlinux - -Revision1.62004/06/1614:04:51reddawg -Renamedatypedef - -Revision1.52004/06/1412:20:54reddawg -notes:manybugsrepairedandldworks100%now. - -Revision1.42004/06/1201:27:26reddawg -sharedobjects:yeswealmostfullysupportsharedobjects - -Revision1.32004/05/2115:20:00reddawg -Cleanedup - - -END -***/ + +/*ElfTypes*/ +#defineET_NONE0//Nofiletype +#defineET_REL1//Relocatablefile +#defineET_EXEC2//Executablefile +#defineET_DYN3//Sharedobjectfile +#defineET_CORE4//Corefile +#defineET_LOPROC0xff00//Processor-specific +#defineET_HIPROC0xffff +/*EndElfTypes*/ + +/*ElfMachineTypes*/ +#defineEM_NONE0//Nomachine +#defineEM_M321//AT&TWE32100 +#defineEM_SPARC2//SPARC +#defineEM_3863//Intel80386 +#defineEM_68K4//Motorola68000 +#defineEM_88K5//Motorola88000 +#defineEM_8607//Intel80860 +#defineEM_MIPS8//MIPSRS3000 +/*EndElfMachinesTypes*/ + +/*ElfVersion*/ +#defineEV_NONE0//Invalidversion +#defineEV_CURRENT1//Currentversion +/*EndElfVersion*/ + +/*ElfProgramHeaderTypes*/ +#definePT_NULL0 +#definePT_LOAD1 +#definePT_DYNAMIC2 +#definePT_INTERP3 +#definePT_NOTE4 +#definePT_SHLIB5 +#definePT_PHDR6 +#definePT_LOOS0x60000000 +#definePT_HIOS0x6fffffff +#definePT_LOPROC0x70000000 +#definePT_HIPROC0x7fffffff +#definePT_GNU_EH_FRAME0x6474e550 +#definePT_GNU_STACK(PT_LOOS+0x474e551) +#definePT_GNU_RELRO(PT_LOOS+0x474e552) +#definePT_PAX_FLAGS(PT_LOOS+0x5041580) + +/*EndElfProgramHeaderTypes*/ + +typedefstruct{ +uInt8eIdent[16];/*Fileidentification.*/ +uInt16eType;/*Filetype.*/ +uInt16eMachine;/*Machinearchitecture.*/ +uInt32eVersion;/*ELFformatversion.*/ +uInt32eEntry;/*Entrypoint.*/ +uInt32ePhoff;/*Programheaderfileoffset.*/ +uInt32eShoff;/*Sectionheaderfileoffset.*/ +uInt32eFlags;/*Architecture-specificflags.*/ +uInt16eEhsize;/*SizeofELFheaderinbytes.*/ +uInt16ePhentsize;/*Sizeofprogramheaderentry.*/ +uInt16ePhnum;/*Numberofprogramheaderentries.*/ +uInt16eShentsize;/*Sizeofsectionheaderentry.*/ +uInt16eShnum;/*Numberofsectionheaderentries.*/ +uInt16eShstrndx;/*Sectionnamestringssection.*/ +}elfHeader; + +typedefstruct{ +uInt32phType;/*Entrytype.*/ +uInt32phOffset;/*Fileoffsetofcontents.*/ +uInt32phVaddr;/*Virtualaddressinmemoryimage.*/ +uInt32phPaddr;/*Physicaladdress(notused).*/ +uInt32phFilesz;/*Sizeofcontentsinfile.*/ +uInt32phMemsz;/*Sizeofcontentsinmemory.*/ +uInt32phFlags;/*Accesspermissionflags.*/ +uInt32phAlign;/*Alignmentinmemoryandfile.*/ +}elfProgramHeader; + +typedefstruct{ +uInt32shName;/*Sectionname(indexintothesectionheaderstringtable).*/ +uInt32shType;/*Sectiontype.*/ +uInt32shFlags;/*Sectionflags.*/ +uInt32shAddr;/*Addressinmemoryimage.*/ +uInt32shOffset;/*Offsetinfile.*/ +uInt32shSize;/*Sizeinbytes.*/ +uInt32shLink;/*Indexofarelatedsection.*/ +uInt32shInfo;/*Dependsonsectiontype.*/ +uInt32shAddralign;/*Alignmentinbytes.*/ +uInt32shEntsize;/*Sizeofeachentryinsection.*/ +}elfSectionHeader; + +typedefstruct{ +uInt32pltOffset; +uInt32pltInfo; +}elfPltInfo; + +typedefstruct{ +uInt32dynName; +uInt32dynValue; +uInt32dynSize; +uInt32dynInfo; +}elfDynSym; + +typedefstruct{ +uInt32dynVal; +uInt32dynPtr; +}elfDynamic; + +typedefstruct{ +int32_texecfd; +u_int32_tphdr; +u_int32_tphent; +u_int32_tphnum; +u_int32_tpagesz; +u_int32_tbase; +u_int32_tflags; +u_int32_tentry; +u_int32_ttrace; +}Elf_Auxargs; + +char*elfGetShType(int); +char*elfGetPhType(int); +char*elfGetRelType(int); +intelf_loadfile(kTask_t*p,constchar*file,u_int32_t*addr,u_int32_t*entry); + +#defineELF32_R_SYM(i)((i)>>8) +#defineELF32_R_TYPE(i)((unsignedchar)(i)) +#defineELF32_R_INFO(s,t)((s)<<8+(unsignedchar)(t)) + +#endif + +/*** +$Log$ +Revision1.22006/12/1515:43:46reddawg +Changes + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:54reddawg +nomessage + +Revision1.72004/09/1101:20:08apwillia +Cleanup'UnhandledHeader'printfswhencompiledinlinux + +Revision1.62004/06/1614:04:51reddawg +Renamedatypedef + +Revision1.52004/06/1412:20:54reddawg +notes:manybugsrepairedandldworks100%now. + +Revision1.42004/06/1201:27:26reddawg +sharedobjects:yeswealmostfullysupportsharedobjects + +Revision1.32004/05/2115:20:00reddawg +Cleanedup + + +END +***/ diff --git a/doc/xml/endtask_8c.xml b/doc/xml/endtask_8c.xml index 3a1ba53..ffc8cfc 100644 --- a/doc/xml/endtask_8c.xml +++ b/doc/xml/endtask_8c.xml @@ -9,184 +9,172 @@ lib/kprintf.h isa/8259.h - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -225,7 +213,7 @@ _int6 _int9 schedEndTask - sysExec + sysExec sysExit vmm_pageFault diff --git a/doc/xml/endtask_8h.xml b/doc/xml/endtask_8h.xml index 51f1834..126c248 100644 --- a/doc/xml/endtask_8h.xml +++ b/doc/xml/endtask_8h.xml @@ -14,143 +14,135 @@ src/sys/kernel/syscall_new.c src/sys/sys/idt.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -189,7 +181,7 @@ _int6 _int9 schedEndTask - sysExec + sysExec sysExit vmm_pageFault diff --git a/doc/xml/ethernetif_8h.xml b/doc/xml/ethernetif_8h.xml index 4a1366a..c016c1d 100644 --- a/doc/xml/ethernetif_8h.xml +++ b/doc/xml/ethernetif_8h.xml @@ -4,13 +4,13 @@ ethernetif.h net/netif.h - + - + - + diff --git a/doc/xml/exec_8c.xml b/doc/xml/exec_8c.xml index 9b27a37..8fb0b0f 100644 --- a/doc/xml/exec_8c.xml +++ b/doc/xml/exec_8c.xml @@ -3,7 +3,7 @@ exec.c ubixos/exec.h - ubixos/sched.h + ubixos/elf.h ubixos/ld.h ubixos/kpanic.h ubixos/endtask.h @@ -13,180 +13,180 @@ lib/string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -200,9 +200,9 @@ - - execFile - sysExec + + execFile + sysExec @@ -233,7 +233,7 @@ - + _current assert tssStruct::back_link @@ -242,19 +242,19 @@ tssStruct::ds tssStruct::ebp tssStruct::edi - elfHeader::eEntry + elfHeader::eEntry tssStruct::eflags - elfHeader::eIdent + elfHeader::eIdent tssStruct::eip - elfHeader::ePhnum - elfHeader::ePhoff + elfHeader::ePhnum + elfHeader::ePhoff tssStruct::es tssStruct::esi tssStruct::esp tssStruct::esp0 tssStruct::esp1 tssStruct::esp2 - elfHeader::eType + elfHeader::eType fclose fopen fread @@ -269,7 +269,7 @@ kernelPageDirectory kfree kmalloc - kpanic + kpanic kprintf tssStruct::ldt memset @@ -280,8 +280,8 @@ PAGE_STACK PAGE_USER fileDescriptorStruct::perms - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr READY sched_setStatus schedNewTask @@ -289,7 +289,7 @@ tssStruct::ss0 tssStruct::ss1 tssStruct::ss2 - STACK_ADDR + STACK_ADDR taskStruct::td taskStruct::term tssStruct::trace_bitmap @@ -330,7 +330,7 @@ - + assert tssStruct::back_link tssStruct::cr3 @@ -352,7 +352,7 @@ taskStruct::imageFd tssStruct::io_map kernelPageDirectory - kpanic + kpanic tssStruct::ldt taskStruct::oInfo READY @@ -368,6 +368,68 @@ kmain ubthread_create + + void + void sys_exec + (char *file, char *ap) + sys_exec + + char * + file + + + char * + ap + + +New exec... + + + +Clean the virtual of COW pages left over from the forkAdjust iframebuild argc and argv[]Start of Env + + _current + elfHeader::eEntry + elfHeader::eIdent + i386_frame::eip + elfHeader::ePhnum + elfHeader::ePhoff + ET_EXEC + elfHeader::eType + fclose + fopen + fread + fseek + taskStruct::id + taskStruct::imageFd + K_PANIC + kfree + kmalloc + kprintf + memset + taskStruct::oInfo + PAGE_DEFAULT + PAGE_PRESENT + PAGE_SHIFT + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phOffset + elfProgramHeader::phVaddr + PT_INTERP + PT_LOAD + PT_PHDR + round_page + taskStruct::td + trunc_page + thread::vm_daddr + thread::vm_dsize + vmm_remapPage + vmm_setPageAttributes + vmmFindFreePage + osInfo::vmStart + x1000 + sysExec + void void sysExec @@ -387,20 +449,20 @@ Clean the virtual of COW pages left over from the forkAdjust iframebuild argc and argv[] - + _current assert i386_frame::ebp - elfHeader::eEntry - elfHeader::eIdent + elfHeader::eEntry + elfHeader::eIdent i386_frame::eip endTask - elfHeader::ePhnum - elfHeader::ePhoff - elfHeader::eShnum - elfHeader::eShoff + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff tssStruct::esp0 - elfHeader::eType + elfHeader::eType fclose fopen fread @@ -410,7 +472,7 @@ K_PANIC kfree kmalloc - kpanic + kpanic kprintf ldEnable memset @@ -421,15 +483,16 @@ PAGE_SIZE PAGE_USER fileDescriptorStruct::perms - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr - PT_DYNAMIC - PT_INTERP - PT_LOAD + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_INTERP + PT_LOAD round_page - STACK_ADDR + STACK_ADDR strcpy strlen + sys_exec taskStruct::td trunc_page taskStruct::tss @@ -468,526 +531,698 @@ THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANY EXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOF -MERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSEAREDISCLAIMED.INNOEVENTSHALL -THECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL, -SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENT -OFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) -HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,OR -TORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSEOFTHIS -SOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. - -$Id$ - -*****************************************************************************************/ - -#include<ubixos/exec.h> -#include<ubixos/sched.h> -#include<ubixos/ld.h> -#include<ubixos/kpanic.h> -#include<ubixos/endtask.h> -#include<vmm/vmm.h> -#include<lib/kmalloc.h> -#include<lib/kprintf.h> -#include<lib/string.h> -#include<assert.h> - -#defineSTACK_ADDR0xC800000 - -/***************************************************************************************** - -Function:execThread(void(*)(void),int,char*); -Description:Thisfunctionwillcreateathreadfromcodeinthecurrentmemoryspace - -Notes: - -05/19/04-ThisdoesnotworkthewayIwantittoitstillmakesacopyofkernelspace -sodonotuseoutsideofkernelspace - -*****************************************************************************************/ -uInt32execThread(void(*tproc)(void),uInt32stack,char*arg){ -kTask_t*newProcess=0x0; -/*FindANewThread*/ -newProcess=schedNewTask(); -assert(newProcess); -if(stack<0x100000) -kpanic("exec:stacknotinvalidarea:[0x%X]\n",stack); - -/*SetAllTheCorrectThreadAttributes*/ -newProcess->tss.back_link=0x0; -newProcess->tss.esp0=0x0; -newProcess->tss.ss0=0x0; -newProcess->tss.esp1=0x0; -newProcess->tss.ss1=0x0; -newProcess->tss.esp2=0x0; -newProcess->tss.ss2=0x0; -newProcess->tss.cr3=(unsignedint)kernelPageDirectory; -newProcess->tss.eip=(unsignedint)tproc; -newProcess->tss.eflags=0x206; -newProcess->tss.esp=stack; -newProcess->tss.ebp=stack; -newProcess->tss.esi=0x0; -newProcess->tss.edi=0x0; - -/*Settheseuptobering3tasks*/ -/* -newProcess->tss.es=0x30+3; -newProcess->tss.cs=0x28+3; -newProcess->tss.ss=0x30+3; -newProcess->tss.ds=0x30+3; -newProcess->tss.fs=0x30+3; -newProcess->tss.gs=0x30+3; -*/ - -newProcess->tss.es=0x10; -newProcess->tss.cs=0x08; -newProcess->tss.ss=0x10; -newProcess->tss.ds=0x10; -newProcess->tss.fs=0x10; -newProcess->tss.gs=0x10; - -newProcess->tss.ldt=0x18; -newProcess->tss.trace_bitmap=0x0000; -newProcess->tss.io_map=0x8000; -newProcess->oInfo.vmStart=0x6400000; - -newProcess->imageFd=0x0; - -/*Setupdefaultstackforthreadherefilledwitharglist3times*/ -asmvolatile( -"pusha\n" -"movl%%esp,%%ecx\n" -"movl%1,%%eax\n" -"movl%%eax,%%esp\n" -"pushl%%ebx\n" +MERCHANTABILITYANDF +ITNESSFORAPARTICULARPURPOSEAREDISCLAIMED.INNOEVENTSHALL +THECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL, +SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENT +OFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,OR +TORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSEOFTHIS +SOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. + +$Id$ + +*****************************************************************************************/ + +#include<ubixos/exec.h> +#include<ubixos/elf.h> +#include<ubixos/ld.h> +#include<ubixos/kpanic.h> +#include<ubixos/endtask.h> +#include<vmm/vmm.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/string.h> +#include<assert.h> + +#defineSTACK_ADDR0xC800000 + +/***************************************************************************************** + +Function:execThread(void(*)(void),int,char*); +Description:Thisfunctionwillcreateathreadfromcodeinthecurrentmemoryspace + +Notes: + +05/19/04-ThisdoesnotworkthewayIwantittoitstillmakesacopyofkernelspace +sodonotuseoutsideofkernelspace + +*****************************************************************************************/ +uInt32execThread(void(*tproc)(void),uInt32stack,char*arg){ +kTask_t*newProcess=0x0; +/*FindANewThread*/ +newProcess=schedNewTask(); +assert(newProcess); +if(stack<0x100000) +kpanic("exec:stacknotinvalidarea:[0x%X]\n",stack); + +/*SetAllTheCorrectThreadAttributes*/ +newProcess->tss.back_link=0x0; +newProcess->tss.esp0=0x0; +newProcess->tss.ss0=0x0; +newProcess->tss.esp1=0x0; +newProcess->tss.ss1=0x0; +newProcess->tss.esp2=0x0; +newProcess->tss.ss2=0x0; +newProcess->tss.cr3=(unsignedint)kernelPageDirectory; +newProcess->tss.eip=(unsignedint)tproc; +newProcess->tss.eflags=0x206; +newProcess->tss.esp=stack; +newProcess->tss.ebp=stack; +newProcess->tss.esi=0x0; +newProcess->tss.edi=0x0; + +/*Settheseuptobering3tasks*/ +/* +newProcess->tss.es=0x30+3; +newProcess->tss.cs=0x28+3; +newProcess->tss.ss=0x30+3; +newProcess->tss.ds=0x30+3; +newProcess->tss.fs=0x30+3; +newProcess->tss.gs=0x30+3; +*/ + +newProcess->tss.es=0x10; +newProcess->tss.cs=0x08; +newProcess->tss.ss=0x10; +newProcess->tss.ds=0x10; +newProcess->tss.fs=0x10; +newProcess->tss.gs=0x10; + +newProcess->tss.ldt=0x18; +newProcess->tss.trace_bitmap=0x0000; +newProcess->tss.io_map=0x8000; +newProcess->oInfo.vmStart=0x6400000; + +newProcess->imageFd=0x0; + +/*Setupdefaultstackforthreadherefilledwitharglist3times*/ +asmvolatile( +"pusha\n" +"movl%%esp,%%ecx\n" +"movl%1,%%eax\n" +"movl%%eax,%%esp\n" "pushl%%ebx\n" "pushl%%ebx\n" -"movl%%esp,%%eax\n" -"movl%%eax,%1\n" -"movl%%ecx,%%esp\n" -"popa\n" -: -:"b"(arg),"m"(newProcess->tss.esp) -); - -/*PutnewthreadintotheREADYstate*/ -sched_setStatus(newProcess->id,READY); - -/*ReturnwiththenewprocessID*/ -return((uInt32)newProcess); -} - -/***************************************************************************************** - -Function:voidexecFile(char*file); -Description:ThisFunctionExecutesAKileIntoANewVMSpaceWithOut -HavingToFork -Notes: - -07/30/02-IHaveMadeSomeHeavyChangesToThisAsWellAsFixedAFew -MemoryLeaksTheMemoryAllocatedToLoadTheBinaryIntoIs -NowUnmappedSoItCanBeUsedAgainAndNotHeldOntoUntil -TheProgramExits - -07/30/02-NowIHaveToMakeABetterMemoryAllocatorSoWeCanSetUp -TheFreshlyAllocatedPagesWithTheCorrectPermissions - -*****************************************************************************************/ -voidexecFile(char*file,intargc,char**argv,intconsole){ - -inti=0x0; -intx=0x0; -u_int32_t*tmp=0x0; - -fileDescriptor*tmpFd=0x0; -elfHeader*binaryHeader=0x0; -elfProgramHeader*programHeader=0x0; - -/*GetANewTaskForThisProccess*/ -_current=schedNewTask(); -assert(_current); -_current->gid=0x0; -_current->uid=0x0; -_current->term=tty_find(console); -if(_current->term==0x0) -kprintf("Error:invalidconsole\n"); - -/*Setttyownership*/ -_current->term->owner=_current->id; - -/*NowWeMustCreateAVirtualSpaceForThisProccessToRunIn*/ -_current->tss.cr3=(uInt32)vmmCreateVirtualSpace(_current->id); - -/*ToBetterLoadThisApplicationWeWillSwitchOverToItsVMSpace*/ -asmvolatile( -"movl%0,%%eax\n" -"movl%%eax,%%cr3\n" -::"d"((uInt32*)(_current->tss.cr3)) -); - -/*LetsFindTheFile*/ -tmpFd=fopen(file,"r"); - -/*IfWeDontFindtheFileReturn*/ -if(tmpFd==0x0){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -fclose(tmpFd); -return; -} -if(tmpFd->perms==0x0){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -fclose(tmpFd); -return; -} - -/*LoadELFHeader*/ -binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)); - +"pushl%%ebx\n" +"movl%%esp,%%eax\n" +"movl%%eax,%1\n" +"movl%%ecx,%%esp\n" +"popa\n" +: +:"b"(arg),"m"(newProcess->tss.esp) +); + +/*PutnewthreadintotheREADYstate*/ +sched_setStatus(newProcess->id,READY); + +/*ReturnwiththenewprocessID*/ +return((uInt32)newProcess); +} + +/***************************************************************************************** + +Function:voidexecFile(char*file); +Description:ThisFunctionExecutesAKileIntoANewVMSpaceWithOut +HavingToFork +Notes: + +07/30/02-IHaveMadeSomeHeavyChangesToThisAsWellAsFixedAFew +MemoryLeaksTheMemoryAllocatedToLoadTheBinaryIntoIs +NowUnmappedSoItCanBeUsedAgainAndNotHeldOntoUntil +TheProgramExits + +07/30/02-NowIHaveToMakeABetterMemoryAllocatorSoWeCanSetUp +TheFreshlyAllocatedPagesWithTheCorrectPermissions + +*****************************************************************************************/ +voidexecFile(char*file,intargc,char**argv,intconsole){ + +inti=0x0; +intx=0x0; +u_int32_t*tmp=0x0; + +fileDescriptor*tmpFd=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; + +/*GetANewTaskForThisProccess*/ +_current=schedNewTask(); +assert(_current); +_current->gid=0x0; +_current->uid=0x0; +_current->term=tty_find(console); +if(_current->term==0x0) +kprintf("Error:invalidconsole\n"); + +/*Setttyownership*/ +_current->term->owner=_current->id; + +/*NowWeMustCreateAVirtualSpaceForThisProccessToRunIn*/ +_current->tss.cr3=(uInt32)vmmCreateVirtualSpace(_current->id); + +/*ToBetterLoadThisApplicationWeWillSwitchOverToItsVMSpace*/ +asmvolatile( +"movl%0,%%eax\n" +"movl%%eax,%%cr3\n" +::"d"((uInt32*)(_current->tss.cr3)) +); + +/*LetsFindTheFile*/ +tmpFd=fopen(file,"r"); + +/*IfWeDontFindtheFileReturn*/ +if(tmpFd==0x0){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +fclose(tmpFd); +return; +} +if(tmpFd->perms==0x0){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +fclose(tmpFd); +return; +} + +/*LoadELFHeader*/ +binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)); -//kprintf(">a:%i:0x%X:0x%X<",sizeof(elfHeader),binaryHeader,tmpFd); -fread(binaryHeader,sizeof(elfHeader),1,tmpFd); - + +//kprintf(">a:%i:0x%X:0x%X<",sizeof(elfHeader),binaryHeader,tmpFd); +fread(binaryHeader,sizeof(elfHeader),1,tmpFd); -/*CheckIfAppIsARealApplication*/ -if((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F')){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -kfree(binaryHeader); -fclose(tmpFd); -return; -} -elseif(binaryHeader->eType!=2){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -kfree(binaryHeader); -fclose(tmpFd); -return; -} -elseif(binaryHeader->eEntry==0x300000){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -kfree(binaryHeader); -fclose(tmpFd); -return; -} - -/*LoadTheProgramHeader(s)*/ -programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum); -fseek(tmpFd,binaryHeader->ePhoff,0); - -//kprintf(">c:%i:0x%X:0x%X<",sizeof(elfProgramHeader)*binaryHeader->ePhnum,programHeader,tmpFd); -fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,tmpFd); -//kprintf(">d<"); - -/*LoopThroughTheHeaderAndLoadSectionsWhichNeedToBeLoaded*/ -for(i=0;i<binaryHeader->ePhnum;i++){ -if(programHeader[i].phType==1){ -/* -AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect -Settingssoithelpsusinthefuture -*/ -for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ -/*Makereadonlyandread/write!!!*/ -if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x),PAGE_DEFAULT)==0x0) -K_PANIC("RemapPageFailed"); - -memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x),0x0,0x1000); -} -_current->oInfo.vmStart=0x80000000; -_current->td.vm_daddr=(char*)(programHeader[i].phVaddr&0xFFFFF000); -/*NowLoadSectionToMemory*/ -fseek(tmpFd,programHeader[i].phOffset,0); -fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); -if((programHeader[i].phFlags&0x2)!=0x2){ -kprintf("pH:[0x%X]\n",programHeader[i].phMemsz); -for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ -if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x,PAGE_PRESENT|PAGE_USER))!=0x0) -kpanic("Error:vmm_setPageAttributesfailed,File:%s,Line:%i\n",__FILE__,__LINE__); -} -} -} -} - -/*SetVirtualMemoryStart*/ -_current->oInfo.vmStart=0x80000000; -_current->td.vm_daddr=(char*)(programHeader[i].phVaddr&0xFFFFF000); - -/*SetUpStackSpace*/ -for(x=1;x<100;x++){ -vmm_remapPage(vmmFindFreePage(_current->id),STACK_ADDR-(x*0x1000),PAGE_DEFAULT|PAGE_STACK); -} - -/*KernelStack0x2000byteslong*/ -vmm_remapPage(vmmFindFreePage(_current->id),0x5BC000,KERNEL_PAGE_DEFAULT|PAGE_STACK); -vmm_remapPage(vmmFindFreePage(_current->id),0x5BB000,KERNEL_PAGE_DEFAULT|PAGE_STACK); - -/*SetAllTheProperInformationForTheTask*/ -_current->tss.back_link=0x0; -_current->tss.esp0=0x5BC000; -_current->tss.ss0=0x10; -_current->tss.esp1=0x0; -_current->tss.ss1=0x0; -_current->tss.esp2=0x0; -_current->tss.ss2=0x0; -_current->tss.eip=(long)binaryHeader->eEntry; -_current->tss.eflags=0x206; -_current->tss.esp=STACK_ADDR-12; -_current->tss.ebp=STACK_ADDR; -_current->tss.esi=0x0; -_current->tss.edi=0x0; - -/*Settheseuptobering3tasks*/ -_current->tss.es=0x30+3; -_current->tss.cs=0x28+3; -_current->tss.ss=0x30+3; -_current->tss.ds=0x30+3; -_current->tss.fs=0x30+3; -_current->tss.gs=0x30+3; - -_current->tss.ldt=0x18; -_current->tss.trace_bitmap=0x0000; -_current->tss.io_map=0x8000; - -sched_setStatus(_current->id,READY); - -kfree(binaryHeader); -kfree(programHeader); -fclose(tmpFd); - -tmp=(uInt32*)_current->tss.esp0-5; -tmp[0]=binaryHeader->eEntry; -tmp[3]=STACK_ADDR-12; - -tmp=(uInt32*)STACK_ADDR-2; - -if(_current->id>4) -kprintf("argv[0]:[%s]\n",argv[0]); -kprintf("argv:[0x%X]\n",argv); -tmp[0]=(u_int32_t)argv; -tmp[1]=(u_int32_t)argv; - + +/*CheckIfAppIsARealApplication*/ +if((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F')){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +kfree(binaryHeader); +fclose(tmpFd); +return; +} +elseif(binaryHeader->eType!=2){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +kfree(binaryHeader); +fclose(tmpFd); +return; +} +elseif(binaryHeader->eEntry==0x300000){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +kfree(binaryHeader); +fclose(tmpFd); +return; +} + +/*LoadTheProgramHeader(s)*/ +programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum); +fseek(tmpFd,binaryHeader->ePhoff,0); + +//kprintf(">c:%i:0x%X:0x%X<",sizeof(elfProgramHeader)*binaryHeader->ePhnum,programHeader,tmpFd); +fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,tmpFd); +//kprintf(">d<"); + +/*LoopThroughTheHeaderAndLoadSectionsWhichNeedToBeLoaded*/ +for(i=0;i<binaryHeader->ePhnum;i++){ +if(programHeader[i].phType==1){ +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +/*Makereadonlyandread/write!!!*/ +if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x),PAGE_DEFAULT)==0x0) +K_PANIC("RemapPageFailed"); + +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x),0x0,0x1000); +} +_current->oInfo.vmStart=0x80000000; +_current->td.vm_daddr=(char*)(programHeader[i].phVaddr&0xFFFFF000); +/*NowLoadSectionToMemory*/ +fseek(tmpFd,programHeader[i].phOffset,0); +fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); +if((programHeader[i].phFlags&0x2)!=0x2){ +kprintf("pH:[0x%X]\n",programHeader[i].phMemsz); +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x,PAGE_PRESENT|PAGE_USER))!=0x0) +kpanic("Error:vmm_setPageAttributesfailed,File:%s,Line:%i\n",__FILE__,__LINE__); +} +} +} +} + +/*SetVirtualMemoryStart*/ +_current->oInfo.vmStart=0x80000000; +_current->td.vm_daddr=(char*)(programHeader[i].phVaddr&0xFFFFF000); + +/*SetUpStackSpace*/ +for(x=1;x<100;x++){ +vmm_remapPage(vmmFindFreePage(_current->id),STACK_ADDR-(x*0x1000),PAGE_DEFAULT|PAGE_STACK); +} + +/*KernelStack0x2000byteslong*/ +vmm_remapPage(vmmFindFreePage(_current->id),0x5BC000,KERNEL_PAGE_DEFAULT|PAGE_STACK); +vmm_remapPage(vmmFindFreePage(_current->id),0x5BB000,KERNEL_PAGE_DEFAULT|PAGE_STACK); + +/*SetAllTheProperInformationForTheTask*/ +_current->tss.back_link=0x0; +_current->tss.esp0=0x5BC000; +_current->tss.ss0=0x10; +_current->tss.esp1=0x0; +_current->tss.ss1=0x0; +_current->tss.esp2=0x0; +_current->tss.ss2=0x0; +_current->tss.eip=(long)binaryHeader->eEntry; +_current->tss.eflags=0x206; +_current->tss.esp=STACK_ADDR-12; +_current->tss.ebp=STACK_ADDR; +_current->tss.esi=0x0; +_current->tss.edi=0x0; + +/*Settheseuptobering3tasks*/ +_current->tss.es=0x30+3; +_current->tss.cs=0x28+3; +_current->tss.ss=0x30+3; +_current->tss.ds=0x30+3; +_current->tss.fs=0x30+3; +_current->tss.gs=0x30+3; + +_current->tss.ldt=0x18; +_current->tss.trace_bitmap=0x0000; +_current->tss.io_map=0x8000; + +sched_setStatus(_current->id,READY); + +kfree(binaryHeader); +kfree(programHeader); +fclose(tmpFd); + +tmp=(uInt32*)_current->tss.esp0-5; +tmp[0]=binaryHeader->eEntry; +tmp[3]=STACK_ADDR-12; + +tmp=(uInt32*)STACK_ADDR-2; + +if(_current->id>4) +kprintf("argv[0]:[%s]\n",argv[0]); +kprintf("argv:[0x%X]\n",argv); +tmp[0]=(u_int32_t)argv; +tmp[1]=(u_int32_t)argv; -/*SwitchBackToTheKernelsVMSpace*/ -asmvolatile( -"movl%0,%%eax\n" -"movl%%eax,%%cr3\n" -::"d"((uInt32*)(kernelPageDirectory)) -); - -/*FinallyReturn*/ -return; -} - -/***************************************************************************************** - -Function:voidsysExec(); -Description:ThisIsTheSystemCallToExecuteANewTask - -Notes: -04-22-03-ItNowLoadsSectionsNotTheFullFile - -*****************************************************************************************/ -voidsysExec(char*file,char*ap){ -inti=0x0; -intx=0x0; -intargc=0x0; -uInt32*tmp=0x0; -uInt32ldAddr=0x0; -uInt32seg_size=0x0; -uInt32seg_addr=0x0; -char*interp=0x0; -char**argv=0x0; -char**argvNew=0x0; -char*args=0x0; - -fileDescriptor*tmpFd=0x0; -elfHeader*binaryHeader=0x0; -elfProgramHeader*programHeader=0x0; -elfSectionHeader*sectionHeader=0x0; -elfDynamic*elfDynamicS=0x0; -structi386_frame*iFrame=0x0; - -tmpFd=fopen(file,"r"); -_current->imageFd=tmpFd; -/*IfWeDontFindtheFileReturn*/ -if(tmpFd==0x0){ + +/*SwitchBackToTheKernelsVMSpace*/ +asmvolatile( +"movl%0,%%eax\n" +"movl%%eax,%%cr3\n" +::"d"((uInt32*)(kernelPageDirectory)) +); + +/*FinallyReturn*/ +return; +} + +/***************************************************************************************** + +Function:voidsysExec(); +Description:ThisIsTheSystemCallToExecuteANewTask + +Notes: +04-22-03-ItNowLoadsSectionsNotTheFullFile + +*****************************************************************************************/ +voidsysExec(char*file,char*ap){ +inti=0x0; +intx=0x0; +intargc=0x0; +uInt32*tmp=0x0; +uInt32ldAddr=0x0; +uInt32seg_size=0x0; +uInt32seg_addr=0x0; +char*interp=0x0; +char**argv=0x0; +char**argvNew=0x0; +char*args=0x0; + +fileDescriptor*tmpFd=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +elfSectionHeader*sectionHeader=0x0; +elfDynamic*elfDynamicS=0x0; +structi386_frame*iFrame=0x0; + + +if(_current->id>4){ +sys_exec(file,ap); return; } -if(tmpFd->perms==0){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -fclose(tmpFd); -return; -} - -/*LoadELFHeader*/ - -if((binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)))==0x0) -endTask(_current->id); -fread(binaryHeader,sizeof(elfHeader),1,tmpFd); -/*SetsectionHeaderToPointToLoadedBinaryToWeCanGatherInfo*/ + +tmpFd=fopen(file,"r"); +_current->imageFd=tmpFd; +/*IfWeDontFindtheFileReturn*/ +if(tmpFd==0x0){ +return; +} +if(tmpFd->perms==0){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +fclose(tmpFd); +return; +} -/*CheckIfAppIsARealApplication*/ -if((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F')){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -kfree(binaryHeader); -fclose(tmpFd); - -return; -} -elseif(binaryHeader->eType!=2){ +/*LoadELFHeader*/ + +if((binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)))==0x0) +endTask(_current->id); +fread(binaryHeader,sizeof(elfHeader),1,tmpFd); +/*SetsectionHeaderToPointToLoadedBinaryToWeCanGatherInfo*/ + +/*CheckIfAppIsARealApplication*/ +if((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F')){ kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); kfree(binaryHeader); fclose(tmpFd); -return; -} -elseif(binaryHeader->eEntry==0x300000){ -kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); -kfree(binaryHeader); -fclose(tmpFd); -return; -} - -/*LoadTheProgramHeader(s)*/ -if((programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum))==0x0) -endTask(_current->id); - -assert(programHeader); -fseek(tmpFd,binaryHeader->ePhoff,0); -fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,tmpFd); - -if((sectionHeader=(elfSectionHeader*)kmalloc(sizeof(elfSectionHeader)*binaryHeader->eShnum))==0x0) + +return; +} +elseif(binaryHeader->eType!=2){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +kfree(binaryHeader); +fclose(tmpFd); +return; +} +elseif(binaryHeader->eEntry==0x300000){ +kprintf("ExecFormatError:BinaryFileNotExecutable.\n"); +kfree(binaryHeader); +fclose(tmpFd); +return; +} + +/*LoadTheProgramHeader(s)*/ +if((programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum))==0x0) endTask(_current->id); -assert(sectionHeader); -fseek(tmpFd,binaryHeader->eShoff,0); -fread(sectionHeader,sizeof(elfSectionHeader)*binaryHeader->eShnum,1,tmpFd); +assert(programHeader); +fseek(tmpFd,binaryHeader->ePhoff,0); +fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,tmpFd); -/*LoopThroughTheHeaderAndLoadSectionsWhichNeedToBeLoaded*/ -for(i=0;i<binaryHeader->ePhnum;i++){ -switch(programHeader[i].phType){ -casePT_LOAD: -seg_addr=trunc_page(programHeader[i].phVaddr); -seg_size=round_page(programHeader[i].phMemsz+programHeader[i].phVaddr-seg_addr); +if((sectionHeader=(elfSectionHeader*)kmalloc(sizeof(elfSectionHeader)*binaryHeader->eShnum))==0x0) +endTask(_current->id); + +assert(sectionHeader); +fseek(tmpFd,binaryHeader->eShoff,0); +fread(sectionHeader,sizeof(elfSectionHeader)*binaryHeader->eShnum,1,tmpFd); -/* -AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect -Settingssoithelpsusinthefuture -*/ -for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ -/*Makereadonlyandread/write!!!*/ -if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x),PAGE_DEFAULT)==0x0) -K_PANIC("Error:RemapPageFailed"); -memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x),0x0,0x1000); -} - -/*NowLoadSectionToMemory*/ -fseek(tmpFd,programHeader[i].phOffset,0); -fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); -if((programHeader[i].phFlags&0x2)!=0x2){ -for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ -if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x,PAGE_PRESENT|PAGE_USER))!=0x0) -kpanic("Error:vmm_setPageAttributesfailed,File:%s,Line:%i\n",__FILE__,__LINE__); -} -} -kprintf("settingdaddr\n"); -if(binaryHeader->eEntry>=programHeader[i].phVaddr&&binaryHeader->eEntry<(programHeader[i].phVaddr+programHeader[i].phMemsz)){ -/*We'resuposedtodosomethinghere?*/ -} -else{ -_current->td.vm_dsize=seg_size>>PAGE_SHIFT; -_current->td.vm_daddr=(char*)seg_addr; -} - -_current->oInfo.vmStart=((programHeader[i].phVaddr&0xFFFFF000)+0xA900000); -break; -casePT_DYNAMIC: -//newLoc=(char*)programHeader[i].phVaddr; -elfDynamicS=(elfDynamic*)programHeader[i].phVaddr; -fseek(tmpFd,programHeader[i].phOffset,0); -fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); -break; -casePT_INTERP: -interp=(char*)kmalloc(programHeader[i].phFilesz); -fseek(tmpFd,programHeader[i].phOffset,0); -fread((void*)interp,programHeader[i].phFilesz,1,tmpFd); -kprintf("Interp:[%s]\n",interp); -ldAddr=ldEnable(); +/*LoopThroughTheHeaderAndLoadSectionsWhichNeedToBeLoaded*/ +for(i=0;i<binaryHeader->ePhnum;i++){ +switch(programHeader[i].phType){ +casePT_LOAD: +seg_addr=trunc_page(programHeader[i].phVaddr); +seg_size=round_page(programHeader[i].phMemsz+programHeader[i].phVaddr-seg_addr); + +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +/*Makereadonlyandread/write!!!*/ +if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x),PAGE_DEFAULT)==0x0) +K_PANIC("Error:RemapPageFailed"); +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x),0x0,0x1000); +} + +/*NowLoadSectionToMemory*/ +fseek(tmpFd,programHeader[i].phOffset,0); +fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); +if((programHeader[i].phFlags&0x2)!=0x2){ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x,PAGE_PRESENT|PAGE_USER))!=0x0) +kpanic("Error:vmm_setPageAttributesfailed,File:%s,Line:%i\n",__FILE__,__LINE__); +} +} +kprintf("settingdaddr\n"); +if(binaryHeader->eEntry>=programHeader[i].phVaddr&&binaryHeader->eEntry<(programHeader[i].phVaddr+programHeader[i].phMemsz)){ +/*We'resuposedtodosomethinghere?*/ +} +else{ +_current->td.vm_dsize=seg_size>>PAGE_SHIFT; +_current->td.vm_daddr=(char*)seg_addr; +} + +_current->oInfo.vmStart=((programHeader[i].phVaddr&0xFFFFF000)+0xA900000); +break; +casePT_DYNAMIC: +//newLoc=(char*)programHeader[i].phVaddr; +elfDynamicS=(elfDynamic*)programHeader[i].phVaddr; +fseek(tmpFd,programHeader[i].phOffset,0); +fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,tmpFd); break; -default: -break; -} -} - -/*Whatisthisdoing?11/23/06*/ -if(elfDynamicS!=0x0){ -for(i=0;i<12;i++){ -if(elfDynamicS[i].dynVal==0x3){ -tmp=(uInt32*)elfDynamicS[i].dynPtr; -if(tmp==0x0) -kpanic("tmp:NULL\n"); -tmp[2]=(uInt32)ldAddr; -tmp[1]=(uInt32)tmpFd; -break; -} -/* -else{ -kprintf("dyn_val:%i",elfDynamicS[i].dynVal); -} -*/ -} -} -_current->td.vm_dsize=seg_size>>PAGE_SHIFT; -_current->td.vm_daddr=(char*)seg_addr; - -argv=ap; - -if(argv[1]!=0x0){ -argc=argv[0]; -args=(char*)vmmGetFreeVirtualPage(_current->id,1,VM_TASK); -memset(args,0x0,0x1000); -x=0x0; -argvNew=(char**)kmalloc(sizeof(char*)*argc); -for(i=0x0;i<argc;i++){ -strcpy(args+x,argv[i+1]); -argvNew[i]=args+x; -x+=strlen(argv[i+1])+1; -//args[x]='\0'; -//x++; -} -argv=argvNew; -} - -vmm_cleanVirtualSpace(_current->td.vm_daddr+(_current->td.vm_dsize<<PAGE_SIZE)); - - -iFrame=_current->tss.esp0-sizeof(structi386_frame); -iFrame->ebp=STACK_ADDR; -iFrame->eip=binaryHeader->eEntry; -iFrame->user_esp=STACK_ADDR-12; - -//if(_current->id>3){ +casePT_INTERP: +interp=(char*)kmalloc(programHeader[i].phFilesz); +fseek(tmpFd,programHeader[i].phOffset,0); +fread((void*)interp,programHeader[i].phFilesz,1,tmpFd); +kprintf("Interp:[%s]\n",interp); +ldAddr=ldEnable(); +break; +default: +break; +} +} + +/*Whatisthisdoing?11/23/06*/ +if(elfDynamicS!=0x0){ +for(i=0;i<12;i++){ +if(elfDynamicS[i].dynVal==0x3){ +tmp=(uInt32*)elfDynamicS[i].dynPtr; +if(tmp==0x0) +kpanic("tmp:NULL\n"); +tmp[2]=(uInt32)ldAddr; +tmp[1]=(uInt32)tmpFd; +break; +} +/* +else{ +kprintf("dyn_val:%i",elfDynamicS[i].dynVal); +} +*/ +} +} + +_current->td.vm_dsize=seg_size>>PAGE_SHIFT; +_current->td.vm_daddr=(char*)seg_addr; + +argv=ap; + +if(argv[1]!=0x0){ +argc=argv[0]; +args=(char*)vmmGetFreeVirtualPage(_current->id,1,VM_TASK); +memset(args,0x0,0x1000); +x=0x0; +argvNew=(char**)kmalloc(sizeof(char*)*argc); +for(i=0x0;i<argc;i++){ +strcpy(args+x,argv[i+1]); +argvNew[i]=args+x; +x+=strlen(argv[i+1])+1; +//args[x]='\0'; +//x++; +} +argv=argvNew; +} + +vmm_cleanVirtualSpace(_current->td.vm_daddr+(_current->td.vm_dsize<<PAGE_SIZE)); + -iFrame->user_esp=((u_int32_t)STACK_ADDR)-(sizeof(u_int32_t)*(x+1)); -tmp=iFrame->user_esp; - -tmp[0]=argc; -for(i=0;i<argc;i++){ -tmp[i+1]=argv[i]; -} -//} -//else{ -//tmp=(u_int32_t*)STACK_ADDR-2; -//tmp[0]=0x1; -//tmp[1]=0x0; -//tmp[1]=(u_int32_t)argv; -//} -kfree(argvNew); -/*NowThatWeRelocatedTheBinaryWeCanUnmapAndFreeHeaderInfo*/ -kfree(binaryHeader); -kfree(programHeader); - -return; -} - -/*** -END -***/ +iFrame=_current->tss.esp0-sizeof(structi386_frame); +iFrame->ebp=STACK_ADDR; +iFrame->eip=binaryHeader->eEntry; +iFrame->user_esp=STACK_ADDR-12; + +//if(_current->id>3){ + +iFrame->user_esp=((u_int32_t)STACK_ADDR)-(sizeof(u_int32_t)*(argc+3)); +tmp=iFrame->user_esp; + +tmp[0]=argc; +for(i=0;i<argc;i++){ +tmp[i+1]=argv[i]; +} +tmp[argc+1]=0x0; +tmp[argc+2]=0x1; +//} +//else{ +//tmp=(u_int32_t*)STACK_ADDR-2; +//tmp[0]=0x1; +//tmp[1]=0x0; +//tmp[1]=(u_int32_t)argv; +//} +kfree(argvNew); +/*NowThatWeRelocatedTheBinaryWeCanUnmapAndFreeHeaderInfo*/ +kfree(binaryHeader); +kfree(programHeader); + +return; +} + +voidsys_exec(char*file,char*ap){ +interror=0x0; +inti=0x0; +intx=0x0; +intargc=0x0; +u_int32_tseg_size=0x0; +u_int32_tseg_addr=0x0; +u_int32_taddr=0x0; +u_int32_teip=0x0; +u_int32_tproghdr=0x0; +char*args=0x0; +char*interp=0x0; +char**argv=0x0; +char**argvNew=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +structi386_frame*iFrame=0x0; +Elf_Auxargs*auxargs=0x0; + +_current->imageFd=fopen(file,"r"); +if(_current->imageFd==0x0) +return(-1); + +/*LoadtheELFheader*/ +if((binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)))==0x0) +K_PANIC("mallocfailed!"); +fread(binaryHeader,sizeof(elfHeader),1,_current->imageFd); + +/*CheckIfAppIsARealApplication*/ +if(((binaryHeader->eIdent[1]!='E')&&(binaryHeader->eIdent[2]!='L')&&(binaryHeader->eIdent[3]!='F'))||(binaryHeader->eType!=ET_EXEC)){ +kfree(binaryHeader); +fclose(_current->imageFd); +return(-1); +} + +/*LoadTheProgramHeader(s)*/ +if((programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum))==0x0) +K_PANIC("mallocfailed!"); +fseek(_current->imageFd,binaryHeader->ePhoff,0); +fread(programHeader,(sizeof(elfProgramHeader)*binaryHeader->ePhnum),1,_current->imageFd); + +/*LoopThroughTheHeaderAndLoadSectionsWhichNeedToBeLoaded*/ +for(i=0x0;i<binaryHeader->ePhnum;i++){ +switch(programHeader[i].phType){ +casePT_LOAD: +seg_addr=trunc_page(programHeader[i].phVaddr); +seg_size=round_page(programHeader[i].phMemsz+programHeader[i].phVaddr-seg_addr); + +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +/*Makereadonlyandread/write!!!*/ +if(vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x),PAGE_DEFAULT)==0x0) +K_PANIC("Error:RemapPageFailed"); +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x),0x0,0x1000); +} + +/*NowLoadSectionToMemory*/ +fseek(_current->imageFd,programHeader[i].phOffset,0); +fread((void*)programHeader[i].phVaddr,programHeader[i].phFilesz,1,_current->imageFd); +if((programHeader[i].phFlags&0x2)!=0x2){ +for(x=0x0;x<(programHeader[i].phMemsz);x+=0x1000){ +if((vmm_setPageAttributes((programHeader[i].phVaddr&0xFFFFF000)+x,PAGE_PRESENT|PAGE_USER))!=0x0) +K_PANIC("vmm_setPageAttributesfailed"); +} +} +if(binaryHeader->eEntry>=programHeader[i].phVaddr&&binaryHeader->eEntry<(programHeader[i].phVaddr+programHeader[i].phMemsz)){ +/*We'resuposedtodosomethinghere?*/ +} +else{ +_current->td.vm_dsize=seg_size>>PAGE_SHIFT; +_current->td.vm_daddr=(char*)seg_addr; +} + +_current->oInfo.vmStart=((programHeader[i].phVaddr&0xFFFFF000)+0xA900000); +break; +casePT_INTERP: +interp=(char*)kmalloc(programHeader[i].phFilesz); +if(interp==0x0) +K_PANIC("mallocfailed"); + +fseek(_current->imageFd,programHeader[i].phOffset,0); +fread((void*)interp,programHeader[i].phFilesz,1,_current->imageFd); +kprintf("Interp:[%s]\n",interp); +//ldAddr=ldEnable(); +break; +casePT_PHDR: +proghdr=programHeader[i].phVaddr; +break; +default: +break; +} +} + +addr=LD_START; + + +if(interp!=0x0){ +kprintf("TEST"); +elf_loadfile(_current,interp,&addr,&eip); +} +kprintf("[0x%X][0x%X]\n",eip,addr); + +_current->td.vm_dsize=seg_size>>PAGE_SHIFT; +_current->td.vm_daddr=(char*)seg_addr; + +argv=ap; + +if(argv[1]!=0x0){ +argc=argv[0]; +args=(char*)vmmGetFreeVirtualPage(_current->id,1,VM_TASK); +memset(args,0x0,0x1000); +x=0x0; +argvNew=(char**)kmalloc(sizeof(char*)*argc); +for(i=0x0;i<argc;i++){ +strcpy(args+x,argv[i+1]); +argvNew[i]=args+x; +x+=strlen(argv[i+1])+1; +} +argv=argvNew; +} + +vmm_cleanVirtualSpace(_current->td.vm_daddr+(_current->td.vm_dsize<<PAGE_SIZE)); + + +iFrame=_current->tss.esp0-sizeof(structi386_frame); +iFrame->ebp=STACK_ADDR; +iFrame->eip=eip; + +//if(_current->id>3){ + +iFrame->user_esp=((u_int32_t)STACK_ADDR)-(sizeof(u_int32_t)*(argc+3+sizeof(Elf_Auxargs))); +args=iFrame->user_esp; + +args[0]=argc; +for(i=0;i<argc;i++){ +args[i+1]=argv[i]; +} +args[argc+2]=0x0; +auxargs=iFrame->user_esp+argc+2; +auxargs->execfd=-1; +auxargs->phdr=proghdr; +auxargs->phent=binaryHeader->ePhentsize; +auxargs->phnum=binaryHeader->ePhnum; +auxargs->pagesz=PAGE_SIZE; +auxargs->base=addr; +auxargs->flags=0x0; +auxargs->entry=binaryHeader->eEntry; +auxargs->trace=0x0; +kprintf("\n\nDOH\n\n"); + +//while(1); +/* +error=elf_loadfile(_current,file,0x0,0x0); +if(error) +K_PANIC("elf_loadfilefailed"); +*/ +return; +} + +/*** +END +***/ diff --git a/doc/xml/exec_8h.xml b/doc/xml/exec_8h.xml index b2509f9..cf49d07 100644 --- a/doc/xml/exec_8h.xml +++ b/doc/xml/exec_8h.xml @@ -11,125 +11,117 @@ src/sys/kernel/ubthread.c src/sys/ubixfs/ubixfs.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -162,7 +154,7 @@ - + _current assert tssStruct::back_link @@ -171,19 +163,19 @@ tssStruct::ds tssStruct::ebp tssStruct::edi - elfHeader::eEntry + elfHeader::eEntry tssStruct::eflags - elfHeader::eIdent + elfHeader::eIdent tssStruct::eip - elfHeader::ePhnum - elfHeader::ePhoff + elfHeader::ePhnum + elfHeader::ePhoff tssStruct::es tssStruct::esi tssStruct::esp tssStruct::esp0 tssStruct::esp1 tssStruct::esp2 - elfHeader::eType + elfHeader::eType fclose fopen fread @@ -198,7 +190,7 @@ kernelPageDirectory kfree kmalloc - kpanic + kpanic kprintf tssStruct::ldt memset @@ -209,8 +201,8 @@ PAGE_STACK PAGE_USER fileDescriptorStruct::perms - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr READY sched_setStatus schedNewTask @@ -218,7 +210,7 @@ tssStruct::ss0 tssStruct::ss1 tssStruct::ss2 - STACK_ADDR + STACK_ADDR taskStruct::td taskStruct::term tssStruct::trace_bitmap @@ -257,7 +249,7 @@ - + assert tssStruct::back_link tssStruct::cr3 @@ -279,7 +271,7 @@ taskStruct::imageFd tssStruct::io_map kernelPageDirectory - kpanic + kpanic tssStruct::ldt taskStruct::oInfo READY @@ -295,6 +287,68 @@ kmain ubthread_create + + void + void sys_exec + (char *file, char *ap) + sys_exec + + char * + file + + + char * + ap + + +New exec... + + + +Clean the virtual of COW pages left over from the forkAdjust iframebuild argc and argv[]Start of Env + + _current + elfHeader::eEntry + elfHeader::eIdent + i386_frame::eip + elfHeader::ePhnum + elfHeader::ePhoff + ET_EXEC + elfHeader::eType + fclose + fopen + fread + fseek + taskStruct::id + taskStruct::imageFd + K_PANIC + kfree + kmalloc + kprintf + memset + taskStruct::oInfo + PAGE_DEFAULT + PAGE_PRESENT + PAGE_SHIFT + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phOffset + elfProgramHeader::phVaddr + PT_INTERP + PT_LOAD + PT_PHDR + round_page + taskStruct::td + trunc_page + thread::vm_daddr + thread::vm_dsize + vmm_remapPage + vmm_setPageAttributes + vmmFindFreePage + osInfo::vmStart + x1000 + sysExec + @@ -338,29 +392,13 @@ uInt32execThread(void(*tproc)(void),uInt32,char*); voidexecFile(char*file,intargc,char**argv,intconsole); - -#endif - -/*** -$Log$ -Revision1.1.1.12006/06/0112:46:13reddawg -ubix2 - -Revision1.22005/10/1200:13:37reddawg -Removed - -Revision1.1.1.12005/09/2617:23:54reddawg -nomessage - -Revision1.52004/07/2707:27:50reddawg -chg:Iwasfooledthoughtwefailedbutitwasacastingissue - -Revision1.42004/05/2115:20:00reddawg -Cleanedup - - -END -***/ +voidsys_exec(char*file,char*ap); + +#endif + +/*** +END +***/ diff --git a/doc/xml/fdc_8c.xml b/doc/xml/fdc_8c.xml index 09d7c4a..93466e8 100644 --- a/doc/xml/fdc_8c.xml +++ b/doc/xml/fdc_8c.xml @@ -16,138 +16,138 @@ lib/kmalloc.h devfs/devfs.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/fdc_8h.xml b/doc/xml/fdc_8h.xml index 9b0f175..718ea9f 100644 --- a/doc/xml/fdc_8h.xml +++ b/doc/xml/fdc_8h.xml @@ -6,43 +6,43 @@ src/sys/include/ubixos/init.h src/sys/isa/fdc.c - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/ffs_8c.xml b/doc/xml/ffs_8c.xml index 430f842..14ab8e0 100644 --- a/doc/xml/ffs_8c.xml +++ b/doc/xml/ffs_8c.xml @@ -11,148 +11,148 @@ lib/string.h sys/buf.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/ffs_8h.xml b/doc/xml/ffs_8h.xml index bb23f0a..8aa08e8 100644 --- a/doc/xml/ffs_8h.xml +++ b/doc/xml/ffs_8h.xml @@ -8,103 +8,103 @@ src/sys/ufs/ffs.c src/sys/ufs/ufs.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/file_8c.xml b/doc/xml/file_8c.xml index 4232f3c..17df88b 100644 --- a/doc/xml/file_8c.xml +++ b/doc/xml/file_8c.xml @@ -14,206 +14,194 @@ lib/kprintf.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -247,10 +235,12 @@ spinUnlock systemVitals x1 - execFile + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec sysFclose sysMkDir systemTask @@ -346,11 +336,13 @@ systemVitals vfs_findMount fileSystem::vfsOpenFile - execFile + elf_loadfile + execFile kmod_load ldEnable + sys_exec sys_open - sysExec + sysExec sysFopen sysMkDir @@ -412,11 +404,13 @@ fileDescriptorStruct::mp fileDescriptorStruct::offset fileSystem::vfsRead - execFile + elf_loadfile + execFile kmod_load ldEnable read - sysExec + sys_exec + sysExec sysFread @@ -444,10 +438,12 @@ fileDescriptorStruct::offset - execFile + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec size_t diff --git a/doc/xml/fork_8c.xml b/doc/xml/fork_8c.xml index 2601115..5aac65d 100644 --- a/doc/xml/fork_8c.xml +++ b/doc/xml/fork_8c.xml @@ -11,193 +11,181 @@ string.h assert.h - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/fork_8h.xml b/doc/xml/fork_8h.xml index d369705..1f50ee1 100644 --- a/doc/xml/fork_8h.xml +++ b/doc/xml/fork_8h.xml @@ -6,96 +6,88 @@ ubixos/sched.h src/sys/kernel/fork.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/gdt_8h.xml b/doc/xml/gdt_8h.xml index bed2022..f8fd26b 100644 --- a/doc/xml/gdt_8h.xml +++ b/doc/xml/gdt_8h.xml @@ -11,81 +11,81 @@ src/sys/pci/lnc.c src/sys/sys/idt.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/gen__calls_8c.xml b/doc/xml/gen__calls_8c.xml index f1008b7..72b75f0 100644 --- a/doc/xml/gen__calls_8c.xml +++ b/doc/xml/gen__calls_8c.xml @@ -12,152 +12,144 @@ string.h assert.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/gen__calls_8h.xml b/doc/xml/gen__calls_8h.xml index 3b941fb..f9e3f54 100644 --- a/doc/xml/gen__calls_8h.xml +++ b/doc/xml/gen__calls_8h.xml @@ -6,53 +6,53 @@ sys/sysproto.h src/sys/kernel/gen_calls.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/getfreepage_8c.xml b/doc/xml/getfreepage_8c.xml index a6763d8..dcbbbf2 100644 --- a/doc/xml/getfreepage_8c.xml +++ b/doc/xml/getfreepage_8c.xml @@ -6,72 +6,72 @@ ubixos/kpanic.h ubixos/spinlock.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -93,7 +93,7 @@ KERNEL_PAGE_DEFAULT - kpanic + kpanic spinLock spinUnlock tablesBaseAddress diff --git a/doc/xml/getfreevirtualpage_8c.xml b/doc/xml/getfreevirtualpage_8c.xml index 2a53a77..f2a527a 100644 --- a/doc/xml/getfreevirtualpage_8c.xml +++ b/doc/xml/getfreevirtualpage_8c.xml @@ -8,138 +8,130 @@ ubixos/spinlock.h lib/kprint.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + @@ -174,7 +166,7 @@ fvpSpinLock taskStruct::id K_PANIC - kpanic + kpanic kprintf taskStruct::oInfo PAGE_COW @@ -197,7 +189,7 @@ x1 x1000 mmap - sysExec + sysExec sysGetFreePage vmm_pageFault diff --git a/doc/xml/getphysicaladdr_8c.xml b/doc/xml/getphysicaladdr_8c.xml index 8ed75e3..c32c8c4 100644 --- a/doc/xml/getphysicaladdr_8c.xml +++ b/doc/xml/getphysicaladdr_8c.xml @@ -4,58 +4,58 @@ getphysicaladdr.c vmm/vmm.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/hd_8c.xml b/doc/xml/hd_8c.xml index 90edb58..c91b7d7 100644 --- a/doc/xml/hd_8c.xml +++ b/doc/xml/hd_8c.xml @@ -11,194 +11,186 @@ devfs/devfs.h string.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + diff --git a/doc/xml/hd_8h.xml b/doc/xml/hd_8h.xml index f328487..11bfce9 100644 --- a/doc/xml/hd_8h.xml +++ b/doc/xml/hd_8h.xml @@ -6,162 +6,154 @@ src/sys/include/ubixos/init.h src/sys/pci/hd.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/idt_8c.xml b/doc/xml/idt_8c.xml index 8c36714..ee58500 100644 --- a/doc/xml/idt_8c.xml +++ b/doc/xml/idt_8c.xml @@ -15,194 +15,186 @@ ubixos/endtask.h string.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -238,7 +230,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -257,7 +249,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -276,7 +268,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -295,7 +287,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -314,7 +306,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -349,7 +341,7 @@ inportWord irqDisable irqEnable - kpanic + kpanic kprintf taskStruct::oInfo outportByte @@ -378,7 +370,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -397,7 +389,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -416,7 +408,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -435,7 +427,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -454,7 +446,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -498,7 +490,7 @@ taskStruct::id tssStruct::io_map kernelPageDirectory - kpanic + kpanic tssStruct::ss _int8 idt_init @@ -518,7 +510,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init diff --git a/doc/xml/idt_8h.xml b/doc/xml/idt_8h.xml index 2104650..162083d 100644 --- a/doc/xml/idt_8h.xml +++ b/doc/xml/idt_8h.xml @@ -13,85 +13,85 @@ src/sys/pci/lnc.c src/sys/sys/idt.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -158,7 +158,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -177,7 +177,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -196,7 +196,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -215,7 +215,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -234,7 +234,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -269,7 +269,7 @@ inportWord irqDisable irqEnable - kpanic + kpanic kprintf taskStruct::oInfo outportByte @@ -298,7 +298,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -317,7 +317,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -336,7 +336,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -355,7 +355,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -374,7 +374,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init @@ -419,7 +419,7 @@ taskStruct::id tssStruct::io_map kernelPageDirectory - kpanic + kpanic tssStruct::ss _int8 idt_init @@ -439,7 +439,7 @@ _current endTask taskStruct::id - kpanic + kpanic sched_yield idt_init diff --git a/doc/xml/index.xml b/doc/xml/index.xml index 33d3dd8..4fa1895 100644 --- a/doc/xml/index.xml +++ b/doc/xml/index.xml @@ -275,6 +275,17 @@ txStartPage word16 + Elf_Auxargs + base + entry + execfd + flags + pagesz + phdr + phent + phnum + trace + elfDynamic dynPtr dynVal @@ -1894,6 +1905,7 @@ R_386_PC32 R_386_PLT32 R_386_RELATIVE + elf_loadfile elfGetPhType elfGetRelType elfGetShType @@ -1904,6 +1916,7 @@ exec.h execFile execThread + sys_exec fork.h sysFork @@ -2490,6 +2503,7 @@ biosCall elf.c + elf_loadfile elfGetPhType elfGetRelType elfGetShType @@ -2513,6 +2527,7 @@ STACK_ADDR execFile execThread + sys_exec sysExec fork.c diff --git a/doc/xml/io_8c.xml b/doc/xml/io_8c.xml index 566689d..11ec3e6 100644 --- a/doc/xml/io_8c.xml +++ b/doc/xml/io_8c.xml @@ -4,13 +4,13 @@ io.c sys/io.h - + - + - + diff --git a/doc/xml/io_8h.xml b/doc/xml/io_8h.xml index 30ed189..e581aa4 100644 --- a/doc/xml/io_8h.xml +++ b/doc/xml/io_8h.xml @@ -21,217 +21,217 @@ src/sys/sys/video.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kern__descrip_8c.xml b/doc/xml/kern__descrip_8c.xml index 35fc8e1..840ac72 100644 --- a/doc/xml/kern__descrip_8c.xml +++ b/doc/xml/kern__descrip_8c.xml @@ -11,144 +11,136 @@ lib/kmalloc.h assert.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kern__descrip_8h.xml b/doc/xml/kern__descrip_8h.xml index c5313a4..b8312af 100644 --- a/doc/xml/kern__descrip_8h.xml +++ b/doc/xml/kern__descrip_8h.xml @@ -11,101 +11,101 @@ src/sys/kernel/sched.c src/sys/vfs/vfs.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kern__sig_8c.xml b/doc/xml/kern__sig_8c.xml index 010d82c..eafac60 100644 --- a/doc/xml/kern__sig_8c.xml +++ b/doc/xml/kern__sig_8c.xml @@ -11,142 +11,134 @@ lib/kmalloc.h assert.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + diff --git a/doc/xml/kern__sig_8h.xml b/doc/xml/kern__sig_8h.xml index 41767ce..aa371b9 100644 --- a/doc/xml/kern__sig_8h.xml +++ b/doc/xml/kern__sig_8h.xml @@ -6,54 +6,54 @@ sys/sysproto.h src/sys/kernel/kern_sig.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kern__sysctl_8c.xml b/doc/xml/kern__sysctl_8c.xml index 03c8fc6..29bde9f 100644 --- a/doc/xml/kern__sysctl_8c.xml +++ b/doc/xml/kern__sysctl_8c.xml @@ -13,156 +13,148 @@ assert.h string.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + diff --git a/doc/xml/kern__sysctl_8h.xml b/doc/xml/kern__sysctl_8h.xml index 2e3e774..99378fc 100644 --- a/doc/xml/kern__sysctl_8h.xml +++ b/doc/xml/kern__sysctl_8h.xml @@ -8,71 +8,71 @@ src/sys/kernel/kern_sysctl.c src/sys/vmm/copyvirtualspace.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kmalloc_8c.xml b/doc/xml/kmalloc_8c.xml index e71ed2f..18fe1a7 100644 --- a/doc/xml/kmalloc_8c.xml +++ b/doc/xml/kmalloc_8c.xml @@ -11,160 +11,152 @@ string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + @@ -183,7 +175,7 @@ emptyDescSpinLock emptyKernDesc - kpanic + kpanic memset memDescriptor::next memDescriptor::prev @@ -211,7 +203,7 @@ assert freeKernDesc - kpanic + kpanic memDescriptor::limit memDescriptor::next memDescriptor::prev @@ -248,7 +240,8 @@ usedKernDesc close device_remove - execFile + elf_loadfile + execFile fclose fopen kmod_load @@ -258,8 +251,9 @@ ne2kFreeBuffer operator delete operator delete[] + sys_exec sys_write - sysExec + sysExec systemTask ubixfs_cacheDelete ubixFSmkDir @@ -303,7 +297,8 @@ devfs_initialize devfs_makeNode device_add - execFile + elf_loadfile + execFile falloc fdc_init fopen @@ -324,10 +319,11 @@ operator new[] sched_init schedNewTask + sys_exec sys_write sysctl_add sysctl_init - sysExec + sysExec tty_init ubixfs_cacheNew ubixfs_initialize diff --git a/doc/xml/kmalloc_8h.xml b/doc/xml/kmalloc_8h.xml index 3f9c6b9..af5839f 100644 --- a/doc/xml/kmalloc_8h.xml +++ b/doc/xml/kmalloc_8h.xml @@ -9,6 +9,7 @@ src/sys/isa/fdc.c src/sys/isa/ne2k.c src/sys/kernel/bioscall.c + src/sys/kernel/elf.c src/sys/kernel/exec.c src/sys/kernel/gen_calls.c src/sys/kernel/kern_descrip.c @@ -40,241 +41,247 @@ src/sys/vmm/paging.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -351,7 +358,8 @@ usedKernDesc close device_remove - execFile + elf_loadfile + execFile fclose fopen kmod_load @@ -361,8 +369,9 @@ ne2kFreeBuffer operator delete operator delete[] + sys_exec sys_write - sysExec + sysExec systemTask ubixfs_cacheDelete ubixFSmkDir @@ -406,7 +415,8 @@ devfs_initialize devfs_makeNode device_add - execFile + elf_loadfile + execFile falloc fdc_init fopen @@ -427,10 +437,11 @@ operator new[] sched_init schedNewTask + sys_exec sys_write sysctl_add sysctl_init - sysExec + sysExec tty_init ubixfs_cacheNew ubixfs_initialize diff --git a/doc/xml/kmod_8c.xml b/doc/xml/kmod_8c.xml index f3dc389..bc80f5b 100644 --- a/doc/xml/kmod_8c.xml +++ b/doc/xml/kmod_8c.xml @@ -16,194 +16,194 @@ string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + @@ -256,15 +256,15 @@ _current assert - elfHeader::eEntry - ELF32_R_SYM - ELF32_R_TYPE - elfGetRelType - elfHeader::ePhnum - elfHeader::ePhoff - elfHeader::eShnum - elfHeader::eShoff - elfHeader::eShstrndx + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx fclose fopen fread @@ -272,21 +272,21 @@ taskStruct::id kfree kmalloc - kpanic + kpanic kprintf LD_START memset PAGE_DEFAULT - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr - PT_DYNAMIC - PT_GNU_STACK - PT_LOAD - PT_PAX_FLAGS - R_386_32 - R_386_PC32 - R_386_RELATIVE - elfSectionHeader::shSize + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_GNU_STACK + PT_LOAD + PT_PAX_FLAGS + R_386_32 + R_386_PC32 + R_386_RELATIVE + elfSectionHeader::shSize strcmp vmm_remapPage vmmFindFreePage diff --git a/doc/xml/kmod_8h.xml b/doc/xml/kmod_8h.xml index 2b9dd45..4564bb5 100644 --- a/doc/xml/kmod_8h.xml +++ b/doc/xml/kmod_8h.xml @@ -5,32 +5,32 @@ ubixos/types.h src/sys/kmods/kmod.c - + - + - + - + - + - + - + - + @@ -112,15 +112,15 @@ _current assert - elfHeader::eEntry - ELF32_R_SYM - ELF32_R_TYPE - elfGetRelType - elfHeader::ePhnum - elfHeader::ePhoff - elfHeader::eShnum - elfHeader::eShoff - elfHeader::eShstrndx + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx fclose fopen fread @@ -128,21 +128,21 @@ taskStruct::id kfree kmalloc - kpanic + kpanic kprintf LD_START memset PAGE_DEFAULT - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr - PT_DYNAMIC - PT_GNU_STACK - PT_LOAD - PT_PAX_FLAGS - R_386_32 - R_386_PC32 - R_386_RELATIVE - elfSectionHeader::shSize + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_GNU_STACK + PT_LOAD + PT_PAX_FLAGS + R_386_32 + R_386_PC32 + R_386_RELATIVE + elfSectionHeader::shSize strcmp vmm_remapPage vmmFindFreePage diff --git a/doc/xml/kpanic_8c.xml b/doc/xml/kpanic_8c.xml index 31c015f..593c68f 100644 --- a/doc/xml/kpanic_8c.xml +++ b/doc/xml/kpanic_8c.xml @@ -3,68 +3,59 @@ kpanic.c ubixos/kpanic.h - sys/video.h - isa/8259.h lib/kprintf.h + isa/8259.h stdarg.h ubixos/tty.h - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - - - + - + - + - + - + @@ -95,7 +86,7 @@ - + irqDisable kprintf NULL @@ -103,7 +94,6 @@ vaEnd vaStart vsprintf - __assert _int0 _int1 _int10 @@ -120,8 +110,8 @@ cpuidDetect cpuInfo dp_recv - execFile - execThread + execFile + execThread getEmptyDesc insertFreeDesc kmain @@ -130,7 +120,7 @@ readUbixFS sched_init schedNewTask - sysExec + sysExec systemTask tty_change tty_init @@ -181,37 +171,35 @@ *****************************************************************************************/ #include<ubixos/kpanic.h> -#include<sys/video.h> +#include<lib/kprintf.h> #include<isa/8259.h> -#include<lib/kprintf.h> -#include<stdarg.h> +#include<stdarg.h> +#include<ubixos/tty.h> -#include<ubixos/tty.h> - -voidkpanic(constchar*fmt,...){ -charbuf[512]; -vaListargs; - -vaStart(args,fmt); -vsprintf(buf,fmt,args); -vaEnd(args); - -/*It'simportantthatweprintonthecurrentterminalsolet'sresetforeground*/ -tty_foreground=NULL; -kprintf("kPanic:%s",buf); - -/*HaltTheSystem*/ -//asm("cli"); -irqDisable(0x0); - -while(1) -asm("hlt"); -} - -/*** -END -***/ - +voidkpanic(constchar*fmt,...){ +charbuf[512]; +vaListargs; + +vaStart(args,fmt); +vsprintf(buf,fmt,args); +vaEnd(args); + +/*It'simportantthatweprintonthecurrentterminalsolet'sresetforeground*/ +tty_foreground=NULL; +kprintf("kPanic:%s",buf); + +/*HaltTheSystem*/ +//asm("cli"); +irqDisable(0x0); + +while(1) +asm("hlt"); +} + +/*** +END +***/ + diff --git a/doc/xml/kpanic_8h.xml b/doc/xml/kpanic_8h.xml index acb282e..3e92949 100644 --- a/doc/xml/kpanic_8h.xml +++ b/doc/xml/kpanic_8h.xml @@ -6,6 +6,7 @@ src/sys/init/main.c src/sys/isa/atkbd.c src/sys/isa/ne2k.c + src/sys/kernel/elf.c src/sys/kernel/exec.c src/sys/kernel/kern_sysctl.c src/sys/kernel/kpanic.c @@ -35,199 +36,205 @@ src/sys/vmm/vmm_init.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -244,13 +251,16 @@ + __assert __sysctl devfs_initialize - execFile + elf_loadfile + execFile keyboardHandler ldEnable obreak - sysExec + sys_exec + sysExec vmm_getFreeMallocPage vmm_init vmm_pagingInit @@ -287,7 +297,7 @@ - + irqDisable kprintf NULL @@ -295,7 +305,6 @@ vaEnd vaStart vsprintf - __assert _int0 _int1 _int10 @@ -312,8 +321,8 @@ cpuidDetect cpuInfo dp_recv - execFile - execThread + execFile + execThread getEmptyDesc insertFreeDesc kmain @@ -322,7 +331,7 @@ readUbixFS sched_init schedNewTask - sysExec + sysExec systemTask tty_change tty_init diff --git a/doc/xml/kprint_8h.xml b/doc/xml/kprint_8h.xml index 338b4c4..0fc5416 100644 --- a/doc/xml/kprint_8h.xml +++ b/doc/xml/kprint_8h.xml @@ -5,31 +5,31 @@ ubixos/types.h src/sys/vmm/getfreevirtualpage.c - + - + - + - + - + - + - + - + @@ -54,7 +54,7 @@ - __assert + __assert __sysctl _int13 addDirEntry @@ -67,7 +67,8 @@ device_add dp_pkt2user dp_recv - execFile + elf_loadfile + execFile falloc fcntl fdcRw @@ -99,7 +100,7 @@ kmalloc kmod_add kmod_load - kpanic + kpanic ldEnable lncAttach lncInt @@ -119,12 +120,13 @@ readlink sched_init seek + sys_exec sys_write sysAuth syscall sysctl_add sysctl_init - sysExec + sysExec sysFopen sysMkDir sysPasswd diff --git a/doc/xml/kprintf_8c.xml b/doc/xml/kprintf_8c.xml index ba4ba38..b907e2f 100644 --- a/doc/xml/kprintf_8c.xml +++ b/doc/xml/kprintf_8c.xml @@ -7,46 +7,46 @@ ubixos/kpanic.h stdarg.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/kprintf_8h.xml b/doc/xml/kprintf_8h.xml index 90d0a67..5be5364 100644 --- a/doc/xml/kprintf_8h.xml +++ b/doc/xml/kprintf_8h.xml @@ -53,319 +53,319 @@ src/sys/vmm/paging.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/ld_8c.xml b/doc/xml/ld_8c.xml index c777aed..b32b5d8 100644 --- a/doc/xml/ld_8c.xml +++ b/doc/xml/ld_8c.xml @@ -14,180 +14,180 @@ string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + @@ -206,15 +206,15 @@ _current assert - elfHeader::eEntry - ELF32_R_SYM - ELF32_R_TYPE - elfGetRelType - elfHeader::ePhnum - elfHeader::ePhoff - elfHeader::eShnum - elfHeader::eShoff - elfHeader::eShstrndx + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx fclose fopen fread @@ -227,21 +227,21 @@ LD_START memset PAGE_DEFAULT - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr - PT_DYNAMIC - PT_GNU_STACK - PT_LOAD - PT_PAX_FLAGS - R_386_32 - R_386_PC32 - R_386_RELATIVE - elfSectionHeader::shSize + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_GNU_STACK + PT_LOAD + PT_PAX_FLAGS + R_386_32 + R_386_PC32 + R_386_RELATIVE + elfSectionHeader::shSize strcmp vmm_remapPage vmmFindFreePage x1000 - sysExec + sysExec diff --git a/doc/xml/ld_8h.xml b/doc/xml/ld_8h.xml index 5e62e94..7ba00a0 100644 --- a/doc/xml/ld_8h.xml +++ b/doc/xml/ld_8h.xml @@ -6,37 +6,37 @@ src/sys/kernel/exec.c src/sys/kernel/ld.c - + - + - + - + - + - + - + - + - + - + @@ -69,15 +69,15 @@ _current assert - elfHeader::eEntry - ELF32_R_SYM - ELF32_R_TYPE - elfGetRelType - elfHeader::ePhnum - elfHeader::ePhoff - elfHeader::eShnum - elfHeader::eShoff - elfHeader::eShstrndx + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx fclose fopen fread @@ -90,21 +90,21 @@ LD_START memset PAGE_DEFAULT - elfProgramHeader::phMemsz - elfProgramHeader::phVaddr - PT_DYNAMIC - PT_GNU_STACK - PT_LOAD - PT_PAX_FLAGS - R_386_32 - R_386_PC32 - R_386_RELATIVE - elfSectionHeader::shSize + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_GNU_STACK + PT_LOAD + PT_PAX_FLAGS + R_386_32 + R_386_PC32 + R_386_RELATIVE + elfSectionHeader::shSize strcmp vmm_remapPage vmmFindFreePage x1000 - sysExec + sysExec diff --git a/doc/xml/lib_2string_8h.xml b/doc/xml/lib_2string_8h.xml index 9b4d254..c594f38 100644 --- a/doc/xml/lib_2string_8h.xml +++ b/doc/xml/lib_2string_8h.xml @@ -22,133 +22,133 @@ src/sys/vfs/mount.c src/sys/vfs/vfs.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -245,14 +245,16 @@ bzero - execFile + elf_loadfile + execFile getEmptyDesc idt_init kfree kmod_load ldEnable schedNewTask - sysExec + sys_exec + sysExec vitals_init vmm_pagingInit vmmCopyVirtualSpace diff --git a/doc/xml/libcpp_8cc.xml b/doc/xml/libcpp_8cc.xml index 59deb81..3493616 100644 --- a/doc/xml/libcpp_8cc.xml +++ b/doc/xml/libcpp_8cc.xml @@ -6,42 +6,42 @@ sys/video.h lib/libcpp.h - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/libcpp_8h.xml b/doc/xml/libcpp_8h.xml index f161518..c931943 100644 --- a/doc/xml/libcpp_8h.xml +++ b/doc/xml/libcpp_8h.xml @@ -5,31 +5,31 @@ ubixos/types.h src/sys/lib/libcpp.cc - + - + - + - + - + - + - + - + diff --git a/doc/xml/lists_8h.xml b/doc/xml/lists_8h.xml index bede1a6..9ed0f86 100644 --- a/doc/xml/lists_8h.xml +++ b/doc/xml/lists_8h.xml @@ -4,14 +4,14 @@ lists.h src/sys/kmods/kmod.c - + - + - + diff --git a/doc/xml/lnc_8c.xml b/doc/xml/lnc_8c.xml index 18b048a..807e738 100644 --- a/doc/xml/lnc_8c.xml +++ b/doc/xml/lnc_8c.xml @@ -12,82 +12,82 @@ sys/video.h isa/8259.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/lnc_8h.xml b/doc/xml/lnc_8h.xml index 8bdc083..c51a62e 100644 --- a/doc/xml/lnc_8h.xml +++ b/doc/xml/lnc_8h.xml @@ -5,32 +5,32 @@ ubixos/types.h src/sys/pci/lnc.c - + - + - + - + - + - + - + - + diff --git a/doc/xml/loopif_8h.xml b/doc/xml/loopif_8h.xml index 107c531..8d82347 100644 --- a/doc/xml/loopif_8h.xml +++ b/doc/xml/loopif_8h.xml @@ -4,13 +4,13 @@ loopif.h net/netif.h - + - + - + diff --git a/doc/xml/main_8c.xml b/doc/xml/main_8c.xml index 39da494..3f640a5 100644 --- a/doc/xml/main_8c.xml +++ b/doc/xml/main_8c.xml @@ -13,379 +13,367 @@ lib/kprintf.h lib/kmalloc.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + @@ -633,14 +621,14 @@ B_TYPE B_UNIT clearScreen - execFile - execThread + execFile + execThread vitalsStruct::freePages init_tasks init_tasksTotal irqEnable kmalloc - kpanic + kpanic kprint kprintf NULL diff --git a/doc/xml/math_8h.xml b/doc/xml/math_8h.xml index 55c4a32..6928a1c 100644 --- a/doc/xml/math_8h.xml +++ b/doc/xml/math_8h.xml @@ -6,38 +6,38 @@ src/sys/lib/atan.c src/sys/lib/divdi3.c - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/memcpy_8c.xml b/doc/xml/memcpy_8c.xml index ec46abb..0bbbfbe 100644 --- a/doc/xml/memcpy_8c.xml +++ b/doc/xml/memcpy_8c.xml @@ -4,39 +4,39 @@ memcpy.c bcopy.c - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/memset_8c.xml b/doc/xml/memset_8c.xml index e27d892..d752a5d 100644 --- a/doc/xml/memset_8c.xml +++ b/doc/xml/memset_8c.xml @@ -4,26 +4,26 @@ memset.c string.h - + - + - + - + - + - + - + diff --git a/doc/xml/message_8c.xml b/doc/xml/message_8c.xml index d226fd5..248e194 100644 --- a/doc/xml/message_8c.xml +++ b/doc/xml/message_8c.xml @@ -4,90 +4,82 @@ message.c mpi/mpi.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + diff --git a/doc/xml/mount_8c.xml b/doc/xml/mount_8c.xml index db9f762..064b4d1 100644 --- a/doc/xml/mount_8c.xml +++ b/doc/xml/mount_8c.xml @@ -10,184 +10,172 @@ lib/string.h sys/device.h - + - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + diff --git a/doc/xml/mount_8h.xml b/doc/xml/mount_8h.xml index b375702..1b8e0df 100644 --- a/doc/xml/mount_8h.xml +++ b/doc/xml/mount_8h.xml @@ -3,7 +3,6 @@ mount.h ubixos/types.h - src/sys/include/ubixos/vitals.h src/sys/include/vfs/file.h src/sys/include/vfs/vfs.h src/sys/init/main.c @@ -12,523 +11,539 @@ src/sys/ubixfs/directory.c src/sys/vfs/mount.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/mouse_8c.xml b/doc/xml/mouse_8c.xml index 691b89a..7083d42 100644 --- a/doc/xml/mouse_8c.xml +++ b/doc/xml/mouse_8c.xml @@ -10,64 +10,64 @@ lib/kprintf.h ubixos/types.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/mouse_8h.xml b/doc/xml/mouse_8h.xml index f0370e2..3019707 100644 --- a/doc/xml/mouse_8h.xml +++ b/doc/xml/mouse_8h.xml @@ -4,13 +4,13 @@ mouse.h src/sys/isa/mouse.c - + - + - + diff --git a/doc/xml/mpi_8h.xml b/doc/xml/mpi_8h.xml index 75975c7..5e9f7ec 100644 --- a/doc/xml/mpi_8h.xml +++ b/doc/xml/mpi_8h.xml @@ -10,178 +10,170 @@ src/sys/mpi/message.c src/sys/mpi/system.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/ne2k_8c.xml b/doc/xml/ne2k_8c.xml index 338b8fd..664b9f9 100644 --- a/doc/xml/ne2k_8c.xml +++ b/doc/xml/ne2k_8c.xml @@ -15,230 +15,218 @@ ubixos/spinlock.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + @@ -312,7 +300,7 @@ getblock inportByte device::ioAddr - kpanic + kpanic kprintf NE_BNRY NE_CMD @@ -589,7 +577,7 @@ EN0_RSARLO inportByte device::ioAddr - kpanic + kpanic NE_DATAPORT outportByte outportWord diff --git a/doc/xml/ne2k_8h.xml b/doc/xml/ne2k_8h.xml index 7832bfe..f421f8a 100644 --- a/doc/xml/ne2k_8h.xml +++ b/doc/xml/ne2k_8h.xml @@ -7,52 +7,52 @@ src/sys/include/ubixos/init.h src/sys/isa/ne2k.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1285,7 +1285,7 @@ EN0_RSARLO inportByte device::ioAddr - kpanic + kpanic NE_DATAPORT outportByte outportWord diff --git a/doc/xml/net_8c.xml b/doc/xml/net_8c.xml index 527d66b..5dfac0c 100644 --- a/doc/xml/net_8c.xml +++ b/doc/xml/net_8c.xml @@ -7,41 +7,41 @@ string.h lib/kprintf.h - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/ogDisplay__UbixOS_8h.xml b/doc/xml/ogDisplay__UbixOS_8h.xml index 92f784f..dfd2cfe 100644 --- a/doc/xml/ogDisplay__UbixOS_8h.xml +++ b/doc/xml/ogDisplay__UbixOS_8h.xml @@ -5,25 +5,25 @@ objgfx40/objgfx40.h src/sys/lib/ogprintf.cc - + - + - + - + - + - + diff --git a/doc/xml/ogprintf_8cc.xml b/doc/xml/ogprintf_8cc.xml index 1950cde..208ae38 100644 --- a/doc/xml/ogprintf_8cc.xml +++ b/doc/xml/ogprintf_8cc.xml @@ -7,161 +7,149 @@ sde/ogDisplay_UbixOS.h ubixos/vitals.h - + - + - + - + - + - + - + - - - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/pagefault_8c.xml b/doc/xml/pagefault_8c.xml index 6ec8d58..3c9d8ff 100644 --- a/doc/xml/pagefault_8c.xml +++ b/doc/xml/pagefault_8c.xml @@ -8,138 +8,130 @@ ubixos/spinlock.h lib/kprintf.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + @@ -172,7 +164,7 @@ adjustCowCounter endTask taskStruct::id - kpanic + kpanic kprintf PAGE_COW PAGE_DEFAULT diff --git a/doc/xml/paging_8c.xml b/doc/xml/paging_8c.xml index 90d8e8f..7f129b3 100644 --- a/doc/xml/paging_8c.xml +++ b/doc/xml/paging_8c.xml @@ -12,162 +12,154 @@ string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + @@ -286,7 +278,7 @@ parentPageDirAddr tablesBaseAddress x1000 - sysExec + sysExec void * @@ -388,11 +380,13 @@ tablesBaseAddress vmmFindFreePage x1000 - execFile + elf_loadfile + execFile kmod_load ldEnable obreak - sysExec + sys_exec + sysExec vmm_getFreeMallocPage vmm_pagingInit vmmGetFreeKernelPage @@ -522,8 +516,8 @@ _int8 - execFile - execThread + execFile + execThread idt_init vmm_pagingInit diff --git a/doc/xml/paging_8h.xml b/doc/xml/paging_8h.xml index 7fcbc22..57ad597 100644 --- a/doc/xml/paging_8h.xml +++ b/doc/xml/paging_8h.xml @@ -8,205 +8,211 @@ src/sys/include/vmm/vmm.h src/sys/vfs/file.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -250,7 +256,7 @@ - execFile + execFile vmm_getFreeMallocPage vmm_pagingInit vmm_remapPage @@ -285,11 +291,13 @@ - execFile + elf_loadfile + execFile kmod_load ldEnable obreak - sysExec + sys_exec + sysExec vmm_pageFault vmm_remapPage vmmCopyVirtualSpace @@ -317,8 +325,10 @@ - execFile - sysExec + elf_loadfile + execFile + sys_exec + sysExec vmm_cleanVirtualSpace vmm_remapPage vmmGetFreeVirtualPage @@ -333,7 +343,8 @@ - sysExec + sys_exec + sysExec PAGE_SIZE @@ -345,7 +356,7 @@ - sysExec + sysExec PAGE_STACK @@ -357,7 +368,7 @@ - execFile + execFile vmm_cleanVirtualSpace vmm_remapPage vmmCopyVirtualSpace @@ -372,8 +383,10 @@ - execFile - sysExec + elf_loadfile + execFile + sys_exec + sysExec PAGE_WIRED @@ -468,7 +481,8 @@ obreak - sysExec + sys_exec + sysExec tablesBaseAddress @@ -507,7 +521,8 @@ - sysExec + sys_exec + sysExec VM_TASK @@ -520,7 +535,7 @@ mmap - sysExec + sysExec sysGetFreePage vmmGetFreeVirtualPage @@ -713,7 +728,7 @@ adjustCowCounter endTask taskStruct::id - kpanic + kpanic kprintf PAGE_COW PAGE_DEFAULT @@ -801,11 +816,13 @@ tablesBaseAddress vmmFindFreePage x1000 - execFile + elf_loadfile + execFile kmod_load ldEnable obreak - sysExec + sys_exec + sysExec vmm_getFreeMallocPage vmm_pagingInit vmmGetFreeKernelPage @@ -831,11 +848,13 @@ - kpanic + kpanic tablesBaseAddress x1000 - execFile - sysExec + elf_loadfile + execFile + sys_exec + sysExec int @@ -876,7 +895,7 @@ adjustCowCounter cvsSpinLock - kpanic + kpanic memset PAGE_COW PAGE_DEFAULT @@ -915,7 +934,7 @@ vmm_getPhysicalAddr vmmGetFreePage vmmUnmapPage - execFile + execFile void * @@ -964,7 +983,7 @@ KERNEL_PAGE_DEFAULT - kpanic + kpanic spinLock spinUnlock tablesBaseAddress @@ -1002,7 +1021,7 @@ fvpSpinLock taskStruct::id K_PANIC - kpanic + kpanic kprintf taskStruct::oInfo PAGE_COW @@ -1025,7 +1044,7 @@ x1 x1000 mmap - sysExec + sysExec sysGetFreePage vmm_pageFault @@ -1123,8 +1142,8 @@ _int8 - execFile - execThread + execFile + execThread idt_init vmm_pagingInit diff --git a/doc/xml/pci_8c.xml b/doc/xml/pci_8c.xml index 615feb1..c35c9b5 100644 --- a/doc/xml/pci_8c.xml +++ b/doc/xml/pci_8c.xml @@ -7,41 +7,41 @@ ubixos/types.h lib/kprintf.h - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/pci_8h.xml b/doc/xml/pci_8h.xml index c794045..12e873b 100644 --- a/doc/xml/pci_8h.xml +++ b/doc/xml/pci_8h.xml @@ -6,44 +6,44 @@ src/sys/include/ubixos/init.h src/sys/pci/pci.c - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/pipe_8c.xml b/doc/xml/pipe_8c.xml index 683b0c9..4579fd3 100644 --- a/doc/xml/pipe_8c.xml +++ b/doc/xml/pipe_8c.xml @@ -10,102 +10,102 @@ lib/kprintf.h assert.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/pipe_8h.xml b/doc/xml/pipe_8h.xml index 5807cbd..1a4d890 100644 --- a/doc/xml/pipe_8h.xml +++ b/doc/xml/pipe_8h.xml @@ -6,54 +6,54 @@ sys/sysproto.h src/sys/kernel/pipe.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/pit_8c.xml b/doc/xml/pit_8c.xml index 91f83f3..e964072 100644 --- a/doc/xml/pit_8c.xml +++ b/doc/xml/pit_8c.xml @@ -6,37 +6,37 @@ sys/io.h lib/kprintf.h - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/pit_8h.xml b/doc/xml/pit_8h.xml index ed11c3a..9cb0a6e 100644 --- a/doc/xml/pit_8h.xml +++ b/doc/xml/pit_8h.xml @@ -5,26 +5,26 @@ src/sys/include/ubixos/init.h src/sys/isa/pit.c - + - + - + - + - + - + - + diff --git a/doc/xml/sched_8c.xml b/doc/xml/sched_8c.xml index 73420e4..d89d527 100644 --- a/doc/xml/sched_8c.xml +++ b/doc/xml/sched_8c.xml @@ -17,208 +17,200 @@ string.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + @@ -321,7 +313,7 @@ taskStruct::id kmalloc - kpanic + kpanic kprintf nextID taskList @@ -350,8 +342,8 @@ taskStruct::state x1 endTask - execFile - execThread + execFile + execThread void @@ -447,7 +439,7 @@ file::f_flag taskStruct::id kmalloc - kpanic + kpanic memset NEW taskStruct::next @@ -462,8 +454,8 @@ taskStruct::td taskStruct::usedMath biosCall - execFile - execThread + execFile + execThread @@ -495,8 +487,9 @@ _int8 _int9 biosCall + elf_loadfile endTask - execFile + execFile fork_copyProcess fstat getgid @@ -514,9 +507,10 @@ obreak sched schedEndTask + sys_exec syscall sysChDir - sysExec + sysExec sysExit sysFgetc sysFwrite diff --git a/doc/xml/sched_8h.xml b/doc/xml/sched_8h.xml index 4cc43ac..579083d 100644 --- a/doc/xml/sched_8h.xml +++ b/doc/xml/sched_8h.xml @@ -3,12 +3,12 @@ sched.h ubixos/types.h - ubixos/elf.h ubixos/tty.h vfs/file.h sys/tss.h sys/thread.h src/sys/include/mpi/mpi.h + src/sys/include/ubixos/elf.h src/sys/include/ubixos/endtask.h src/sys/include/ubixos/exec.h src/sys/include/ubixos/fork.h @@ -18,7 +18,6 @@ src/sys/isa/atkbd.c src/sys/kernel/bioscall.c src/sys/kernel/endtask.c - src/sys/kernel/exec.c src/sys/kernel/fork.c src/sys/kernel/gen_calls.c src/sys/kernel/ld.c @@ -37,433 +36,443 @@ src/sys/vmm/pagefault.c src/sys/vmm/paging.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -658,7 +667,7 @@ taskStruct::id kmalloc - kpanic + kpanic kprintf nextID taskList @@ -685,8 +694,8 @@ taskStruct::state x1 endTask - execFile - execThread + execFile + execThread void @@ -782,7 +791,7 @@ file::f_flag taskStruct::id kmalloc - kpanic + kpanic memset NEW taskStruct::next @@ -797,8 +806,8 @@ taskStruct::td taskStruct::usedMath biosCall - execFile - execThread + execFile + execThread @@ -829,8 +838,9 @@ _int8 _int9 biosCall + elf_loadfile endTask - execFile + execFile fork_copyProcess fstat getgid @@ -848,9 +858,10 @@ obreak sched schedEndTask + sys_exec syscall sysChDir - sysExec + sysExec sysExit sysFgetc sysFwrite @@ -924,7 +935,7 @@ #define_SCHED_H #include<ubixos/types.h> -#include<ubixos/elf.h> +//#include<ubixos/elf.h> #include<ubixos/tty.h> #include<vfs/file.h> #include<sys/tss.h> @@ -981,93 +992,96 @@ /*** $Log$ -Revision1.22006/10/2716:42:42reddawg -Testing +Revision1.32006/12/1515:43:46reddawg +Changes -Revision1.1.1.12006/06/0112:46:14reddawg -ubix2 +Revision1.22006/10/2716:42:42reddawg +Testing -Revision1.22005/10/1200:13:37reddawg -Removed +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 -Revision1.1.1.12005/09/2617:23:55reddawg -nomessage +Revision1.22005/10/1200:13:37reddawg +Removed -Revision1.302004/09/1122:21:11reddawg -oInfo.cwdisnowanarraynolongerapointer.. +Revision1.1.1.12005/09/2617:23:55reddawg +nomessage -Revision1.292004/09/0823:19:58reddawg -hmm +Revision1.302004/09/1122:21:11reddawg +oInfo.cwdisnowanarraynolongerapointer.. -Revision1.282004/09/0822:16:02reddawg -Fixens +Revision1.292004/09/0823:19:58reddawg +hmm -Revision1.272004/09/0821:19:32reddawg -Allgoodnow +Revision1.282004/09/0822:16:02reddawg +Fixens -Revision1.262004/09/0721:54:38reddawg -okrevertedbacktooldschedulingfornow.... +Revision1.272004/09/0821:19:32reddawg +Allgoodnow -Revision1.202004/08/0912:58:05reddawg -letmeknowwhenyougotthesurce +Revision1.262004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... -Revision1.192004/08/0622:43:04reddawg -ok +Revision1.202004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce -Revision1.182004/08/0622:32:16reddawg -UbixWorksAgain +Revision1.192004/08/0622:43:04reddawg +ok -Revision1.162004/08/0408:17:57reddawg -tty:wehaveprimativettystryf1-f5soitiseasiertouseanddebug -ubixos - -Revision1.152004/07/2921:32:16reddawg -Myquicklunchsbreaksworthofupdates.... +Revision1.182004/08/0622:32:16reddawg +UbixWorksAgain + +Revision1.162004/08/0408:17:57reddawg +tty:wehaveprimativettystryf1-f5soitiseasiertouseanddebug +ubixos -Revision1.142004/07/2117:15:02reddawg -removedgarbage +Revision1.152004/07/2921:32:16reddawg +Myquicklunchsbreaksworthofupdates.... -Revision1.132004/07/2114:43:14flameshadow -add:addedcwc(currentworkingcontainer)totheosInfostrut +Revision1.142004/07/2117:15:02reddawg +removedgarbage -Revision1.122004/07/1902:32:21reddawg -sched:wenowsettaskstatustodeadwhichthenmakestheschedulerdosomecleanitcouldbesomeminoroverheadbutifeelthisisourmostefficientapproachrightnowtopreventcorruptionofthequeues +Revision1.132004/07/2114:43:14flameshadow +add:addedcwc(currentworkingcontainer)totheosInfostrut -Revision1.112004/07/1902:08:27reddawg -Cleanedouttherestofdebugingcodealsotemporarilydisabledtheipstacktoimproveboottime +Revision1.122004/07/1902:32:21reddawg +sched:wenowsettaskstatustodeadwhichthenmakestheschedulerdosomecleanitcouldbesomeminoroverheadbutifeelthisisourmostefficientapproachrightnowtopreventcorruptionofthequeues -Revision1.102004/07/1805:24:15reddawg -Fixens +Revision1.112004/07/1902:08:27reddawg +Cleanedouttherestofdebugingcodealsotemporarilydisabledtheipstacktoimproveboottime -Revision1.92004/07/0913:23:20reddawg -sched:schedInittosched_init -Adjustedinitializationroutines - -Revision1.82004/06/2214:02:14solar -AddedthePLACEHOLDERstateforatask +Revision1.102004/07/1805:24:15reddawg +Fixens + +Revision1.92004/07/0913:23:20reddawg +sched:schedInittosched_init +Adjustedinitializationroutines -Revision1.72004/06/1813:01:47solar -AddedniceandtimeSlicememberstothekTask_ttype +Revision1.82004/06/2214:02:14solar +AddedthePLACEHOLDERstateforatask -Revision1.62004/06/1702:12:57reddawg -CleanedOutDeadCode +Revision1.72004/06/1813:01:47solar +AddedniceandtimeSlicememberstothekTask_ttype -Revision1.52004/06/1614:04:51reddawg -Renamedatypedef +Revision1.62004/06/1702:12:57reddawg +CleanedOutDeadCode -Revision1.42004/06/1412:20:54reddawg -notes:manybugsrepairedandldworks100%now. +Revision1.52004/06/1614:04:51reddawg +Renamedatypedef -Revision1.32004/05/2115:49:13reddawg -Theosdoesbetterhousekeepingnowwhenataskisexited +Revision1.42004/06/1412:20:54reddawg +notes:manybugsrepairedandldworks100%now. -Revision1.22004/05/2115:20:00reddawg -Cleanedup +Revision1.32004/05/2115:49:13reddawg +Theosdoesbetterhousekeepingnowwhenataskisexited - -END -***/ - +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + diff --git a/doc/xml/sde_8h.xml b/doc/xml/sde_8h.xml index df85de9..dba6203 100644 --- a/doc/xml/sde_8h.xml +++ b/doc/xml/sde_8h.xml @@ -5,32 +5,32 @@ ubixos/types.h src/sys/kernel/systemtask.c - + - + - + - + - + - + - + - + diff --git a/doc/xml/sem_8c.xml b/doc/xml/sem_8c.xml index df96204..1611699 100644 --- a/doc/xml/sem_8c.xml +++ b/doc/xml/sem_8c.xml @@ -4,13 +4,13 @@ sem.c ubixos/sem.h - + - + - + diff --git a/doc/xml/sem_8h.xml b/doc/xml/sem_8h.xml index 34e643d..4a4e631 100644 --- a/doc/xml/sem_8h.xml +++ b/doc/xml/sem_8h.xml @@ -4,14 +4,14 @@ sem.h src/sys/kernel/sem.c - + - + - + diff --git a/doc/xml/setpageattributes_8c.xml b/doc/xml/setpageattributes_8c.xml index 6ae78b7..180c960 100644 --- a/doc/xml/setpageattributes_8c.xml +++ b/doc/xml/setpageattributes_8c.xml @@ -5,64 +5,64 @@ vmm/vmm.h ubixos/kpanic.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87,11 +87,13 @@ - kpanic + kpanic tablesBaseAddress x1000 - execFile - sysExec + elf_loadfile + execFile + sys_exec + sysExec diff --git a/doc/xml/signal_8h.xml b/doc/xml/signal_8h.xml index 186e395..3a049e7 100644 --- a/doc/xml/signal_8h.xml +++ b/doc/xml/signal_8h.xml @@ -5,475 +5,481 @@ ubixos/types.h src/sys/include/sys/sysproto.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/smp_8c.xml b/doc/xml/smp_8c.xml index 2589736..b08d1fc 100644 --- a/doc/xml/smp_8c.xml +++ b/doc/xml/smp_8c.xml @@ -9,61 +9,61 @@ lib/string.h sys/io.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -314,7 +314,7 @@ getEflags - kpanic + kpanic setEflags smpInit @@ -342,7 +342,7 @@ getEflags cpuinfo_t::id cpuinfo_t::ident - kpanic + kpanic cpuinfo_t::max cpuinfo_t::ok setDr3 diff --git a/doc/xml/smp_8h.xml b/doc/xml/smp_8h.xml index 308f324..87cbbcb 100644 --- a/doc/xml/smp_8h.xml +++ b/doc/xml/smp_8h.xml @@ -5,31 +5,31 @@ ubixos/types.h src/sys/kernel/smp.c - + - + - + - + - + - + - + - + @@ -89,7 +89,7 @@ getEflags - kpanic + kpanic setEflags smpInit @@ -117,7 +117,7 @@ getEflags cpuinfo_t::id cpuinfo_t::ident - kpanic + kpanic cpuinfo_t::max cpuinfo_t::ok setDr3 diff --git a/doc/xml/spinlock_8c.xml b/doc/xml/spinlock_8c.xml index 3c31841..50766ec 100644 --- a/doc/xml/spinlock_8c.xml +++ b/doc/xml/spinlock_8c.xml @@ -5,90 +5,82 @@ ubixos/spinlock.h ubixos/sched.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/spinlock_8h.xml b/doc/xml/spinlock_8h.xml index 9fb320e..7a35d12 100644 --- a/doc/xml/spinlock_8h.xml +++ b/doc/xml/spinlock_8h.xml @@ -27,163 +27,163 @@ src/sys/vmm/paging.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/start_8S.xml b/doc/xml/start_8S.xml index d218bb8..c2893ab 100644 --- a/doc/xml/start_8S.xml +++ b/doc/xml/start_8S.xml @@ -260,7 +260,7 @@ - execFile + execFile globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax cld rep stosb eax mov ds mov es mov fs mov gs mov ss mov eax addl eax mov edx mov esp mov ebp mov ax lldt ax mov diff --git a/doc/xml/static_8c.xml b/doc/xml/static_8c.xml index 9958213..ffbfa78 100644 --- a/doc/xml/static_8c.xml +++ b/doc/xml/static_8c.xml @@ -4,26 +4,26 @@ static.c lib/kprintf.h - + - + - + - + - + - + - + diff --git a/doc/xml/static_8h.xml b/doc/xml/static_8h.xml index 3d0523b..89f327d 100644 --- a/doc/xml/static_8h.xml +++ b/doc/xml/static_8h.xml @@ -4,20 +4,20 @@ static.h src/sys/include/ubixos/init.h - + - + - + - + - + diff --git a/doc/xml/stdarg_8h.xml b/doc/xml/stdarg_8h.xml index 24754be..9fc9a37 100644 --- a/doc/xml/stdarg_8h.xml +++ b/doc/xml/stdarg_8h.xml @@ -6,25 +6,25 @@ src/sys/lib/kprintf.c src/sys/lib/vsprintf.c - + - + - + - + - + - + - + @@ -58,7 +58,7 @@ - kpanic + kpanic kprintf sprintf @@ -75,7 +75,7 @@ - kpanic + kpanic kprintf sprintf @@ -132,7 +132,7 @@ strlen vaArg ZEROPAD - kpanic + kpanic kprintf sprintf diff --git a/doc/xml/string_8c.xml b/doc/xml/string_8c.xml index 281cbc7..0bfaec9 100644 --- a/doc/xml/string_8c.xml +++ b/doc/xml/string_8c.xml @@ -4,26 +4,26 @@ string.c lib/string.h - + - + - + - + - + - + - + diff --git a/doc/xml/string_8h.xml b/doc/xml/string_8h.xml index c44acc2..8ec55da 100644 --- a/doc/xml/string_8h.xml +++ b/doc/xml/string_8h.xml @@ -22,139 +22,139 @@ src/sys/vmm/copyvirtualspace.c src/sys/vmm/paging.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/strtok_8c.xml b/doc/xml/strtok_8c.xml index 5536951..3ae3f60 100644 --- a/doc/xml/strtok_8c.xml +++ b/doc/xml/strtok_8c.xml @@ -5,28 +5,28 @@ lib/string.h ubixos/types.h - + - + - + - + - + - + - + - + diff --git a/doc/xml/strtol_8c.xml b/doc/xml/strtol_8c.xml index eb7695b..5bb7b52 100644 --- a/doc/xml/strtol_8c.xml +++ b/doc/xml/strtol_8c.xml @@ -4,26 +4,26 @@ strtol.c sys/cdefs.h - + - + - + - + - + - + - + diff --git a/doc/xml/struct__item__t.xml b/doc/xml/struct__item__t.xml index 55c837f..5f9d875 100644 --- a/doc/xml/struct__item__t.xml +++ b/doc/xml/struct__item__t.xml @@ -50,10 +50,10 @@ - + - + Next Previous diff --git a/doc/xml/struct__list__t.xml b/doc/xml/struct__list__t.xml index 44e5ae0..419d0f5 100644 --- a/doc/xml/struct__list__t.xml +++ b/doc/xml/struct__list__t.xml @@ -36,18 +36,18 @@ - + - + Last First - + - + Next Previous diff --git a/doc/xml/structbsd__disklabel.xml b/doc/xml/structbsd__disklabel.xml index 1f8ca0a..63eaeb8 100644 --- a/doc/xml/structbsd__disklabel.xml +++ b/doc/xml/structbsd__disklabel.xml @@ -390,14 +390,14 @@ - + - + d_partitions - + diff --git a/doc/xml/structcacheNode.xml b/doc/xml/structcacheNode.xml index 9cb650b..b08063b 100644 --- a/doc/xml/structcacheNode.xml +++ b/doc/xml/structcacheNode.xml @@ -226,10 +226,10 @@ - + - + prev next parent diff --git a/doc/xml/structdevfs__devices.xml b/doc/xml/structdevfs__devices.xml index eb4d110..f50c538 100644 --- a/doc/xml/structdevfs__devices.xml +++ b/doc/xml/structdevfs__devices.xml @@ -102,10 +102,10 @@ - + - + prev next diff --git a/doc/xml/structdevfs__info.xml b/doc/xml/structdevfs__info.xml index bc6d51d..1f81443 100644 --- a/doc/xml/structdevfs__info.xml +++ b/doc/xml/structdevfs__info.xml @@ -26,18 +26,18 @@ - + - + prev next - + - + deviceList diff --git a/doc/xml/structdevice.xml b/doc/xml/structdevice.xml index c6ea55d..5240860 100644 --- a/doc/xml/structdevice.xml +++ b/doc/xml/structdevice.xml @@ -82,21 +82,21 @@ - + - + - + - + priv - + net diff --git a/doc/xml/structdevice__node.xml b/doc/xml/structdevice__node.xml index 9629657..83a3ba0 100644 --- a/doc/xml/structdevice__node.xml +++ b/doc/xml/structdevice__node.xml @@ -110,25 +110,25 @@ - + - + - + devRec - + devInfo - + prev next - + diff --git a/doc/xml/structdirectoryList.xml b/doc/xml/structdirectoryList.xml index 38b9521..eff1ed3 100644 --- a/doc/xml/structdirectoryList.xml +++ b/doc/xml/structdirectoryList.xml @@ -79,10 +79,10 @@ - + - + prev next diff --git a/doc/xml/structdriverType.xml b/doc/xml/structdriverType.xml index 1a2c0e9..4addd41 100644 --- a/doc/xml/structdriverType.xml +++ b/doc/xml/structdriverType.xml @@ -36,14 +36,14 @@ - + - + - + methods diff --git a/doc/xml/structelfDynSym.xml b/doc/xml/structelfDynSym.xml index cab0ad6..2e84f20 100644 --- a/doc/xml/structelfDynSym.xml +++ b/doc/xml/structelfDynSym.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,7 +28,7 @@ - + uInt32 @@ -41,7 +41,7 @@ - + uInt32 @@ -54,14 +54,14 @@ - + - + elfDynSymdynInfo elfDynSymdynName diff --git a/doc/xml/structelfDynamic.xml b/doc/xml/structelfDynamic.xml index 8b862ba..4e978a4 100644 --- a/doc/xml/structelfDynamic.xml +++ b/doc/xml/structelfDynamic.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,14 +28,14 @@ - + - + elfDynamicdynPtr elfDynamicdynVal diff --git a/doc/xml/structelfHeader.xml b/doc/xml/structelfHeader.xml index 8e046b4..e95577a 100644 --- a/doc/xml/structelfHeader.xml +++ b/doc/xml/structelfHeader.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,11 +28,13 @@ - - execFile + + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec uInt32 @@ -45,7 +47,7 @@ - + uInt8 @@ -58,9 +60,11 @@ - - execFile - sysExec + + elf_loadfile + execFile + sys_exec + sysExec uInt16 @@ -73,7 +77,7 @@ - + uInt16 @@ -86,7 +90,7 @@ - + uInt16 @@ -99,11 +103,13 @@ - - execFile + + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec uInt32 @@ -116,11 +122,13 @@ - - execFile + + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec uInt16 @@ -133,7 +141,7 @@ - + uInt16 @@ -146,10 +154,10 @@ - + kmod_load ldEnable - sysExec + sysExec uInt32 @@ -162,10 +170,10 @@ - + kmod_load ldEnable - sysExec + sysExec uInt16 @@ -178,7 +186,7 @@ - + kmod_load ldEnable @@ -193,9 +201,11 @@ - - execFile - sysExec + + elf_loadfile + execFile + sys_exec + sysExec uInt32 @@ -208,14 +218,14 @@ - + - + elfHeadereEhsize elfHeadereEntry diff --git a/doc/xml/structelfPltInfo.xml b/doc/xml/structelfPltInfo.xml index e87b4a7..a07dd8d 100644 --- a/doc/xml/structelfPltInfo.xml +++ b/doc/xml/structelfPltInfo.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,14 +28,14 @@ - + - + elfPltInfopltInfo elfPltInfopltOffset diff --git a/doc/xml/structelfProgramHeader.xml b/doc/xml/structelfProgramHeader.xml index b466d9c..c08aaa0 100644 --- a/doc/xml/structelfProgramHeader.xml +++ b/doc/xml/structelfProgramHeader.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,7 +28,7 @@ - + uInt32 @@ -41,7 +41,7 @@ - + uInt32 @@ -54,11 +54,13 @@ - - execFile + + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec uInt32 @@ -71,7 +73,8 @@ - + + sys_exec uInt32 @@ -84,7 +87,7 @@ - + uInt32 @@ -97,7 +100,7 @@ - + uInt32 @@ -110,18 +113,20 @@ - - execFile + + elf_loadfile + execFile kmod_load ldEnable - sysExec + sys_exec + sysExec - + elfProgramHeaderphAlign elfProgramHeaderphFilesz diff --git a/doc/xml/structelfSectionHeader.xml b/doc/xml/structelfSectionHeader.xml index 1b8cd6b..9777870 100644 --- a/doc/xml/structelfSectionHeader.xml +++ b/doc/xml/structelfSectionHeader.xml @@ -15,7 +15,7 @@ - + uInt32 @@ -28,7 +28,7 @@ - + uInt32 @@ -41,7 +41,7 @@ - + uInt32 @@ -54,7 +54,7 @@ - + uInt32 @@ -67,7 +67,7 @@ - + uInt32 @@ -80,7 +80,7 @@ - + uInt32 @@ -93,7 +93,7 @@ - + uInt32 @@ -106,7 +106,7 @@ - + uInt32 @@ -119,7 +119,7 @@ - + kmod_load ldEnable @@ -134,14 +134,14 @@ - + - + elfSectionHeadershAddr elfSectionHeadershAddralign diff --git a/doc/xml/structfile.xml b/doc/xml/structfile.xml index e6b607d..b6031c4 100644 --- a/doc/xml/structfile.xml +++ b/doc/xml/structfile.xml @@ -56,28 +56,28 @@ - + - + - + devRec - + devInfo - + prev next - + - + prev next parent @@ -85,70 +85,70 @@ fileListHead - + - + partitions - + - + - + cacheNode - + dmadat - + mp - + prev next - - - - - fd - - + + + + fd + + + - + diskLabel - + device - + fs - + prev next - + - + - + - + prev next diff --git a/doc/xml/structfileDescriptorStruct.xml b/doc/xml/structfileDescriptorStruct.xml index 8a89cea..fcc4b74 100644 --- a/doc/xml/structfileDescriptorStruct.xml +++ b/doc/xml/structfileDescriptorStruct.xml @@ -206,9 +206,9 @@ - execFile + execFile openFileUbixFS - sysExec + sysExec ufs_openFile @@ -301,28 +301,28 @@ - + - + - + devRec - + devInfo - + prev next - + - + prev next parent @@ -330,63 +330,63 @@ fileListHead - + - + partitions - + - + - + cacheNode - + dmadat - + mp - + prev next - + - + diskLabel - + device - + fs - + prev next - + - + - + - + prev next diff --git a/doc/xml/structfileSystem.xml b/doc/xml/structfileSystem.xml index 003f35c..63fe6f1 100644 --- a/doc/xml/structfileSystem.xml +++ b/doc/xml/structfileSystem.xml @@ -166,10 +166,10 @@ not sure if we should allow function to point to NULL - + - + prev next diff --git a/doc/xml/structfs.xml b/doc/xml/structfs.xml index 5e4e306..5b33f78 100644 --- a/doc/xml/structfs.xml +++ b/doc/xml/structfs.xml @@ -1169,22 +1169,22 @@ - + - + - + - + fs_old_cstotal fs_csp - + fs_cstotal diff --git a/doc/xml/structfstat__args.xml b/doc/xml/structfstat__args.xml index 94964b0..727c9b8 100644 --- a/doc/xml/structfstat__args.xml +++ b/doc/xml/structfstat__args.xml @@ -90,14 +90,14 @@ - + - + sb - + diff --git a/doc/xml/structgettimeofday__args.xml b/doc/xml/structgettimeofday__args.xml index 9918acc..4642410 100644 --- a/doc/xml/structgettimeofday__args.xml +++ b/doc/xml/structgettimeofday__args.xml @@ -88,21 +88,21 @@ - + - + - + tzp - + tp - + diff --git a/doc/xml/structhostRingEntry.xml b/doc/xml/structhostRingEntry.xml index 872fe19..8cd7eff 100644 --- a/doc/xml/structhostRingEntry.xml +++ b/doc/xml/structhostRingEntry.xml @@ -49,14 +49,14 @@ - + - + - + md diff --git a/doc/xml/structi386__frame.xml b/doc/xml/structi386__frame.xml index 257634c..c6046fa 100644 --- a/doc/xml/structi386__frame.xml +++ b/doc/xml/structi386__frame.xml @@ -55,7 +55,7 @@ - sysExec + sysExec uInt32 @@ -121,7 +121,8 @@ - sysExec + sys_exec + sysExec uInt32 @@ -226,7 +227,7 @@ - sysExec + sysExec uInt32 diff --git a/doc/xml/structkmod__struct.xml b/doc/xml/structkmod__struct.xml index 9195787..edb2d50 100644 --- a/doc/xml/structkmod__struct.xml +++ b/doc/xml/structkmod__struct.xml @@ -88,10 +88,10 @@ - + - + prev next diff --git a/doc/xml/structlncInfo.xml b/doc/xml/structlncInfo.xml index 9ffa746..f6ea543 100644 --- a/doc/xml/structlncInfo.xml +++ b/doc/xml/structlncInfo.xml @@ -162,43 +162,43 @@ - + - + - + - + arpcom - + nic - + recvRing transRings - + initBloack - + - + - + md - + diff --git a/doc/xml/structmemDescriptor.xml b/doc/xml/structmemDescriptor.xml index 95fd259..9109c28 100644 --- a/doc/xml/structmemDescriptor.xml +++ b/doc/xml/structmemDescriptor.xml @@ -79,10 +79,10 @@ - + - + prev next diff --git a/doc/xml/structmpi__mbox.xml b/doc/xml/structmpi__mbox.xml index aad4559..3b4324d 100644 --- a/doc/xml/structmpi__mbox.xml +++ b/doc/xml/structmpi__mbox.xml @@ -105,21 +105,21 @@ - + - + next - + - + msgLast msg - + prev next diff --git a/doc/xml/structmpi__message.xml b/doc/xml/structmpi__message.xml index 8c1aa38..a2eb089 100644 --- a/doc/xml/structmpi__message.xml +++ b/doc/xml/structmpi__message.xml @@ -77,10 +77,10 @@ - + - + next diff --git a/doc/xml/structnicBuffer.xml b/doc/xml/structnicBuffer.xml index 38fad62..80ad98d 100644 --- a/doc/xml/structnicBuffer.xml +++ b/doc/xml/structnicBuffer.xml @@ -55,10 +55,10 @@ - + - + next diff --git a/doc/xml/structosInfo.xml b/doc/xml/structosInfo.xml index 7e10acd..9184740 100644 --- a/doc/xml/structosInfo.xml +++ b/doc/xml/structosInfo.xml @@ -114,10 +114,11 @@ - execFile - execThread + execFile + execThread fork_copyProcess - sysExec + sys_exec + sysExec vmmGetFreeVirtualPage vmmMapFromTask diff --git a/doc/xml/structsdeWindows.xml b/doc/xml/structsdeWindows.xml index 738d666..d8660ae 100644 --- a/doc/xml/structsdeWindows.xml +++ b/doc/xml/structsdeWindows.xml @@ -75,10 +75,10 @@ - + - + prev next diff --git a/doc/xml/structsigprocmask__args.xml b/doc/xml/structsigprocmask__args.xml index 27e1baf..50bcd3f 100644 --- a/doc/xml/structsigprocmask__args.xml +++ b/doc/xml/structsigprocmask__args.xml @@ -127,15 +127,15 @@ - + - + oset set - + diff --git a/doc/xml/structsysctl__entry.xml b/doc/xml/structsysctl__entry.xml index bfe1fe0..2c34514 100644 --- a/doc/xml/structsysctl__entry.xml +++ b/doc/xml/structsysctl__entry.xml @@ -118,10 +118,10 @@ - + - + prev next children diff --git a/doc/xml/structtaskStruct.xml b/doc/xml/structtaskStruct.xml index 755c6d9..dbfb4f5 100644 --- a/doc/xml/structtaskStruct.xml +++ b/doc/xml/structtaskStruct.xml @@ -16,7 +16,7 @@ - execFile + execFile fork_copyProcess getgid sysGetGid @@ -62,9 +62,10 @@ _int6 _int8 _int9 + elf_loadfile endTask - execFile - execThread + execFile + execThread fork_copyProcess getpid intNull @@ -82,7 +83,8 @@ schedEndTask schedFindTask schedNewTask - sysExec + sys_exec + sysExec sysExit sysGetFreePage sysGetpid @@ -105,8 +107,9 @@ - execThread - sysExec + execThread + sys_exec + sysExec systemTask @@ -142,11 +145,12 @@ _int13 biosCall - execFile - execThread + execFile + execThread fork_copyProcess + sys_exec sysChDir - sysExec + sysExec sysGetCwd sysMkDir vmmGetFreeVirtualPage @@ -200,16 +204,17 @@ - execFile + execFile fstat getgid getpid getuid readlink schedNewTask + sys_exec sys_write syscall - sysExec + sysExec vmm_pageFault vmmGetFreeVirtualPage @@ -225,7 +230,7 @@ - execFile + execFile fork_copyProcess sysFgetc sysFwrite @@ -245,10 +250,10 @@ _int13 biosCall - execFile - execThread + execFile + execThread fork_copyProcess - sysExec + sysExec vmmMapFromTask @@ -263,7 +268,7 @@ - execFile + execFile fork_copyProcess getuid sysGetUid @@ -291,44 +296,44 @@ - + - + - + - + - + - + devRec - + devInfo - + prev next - + - + - + prev next parent @@ -336,93 +341,93 @@ fileListHead - + - + partitions - + - + - + cacheNode - + dmadat - + mp - + prev next - + - + diskLabel - + device - + fs - + prev next - + - + prev next - + i387 - + td - + term - + imageFd - + oInfo - + tss - + - + - + - + - + prev next diff --git a/doc/xml/structthread.xml b/doc/xml/structthread.xml index 62b2d4b..0b9d80a 100644 --- a/doc/xml/structthread.xml +++ b/doc/xml/structthread.xml @@ -63,9 +63,10 @@ - execFile + execFile obreak - sysExec + sys_exec + sysExec vmm_pageFault vmmGetFreeVirtualPage @@ -82,7 +83,8 @@ obreak - sysExec + sys_exec + sysExec vmm_pageFault vmmGetFreeVirtualPage diff --git a/doc/xml/structtssStruct.xml b/doc/xml/structtssStruct.xml index 5596f93..d6f7a43 100644 --- a/doc/xml/structtssStruct.xml +++ b/doc/xml/structtssStruct.xml @@ -17,8 +17,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -49,8 +49,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init vmmMapFromTask @@ -70,8 +70,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -102,8 +102,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -151,8 +151,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -199,8 +199,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -235,8 +235,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -255,8 +255,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -274,8 +274,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -305,8 +305,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -325,8 +325,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -343,11 +343,11 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init - sysExec + sysExec long @@ -362,8 +362,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -380,8 +380,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -399,8 +399,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -431,8 +431,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -463,8 +463,8 @@ _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -494,8 +494,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -527,8 +527,8 @@ _int13 _int8 biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -545,8 +545,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -576,8 +576,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -607,8 +607,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init @@ -651,8 +651,8 @@ biosCall - execFile - execThread + execFile + execThread fork_copyProcess idt_init diff --git a/doc/xml/structtty__termNode.xml b/doc/xml/structtty__termNode.xml index 19bbfa3..5200dca 100644 --- a/doc/xml/structtty__termNode.xml +++ b/doc/xml/structtty__termNode.xml @@ -16,7 +16,7 @@ - execFile + execFile fork_copyProcess diff --git a/doc/xml/structubixDiskLabel.xml b/doc/xml/structubixDiskLabel.xml index c0bfd35..958f065 100644 --- a/doc/xml/structubixDiskLabel.xml +++ b/doc/xml/structubixDiskLabel.xml @@ -85,14 +85,14 @@ - + - + partitions - + diff --git a/doc/xml/structubixFSInfo.xml b/doc/xml/structubixFSInfo.xml index 4c39fb7..a086423 100644 --- a/doc/xml/structubixFSInfo.xml +++ b/doc/xml/structubixFSInfo.xml @@ -77,24 +77,24 @@ - + - + - + dirCache - + blockAllocationTable - + - + prev next parent diff --git a/doc/xml/structubthread.xml b/doc/xml/structubthread.xml index 55bc92d..e4108a0 100644 --- a/doc/xml/structubthread.xml +++ b/doc/xml/structubthread.xml @@ -23,44 +23,44 @@ - + - + - + - + - + - + devRec - + devInfo - + prev next - + - + - + prev next parent @@ -68,100 +68,100 @@ fileListHead - + - + partitions - + - + task - + - + - + cacheNode - + dmadat - + mp - + prev next - + - + diskLabel - + device - + fs - + prev next - + - + prev next - + i387 - + td - + term - + imageFd - + oInfo - + tss - + - + - + - + - + prev next diff --git a/doc/xml/structubthread__cond__list.xml b/doc/xml/structubthread__cond__list.xml index 8b571d8..a15db80 100644 --- a/doc/xml/structubthread__cond__list.xml +++ b/doc/xml/structubthread__cond__list.xml @@ -36,17 +36,17 @@ - + - + next - + cond - + diff --git a/doc/xml/structubthread__list.xml b/doc/xml/structubthread__list.xml index bb454ed..005736b 100644 --- a/doc/xml/structubthread__list.xml +++ b/doc/xml/structubthread__list.xml @@ -36,44 +36,44 @@ - + - + - + - + - + - + devRec - + devInfo - + prev next - + - + - + prev next parent @@ -81,110 +81,110 @@ fileListHead - + - + partitions - + - + next - + thread - + - + task - + - + - + cacheNode - + dmadat - + mp - + prev next - + - + diskLabel - + device - + fs - + prev next - + - + prev next - + i387 - + td - + term - + imageFd - + oInfo - + tss - + - + - + - + - + prev next diff --git a/doc/xml/structubthread__mutex__list.xml b/doc/xml/structubthread__mutex__list.xml index a43625d..2a9209c 100644 --- a/doc/xml/structubthread__mutex__list.xml +++ b/doc/xml/structubthread__mutex__list.xml @@ -36,17 +36,17 @@ - + - + mutex - + next - + diff --git a/doc/xml/structuserFileDescriptorStruct.xml b/doc/xml/structuserFileDescriptorStruct.xml index bdf0c5e..9e9027a 100644 --- a/doc/xml/structuserFileDescriptorStruct.xml +++ b/doc/xml/structuserFileDescriptorStruct.xml @@ -43,28 +43,28 @@ - + - + - + devRec - + devInfo - + prev next - + - + prev next parent @@ -72,70 +72,70 @@ fileListHead - + - + partitions - + - + - + cacheNode - + dmadat - + mp - + prev next - + - + diskLabel - + device - + fs - + prev next - + - + - + fd - + - + - + prev next diff --git a/doc/xml/structvfs__mountPoint.xml b/doc/xml/structvfs__mountPoint.xml index 698f9c7..9043fa0 100644 --- a/doc/xml/structvfs__mountPoint.xml +++ b/doc/xml/structvfs__mountPoint.xml @@ -180,60 +180,60 @@ - + - + - + devRec - + devInfo - - prev -next - - - - - - - partitions - - - - - - - - - - - diskLabel - - - device - - - fs - - + prev next + + + + partitions + + + + + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + - + - + prev next diff --git a/doc/xml/structvitalsStruct.xml b/doc/xml/structvitalsStruct.xml index 1c715a0..c7824c3 100644 --- a/doc/xml/structvitalsStruct.xml +++ b/doc/xml/structvitalsStruct.xml @@ -203,70 +203,70 @@ - + - + - + devRec - + devInfo - + prev next - - - - - partitions - - - - - - - - - - - diskLabel - - - device - - - fs - - - prev -next - - - - - - - fileSystems - - - mountPoints - - + + + + partitions + + + + + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + + + + + fileSystems + + + mountPoints + + + - + - + prev next diff --git a/doc/xml/syscall_8c.xml b/doc/xml/syscall_8c.xml index a4f82ea..edd592d 100644 --- a/doc/xml/syscall_8c.xml +++ b/doc/xml/syscall_8c.xml @@ -21,281 +21,277 @@ mpi/mpi.h vmm/vmm.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + diff --git a/doc/xml/syscall_8h.xml b/doc/xml/syscall_8h.xml index 6b5fb6c..5c1b595 100644 --- a/doc/xml/syscall_8h.xml +++ b/doc/xml/syscall_8h.xml @@ -6,37 +6,37 @@ src/sys/kernel/syscall.c src/sys/sys/idt.c - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/syscall__new_8c.xml b/doc/xml/syscall__new_8c.xml index ff8cd0b..fede371 100644 --- a/doc/xml/syscall__new_8c.xml +++ b/doc/xml/syscall__new_8c.xml @@ -11,145 +11,137 @@ lib/string.h lib/kprintf.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/syscalls_8h.xml b/doc/xml/syscalls_8h.xml index 3acb554..7713b5a 100644 --- a/doc/xml/syscalls_8h.xml +++ b/doc/xml/syscalls_8h.xml @@ -6,96 +6,88 @@ vfs/file.h src/sys/kernel/syscall.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/syscalls__new_8h.xml b/doc/xml/syscalls__new_8h.xml index b4eb65c..c823342 100644 --- a/doc/xml/syscalls__new_8h.xml +++ b/doc/xml/syscalls__new_8h.xml @@ -5,52 +5,52 @@ sys/sysproto.h src/sys/kernel/syscall_new.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/sysproto_8h.xml b/doc/xml/sysproto_8h.xml index f12a978..a7f68af 100644 --- a/doc/xml/sysproto_8h.xml +++ b/doc/xml/sysproto_8h.xml @@ -17,483 +17,489 @@ src/sys/kernel/kern_sysctl.c src/sys/kernel/pipe.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/system_8c.xml b/doc/xml/system_8c.xml index 77c0fa2..b8abcab 100644 --- a/doc/xml/system_8c.xml +++ b/doc/xml/system_8c.xml @@ -7,114 +7,106 @@ lib/string.h ubixos/spinlock.h - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + diff --git a/doc/xml/systemtask_8c.xml b/doc/xml/systemtask_8c.xml index 7a45616..d50c2a8 100644 --- a/doc/xml/systemtask_8c.xml +++ b/doc/xml/systemtask_8c.xml @@ -17,243 +17,231 @@ mpi/mpi.h string.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + @@ -279,7 +267,7 @@ taskStruct::imageFd inportByte kfree - kpanic + kpanic kprintf mpi_createMbox mpi_fetchMessage diff --git a/doc/xml/systemtask_8h.xml b/doc/xml/systemtask_8h.xml index 06c43aa..d09a895 100644 --- a/doc/xml/systemtask_8h.xml +++ b/doc/xml/systemtask_8h.xml @@ -6,37 +6,37 @@ src/sys/init/main.c src/sys/kernel/systemtask.c - + - + - + - + - + - + - + - + - + - + @@ -62,7 +62,7 @@ taskStruct::imageFd inportByte kfree - kpanic + kpanic kprintf mpi_createMbox mpi_fetchMessage diff --git a/doc/xml/tcpdump_8h.xml b/doc/xml/tcpdump_8h.xml index 1e7b0a4..8c37ffc 100644 --- a/doc/xml/tcpdump_8h.xml +++ b/doc/xml/tcpdump_8h.xml @@ -4,13 +4,13 @@ tcpdump.h net/pbuf.h - + - + - + diff --git a/doc/xml/thread_8c.xml b/doc/xml/thread_8c.xml index 79bd5f7..fa4482c 100644 --- a/doc/xml/thread_8c.xml +++ b/doc/xml/thread_8c.xml @@ -7,154 +7,146 @@ vfs/vfs.h lib/kprintf.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + @@ -176,7 +168,7 @@ mpi_message::header - kpanic + kpanic kprintf mpi_createMbox mpi_fetchMessage diff --git a/doc/xml/thread_8h.xml b/doc/xml/thread_8h.xml index 85e3f3c..bad0629 100644 --- a/doc/xml/thread_8h.xml +++ b/doc/xml/thread_8h.xml @@ -18,645 +18,665 @@ src/sys/kernel/kern_sysctl.c src/sys/kernel/pipe.c - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + diff --git a/doc/xml/time_8c.xml b/doc/xml/time_8c.xml index f0f04a5..2957e33 100644 --- a/doc/xml/time_8c.xml +++ b/doc/xml/time_8c.xml @@ -8,161 +8,149 @@ lib/kprintf.h assert.h - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + diff --git a/doc/xml/time_8h.xml b/doc/xml/time_8h.xml index 823f054..011bfc3 100644 --- a/doc/xml/time_8h.xml +++ b/doc/xml/time_8h.xml @@ -10,149 +10,149 @@ src/sys/kernel/time.c src/sys/kernel/ubthread.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/times_8h.xml b/doc/xml/times_8h.xml index b994aae..d08637d 100644 --- a/doc/xml/times_8h.xml +++ b/doc/xml/times_8h.xml @@ -5,22 +5,22 @@ ubixos/types.h sys/_types.h - + - + - + - + - + - + diff --git a/doc/xml/trap_8h.xml b/doc/xml/trap_8h.xml index 7d680dd..ca07229 100644 --- a/doc/xml/trap_8h.xml +++ b/doc/xml/trap_8h.xml @@ -5,20 +5,20 @@ src/sys/kernel/syscall.c src/sys/kernel/syscall_new.c - + - + - + - + - + diff --git a/doc/xml/tss_8h.xml b/doc/xml/tss_8h.xml index f1df595..e5afea9 100644 --- a/doc/xml/tss_8h.xml +++ b/doc/xml/tss_8h.xml @@ -7,387 +7,405 @@ src/sys/init/main.c src/sys/kernel/bioscall.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + diff --git a/doc/xml/tty_8c.xml b/doc/xml/tty_8c.xml index c3352a8..a0ea10a 100644 --- a/doc/xml/tty_8c.xml +++ b/doc/xml/tty_8c.xml @@ -10,69 +10,69 @@ sys/io.h string.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -94,7 +94,7 @@ - kpanic + kpanic memcpy outportByte terms @@ -123,7 +123,7 @@ terms - execFile + execFile kprint systemTask @@ -141,7 +141,7 @@ inportByte kmalloc - kpanic + kpanic kprintf outportByte terms @@ -221,7 +221,7 @@ backSpace getch keyboardHandler - kpanic + kpanic kprint sysFgetc tty_change diff --git a/doc/xml/tty_8h.xml b/doc/xml/tty_8h.xml index d864096..a67615f 100644 --- a/doc/xml/tty_8h.xml +++ b/doc/xml/tty_8h.xml @@ -12,409 +12,427 @@ src/sys/kernel/tty.c src/sys/sys/video.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -466,7 +484,7 @@ - kpanic + kpanic memcpy outportByte terms @@ -494,7 +512,7 @@ terms - execFile + execFile kprint systemTask @@ -512,7 +530,7 @@ inportByte kmalloc - kpanic + kpanic kprintf outportByte terms @@ -572,7 +590,7 @@ backSpace getch keyboardHandler - kpanic + kpanic kprint sysFgetc tty_change diff --git a/doc/xml/ubixfs_8c.xml b/doc/xml/ubixfs_8c.xml index 6fb5fb7..3c0adf5 100644 --- a/doc/xml/ubixfs_8c.xml +++ b/doc/xml/ubixfs_8c.xml @@ -14,192 +14,184 @@ lib/kprintf.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + @@ -285,7 +277,7 @@ fdEof vfs_mountPoint::fsInfo cacheNode::info - kpanic + kpanic fileDescriptorStruct::mp NULL cacheNode::present @@ -306,7 +298,7 @@ - kpanic + kpanic NULL openFileUbixFS readUbixFS diff --git a/doc/xml/ubthread_8c.xml b/doc/xml/ubthread_8c.xml index 7475e88..09965a4 100644 --- a/doc/xml/ubthread_8c.xml +++ b/doc/xml/ubthread_8c.xml @@ -11,183 +11,171 @@ lib/kmalloc.h lib/kprintf.h - + - + - + - + - + - + - + - - - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + @@ -342,7 +330,7 @@ - execThread + execThread kmalloc x2000 diff --git a/doc/xml/ubthread_8h.xml b/doc/xml/ubthread_8h.xml index 5f876b0..c23b81a 100644 --- a/doc/xml/ubthread_8h.xml +++ b/doc/xml/ubthread_8h.xml @@ -8,207 +8,199 @@ src/sys/include/ubixos/vitals.h src/sys/kernel/ubthread.c - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -453,7 +445,7 @@ - execThread + execThread kmalloc x2000 diff --git a/doc/xml/ufs_8c.xml b/doc/xml/ufs_8c.xml index cb3fec8..a018ca6 100644 --- a/doc/xml/ufs_8c.xml +++ b/doc/xml/ufs_8c.xml @@ -10,136 +10,136 @@ ubixos/kpanic.h lib/string.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -451,7 +451,7 @@ - kpanic + kpanic NULL ufs_initialize ufs_openFile diff --git a/doc/xml/ufs_8h.xml b/doc/xml/ufs_8h.xml index 316a0fc..7a63f88 100644 --- a/doc/xml/ufs_8h.xml +++ b/doc/xml/ufs_8h.xml @@ -9,116 +9,116 @@ src/sys/ufs/ffs.c src/sys/ufs/ufs.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -683,7 +683,7 @@ - kpanic + kpanic NULL ufs_initialize ufs_openFile diff --git a/doc/xml/uniondescriptorTableUnion.xml b/doc/xml/uniondescriptorTableUnion.xml index 24df9ef..bcd46a4 100644 --- a/doc/xml/uniondescriptorTableUnion.xml +++ b/doc/xml/uniondescriptorTableUnion.xml @@ -51,21 +51,21 @@ - + - + - + - + gate - + descriptor diff --git a/doc/xml/unmappage_8c.xml b/doc/xml/unmappage_8c.xml index f289dd9..89a4522 100644 --- a/doc/xml/unmappage_8c.xml +++ b/doc/xml/unmappage_8c.xml @@ -4,58 +4,58 @@ unmappage.c vmm/vmm.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/vfs_8c.xml b/doc/xml/vfs_8c.xml index ef8712c..b188a6f 100644 --- a/doc/xml/vfs_8c.xml +++ b/doc/xml/vfs_8c.xml @@ -9,182 +9,170 @@ lib/string.h sys/kern_descrip.h - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/video_8c.xml b/doc/xml/video_8c.xml index c8e6889..f27882f 100644 --- a/doc/xml/video_8c.xml +++ b/doc/xml/video_8c.xml @@ -8,49 +8,49 @@ ubixos/spinlock.h ubixos/tty.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/video_8h.xml b/doc/xml/video_8h.xml index 97fba77..58bb25b 100644 --- a/doc/xml/video_8h.xml +++ b/doc/xml/video_8h.xml @@ -7,7 +7,6 @@ src/sys/isa/atkbd.c src/sys/isa/fdc.c src/sys/kernel/bioscall.c - src/sys/kernel/kpanic.c src/sys/kernel/syscall.c src/sys/lib/kprintf.c src/sys/lib/libcpp.cc @@ -15,91 +14,85 @@ src/sys/pci/lnc.c src/sys/sys/video.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - - - - - + - + diff --git a/doc/xml/vitals_8c.xml b/doc/xml/vitals_8c.xml index 24fe4bb..e327fae 100644 --- a/doc/xml/vitals_8c.xml +++ b/doc/xml/vitals_8c.xml @@ -8,173 +8,161 @@ lib/kmalloc.h string.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + @@ -194,7 +182,7 @@ vitalsStruct::dQuantum kmalloc - kpanic + kpanic kprintf memset vitalsStruct::quantum diff --git a/doc/xml/vitals_8h.xml b/doc/xml/vitals_8h.xml index 52700f4..9c22720 100644 --- a/doc/xml/vitals_8h.xml +++ b/doc/xml/vitals_8h.xml @@ -2,9 +2,7 @@ vitals.h - ubixos/types.h ubixos/ubthread.h - vfs/mount.h vfs/vfs.h src/sys/include/ubixos/init.h src/sys/isa/atkbd.c @@ -22,239 +20,227 @@ src/sys/vfs/vfs.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - - - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -290,7 +276,7 @@ vitalsStruct::dQuantum kmalloc - kpanic + kpanic kprintf memset vitalsStruct::quantum @@ -369,9 +355,9 @@ #ifndef_VITALS_H #define_VITALS_H -#include<ubixos/types.h> +//#include<ubixos/types.h> #include<ubixos/ubthread.h> -#include<vfs/mount.h> +//#include<vfs/mount.h> #include<vfs/vfs.h> typedefstructvitalsStruct{ @@ -397,39 +383,8 @@ #endif /*** -$Log$ -Revision1.22006/12/0514:10:21reddawg -WorkignDistro - -Revision1.1.1.12006/06/0112:46:14reddawg -ubix2 - -Revision1.22005/10/1200:13:37reddawg -Removed - -Revision1.1.1.12005/09/2617:23:57reddawg -nomessage - -Revision1.62004/07/2309:10:06reddawg -ubixfs:cleanedupsomefunctionsplayedwiththecachingabit -vfs:renamedabunchoffunctions -cleanedupafewmiscbugs - -Revision1.52004/07/0913:03:50reddawg -vitals:namedvitalsInittovitals_init -AdjustedStartupRoutines - -Revision1.42004/06/1813:01:47solar -AddedniceandtimeSlicememberstothekTask_ttype - -Revision1.32004/06/1612:04:18reddawg -systemVitals->quantum=(1000/msPerQuantum) -Thetimerintnowwillcallschedulerattherateofthedefinedquantum - -Revision1.22004/05/2115:20:00reddawg -Cleanedup -END -***/ +END +***/ diff --git a/doc/xml/vmm_8h.xml b/doc/xml/vmm_8h.xml index 1fb7a1b..44b1479 100644 --- a/doc/xml/vmm_8h.xml +++ b/doc/xml/vmm_8h.xml @@ -6,6 +6,7 @@ ubixos/types.h src/sys/include/ubixos/init.h src/sys/kernel/bioscall.c + src/sys/kernel/elf.c src/sys/kernel/endtask.c src/sys/kernel/exec.c src/sys/kernel/fork.c @@ -28,201 +29,207 @@ src/sys/vmm/vmm_init.c src/sys/vmm/vmm_memory.c - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -406,7 +413,7 @@ freePages vitalsStruct::freePages - kpanic + kpanic memAvail memNotavail numPages @@ -418,11 +425,13 @@ systemVitals vmmMemoryMap vmmSpinLock - execFile + elf_loadfile + execFile kmod_load ldEnable obreak - sysExec + sys_exec + sysExec vmm_getFreeMallocPage vmm_pageFault vmm_pagingInit diff --git a/doc/xml/vmm__init_8c.xml b/doc/xml/vmm__init_8c.xml index 02b9141..bb7cae6 100644 --- a/doc/xml/vmm__init_8c.xml +++ b/doc/xml/vmm__init_8c.xml @@ -5,64 +5,64 @@ vmm/vmm.h ubixos/kpanic.h - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/xml/vmm__memory_8c.xml b/doc/xml/vmm__memory_8c.xml index 3c0c213..ea1c952 100644 --- a/doc/xml/vmm__memory_8c.xml +++ b/doc/xml/vmm__memory_8c.xml @@ -11,201 +11,189 @@ ubixos/spinlock.h assert.h - + - + - + - + - + - + - + - + - - - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + - + @@ -315,7 +303,7 @@ vitalsStruct::freePages freePages - kpanic + kpanic memAvail memNotavail numPages @@ -327,11 +315,13 @@ systemVitals vmmMemoryMap vmmSpinLock - execFile + elf_loadfile + execFile kmod_load ldEnable obreak - sysExec + sys_exec + sysExec vmm_getFreeMallocPage vmm_pageFault vmm_pagingInit diff --git a/doc/xml/vsprintf_8c.xml b/doc/xml/vsprintf_8c.xml index f61a09d..320938f 100644 --- a/doc/xml/vsprintf_8c.xml +++ b/doc/xml/vsprintf_8c.xml @@ -5,32 +5,32 @@ stdarg.h lib/string.h - + - + - + - + - + - + - + - + - + @@ -260,7 +260,7 @@ strlen vaArg ZEROPAD - kpanic + kpanic kprintf sprintf diff --git a/src/bin/Makefile b/src/bin/Makefile index e4576f5..8016140 100644 --- a/src/bin/Makefile +++ b/src/bin/Makefile @@ -1,7 +1,7 @@ # $Id$ # The System Makefile (C) 2002 The UbixOS Project -all: init-bin login-bin shell-bin clock-bin cp-bin fdisk-bin format-bin disklabel-bin ubistry-bin edit-bin ld-bin ttyd-bin stat-bin cat-bin +all: init-bin login-bin shell-bin clock-bin cp-bin fdisk-bin format-bin disklabel-bin ubistry-bin edit-bin ld-bin ttyd-bin stat-bin cat-bin rtld-elf-bin # test-bin pwd-bin cat-bin de-bin ls-bin goofball-bin mount-bin init-bin: init @@ -70,6 +70,9 @@ mount-bin: mount (cd mount;make) +rtld-elf-bin: rtld-elf + (cd rtld-elf;make) + clean: (cd cp;make clean) (cd fdisk;make clean) @@ -87,3 +90,4 @@ (cd ttyd;make clean) (cd stat;make clean) (cd mount;make clean) + (cd rtld-elf;make clean) diff --git a/src/bin/edit/main.c b/src/bin/edit/main.c index 38a1a1a..ced587f 100644 --- a/src/bin/edit/main.c +++ b/src/bin/edit/main.c @@ -46,6 +46,7 @@ printf("%c",fgetc(out)); } + //printf("[%S]",getenv("TEST")); printf("\nENV TEST: [0x%X]\n",environ); setenv("BLAH","WOOT",1); printf("[%s]",getenv("BLAH")); diff --git a/src/bin/shell/exec.c b/src/bin/shell/exec.c index 28c0fc8..45a0504 100644 --- a/src/bin/shell/exec.c +++ b/src/bin/shell/exec.c @@ -28,6 +28,8 @@ #include #include "shell.h" + int boo = 0x0; + void execProgram(inputBuffer *data) { char file[1024]; char **argv = &data->argv; @@ -36,9 +38,13 @@ printf("Executing App\n"); cPid = fork(); + if (!cPid) { sprintf(file,"%s%s",cwd,argv[1]); - exec(file,&data->argv); + if (boo == 0) + exec(file,&data->argv); + else + execn(file,&data->argv); printf("%s: Command Not Found.\n",argv[1]); exit(-1); } @@ -47,5 +53,7 @@ while (pidStatus(cPid) > 0) sched_yield(); } + if (cPid > 4) + boo = 1; } } diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index 9166914..ef74983 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -2,6 +2,7 @@ # 'lib' options LDFLAGS = -Bshareable +#CFLAGS = -fpic -DPIC -O2 -fno-strict-aliasing -pipe -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -DYP -DHESIOD -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized CFLAGS = -fno-builtin -Wno-uninitialized -O2 -fno-strict-aliasing -pipe INCLUDES = -I../include -I../../../include -I../i386 -I../include diff --git a/src/lib/libc/Makefile b/src/lib/libc/Makefile index 2b79204..41849d3 100644 --- a/src/lib/libc/Makefile +++ b/src/lib/libc/Makefile @@ -8,6 +8,10 @@ #Objects OBJS = +AR = ar + +LPIC = pic.a + #Sub Sections SUBS = ./*/*.o ./db/*/*.o ./i386/*/*.o @@ -43,6 +47,10 @@ (cd compat-43;make) $(CC) -nostdlib -shared -Wl,-soname,libc.so -o $(OUTPUT) $(OBJS) $(SUBS) +pic.a: $(OBJS) + $(AR) cq $(LPIC) $(OBJS) $(SUBS) + ranlib $(LPIC) + # Compile the source files .cc.o: $(CXX) -Wall -nostdinc -O -I./include -c -o $@ $< diff --git a/src/lib/libc/Makefile.inc b/src/lib/libc/Makefile.inc index 920f631..910656a 100644 --- a/src/lib/libc/Makefile.inc +++ b/src/lib/libc/Makefile.inc @@ -1,2 +1,3 @@ INCLUDES = -I../include -I../../../include.new +CFLAGS = -fpic -DPIC -O2 -fno-strict-aliasing -pipe -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -DYP -DHESIOD -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized CFLAGS += -DPORTMAP -D__DBINTERFACE_PRIVATE -nostdinc #-DPIC diff --git a/src/lib/libc/stdlib/getenv.c b/src/lib/libc/stdlib/getenv.c index 7c47046..aa15989 100644 --- a/src/lib/libc/stdlib/getenv.c +++ b/src/lib/libc/stdlib/getenv.c @@ -61,8 +61,7 @@ int len, i; const char *np; char **p, *cp; -/* HACK*/ -return(NULL); + if (name == NULL || environ == NULL) return (NULL); for (np = name; *np && *np != '='; ++np) diff --git a/src/sys/include/sys/sysproto.h b/src/sys/include/sys/sysproto.h index 0608232..227e0ce 100644 --- a/src/sys/include/sys/sysproto.h +++ b/src/sys/include/sys/sysproto.h @@ -65,6 +65,23 @@ char oitv_l_[PADL_(struct itimerval *)]; struct itimerval * oitv; char oitv_r_[PADR_(struct itimerval *)]; }; +struct access_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + }; +struct fstatfs_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; + }; +struct mprotect_args { + char addr_l_[PADL_(const void *)]; const void * addr; char addr_r_[PADR_(const void *)]; + char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; + char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; + }; + + + + //Old struct sysctl_args { @@ -167,6 +184,9 @@ int sys_write(struct thread *td, struct write_args *uap); int sys_open(struct thread *td, struct open_args *uap); int setitimer(struct thread *td, struct setitimer_args *uap); +int access(struct thread *td, struct access_args *uap); +int fstatfs(struct thread *td, struct fstatfs_args *uap); +int mprotect(struct thread *td, struct mprotect_args *uap); #endif diff --git a/src/sys/include/ubixos/syscalls.h b/src/sys/include/ubixos/syscalls.h index 6571a96..69b2bf4 100644 --- a/src/sys/include/ubixos/syscalls.h +++ b/src/sys/include/ubixos/syscalls.h @@ -40,6 +40,7 @@ void sysGetpid(); void sysExit(); void sysExec(); +void sys_exec(); void sysFork(); void sysCheckPid(); void sysGetFreePage(); @@ -89,7 +90,7 @@ invalidCall, /** 12 **/ invalidCall, /** 13 **/ invalidCall, /** 14 **/ - invalidCall, /** 15 **/ + sys_exec, /** 15 **/ invalidCall, /** 16 **/ invalidCall, /** 17 **/ invalidCall, /** 18 **/ @@ -138,6 +139,9 @@ /*** $Log$ + Revision 1.2 2006/10/12 17:05:44 reddawg + Removing SDE + Revision 1.1.1.1 2006/06/01 12:46:14 reddawg ubix2 diff --git a/src/sys/include/ubixos/syscalls_new.h b/src/sys/include/ubixos/syscalls_new.h index affe4aa..78aa0c7 100644 --- a/src/sys/include/ubixos/syscalls_new.h +++ b/src/sys/include/ubixos/syscalls_new.h @@ -97,7 +97,7 @@ invalid_call, /** 30 **/ invalid_call, /** 31 **/ invalid_call, /** 32 **/ - invalid_call, /** 33 **/ + access, /** 33 **/ invalid_call, /** 34 **/ invalid_call, /** 35 **/ invalid_call, /** 36 **/ @@ -138,7 +138,7 @@ invalid_call, /** 71 **/ invalid_call, /** 72 **/ munmap, /** 73 **/ - invalid_call, /** 74 **/ + mprotect, /** 74 **/ invalid_call, /** 75 **/ invalid_call, /** 76 **/ invalid_call, /** 77 **/ @@ -461,7 +461,7 @@ invalid_call, /** 394 **/ invalid_call, /** 395 **/ invalid_call, /** 396 **/ - invalid_call, /** 397 **/ + fstatfs, /** 397 **/ invalid_call, /** 398 **/ invalid_call, /** 399 **/ invalid_call, /** 400 **/ diff --git a/src/sys/include/ubixos/vitals.h b/src/sys/include/ubixos/vitals.h index 2cd86f0..dae04f0 100644 --- a/src/sys/include/ubixos/vitals.h +++ b/src/sys/include/ubixos/vitals.h @@ -30,9 +30,9 @@ #ifndef _VITALS_H #define _VITALS_H -#include +//#include #include -#include +//#include #include typedef struct vitalsStruct { @@ -58,33 +58,5 @@ #endif /*** - $Log$ - Revision 1.1.1.1 2006/06/01 12:46:14 reddawg - ubix2 - - Revision 1.2 2005/10/12 00:13:37 reddawg - Removed - - Revision 1.1.1.1 2005/09/26 17:23:57 reddawg - no message - - Revision 1.6 2004/07/23 09:10:06 reddawg - ubixfs: cleaned up some functions played with the caching a bit - vfs: renamed a bunch of functions - cleaned up a few misc bugs - - Revision 1.5 2004/07/09 13:03:50 reddawg - vitals: named vitalsInit to vitals_init - Adjusted Startup Routines - - Revision 1.4 2004/06/18 13:01:47 solar - Added nice and timeSlice members to the kTask_t type - - Revision 1.3 2004/06/16 12:04:18 reddawg - systemVitals->quantum = (1000/msPerQuantum) - The timer int now will call scheduler at the rate of the defined quantum - - Revision 1.2 2004/05/21 15:20:00 reddawg - Cleaned up END ***/ diff --git a/src/sys/include/vfs/mount.h b/src/sys/include/vfs/mount.h index 310ce85..eede504 100644 --- a/src/sys/include/vfs/mount.h +++ b/src/sys/include/vfs/mount.h @@ -32,6 +32,36 @@ #include +#define MFSNAMELEN 16 /* length of type name including null */ +#define MNAMELEN 88 /* size of on/from name bufs */ + +typedef struct fsid { int32_t val[2]; } fsid_t; /* filesystem id type */ + +struct statfs { + u_int32_t f_version; /* structure version number */ + u_int32_t f_type; /* type of filesystem */ + u_int64_t f_flags; /* copy of mount exported flags */ + u_int64_t f_bsize; /* filesystem fragment size */ + u_int64_t f_iosize; /* optimal transfer block size */ + u_int64_t f_blocks; /* total data blocks in filesystem */ + u_int64_t f_bfree; /* free blocks in filesystem */ + int64_t f_bavail; /* free blocks avail to non-superuser */ + u_int64_t f_files; /* total file nodes in filesystem */ + int64_t f_ffree; /* free nodes avail to non-superuser */ + u_int64_t f_syncwrites; /* count of sync writes since mount */ + u_int64_t f_asyncwrites; /* count of async writes since mount */ + u_int64_t f_syncreads; /* count of sync reads since mount */ + u_int64_t f_asyncreads; /* count of async reads since mount */ + u_int64_t f_spare[10]; /* unused spare */ + u_int32_t f_namemax; /* maximum filename length */ + uid_t f_owner; /* user that mounted the filesystem */ + fsid_t f_fsid; /* filesystem id */ + char f_charspare[80]; /* spare string space */ + char f_fstypename[MFSNAMELEN]; /* filesystem type name */ + char f_mntfromname[MNAMELEN]; /* mounted filesystem */ + char f_mntonname[MNAMELEN]; /* directory on which mounted */ + }; + struct vfs_mountPoint { struct vfs_mountPoint *prev; struct vfs_mountPoint *next; diff --git a/src/sys/kernel/elf.c b/src/sys/kernel/elf.c index 20c00f6..391062a 100644 --- a/src/sys/kernel/elf.c +++ b/src/sys/kernel/elf.c @@ -163,7 +163,7 @@ /* Now Load Section To Memory */ fseek(exec_fd,programHeader[i].phOffset,0); - fread((void *)programHeader[i].phVaddr,programHeader[i].phFilesz,1,exec_fd); + fread((void *)programHeader[i].phVaddr + base,programHeader[i].phFilesz,1,exec_fd); if ((programHeader[i].phFlags & 0x2) != 0x2) { for (x = 0x0;x < (programHeader[i].phMemsz);x += 0x1000) { diff --git a/src/sys/kernel/exec.c b/src/sys/kernel/exec.c index fcadb83..e6c4707 100644 --- a/src/sys/kernel/exec.c +++ b/src/sys/kernel/exec.c @@ -41,6 +41,22 @@ #define STACK_ADDR 0xC800000 +#define AT_NULL 0 /* Terminates the vector. */ +#define AT_IGNORE 1 /* Ignored entry. */ +#define AT_EXECFD 2 /* File descriptor of program to load. */ +#define AT_PHDR 3 /* Program header of program already loaded. */ +#define AT_PHENT 4 /* Size of each program header entry. */ +#define AT_PHNUM 5 /* Number of program header entries. */ +#define AT_PAGESZ 6 /* Page size in bytes. */ +#define AT_BASE 7 /* Interpreter's base address. */ +#define AT_FLAGS 8 /* Flags (unused for i386). */ +#define AT_ENTRY 9 /* Where interpreter should transfer control. */ + +//#define AUXARGS_ENTRY(pos, id, val) {memcpy((void *)pos++,(void *)id,sizeof(long)); memcpy((void *)pos++,(void *)val,sizeof(long));} +#define AUXARGS_ENTRY(pos, id, val) {*pos = id;pos++; *pos = val;pos++;} + + + /***************************************************************************************** Function: execThread(void (*)(void),int,char *); @@ -351,12 +367,6 @@ elfDynamic *elfDynamicS = 0x0; struct i386_frame *iFrame = 0x0; - - if (_current->id > 4) { - sys_exec(file,ap); - return; - } - tmpFd = fopen(file,"r"); _current->imageFd = tmpFd; /* If We Dont Find the File Return */ @@ -554,6 +564,7 @@ int i = 0x0; int x = 0x0; int argc = 0x0; + u_int32_t *tmp = 0x0; u_int32_t seg_size = 0x0; u_int32_t seg_addr = 0x0; u_int32_t addr = 0x0; @@ -649,14 +660,15 @@ if (interp != 0x0) { - kprintf("TEST"); + //kprintf("TEST"); elf_loadfile(_current,interp,&addr,&eip); } - kprintf("[0x%X][0x%X]\n",eip,addr); + //kprintf("[0x%X][0x%X]\n",eip,addr); _current->td.vm_dsize = seg_size >> PAGE_SHIFT; _current->td.vm_daddr = (char *)seg_addr; + //! copy in arg strings argv = ap; if (argv[1] != 0x0) { @@ -684,17 +696,28 @@ //if (_current->id > 3) { - iFrame->user_esp = ((u_int32_t)STACK_ADDR) - (sizeof(u_int32_t) * (argc + 3 + sizeof(Elf_Auxargs))); - args = iFrame->user_esp; + iFrame->user_esp = ((u_int32_t)STACK_ADDR) - (sizeof(u_int32_t) * (argc + 4 + (sizeof(Elf_Auxargs) * 2))); + kprintf("\n\n\nuser_esp: [0x%X]\n",iFrame->user_esp); + tmp = iFrame->user_esp; //! build argc and argv[] - args[0] = argc; + tmp[0] = argc; for (i = 0;i < argc;i++) { - args[i + 1] = argv[i]; + tmp[i + 1] = argv[i]; } - //! Start of Env - args[argc + 2] = 0x0; - auxargs = iFrame->user_esp + argc + 2; + //! Build ENV + args = (char *)vmmGetFreeVirtualPage(_current->id,1,VM_TASK); + memset(args,0x0,0x1000); + strcpy(args,"LIBRARY_PATH=/lib"); + tmp[argc + 2] = args; + kprintf("env: [0x%X][0x%X]\n",(uInt32)tmp + argc + 2,tmp[argc + 2]); + tmp[argc + 3] = 0x0; + kprintf("env: [0x%X][0x%X]\n",(uInt32)tmp + argc + 2,tmp[argc + 2]); + //auxargs = iFrame->user_esp + argc + 3; + tmp = iFrame->user_esp; + tmp += argc + 4; + + auxargs->execfd = -1; auxargs->phdr = proghdr; auxargs->phent = binaryHeader->ePhentsize; @@ -704,7 +727,25 @@ auxargs->flags = 0x0; auxargs->entry = binaryHeader->eEntry; auxargs->trace = 0x0; -kprintf("\n\nDOH\n\n"); + + AUXARGS_ENTRY(tmp, AT_PHDR, auxargs->phdr); + AUXARGS_ENTRY(tmp, AT_PHENT, auxargs->phent); + AUXARGS_ENTRY(tmp, AT_PHNUM, auxargs->phnum); + AUXARGS_ENTRY(tmp, AT_PAGESZ, auxargs->pagesz); + AUXARGS_ENTRY(tmp, AT_FLAGS, auxargs->flags); + AUXARGS_ENTRY(tmp, AT_ENTRY, auxargs->entry); + AUXARGS_ENTRY(tmp, AT_BASE, auxargs->base); + AUXARGS_ENTRY(tmp, AT_NULL, 0); + + kprintf("AT_BASE: [0x%X]\n",auxargs->base); + + //iFrame->ebx = 0x0; + //iFrame->ebx = 0x0; + + //iFrame->eip = binaryHeader->eEntry; + //kprintf("\n\nDOH: [0x%X]\n\n",iFrame->eip); + +//while (1); //while (1); /* diff --git a/src/sys/kernel/gen_calls.c b/src/sys/kernel/gen_calls.c index 54fe35a..efeef54 100644 --- a/src/sys/kernel/gen_calls.c +++ b/src/sys/kernel/gen_calls.c @@ -152,6 +152,17 @@ return(error); } +int access(struct thread *td, struct access_args *uap) { + int error = 0x0; + kprintf("name: [%s]\n",uap->path); + return(error); + } + +int mprotect(struct thread *td, struct mprotect_args *uap) { + int error = 0x0; + return(error); + } + /*** END ***/ diff --git a/src/sys/kernel/kpanic.c b/src/sys/kernel/kpanic.c index 0d6f1ab..d370eec 100644 --- a/src/sys/kernel/kpanic.c +++ b/src/sys/kernel/kpanic.c @@ -28,11 +28,9 @@ *****************************************************************************************/ #include -#include -#include #include +#include #include - #include /*! diff --git a/src/sys/lib/assert.c b/src/sys/lib/assert.c index e0afaae..7b4845d 100644 --- a/src/sys/lib/assert.c +++ b/src/sys/lib/assert.c @@ -31,35 +31,20 @@ #include #include +/*! + * \brief The underlying assertion call which is wrapped by assert() + * + */ void __assert(const char *func,const char *file,int line,const char *failedexpr) { - if (func == NULL) - kprintf( - "Assertion failed: (%s), file %s, line %d.\n", failedexpr, - file, line); - else - kprintf( - "Assertion failed: (%s), function %s, file %s, line %d.\n", - failedexpr, func, file, line); - kpanic("Asserted\n"); + if (func == NULL) + kprintf("Assertion failed: (%s), file %s, line %d.\n", failedexpr, file, line); + else + kprintf("Assertion failed: (%s), function %s, file %s, line %d.\n", failedexpr, func, file, line); + + K_PANIC("Asserted\n"); } /*** - $Log$ - Revision 1.2 2005/10/12 00:13:37 reddawg - Removed - - Revision 1.1.1.1 2005/09/26 17:24:10 reddawg - no message - - Revision 1.2 2005/08/04 17:11:11 fsdfs - - ---------------------------------------- - - ------------------- - - Revision 1.1 2004/07/20 22:29:55 reddawg - assert: remade assert - END ***/ diff --git a/src/sys/vfs/vfs.c b/src/sys/vfs/vfs.c index 72154d5..1194038 100644 --- a/src/sys/vfs/vfs.c +++ b/src/sys/vfs/vfs.c @@ -165,6 +165,14 @@ return (error); } +/* HACK */ +int fstatfs(struct thread *td, struct fstatfs_args *uap) { + int error = 0x0; + uap->buf->f_mntonname[0] = '/'; + uap->buf->f_mntonname[1] = '\0'; + uap->buf->f_flags = 0x0; + return(error); + } /*** END diff --git a/src/sys/vmm/paging.c b/src/sys/vmm/paging.c index f59abd6..cfdd15f 100644 --- a/src/sys/vmm/paging.c +++ b/src/sys/vmm/paging.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -451,7 +452,9 @@ } int mmap(struct thread *td,struct mmap_args *uap) { - vm_offset_t addr = 0x0; + vm_offset_t addr = 0x0; + char *tmp = 0x0; + struct file *fd = 0x0; addr = (vm_offset_t) uap->addr; @@ -470,8 +473,21 @@ if (uap->fd == -1) td->td_retval[0] = vmmGetFreeVirtualPage(_current->id,uap->len/0x1000,VM_TASK); - else - td->td_retval[0] = 0x0; + else { + kprintf("uap->flags: [0x%X]\n",uap->flags); + kprintf("uap->addr: [0x%X]\n",uap->addr); + kprintf("uap->len: [0x%X]\n",uap->len); + kprintf("uap->prot: [0x%X]\n",uap->prot); + kprintf("uap->fd: [%i]\n",uap->fd); + kprintf("uap->pad: [0x%X]\n",uap->pad); + kprintf("uap->pos: [0x%X]\n",uap->pos); + //K_PANIC("NOT YET\n"); + getfd(td,&fd,uap->fd); + tmp = (char *)vmmGetFreeVirtualPage(_current->id,uap->len/0x1000,VM_TASK); + fread(tmp,uap->len,0x1,fd->fd); + + td->td_retval[0] = tmp; + } return(0x0); } diff --git a/src/tools/Makefile b/src/tools/Makefile index 2ec8056..0b97a7a 100644 --- a/src/tools/Makefile +++ b/src/tools/Makefile @@ -46,6 +46,7 @@ (cp ../bin/edit/edit /mnts/ubix/bin) (cp ../bin/cat/cat /mnts/ubix/bin) (cp ../bin/ld/ld.so /mnts/ubix/lib) + (cp ../bin/rtld-elf/ld-elf.so.1 /mnts/ubix/libexec) (cp ../lib/libc_old/libc_old.so /mnts/ubix/lib) (cp ../lib/libc/libc.so /mnts/ubix/lib) (cp ../lib/ubix_api/ubix_api.so /mnts/ubix/lib) diff --git a/ubix2.kdevses b/ubix2.kdevses index bb9a656..ee352e8 100644 --- a/ubix2.kdevses +++ b/ubix2.kdevses @@ -1,31 +1,28 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - -