diff --git a/doc/html/8259_8c-source.html b/doc/html/8259_8c-source.html index d84b628..d07facc 100644 --- a/doc/html/8259_8c-source.html +++ b/doc/html/8259_8c-source.html @@ -158,7 +158,7 @@ 00126 END 00127 ***/ 00128 -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/8259_8c.html b/doc/html/8259_8c.html index fab29b1..d8052aa 100644 --- a/doc/html/8259_8c.html +++ b/doc/html/8259_8c.html @@ -124,7 +124,7 @@

References irqMask, mPic, outportByte(), and sPic.

-Referenced by _int13(), atkbd_init(), fdc_init(), kmain(), mouseInit(), ne2k_init(), and ne2kHandler(). +Referenced by _int13(), atkbd_init(), fdc_init(), kmain(), mouseInit(), ne2k_init(), and ne2kHandler().


Variable Documentation

@@ -147,7 +147,7 @@ Referenced by irqDisable(), and irqEnable().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/8259_8h-source.html b/doc/html/8259_8h-source.html index 653e821..cdbbef2 100644 --- a/doc/html/8259_8h-source.html +++ b/doc/html/8259_8h-source.html @@ -105,7 +105,7 @@ 00073 00074 END 00075 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/8259_8h.html b/doc/html/8259_8h.html index 0b940bc..b6e545d 100644 --- a/doc/html/8259_8h.html +++ b/doc/html/8259_8h.html @@ -180,7 +180,7 @@

Definition at line 42 of file 8259.h.

-Referenced by atkbd_init(), fdc_init(), i8259_init(), initLNC(), mouseInit(), and ne2k_init(). +Referenced by atkbd_init(), fdc_init(), i8259_init(), initLNC(), mouseInit(), and ne2k_init().

@@ -347,10 +347,10 @@

References irqMask, mPic, outportByte(), and sPic.

-Referenced by _int13(), atkbd_init(), fdc_init(), kmain(), mouseInit(), ne2k_init(), and ne2kHandler(). +Referenced by _int13(), atkbd_init(), fdc_init(), kmain(), mouseInit(), ne2k_init(), and ne2kHandler().

-


Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/Makefile_8inc-source.html b/doc/html/Makefile_8inc-source.html index 4302398..f8f90d6 100644 --- a/doc/html/Makefile_8inc-source.html +++ b/doc/html/Makefile_8inc-source.html @@ -36,7 +36,7 @@ 00004 INCLUDES = -I../include 00005 CFLAGS = -Wall -nostdlib -nostdinc -fno-builtin -fno-exceptions -O 00006 KERNEL = ubix.elf -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/Makefile_8inc.html b/doc/html/Makefile_8inc.html index 55542d3..03f99a2 100644 --- a/doc/html/Makefile_8inc.html +++ b/doc/html/Makefile_8inc.html @@ -37,7 +37,7 @@ Go to the source code of this file.
-
Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/__types_8h-source.html b/doc/html/__types_8h-source.html index ae891b8..cb03611 100644 --- a/doc/html/__types_8h-source.html +++ b/doc/html/__types_8h-source.html @@ -96,7 +96,7 @@ 00064 END 00065 ***/ 00066 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/__types_8h.html b/doc/html/__types_8h.html index f3c71a9..d19eab4 100644 --- a/doc/html/__types_8h.html +++ b/doc/html/__types_8h.html @@ -419,7 +419,7 @@ Definition at line 36 of file _types.h.

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/annotated.html b/doc/html/annotated.html index b816c44..3de2aa9 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -195,9 +195,10 @@ userFileDescriptorStruct vfs_abstract vfs_mountPoint + vitalsStruct write_args -
Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ap-boot_8S-source.html b/doc/html/ap-boot_8S-source.html index 05807b8..ca72691 100644 --- a/doc/html/ap-boot_8S-source.html +++ b/doc/html/ap-boot_8S-source.html @@ -135,7 +135,7 @@ 00103 00104 00105 ap_trampoline_end: -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ap-boot_8S.html b/doc/html/ap-boot_8S.html index aef1577..042d442 100644 --- a/doc/html/ap-boot_8S.html +++ b/doc/html/ap-boot_8S.html @@ -904,7 +904,7 @@

Definition at line 6 of file ap-boot.S.

-Referenced by countMemory(). +Referenced by countMemory().

@@ -1008,7 +1008,7 @@

Definition at line 6 of file ap-boot.S.

-Referenced by atkbd_init(), devfs_init(), devfs_open(), fclose(), getch(), getEmptyDesc(), getFreeBlocks(), initHardDisk(), kmain(), mpi_postMessage(), ne2kGetBuffer(), openFileUbixFS(), sched_setStatus(), ubixfs_init(), ubixfs_initialize(), ufs_init(), ufs_initialize(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vmm_pageFault(), vmm_pagingInit(), vmmCopyVirtualSpace(), and vmmGetFreeVirtualPage(). +Referenced by atkbd_init(), devfs_init(), devfs_open(), fclose(), getch(), getEmptyDesc(), getFreeBlocks(), initHardDisk(), kmain(), mpi_postMessage(), ne2kGetBuffer(), openFileUbixFS(), sched_setStatus(), ubixfs_init(), ubixfs_initialize(), ufs_init(), ufs_initialize(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vmm_pageFault(), vmm_pagingInit(), vmmCopyVirtualSpace(), and vmmGetFreeVirtualPage().

@@ -1046,7 +1046,7 @@

Definition at line 52 of file ap-boot.S.

-Referenced by addDirEntry(), biosCall(), execFile(), initLNC(), kmod_load(), ldEnable(), mmap(), sysExec(), ubixFSUnlink(), vmm_cleanVirtualSpace(), vmm_getFreeMallocPage(), vmm_getPhysicalAddr(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFreeProcessPages(), vmmGetFreePage(), vmmGetFreeVirtualPage(), vmmMapFromTask(), vmmMemMapInit(), vmmUnmapPage(), and writeUbixFS(). +Referenced by addDirEntry(), biosCall(), execFile(), initLNC(), kmod_load(), ldEnable(), mmap(), sysExec(), ubixFSUnlink(), vmm_cleanVirtualSpace(), vmm_getFreeMallocPage(), vmm_getPhysicalAddr(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFreeProcessPages(), vmmGetFreePage(), vmmGetFreeVirtualPage(), vmmMapFromTask(), vmmMemMapInit(), vmmUnmapPage(), and writeUbixFS().

@@ -1206,7 +1206,7 @@ Referenced by c_ap_boot().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api_8h-source.html b/doc/html/api_8h-source.html index 0244027..46c9d2a 100644 --- a/doc/html/api_8h-source.html +++ b/doc/html/api_8h-source.html @@ -172,7 +172,7 @@ 00140 #endif /* __LWIP_API_H__ */ 00141 00142 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api_8h.html b/doc/html/api_8h.html index 4b99dd8..a889411 100644 --- a/doc/html/api_8h.html +++ b/doc/html/api_8h.html @@ -1118,7 +1118,7 @@ Referenced by lwip_send(), lwip_write(), and sendstr().

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__lib_8c-source.html b/doc/html/api__lib_8c-source.html index 7a5d77d..581470a 100644 --- a/doc/html/api__lib_8c-source.html +++ b/doc/html/api__lib_8c-source.html @@ -678,7 +678,7 @@ 00646 00647 00648 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__lib_8c.html b/doc/html/api__lib_8c.html index f3dacb2..62fe9b1 100644 --- a/doc/html/api__lib_8c.html +++ b/doc/html/api__lib_8c.html @@ -987,7 +987,7 @@ Referenced by lwip_send(), lwip_write(), and sendstr().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__msg_8c-source.html b/doc/html/api__msg_8c-source.html index ad09433..0ab2da2 100644 --- a/doc/html/api__msg_8c-source.html +++ b/doc/html/api__msg_8c-source.html @@ -559,7 +559,7 @@ 00527 /*-----------------------------------------------------------------------------------*/ 00528 00529 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__msg_8c.html b/doc/html/api__msg_8c.html index 75baa05..cb34537 100644 --- a/doc/html/api__msg_8c.html +++ b/doc/html/api__msg_8c.html @@ -751,7 +751,7 @@ Referenced by api_msg_input().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__msg_8h-source.html b/doc/html/api__msg_8h-source.html index f6e2e70..67265bf 100644 --- a/doc/html/api__msg_8h-source.html +++ b/doc/html/api__msg_8h-source.html @@ -126,7 +126,7 @@ 00094 00095 #endif /* __LWIP_API_MSG_H__ */ 00096 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/api__msg_8h.html b/doc/html/api__msg_8h.html index 8ed4042..e0e5fa4 100644 --- a/doc/html/api__msg_8h.html +++ b/doc/html/api__msg_8h.html @@ -169,7 +169,7 @@ Referenced by netconn_bind(), netconn_close(), netconn_connect(), netconn_delete(), netconn_listen(), netconn_recv(), netconn_send(), and netconn_write().

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arch_8h-source.html b/doc/html/arch_8h-source.html index 4b7e345..62c4243 100644 --- a/doc/html/arch_8h-source.html +++ b/doc/html/arch_8h-source.html @@ -91,7 +91,7 @@ 00059 #endif /* PACK_STRUCT_FIELD */ 00060 00061 #endif /* __LWIP_ARCH_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arch_8h.html b/doc/html/arch_8h.html index 5419eea..2244f67 100644 --- a/doc/html/arch_8h.html +++ b/doc/html/arch_8h.html @@ -79,7 +79,7 @@ Definition at line 39 of file arch.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arp_8c-source.html b/doc/html/arp_8c-source.html index dcd36f9..8d81234 100644 --- a/doc/html/arp_8c-source.html +++ b/doc/html/arp_8c-source.html @@ -337,7 +337,7 @@ 00305 00306 00307 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arp_8c.html b/doc/html/arp_8c.html index ed8977f..4b84048 100644 --- a/doc/html/arp_8c.html +++ b/doc/html/arp_8c.html @@ -549,7 +549,7 @@

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arp_8h-source.html b/doc/html/arp_8h-source.html index 53c04c1..069b915 100644 --- a/doc/html/arp_8h-source.html +++ b/doc/html/arp_8h-source.html @@ -125,7 +125,7 @@ 00093 struct ip_addr *ipaddr); 00094 00095 #endif /* __NETIF_ARP_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/arp_8h.html b/doc/html/arp_8h.html index b0e4388..341e700 100644 --- a/doc/html/arp_8h.html +++ b/doc/html/arp_8h.html @@ -355,7 +355,7 @@

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/assert_8c-source.html b/doc/html/assert_8c-source.html index 9e926d6..b486c82 100644 --- a/doc/html/assert_8c-source.html +++ b/doc/html/assert_8c-source.html @@ -98,7 +98,7 @@ 00066 END 00067 ***/ 00068 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/assert_8c.html b/doc/html/assert_8c.html index 394f50e..dc3700f 100644 --- a/doc/html/assert_8c.html +++ b/doc/html/assert_8c.html @@ -89,7 +89,7 @@ References kpanic(), kprintf(), and NULL.

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/assert_8h-source.html b/doc/html/assert_8h-source.html index fe438fe..e367cd3 100644 --- a/doc/html/assert_8h-source.html +++ b/doc/html/assert_8h-source.html @@ -100,7 +100,7 @@ 00068 __BEGIN_DECLS 00069 void __assert(const char *, const char *, int, const char *); 00070 __END_DECLS -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/assert_8h.html b/doc/html/assert_8h.html index 1bd021a..58b6a5d 100644 --- a/doc/html/assert_8h.html +++ b/doc/html/assert_8h.html @@ -129,7 +129,7 @@

Definition at line 64 of file assert.h.

-Referenced by adjustCowCounter(), biosCall(), bTree::bTree(), execFile(), execThread(), fclose(), bTree::findLeafNode(), fork_copyProcess(), fread(), freePage(), bTree::Info(), bTree::Insert(), insertFreeDesc(), kfree(), kmalloc(), kmod_load(), ldEnable(), UbixFS::mknod(), NICtoPC(), openFileUbixFS(), PCtoNIC(), ramDrive_read(), ramDrive_write(), readUbixFS(), bTree::Save(), bTree::saveNode(), bTree::splitNode(), sysExec(), ubixfs_cacheAdd(), ubixfs_cacheFind(), ubixfs_cacheNew(), ubixfs_initialize(), ubixfs_loadData(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), UbixFS::vfs_read(), UbixFS::vfs_write(), writeFileByte(), and writeUbixFS(). +Referenced by adjustCowCounter(), biosCall(), bTree::bTree(), execFile(), execThread(), fclose(), bTree::findLeafNode(), fork_copyProcess(), fread(), freePage(), bTree::Info(), bTree::Insert(), insertFreeDesc(), kfree(), kmalloc(), kmod_load(), ldEnable(), UbixFS::mknod(), NICtoPC(), openFileUbixFS(), PCtoNIC(), ramDrive_read(), ramDrive_write(), readUbixFS(), bTree::Save(), bTree::saveNode(), bTree::splitNode(), sysExec(), ubixfs_cacheAdd(), ubixfs_cacheFind(), ubixfs_cacheNew(), ubixfs_initialize(), ubixfs_loadData(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), UbixFS::vfs_read(), UbixFS::vfs_write(), writeFileByte(), and writeUbixFS().


Function Documentation

@@ -178,7 +178,7 @@ References kpanic(), kprintf(), and NULL.

-


Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atan_8c-source.html b/doc/html/atan_8c-source.html index b8f410b..627ebe1 100644 --- a/doc/html/atan_8c-source.html +++ b/doc/html/atan_8c-source.html @@ -91,7 +91,7 @@ 00059 END 00060 ***/ 00061 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atan_8c.html b/doc/html/atan_8c.html index fea2331..090761d 100644 --- a/doc/html/atan_8c.html +++ b/doc/html/atan_8c.html @@ -64,7 +64,7 @@ Definition at line 32 of file atan.c.

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atkbd_8c-source.html b/doc/html/atkbd_8c-source.html index d16806a..3554a79 100644 --- a/doc/html/atkbd_8c-source.html +++ b/doc/html/atkbd_8c-source.html @@ -69,454 +69,456 @@ 00037 #include <lib/kprintf.h> 00038 #include <ubixos/types.h> 00039 #include <ubixos/sched.h> -00040 #include <ubixos/vitals.h> -00041 #include <ubixos/endtask.h> -00042 #include <ubixos/tty.h> -00043 #include <ubixos/spinlock.h> -00044 -00045 static int atkbd_scan(); -00046 -00047 static unsigned int keyMap = 0x0; -00048 static unsigned int ledStatus = 0x0; -00049 static char stdinBuffer[512]; -00050 static uInt16 stdinSize; -00051 static uInt32 controlKeys = 0x0; -00052 -00053 static spinLock_t atkbdSpinLock = SPIN_LOCK_INITIALIZER; -00054 -00055 static unsigned int keyboardMap[255][8] = { -00056 /* Ascii, Shift, Ctrl, Alt, Num, Caps, Shift Caps, Shift Num */ -00057 { 0, 0, 0, 0, 0, 0, 0, 0}, -00058 /* ESC */ { 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B}, -00059 /* 1,! */ { 0x31, 0x21, 0, 0, 0x31, 0x31, 0x21, 0x21}, -00060 /* 2,@ */ { 0x32, 0x40, 0, 0, 0x32, 0x32, 0x40, 0x40}, -00061 /* 3,# */ { 0x33, 0x23, 0, 0, 0x33, 0x33, 0x23, 0x23}, -00062 /* 4,$ */ { 0x34, 0x24, 0, 0, 0x34, 0x34, 0x24, 0x24}, -00063 /* 5,% */ { 0x35, 0x25, 0, 0, 0x35, 0x35, 0x25, 0x25}, -00064 /* 6,^ */ { 0x36, 0x5E, 0, 0, 0x36, 0x36, 0x5E, 0x5E}, -00065 /* 7,& */ { 0x37, 0x26, 0, 0, 0x37, 0x37, 0x26, 0x26}, -00066 /* 8,* */ { 0x38, 0x2A, 0, 0, 0x38, 0x38, 0x2A, 0x2A}, -00067 /* 9.( */ { 0x39, 0x28, 0, 0, 0x39, 0x39, 0x28, 0x28}, -00068 /* 0,) */ { 0x30, 0x29, 0, 0, 0x30, 0x30, 0x29, 0x29}, -00069 /* -,_ */ { 0x2D, 0x5F, 0, 0, 0x2D, 0x2D, 0x5F, 0x5F}, -00070 /* =,+ */ { 0x3D, 0x2B, 0, 0, 0x3D, 0x3D, 0x2B, 0x2B}, -00071 /* 14 */ { 0x08, 0x08, 0x8, 0x8, 0x08, 0x08, 0x08, 0x08}, -00072 /* 15 */ { 0x09, 0, 0, 0, 0, 0, 0, 0}, -00073 /* */ { 0x71, 0x51, 0, 0, 0, 0, 0, 0}, -00074 /* */ { 0x77, 0x57, 0, 0, 0, 0, 0, 0}, -00075 /* */ { 0x65, 0x45, 0, 0, 0, 0, 0, 0}, -00076 /* */ { 0x72, 0x52, 0, 0, 0, 0, 0, 0}, -00077 /* */ { 0x74, 0x54, 0, 0, 0, 0, 0, 0}, -00078 /* */ { 0x79, 0x59, 0, 0, 0, 0, 0, 0}, -00079 /* */ { 0x75, 0x55, 0, 0, 0, 0, 0, 0}, -00080 /* */ { 0x69, 0x49, 0, 0, 0, 0, 0, 0}, -00081 /* */ { 0x6F, 0x4F, 0, 0, 0, 0, 0, 0}, -00082 /* */ { 0x70, 0x50, 0, 0, 0, 0, 0, 0}, -00083 /* */ { 0x5B, 0x7B, 0, 0, 0, 0, 0, 0}, -00084 /* */ { 0x5D, 0x7D, 0, 0, 0, 0, 0, 0}, -00085 /* */ { 0x0A, 0, 0, 0, 0, 0, 0, 0}, -00086 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00087 /* a,A */ { 0x61, 0x41, 0x41, 0, 0, 0, 0, 0}, -00088 /* */ { 0x73, 0x53, 0, 0, 0, 0, 0, 0}, -00089 /* */ { 0x64, 0x44, 0, 0, 0, 0, 0, 0}, -00090 /* */ { 0x66, 0x46, 0, 0, 0, 0, 0, 0}, -00091 /* */ { 0x67, 0x47, 0, 0, 0, 0, 0, 0}, -00092 /* */ { 0x68, 0x48, 0, 0, 0, 0, 0, 0}, -00093 /* */ { 0x6A, 0x4A, 0, 0, 0, 0, 0, 0}, -00094 /* */ { 0x6B, 0x4B, 0, 0, 0, 0, 0, 0}, -00095 /* */ { 0x6C, 0x4C, 0, 0, 0, 0, 0, 0}, -00096 /* */ { 0x3B, 0x3A, 0, 0, 0, 0, 0, 0}, -00097 /* */ { 0x27, 0x22, 0, 0, 0, 0, 0, 0}, -00098 /* */ { 0x60, 0x7E, 0, 0, 0, 0, 0, 0}, -00099 /* */ { 0x2A, 0x0, 0, 0, 0, 0, 0, 0}, -00100 /* */ { 0x5C, 0x3C, 0, 0, 0, 0, 0, 0}, -00101 /* */ { 0x7A, 0x5A, 0, 0, 0, 0, 0, 0}, -00102 /* */ { 0x78, 0x58, 0, 0, 0, 0, 0, 0}, -00103 /* c,C */ { 0x63, 0x43, 0x3, 0x9, 0, 0, 0, 0}, -00104 /* */ { 0x76, 0x56, 0, 0, 0, 0, 0, 0}, -00105 /* */ { 0x62, 0x42, 0, 0, 0, 0, 0, 0}, -00106 /* */ { 0x6E, 0x4E, 0, 0, 0, 0, 0, 0}, -00107 /* */ { 0x6D, 0x4D, 0, 0, 0, 0, 0, 0}, -00108 /* */ { 0x2C, 0x3C, 0, 0, 0, 0, 0, 0}, -00109 /* */ { 0x2E, 0x3E, 0, 0, 0, 0, 0, 0}, -00110 /* */ { 0x2F, 0x3F, 0, 0, 0, 0, 0, 0}, +00040 #include <ubixos/endtask.h> +00041 #include <ubixos/tty.h> +00042 #include <ubixos/spinlock.h> +00043 +00044 static int atkbd_scan(); +00045 +00046 static unsigned int keyMap = 0x0; +00047 static unsigned int ledStatus = 0x0; +00048 static char stdinBuffer[512]; +00049 static uInt16 stdinSize; +00050 static uInt32 controlKeys = 0x0; +00051 +00052 static spinLock_t atkbdSpinLock = SPIN_LOCK_INITIALIZER; +00053 +00054 static unsigned int keyboardMap[255][8] = { +00055 /* Ascii, Shift, Ctrl, Alt, Num, Caps, Shift Caps, Shift Num */ +00056 { 0, 0, 0, 0, 0, 0, 0, 0}, +00057 /* ESC */ { 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B}, +00058 /* 1,! */ { 0x31, 0x21, 0, 0, 0x31, 0x31, 0x21, 0x21}, +00059 /* 2,@ */ { 0x32, 0x40, 0, 0, 0x32, 0x32, 0x40, 0x40}, +00060 /* 3,# */ { 0x33, 0x23, 0, 0, 0x33, 0x33, 0x23, 0x23}, +00061 /* 4,$ */ { 0x34, 0x24, 0, 0, 0x34, 0x34, 0x24, 0x24}, +00062 /* 5,% */ { 0x35, 0x25, 0, 0, 0x35, 0x35, 0x25, 0x25}, +00063 /* 6,^ */ { 0x36, 0x5E, 0, 0, 0x36, 0x36, 0x5E, 0x5E}, +00064 /* 7,& */ { 0x37, 0x26, 0, 0, 0x37, 0x37, 0x26, 0x26}, +00065 /* 8,* */ { 0x38, 0x2A, 0, 0, 0x38, 0x38, 0x2A, 0x2A}, +00066 /* 9.( */ { 0x39, 0x28, 0, 0, 0x39, 0x39, 0x28, 0x28}, +00067 /* 0,) */ { 0x30, 0x29, 0, 0, 0x30, 0x30, 0x29, 0x29}, +00068 /* -,_ */ { 0x2D, 0x5F, 0, 0, 0x2D, 0x2D, 0x5F, 0x5F}, +00069 /* =,+ */ { 0x3D, 0x2B, 0, 0, 0x3D, 0x3D, 0x2B, 0x2B}, +00070 /* 14 */ { 0x08, 0x08, 0x8, 0x8, 0x08, 0x08, 0x08, 0x08}, +00071 /* 15 */ { 0x09, 0, 0, 0, 0, 0, 0, 0}, +00072 /* */ { 0x71, 0x51, 0, 0, 0, 0, 0, 0}, +00073 /* */ { 0x77, 0x57, 0, 0, 0, 0, 0, 0}, +00074 /* */ { 0x65, 0x45, 0, 0, 0, 0, 0, 0}, +00075 /* */ { 0x72, 0x52, 0, 0, 0, 0, 0, 0}, +00076 /* */ { 0x74, 0x54, 0, 0, 0, 0, 0, 0}, +00077 /* */ { 0x79, 0x59, 0, 0, 0, 0, 0, 0}, +00078 /* */ { 0x75, 0x55, 0, 0, 0, 0, 0, 0}, +00079 /* */ { 0x69, 0x49, 0, 0, 0, 0, 0, 0}, +00080 /* */ { 0x6F, 0x4F, 0, 0, 0, 0, 0, 0}, +00081 /* */ { 0x70, 0x50, 0, 0, 0, 0, 0, 0}, +00082 /* */ { 0x5B, 0x7B, 0, 0, 0, 0, 0, 0}, +00083 /* */ { 0x5D, 0x7D, 0, 0, 0, 0, 0, 0}, +00084 /* */ { 0x0A, 0, 0, 0, 0, 0, 0, 0}, +00085 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, +00086 /* a,A */ { 0x61, 0x41, 0x41, 0, 0, 0, 0, 0}, +00087 /* */ { 0x73, 0x53, 0, 0, 0, 0, 0, 0}, +00088 /* */ { 0x64, 0x44, 0, 0, 0, 0, 0, 0}, +00089 /* */ { 0x66, 0x46, 0, 0, 0, 0, 0, 0}, +00090 /* */ { 0x67, 0x47, 0, 0, 0, 0, 0, 0}, +00091 /* */ { 0x68, 0x48, 0, 0, 0, 0, 0, 0}, +00092 /* */ { 0x6A, 0x4A, 0, 0, 0, 0, 0, 0}, +00093 /* */ { 0x6B, 0x4B, 0, 0, 0, 0, 0, 0}, +00094 /* */ { 0x6C, 0x4C, 0, 0, 0, 0, 0, 0}, +00095 /* */ { 0x3B, 0x3A, 0, 0, 0, 0, 0, 0}, +00096 /* */ { 0x27, 0x22, 0, 0, 0, 0, 0, 0}, +00097 /* */ { 0x60, 0x7E, 0, 0, 0, 0, 0, 0}, +00098 /* */ { 0x2A, 0x0, 0, 0, 0, 0, 0, 0}, +00099 /* */ { 0x5C, 0x3C, 0, 0, 0, 0, 0, 0}, +00100 /* */ { 0x7A, 0x5A, 0, 0, 0, 0, 0, 0}, +00101 /* */ { 0x78, 0x58, 0, 0, 0, 0, 0, 0}, +00102 /* c,C */ { 0x63, 0x43, 0x3, 0x9, 0, 0, 0, 0}, +00103 /* */ { 0x76, 0x56, 0, 0, 0, 0, 0, 0}, +00104 /* */ { 0x62, 0x42, 0, 0, 0, 0, 0, 0}, +00105 /* */ { 0x6E, 0x4E, 0, 0, 0, 0, 0, 0}, +00106 /* */ { 0x6D, 0x4D, 0, 0, 0, 0, 0, 0}, +00107 /* */ { 0x2C, 0x3C, 0, 0, 0, 0, 0, 0}, +00108 /* */ { 0x2E, 0x3E, 0, 0, 0, 0, 0, 0}, +00109 /* */ { 0x2F, 0x3F, 0, 0, 0, 0, 0, 0}, +00110 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, 00111 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, 00112 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00113 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00114 /* */ { 0x20, 0, 0, 0, 0, 0, 0, 0}, -00115 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00116 /* F1 */ { 0x3000, 0, 0, 0x3000, 0, 0, 0, 0}, -00117 /* */ { 0x3001, 0, 0, 0x3001, 0, 0, 0, 0}, -00118 /* */ { 0x3002, 0, 0, 0x3002, 0, 0, 0, 0}, -00119 /* */ { 0x3003, 0, 0, 0x3003, 0, 0, 0, 0}, -00120 /* */ { 0x3004, 0, 0, 0x3004, 0, 0, 0, 0}, -00121 /* */ { 0x4000, 0, 0, 0, 0, 0, 0, 0}, -00122 /* */ { 0x4100, 0, 0, 0, 0, 0, 0, 0}, -00123 /* */ { 0x4200, 0, 0, 0, 0, 0, 0, 0}, -00124 /* */ { 0x4300, 0, 0, 0, 0, 0, 0, 0}, -00125 /* */ { 0x4400, 0, 0, 0, 0, 0, 0, 0}, +00113 /* */ { 0x20, 0, 0, 0, 0, 0, 0, 0}, +00114 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, +00115 /* F1 */ { 0x3000, 0, 0, 0x3000, 0, 0, 0, 0}, +00116 /* */ { 0x3001, 0, 0, 0x3001, 0, 0, 0, 0}, +00117 /* */ { 0x3002, 0, 0, 0x3002, 0, 0, 0, 0}, +00118 /* */ { 0x3003, 0, 0, 0x3003, 0, 0, 0, 0}, +00119 /* */ { 0x3004, 0, 0, 0x3004, 0, 0, 0, 0}, +00120 /* */ { 0x4000, 0, 0, 0, 0, 0, 0, 0}, +00121 /* */ { 0x4100, 0, 0, 0, 0, 0, 0, 0}, +00122 /* */ { 0x4200, 0, 0, 0, 0, 0, 0, 0}, +00123 /* */ { 0x4300, 0, 0, 0, 0, 0, 0, 0}, +00124 /* */ { 0x4400, 0, 0, 0, 0, 0, 0, 0}, +00125 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, 00126 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00127 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00128 /* */ { 0x4700, 0, 0, 0, 0, 0, 0, 0}, -00129 /* */ { 0x4800, 0, 0, 0, 0, 0, 0, 0}, -00130 /* */ { 0x4900, 0, 0, 0, 0, 0, 0, 0}, -00131 /* */ { 0x2D, 0, 0, 0, 0, 0, 0, 0}, -00132 /* */ { 0x4B00, 0, 0, 0, 0, 0, 0, 0}, -00133 /* */ { 0x4C00, 0, 0, 0, 0, 0, 0, 0}, -00134 /* */ { 0x4D00, 0, 0, 0, 0, 0, 0, 0}, -00135 /* */ { 0x2B, 0, 0, 0, 0, 0, 0, 0}, -00136 /* */ { 0x4F00, 0, 0, 0, 0, 0, 0, 0}, -00137 /* */ { 0x5000, 0, 0, 0, 0, 0, 0, 0}, -00138 /* */ { 0x5100, 0, 0, 0, 0, 0, 0, 0}, -00139 /* */ { 0x5200, 0, 0, 0, 0, 0, 0, 0}, -00140 /* */ { 0x5300, 0, 0, 0, 0, 0, 0, 0}, -00141 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, -00142 /* */ { 0, 0, 0, 0, 0, 0, 0, 0} -00143 }; -00144 -00145 /************************************************************************ -00146 -00147 Function: int atkbd_init -00148 -00149 Description: This function is used to turn on the keyboard -00150 -00151 Notes: -00152 -00153 02/20/2004 - Approved for quality -00154 -00155 ************************************************************************/ -00156 int atkbd_init() { -00157 /* Insert the IDT vector for the keyboard handler */ -00158 setVector(&atkbd_isr, mVec+0x1, dPresent + dInt + dDpl0); -00159 -00160 /* Set the LEDS to their defaults */ -00161 setLED(); -00162 -00163 /* Clear Keyboard */ -00164 atkbd_scan(); -00165 -00166 /* Turn on the keyboard vector */ -00167 irqEnable(0x1); -00168 -00169 /* Print out information on keyboard */ -00170 kprintf("atkbd0 - Address: [0x%X], Keyboard Buffer: [0x%X], Buffer Size [%i]\n",&atkbd_isr,&stdinBuffer,512); -00171 -00172 /* Return so we know everything went well */ -00173 return(0x0); -00174 } -00175 -00176 /* -00177 * 2-23-2004 mji I think the pusha/popa should be pushal/popal -00178 */ -00179 -00180 asm( -00181 ".globl atkbd_isr \n" -00182 "atkbd_isr: \n" -00183 " pusha \n" /* Save all registers */ -00184 " push %ss \n" -00185 " push %ds \n" -00186 " push %es \n" -00187 " push %fs \n" -00188 " push %gs \n" -00189 " call keyboardHandler \n" -00190 " mov $0x20,%dx \n" -00191 " mov $0x20,%ax \n" -00192 " outb %al,%dx \n" -00193 " pop %gs \n" -00194 " pop %fs \n" -00195 " pop %es \n" -00196 " pop %ds \n" -00197 " pop %ss \n" -00198 " popa \n" -00199 " iret \n" /* Exit interrupt */ -00200 ); -00201 -00202 static int atkbd_scan() { -00203 int code = 0x0; -00204 int val = 0x0; -00205 -00206 code = inportByte(0x60); -00207 val = inportByte(0x61); -00208 -00209 outportByte(0x61,val | 0x80); -00210 outportByte(0x61,val); -00211 -00212 return(code); -00213 } -00214 -00215 void keyboardHandler() { -00216 int key = 0x0; -00217 -00218 if (!spinTryLock(&atkbdSpinLock)) -00219 return; -00220 -00221 key = atkbd_scan(); -00222 -00223 if (key > 255) -00224 return; -00225 -00226 /* Control Key */ -00227 if (key == 0x1D && !(controlKeys & controlKey)) { -00228 controlKeys |= controlKey; -00229 } -00230 if (key == 0x80 + 0x1D) { -00231 controlKeys &= (0xFF - controlKey); -00232 } -00233 /* ALT Key */ -00234 if (key == 0x38 && !(controlKeys & altKey)) { -00235 controlKeys |= altKey; -00236 } -00237 if (key == 0x80 + 0x38) { -00238 controlKeys &= (0xFF - altKey); -00239 } -00240 /* Shift Key */ -00241 if ((key == 0x2A || key == 0x36) && !(controlKeys & shiftKey)) { -00242 controlKeys |= shiftKey; -00243 } -00244 if ((key == 0x80 + 0x2A) || (key == 0x80 + 0x36)) { -00245 controlKeys &= (0xFF - shiftKey); -00246 } -00247 /* Caps Lock */ -00248 if (key == 0x3A) { -00249 ledStatus ^= ledCapslock; -00250 setLED(); -00251 } -00252 /* Num Lock */ -00253 if (key == 0x45) { -00254 ledStatus ^= ledNumlock; -00255 setLED(); -00256 } -00257 /* Scroll Lock */ -00258 if (key == 0x46) { -00259 ledStatus ^= ledScrolllock; -00260 setLED(); -00261 } -00262 /* Pick Which Key Map */ -00263 if (controlKeys == 0) { keyMap = 0; } -00264 else if (controlKeys == 1) { keyMap = 1; } -00265 else if (controlKeys == 2) { keyMap = 2; } -00266 else if (controlKeys == 4) { keyMap = 3; } -00267 /* If Key Is Not Null Add It To Handler */ -00268 if (((uInt)(keyboardMap[key][keyMap]) > 0) && ((uInt32)(keyboardMap[key][keyMap]) < 0xFF)) { -00269 switch ((uInt32)keyboardMap[key][keyMap]) { -00270 case 8: -00271 backSpace(); -00272 if (tty_foreground == 0x0) { -00273 stdinBuffer[stdinSize] = keyboardMap[key][keyMap]; -00274 stdinSize++; -00275 } -00276 else { -00277 tty_foreground->stdin[tty_foreground->stdinSize] = keyboardMap[key][keyMap]; -00278 tty_foreground->stdinSize++; -00279 } -00280 break; -00281 case 0x3: -00282 //if (tty_foreground != 0x0) -00283 // endTask(tty_foreground->owner); -00284 //kprintf("CTRL-C pressed\n"); -00285 kprintf("FreePages: [0x%X]\n",systemVitals->freePages); -00286 break; -00287 case 0x9: -00288 kprintf("REBOOTING"); -00289 while(inportByte(0x64) & 0x02); -00290 outportByte(0x64, 0xFE); -00291 break; -00292 default: -00293 if (tty_foreground == 0x0) { -00294 stdinBuffer[stdinSize] = keyboardMap[key][keyMap]; -00295 stdinSize++; -00296 } -00297 else { -00298 tty_foreground->stdin[tty_foreground->stdinSize] = keyboardMap[key][keyMap]; -00299 tty_foreground->stdinSize++; -00300 } -00301 break; -00302 } -00303 } -00304 else { -00305 switch ((keyboardMap[key][keyMap] >> 8)) { -00306 case 0x30: -00307 tty_change(keyboardMap[key][keyMap] & 0xFF); -00308 //kprintf("Changing Consoles[0x%X:0x%X]\n",_current->id,_current); -00309 break; -00310 default: -00311 break; -00312 } -00313 } -00314 -00315 /* Return */ -00316 spinUnlock(&atkbdSpinLock); -00317 return; -00318 } -00319 -00320 void setLED() { -00321 outportByte(0x60, 0xED); -00322 while(inportByte(0x64) & 2); -00323 outportByte(0x60, ledStatus); -00324 while(inportByte(0x64) & 2); -00325 } -00326 -00327 /* Temp */ -00328 unsigned char getch() { -00329 uInt8 retKey = 0x0; -00330 uInt32 i = 0x0; -00331 -00332 /* -00333 if ((stdinSize <= 0) && (tty_foreground == 0x0)) { -00334 sched_yield(); -00335 } -00336 if ((tty_foreground != 0x0) && (tty_foreground->stdinSize <= 0x0)) { -00337 sched_yield(); -00338 } -00339 */ -00340 -00341 /* -00342 if (!spinTryLock(&atkbdSpinLock)) -00343 return(0x0); -00344 */ -00345 -00346 if (tty_foreground == 0x0) { -00347 if (stdinSize == 0x0) { -00348 // spinUnlock(&atkbdSpinLock); -00349 return(0x0); -00350 } -00351 -00352 retKey = stdinBuffer[0]; -00353 stdinSize--; -00354 -00355 for (i=0x0;i<stdinSize;i++) { -00356 stdinBuffer[i] = stdinBuffer[i+0x1]; -00357 } -00358 } -00359 else { -00360 if (tty_foreground->stdinSize == 0x0) { -00361 // spinUnlock(&atkbdSpinLock); -00362 return(0x0); -00363 } -00364 -00365 retKey = tty_foreground->stdin[0]; -00366 tty_foreground->stdinSize--; -00367 -00368 for (i=0x0;i<tty_foreground->stdinSize;i++) { -00369 tty_foreground->stdin[i] = tty_foreground->stdin[i+0x1]; -00370 } -00371 } -00372 //spinUnlock(&atkbdSpinLock); -00373 return(retKey); -00374 } -00375 -00376 /*** -00377 -00378 $Log$ -00379 Revision 1.3 2006/12/01 05:12:35 reddawg -00380 We're almost there... :) -00381 -00382 Revision 1.2 2006/10/19 17:52:17 reddawg -00383 Working On Userland -00384 -00385 Revision 1.1.1.1 2006/06/01 12:46:12 reddawg -00386 ubix2 -00387 -00388 Revision 1.2 2005/10/12 00:13:37 reddawg -00389 Removed -00390 -00391 Revision 1.1.1.1 2005/09/26 17:24:01 reddawg -00392 no message -00393 -00394 Revision 1.29 2004/09/11 21:38:00 reddawg -00395 Fixed a few problems -00396 -00397 Revision 1.28 2004/09/08 23:19:58 reddawg -00398 hmm -00399 -00400 Revision 1.27 2004/09/07 21:54:38 reddawg -00401 ok reverted back to old scheduling for now.... -00402 -00403 Revision 1.26 2004/09/06 22:18:52 reddawg -00404 ok bed time -00405 -00406 Revision 1.25 2004/09/06 22:11:29 reddawg -00407 tty: now each tty has a stdin.... -00408 -00409 Revision 1.24 2004/09/06 15:13:25 reddawg -00410 Last commit before FreeBSD 6.0 -00411 -00412 Revision 1.23 2004/08/21 23:47:50 reddawg -00413 *** empty log message *** -00414 -00415 Revision 1.22 2004/08/09 12:58:05 reddawg -00416 let me know when you got the surce -00417 -00418 Revision 1.21 2004/08/06 22:32:16 reddawg -00419 Ubix Works Again -00420 -00421 Revision 1.19 2004/08/03 18:31:19 reddawg -00422 virtual terms -00423 -00424 Revision 1.18 2004/07/29 21:32:16 reddawg -00425 My quick lunchs breaks worth of updates.... -00426 -00427 Revision 1.17 2004/07/28 18:45:39 reddawg -00428 movement of files -00429 -00430 Revision 1.16 2004/07/28 17:07:25 reddawg -00431 MPI: moved the syscalls -00432 -00433 Revision 1.15 2004/07/26 19:15:49 reddawg -00434 test code, fixes and the like -00435 -00436 Revision 1.14 2004/07/25 05:32:58 reddawg -00437 fixed -00438 -00439 Revision 1.13 2004/07/25 05:24:39 reddawg -00440 atkbd: removed sti... does it still miss keys -00441 -00442 Revision 1.12 2004/07/24 20:00:51 reddawg -00443 Lots of changes to the vmm subsystem.... Page faults have been adjust to now be blocking on a per thread basis not system wide. This has resulted in no more deadlocks.. also the addition of per thread locking has removed segfaults as a result of COW in which two tasks fault the same COW page and try to modify it. -00444 -00445 Revision 1.11 2004/07/24 15:12:56 reddawg -00446 Now I'm current -00447 -00448 Revision 1.10 2004/07/23 17:49:58 reddawg -00449 atkbd: adjust the timing issue on the driver hopefully it will work fine now -00450 -00451 Revision 1.9 2004/07/23 17:37:35 reddawg -00452 Fix -00453 -00454 Revision 1.8 2004/07/23 09:10:06 reddawg -00455 ubixfs: cleaned up some functions played with the caching a bit -00456 vfs: renamed a bunch of functions -00457 cleaned up a few misc bugs -00458 -00459 Revision 1.7 2004/07/22 20:53:07 reddawg -00460 atkbd: fixed problem -00461 -00462 Revision 1.6 2004/07/09 13:34:51 reddawg -00463 keyboard: keyboardInit to atkbd_init -00464 Adjusted initialization routines -00465 -00466 Revision 1.5 2004/06/17 14:49:14 reddawg -00467 atkbd: converted some variables to static -00468 -00469 Revision 1.4 2004/06/04 10:19:42 reddawg -00470 notes: we compile again, thank g-d anyways i was about to cry -00471 -00472 Revision 1.3 2004/05/19 04:07:42 reddawg -00473 kmalloc(size,pid) no more it is no kmalloc(size); the way it should of been -00474 -00475 Revision 1.2 2004/05/10 02:23:24 reddawg -00476 Minor Changes To Source Code To Prepare It For Open Source Release -00477 -00478 Revision 1.1.1.1 2004/04/15 12:07:09 reddawg -00479 UbixOS v1.0 -00480 -00481 Revision 1.19 2004/04/13 16:36:33 reddawg -00482 Changed our copyright, it is all now under a BSD-Style license -00483 -00484 END -00485 ***/ -00486 -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +00127 /* */ { 0x4700, 0, 0, 0, 0, 0, 0, 0}, +00128 /* */ { 0x4800, 0, 0, 0, 0, 0, 0, 0}, +00129 /* */ { 0x4900, 0, 0, 0, 0, 0, 0, 0}, +00130 /* */ { 0x2D, 0, 0, 0, 0, 0, 0, 0}, +00131 /* */ { 0x4B00, 0, 0, 0, 0, 0, 0, 0}, +00132 /* */ { 0x4C00, 0, 0, 0, 0, 0, 0, 0}, +00133 /* */ { 0x4D00, 0, 0, 0, 0, 0, 0, 0}, +00134 /* */ { 0x2B, 0, 0, 0, 0, 0, 0, 0}, +00135 /* */ { 0x4F00, 0, 0, 0, 0, 0, 0, 0}, +00136 /* */ { 0x5000, 0, 0, 0, 0, 0, 0, 0}, +00137 /* */ { 0x5100, 0, 0, 0, 0, 0, 0, 0}, +00138 /* */ { 0x5200, 0, 0, 0, 0, 0, 0, 0}, +00139 /* */ { 0x5300, 0, 0, 0, 0, 0, 0, 0}, +00140 /* */ { 0, 0, 0, 0, 0, 0, 0, 0}, +00141 /* */ { 0, 0, 0, 0, 0, 0, 0, 0} +00142 }; +00143 +00144 /************************************************************************ +00145 +00146 Function: int atkbd_init +00147 +00148 Description: This function is used to turn on the keyboard +00149 +00150 Notes: +00151 +00152 02/20/2004 - Approved for quality +00153 +00154 ************************************************************************/ +00155 int atkbd_init() { +00156 /* Insert the IDT vector for the keyboard handler */ +00157 setVector(&atkbd_isr, mVec+0x1, dPresent + dInt + dDpl0); +00158 +00159 /* Set the LEDS to their defaults */ +00160 setLED(); +00161 +00162 /* Clear Keyboard */ +00163 atkbd_scan(); +00164 +00165 /* Turn on the keyboard vector */ +00166 irqEnable(0x1); +00167 +00168 /* Print out information on keyboard */ +00169 kprintf("atkbd0 - Address: [0x%X], Keyboard Buffer: [0x%X], Buffer Size [%i]\n",&atkbd_isr,&stdinBuffer,512); +00170 +00171 /* Return so we know everything went well */ +00172 return(0x0); +00173 } +00174 +00175 /* +00176 * 2-23-2004 mji I think the pusha/popa should be pushal/popal +00177 */ +00178 +00179 asm( +00180 ".globl atkbd_isr \n" +00181 "atkbd_isr: \n" +00182 " pusha \n" /* Save all registers */ +00183 " push %ss \n" +00184 " push %ds \n" +00185 " push %es \n" +00186 " push %fs \n" +00187 " push %gs \n" +00188 " call keyboardHandler \n" +00189 " mov $0x20,%dx \n" +00190 " mov $0x20,%ax \n" +00191 " outb %al,%dx \n" +00192 " pop %gs \n" +00193 " pop %fs \n" +00194 " pop %es \n" +00195 " pop %ds \n" +00196 " pop %ss \n" +00197 " popa \n" +00198 " iret \n" /* Exit interrupt */ +00199 ); +00200 +00201 static int atkbd_scan() { +00202 int code = 0x0; +00203 int val = 0x0; +00204 +00205 code = inportByte(0x60); +00206 val = inportByte(0x61); +00207 +00208 outportByte(0x61,val | 0x80); +00209 outportByte(0x61,val); +00210 +00211 return(code); +00212 } +00213 +00214 void keyboardHandler() { +00215 int key = 0x0; +00216 +00217 if (!spinTryLock(&atkbdSpinLock)) +00218 return; +00219 +00220 key = atkbd_scan(); +00221 +00222 if (key > 255) +00223 return; +00224 +00225 /* Control Key */ +00226 if (key == 0x1D && !(controlKeys & controlKey)) { +00227 controlKeys |= controlKey; +00228 } +00229 if (key == 0x80 + 0x1D) { +00230 controlKeys &= (0xFF - controlKey); +00231 } +00232 /* ALT Key */ +00233 if (key == 0x38 && !(controlKeys & altKey)) { +00234 controlKeys |= altKey; +00235 } +00236 if (key == 0x80 + 0x38) { +00237 controlKeys &= (0xFF - altKey); +00238 } +00239 /* Shift Key */ +00240 if ((key == 0x2A || key == 0x36) && !(controlKeys & shiftKey)) { +00241 controlKeys |= shiftKey; +00242 } +00243 if ((key == 0x80 + 0x2A) || (key == 0x80 + 0x36)) { +00244 controlKeys &= (0xFF - shiftKey); +00245 } +00246 /* Caps Lock */ +00247 if (key == 0x3A) { +00248 ledStatus ^= ledCapslock; +00249 setLED(); +00250 } +00251 /* Num Lock */ +00252 if (key == 0x45) { +00253 ledStatus ^= ledNumlock; +00254 setLED(); +00255 } +00256 /* Scroll Lock */ +00257 if (key == 0x46) { +00258 ledStatus ^= ledScrolllock; +00259 setLED(); +00260 } +00261 /* Pick Which Key Map */ +00262 if (controlKeys == 0) { keyMap = 0; } +00263 else if (controlKeys == 1) { keyMap = 1; } +00264 else if (controlKeys == 2) { keyMap = 2; } +00265 else if (controlKeys == 4) { keyMap = 3; } +00266 /* If Key Is Not Null Add It To Handler */ +00267 if (((uInt)(keyboardMap[key][keyMap]) > 0) && ((uInt32)(keyboardMap[key][keyMap]) < 0xFF)) { +00268 switch ((uInt32)keyboardMap[key][keyMap]) { +00269 case 8: +00270 backSpace(); +00271 if (tty_foreground == 0x0) { +00272 stdinBuffer[stdinSize] = keyboardMap[key][keyMap]; +00273 stdinSize++; +00274 } +00275 else { +00276 tty_foreground->stdin[tty_foreground->stdinSize] = keyboardMap[key][keyMap]; +00277 tty_foreground->stdinSize++; +00278 } +00279 break; +00280 case 0x3: +00281 //if (tty_foreground != 0x0) +00282 // endTask(tty_foreground->owner); +00283 kprintf("CTRL-C pressed\n"); +00284 //kprintf("FreePages: [0x%X]\n",systemVitals->freePages); +00285 break; +00286 case 0x9: +00287 kprintf("REBOOTING"); +00288 while(inportByte(0x64) & 0x02); +00289 outportByte(0x64, 0xFE); +00290 break; +00291 default: +00292 if (tty_foreground == 0x0) { +00293 stdinBuffer[stdinSize] = keyboardMap[key][keyMap]; +00294 stdinSize++; +00295 } +00296 else { +00297 tty_foreground->stdin[tty_foreground->stdinSize] = keyboardMap[key][keyMap]; +00298 tty_foreground->stdinSize++; +00299 } +00300 break; +00301 } +00302 } +00303 else { +00304 switch ((keyboardMap[key][keyMap] >> 8)) { +00305 case 0x30: +00306 tty_change(keyboardMap[key][keyMap] & 0xFF); +00307 //kprintf("Changing Consoles[0x%X:0x%X]\n",_current->id,_current); +00308 break; +00309 default: +00310 break; +00311 } +00312 } +00313 +00314 /* Return */ +00315 spinUnlock(&atkbdSpinLock); +00316 return; +00317 } +00318 +00319 void setLED() { +00320 outportByte(0x60, 0xED); +00321 while(inportByte(0x64) & 2); +00322 outportByte(0x60, ledStatus); +00323 while(inportByte(0x64) & 2); +00324 } +00325 +00326 /* Temp */ +00327 unsigned char getch() { +00328 uInt8 retKey = 0x0; +00329 uInt32 i = 0x0; +00330 +00331 /* +00332 if ((stdinSize <= 0) && (tty_foreground == 0x0)) { +00333 sched_yield(); +00334 } +00335 if ((tty_foreground != 0x0) && (tty_foreground->stdinSize <= 0x0)) { +00336 sched_yield(); +00337 } +00338 */ +00339 +00340 /* +00341 if (!spinTryLock(&atkbdSpinLock)) +00342 return(0x0); +00343 */ +00344 +00345 if (tty_foreground == 0x0) { +00346 if (stdinSize == 0x0) { +00347 // spinUnlock(&atkbdSpinLock); +00348 return(0x0); +00349 } +00350 +00351 retKey = stdinBuffer[0]; +00352 stdinSize--; +00353 +00354 for (i=0x0;i<stdinSize;i++) { +00355 stdinBuffer[i] = stdinBuffer[i+0x1]; +00356 } +00357 } +00358 else { +00359 if (tty_foreground->stdinSize == 0x0) { +00360 // spinUnlock(&atkbdSpinLock); +00361 return(0x0); +00362 } +00363 +00364 retKey = tty_foreground->stdin[0]; +00365 tty_foreground->stdinSize--; +00366 +00367 for (i=0x0;i<tty_foreground->stdinSize;i++) { +00368 tty_foreground->stdin[i] = tty_foreground->stdin[i+0x1]; +00369 } +00370 } +00371 //spinUnlock(&atkbdSpinLock); +00372 return(retKey); +00373 } +00374 +00375 /*** +00376 +00377 $Log$ +00378 Revision 1.4 2006/12/05 14:10:21 reddawg +00379 Workign Distro +00380 +00381 Revision 1.3 2006/12/01 05:12:35 reddawg +00382 We're almost there... :) +00383 +00384 Revision 1.2 2006/10/19 17:52:17 reddawg +00385 Working On Userland +00386 +00387 Revision 1.1.1.1 2006/06/01 12:46:12 reddawg +00388 ubix2 +00389 +00390 Revision 1.2 2005/10/12 00:13:37 reddawg +00391 Removed +00392 +00393 Revision 1.1.1.1 2005/09/26 17:24:01 reddawg +00394 no message +00395 +00396 Revision 1.29 2004/09/11 21:38:00 reddawg +00397 Fixed a few problems +00398 +00399 Revision 1.28 2004/09/08 23:19:58 reddawg +00400 hmm +00401 +00402 Revision 1.27 2004/09/07 21:54:38 reddawg +00403 ok reverted back to old scheduling for now.... +00404 +00405 Revision 1.26 2004/09/06 22:18:52 reddawg +00406 ok bed time +00407 +00408 Revision 1.25 2004/09/06 22:11:29 reddawg +00409 tty: now each tty has a stdin.... +00410 +00411 Revision 1.24 2004/09/06 15:13:25 reddawg +00412 Last commit before FreeBSD 6.0 +00413 +00414 Revision 1.23 2004/08/21 23:47:50 reddawg +00415 *** empty log message *** +00416 +00417 Revision 1.22 2004/08/09 12:58:05 reddawg +00418 let me know when you got the surce +00419 +00420 Revision 1.21 2004/08/06 22:32:16 reddawg +00421 Ubix Works Again +00422 +00423 Revision 1.19 2004/08/03 18:31:19 reddawg +00424 virtual terms +00425 +00426 Revision 1.18 2004/07/29 21:32:16 reddawg +00427 My quick lunchs breaks worth of updates.... +00428 +00429 Revision 1.17 2004/07/28 18:45:39 reddawg +00430 movement of files +00431 +00432 Revision 1.16 2004/07/28 17:07:25 reddawg +00433 MPI: moved the syscalls +00434 +00435 Revision 1.15 2004/07/26 19:15:49 reddawg +00436 test code, fixes and the like +00437 +00438 Revision 1.14 2004/07/25 05:32:58 reddawg +00439 fixed +00440 +00441 Revision 1.13 2004/07/25 05:24:39 reddawg +00442 atkbd: removed sti... does it still miss keys +00443 +00444 Revision 1.12 2004/07/24 20:00:51 reddawg +00445 Lots of changes to the vmm subsystem.... Page faults have been adjust to now be blocking on a per thread basis not system wide. This has resulted in no more deadlocks.. also the addition of per thread locking has removed segfaults as a result of COW in which two tasks fault the same COW page and try to modify it. +00446 +00447 Revision 1.11 2004/07/24 15:12:56 reddawg +00448 Now I'm current +00449 +00450 Revision 1.10 2004/07/23 17:49:58 reddawg +00451 atkbd: adjust the timing issue on the driver hopefully it will work fine now +00452 +00453 Revision 1.9 2004/07/23 17:37:35 reddawg +00454 Fix +00455 +00456 Revision 1.8 2004/07/23 09:10:06 reddawg +00457 ubixfs: cleaned up some functions played with the caching a bit +00458 vfs: renamed a bunch of functions +00459 cleaned up a few misc bugs +00460 +00461 Revision 1.7 2004/07/22 20:53:07 reddawg +00462 atkbd: fixed problem +00463 +00464 Revision 1.6 2004/07/09 13:34:51 reddawg +00465 keyboard: keyboardInit to atkbd_init +00466 Adjusted initialization routines +00467 +00468 Revision 1.5 2004/06/17 14:49:14 reddawg +00469 atkbd: converted some variables to static +00470 +00471 Revision 1.4 2004/06/04 10:19:42 reddawg +00472 notes: we compile again, thank g-d anyways i was about to cry +00473 +00474 Revision 1.3 2004/05/19 04:07:42 reddawg +00475 kmalloc(size,pid) no more it is no kmalloc(size); the way it should of been +00476 +00477 Revision 1.2 2004/05/10 02:23:24 reddawg +00478 Minor Changes To Source Code To Prepare It For Open Source Release +00479 +00480 Revision 1.1.1.1 2004/04/15 12:07:09 reddawg +00481 UbixOS v1.0 +00482 +00483 Revision 1.19 2004/04/13 16:36:33 reddawg +00484 Changed our copyright, it is all now under a BSD-Style license +00485 +00486 END +00487 ***/ +00488 +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atkbd_8c.html b/doc/html/atkbd_8c.html index a760a46..1c91674 100644 --- a/doc/html/atkbd_8c.html +++ b/doc/html/atkbd_8c.html @@ -42,7 +42,6 @@ #include <lib/kprintf.h>
#include <ubixos/types.h>
#include <ubixos/sched.h>
-#include <ubixos/vitals.h>
#include <ubixos/endtask.h>
#include <ubixos/tty.h>
#include <ubixos/spinlock.h>
@@ -139,9 +138,9 @@

-Definition at line 156 of file atkbd.c. +Definition at line 155 of file atkbd.c.

-References atkbd_isr(), atkbd_scan(), dDpl0, dInt, dPresent, irqEnable(), kprintf(), mVec, setLED(), setVector(), stdinBuffer, and x1. +References atkbd_isr(), atkbd_scan(), dDpl0, dInt, dPresent, irqEnable(), kprintf(), mVec, setLED(), setVector(), stdinBuffer, and x1.

@@ -162,11 +161,11 @@

-Definition at line 202 of file atkbd.c. +Definition at line 201 of file atkbd.c.

References inportByte(), and outportByte().

-Referenced by atkbd_init(), and keyboardHandler(). +Referenced by atkbd_init(), and keyboardHandler().

@@ -187,9 +186,9 @@

-Definition at line 328 of file atkbd.c. +Definition at line 327 of file atkbd.c.

-References tty_termNode::stdin, stdinBuffer, tty_termNode::stdinSize, stdinSize, tty_foreground, and x1. +References tty_termNode::stdin, stdinBuffer, tty_termNode::stdinSize, stdinSize, tty_foreground, and x1.

Referenced by sysFgetc(). @@ -212,9 +211,9 @@

-Definition at line 215 of file atkbd.c. +Definition at line 214 of file atkbd.c.

-References altKey, atkbd_scan(), atkbdSpinLock, backSpace(), controlKey, controlKeys, inportByte(), keyboardMap, keyMap, kprintf(), ledCapslock, ledNumlock, ledScrolllock, ledStatus, outportByte(), setLED(), shiftKey, spinTryLock(), spinUnlock(), tty_termNode::stdin, stdinBuffer, tty_termNode::stdinSize, stdinSize, systemVitals, tty_change(), and tty_foreground. +References altKey, atkbd_scan(), atkbdSpinLock, backSpace(), controlKey, controlKeys, inportByte(), keyboardMap, keyMap, kprintf(), ledCapslock, ledNumlock, ledScrolllock, ledStatus, outportByte(), setLED(), shiftKey, spinTryLock(), spinUnlock(), tty_termNode::stdin, stdinBuffer, tty_termNode::stdinSize, stdinSize, tty_change(), and tty_foreground.

@@ -235,11 +234,11 @@

-Definition at line 320 of file atkbd.c. +Definition at line 319 of file atkbd.c.

-References inportByte(), ledStatus, and outportByte(). +References inportByte(), ledStatus, and outportByte().

-Referenced by atkbd_init(), and keyboardHandler(). +Referenced by atkbd_init(), and keyboardHandler().


Variable Documentation

@@ -257,9 +256,9 @@

-Definition at line 53 of file atkbd.c. +Definition at line 52 of file atkbd.c.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -276,9 +275,9 @@

-Definition at line 51 of file atkbd.c. +Definition at line 50 of file atkbd.c.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -295,9 +294,9 @@

-Definition at line 55 of file atkbd.c. +Definition at line 54 of file atkbd.c.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -314,9 +313,9 @@

-Definition at line 47 of file atkbd.c. +Definition at line 46 of file atkbd.c.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -333,9 +332,9 @@

-Definition at line 48 of file atkbd.c. +Definition at line 47 of file atkbd.c.

-Referenced by keyboardHandler(), and setLED(). +Referenced by keyboardHandler(), and setLED().

@@ -352,9 +351,9 @@

-Definition at line 49 of file atkbd.c. +Definition at line 48 of file atkbd.c.

-Referenced by atkbd_init(), getch(), and keyboardHandler(). +Referenced by atkbd_init(), getch(), and keyboardHandler().

@@ -371,12 +370,12 @@

-Definition at line 50 of file atkbd.c. +Definition at line 49 of file atkbd.c.

-Referenced by getch(), and keyboardHandler(). +Referenced by getch(), and keyboardHandler().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atkbd_8h-source.html b/doc/html/atkbd_8h-source.html index 91f75b9..800e7a4 100644 --- a/doc/html/atkbd_8h-source.html +++ b/doc/html/atkbd_8h-source.html @@ -100,7 +100,7 @@ 00068 00069 END 00070 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/atkbd_8h.html b/doc/html/atkbd_8h.html index e226336..8803d17 100644 --- a/doc/html/atkbd_8h.html +++ b/doc/html/atkbd_8h.html @@ -76,7 +76,7 @@

Definition at line 35 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -95,7 +95,7 @@

Definition at line 34 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -114,7 +114,7 @@

Definition at line 38 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -133,7 +133,7 @@

Definition at line 36 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -152,7 +152,7 @@

Definition at line 37 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().

@@ -171,7 +171,7 @@

Definition at line 33 of file atkbd.h.

-Referenced by keyboardHandler(). +Referenced by keyboardHandler().


Function Documentation

@@ -193,9 +193,9 @@

-Definition at line 156 of file atkbd.c. +Definition at line 155 of file atkbd.c.

-References atkbd_isr(), atkbd_scan(), dDpl0, dInt, dPresent, irqEnable(), kprintf(), mVec, setLED(), setVector(), stdinBuffer, and x1. +References atkbd_isr(), atkbd_scan(), dDpl0, dInt, dPresent, irqEnable(), kprintf(), mVec, setLED(), setVector(), stdinBuffer, and x1.

@@ -216,7 +216,7 @@

-Referenced by atkbd_init(). +Referenced by atkbd_init().

@@ -237,9 +237,9 @@

-Definition at line 215 of file atkbd.c. +Definition at line 214 of file atkbd.c.

-References altKey, atkbd_scan(), atkbdSpinLock, backSpace(), controlKey, controlKeys, inportByte(), keyboardMap, keyMap, kprintf(), ledCapslock, ledNumlock, ledScrolllock, ledStatus, outportByte(), setLED(), shiftKey, spinTryLock(), spinUnlock(), tty_termNode::stdin, stdinBuffer, stdinSize, tty_termNode::stdinSize, systemVitals, tty_change(), and tty_foreground. +References altKey, atkbd_scan(), atkbdSpinLock, backSpace(), controlKey, controlKeys, inportByte(), keyboardMap, keyMap, kprintf(), ledCapslock, ledNumlock, ledScrolllock, ledStatus, outportByte(), setLED(), shiftKey, spinTryLock(), spinUnlock(), tty_termNode::stdin, stdinBuffer, stdinSize, tty_termNode::stdinSize, tty_change(), and tty_foreground.

@@ -260,14 +260,14 @@

-Definition at line 320 of file atkbd.c. +Definition at line 319 of file atkbd.c.

-References inportByte(), ledStatus, and outportByte(). +References inportByte(), ledStatus, and outportByte().

-Referenced by atkbd_init(), and keyboardHandler(). +Referenced by atkbd_init(), and keyboardHandler().

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bioscall_8c-source.html b/doc/html/bioscall_8c-source.html index d450ac8..602308e 100644 --- a/doc/html/bioscall_8c-source.html +++ b/doc/html/bioscall_8c-source.html @@ -132,7 +132,7 @@ 00100 END 00101 ***/ 00102 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bioscall_8c.html b/doc/html/bioscall_8c.html index a321fd4..c66981d 100644 --- a/doc/html/bioscall_8c.html +++ b/doc/html/bioscall_8c.html @@ -143,12 +143,12 @@

Definition at line 50 of file bioscall.c.

-References _current, assert, tssStruct::back_link, bios16Code(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, tssStruct::io_map, kmalloc(), tssStruct::ldt, taskStruct::oInfo, READY, schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, tssStruct::trace_bitmap, taskStruct::tss, osInfo::v86Task, x1000, and x2000. +References _current, assert, tssStruct::back_link, bios16Code(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, tssStruct::io_map, kmalloc(), tssStruct::ldt, taskStruct::oInfo, READY, schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, tssStruct::trace_bitmap, taskStruct::tss, osInfo::v86Task, x1000, and x2000.

Referenced by systemTask().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bioscall_8h-source.html b/doc/html/bioscall_8h-source.html index d078587..0c32562 100644 --- a/doc/html/bioscall_8h-source.html +++ b/doc/html/bioscall_8h-source.html @@ -91,7 +91,7 @@ 00059 00060 END 00061 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bioscall_8h.html b/doc/html/bioscall_8h.html index f9c4117..83afbe3 100644 --- a/doc/html/bioscall_8h.html +++ b/doc/html/bioscall_8h.html @@ -219,12 +219,12 @@

Definition at line 50 of file bioscall.c.

-References _current, assert, tssStruct::back_link, bios16Code(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, tssStruct::io_map, kmalloc(), tssStruct::ldt, taskStruct::oInfo, READY, schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, tssStruct::trace_bitmap, taskStruct::tss, osInfo::v86Task, x1000, and x2000. +References _current, assert, tssStruct::back_link, bios16Code(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, tssStruct::io_map, kmalloc(), tssStruct::ldt, taskStruct::oInfo, READY, schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, tssStruct::trace_bitmap, taskStruct::tss, osInfo::v86Task, x1000, and x2000.

Referenced by systemTask().

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/block_8c-source.html b/doc/html/block_8c-source.html index 4ce1bb1..7b0d55b 100644 --- a/doc/html/block_8c-source.html +++ b/doc/html/block_8c-source.html @@ -56,107 +56,110 @@ 00024 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00025 00026 $Log$ -00027 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg -00028 ubix2 +00027 Revision 1.2 2006/12/05 14:10:21 reddawg +00028 Workign Distro 00029 -00030 Revision 1.2 2005/10/12 00:13:37 reddawg -00031 Removed +00030 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg +00031 ubix2 00032 -00033 Revision 1.1.1.1 2005/09/26 17:24:39 reddawg -00034 no message +00033 Revision 1.2 2005/10/12 00:13:37 reddawg +00034 Removed 00035 -00036 Revision 1.6 2004/08/14 11:23:02 reddawg -00037 Changes +00036 Revision 1.1.1.1 2005/09/26 17:24:39 reddawg +00037 no message 00038 -00039 Revision 1.5 2004/07/23 09:10:06 reddawg -00040 ubixfs: cleaned up some functions played with the caching a bit -00041 vfs: renamed a bunch of functions -00042 cleaned up a few misc bugs -00043 -00044 Revision 1.4 2004/06/04 10:19:42 reddawg -00045 notes: we compile again, thank g-d anyways i was about to cry +00039 Revision 1.6 2004/08/14 11:23:02 reddawg +00040 Changes +00041 +00042 Revision 1.5 2004/07/23 09:10:06 reddawg +00043 ubixfs: cleaned up some functions played with the caching a bit +00044 vfs: renamed a bunch of functions +00045 cleaned up a few misc bugs 00046 -00047 Revision 1.3 2004/05/19 15:20:06 reddawg -00048 Fixed reference problems due to changes in drive subsystem +00047 Revision 1.4 2004/06/04 10:19:42 reddawg +00048 notes: we compile again, thank g-d anyways i was about to cry 00049 -00050 Revision 1.2 2004/04/28 02:22:55 reddawg -00051 This is a fiarly large commit but we are starting to use new driver model -00052 all around -00053 -00054 Revision 1.1.1.1 2004/04/15 12:07:07 reddawg -00055 UbixOS v1.0 +00050 Revision 1.3 2004/05/19 15:20:06 reddawg +00051 Fixed reference problems due to changes in drive subsystem +00052 +00053 Revision 1.2 2004/04/28 02:22:55 reddawg +00054 This is a fiarly large commit but we are starting to use new driver model +00055 all around 00056 -00057 Revision 1.3 2004/04/13 16:36:34 reddawg -00058 Changed our copyright, it is all now under a BSD-Style license +00057 Revision 1.1.1.1 2004/04/15 12:07:07 reddawg +00058 UbixOS v1.0 00059 -00060 -00061 -00062 $Id$ +00060 Revision 1.3 2004/04/13 16:36:34 reddawg +00061 Changed our copyright, it is all now under a BSD-Style license +00062 00063 -00064 *****************************************************************************************/ -00065 -00066 #include <ubixfs/ubixfs.h> -00067 #include <vfs/file.h> -00068 #include <vfs/mount.h> -00069 -00070 -00071 void syncBat(vfs_mountPoint_t *mp) { -00072 struct ubixFSInfo *fsInfo = mp->fsInfo; -00073 mp->device->devInfo->write(mp->device->devInfo->info,fsInfo->blockAllocationTable,mp->diskLabel->partitions[mp->partition].pOffset,mp->diskLabel->partitions[mp->partition].pBatSize); -00074 } -00075 -00076 int freeBlocks(int block,fileDescriptor *fd) { -00077 int i = block; -00078 -00079 struct ubixFSInfo *fsInfo = fd->mp->fsInfo; -00080 -00081 while (i != 0x0) { -00082 block = fsInfo->blockAllocationTable[i].nextBlock; -00083 -00084 fsInfo->blockAllocationTable[i].attributes = 0x0; -00085 fsInfo->blockAllocationTable[i].nextBlock = 0x0; -00086 -00087 i = block; -00088 } -00089 syncBat(fd->mp); -00090 return(i); -00091 } -00092 -00093 int getFreeBlocks(int count,fileDescriptor *fd) { -00094 uInt32 i = 0x0; -00095 uInt32 x = 0x0; -00096 -00097 struct ubixFSInfo *fsInfo = fd->mp->fsInfo; -00098 -00099 getBlocks: -00100 for (i=1;i < fsInfo->batEntries;i++) { -00101 if (fsInfo->blockAllocationTable[i].attributes == 0x0) { -00102 for (x = 1; x < (uInt32)count; x++) { -00103 if (fsInfo->blockAllocationTable[i + x].attributes != 0x0) { -00104 goto getBlocks; -00105 } -00106 } -00107 for (x = i; x < i+count;x++) { -00108 fsInfo->blockAllocationTable[x].attributes = 0x1; -00109 if ((x+1) == (i+count)) { -00110 fsInfo->blockAllocationTable[x].nextBlock = -1; -00111 } -00112 else { -00113 fsInfo->blockAllocationTable[x].nextBlock = x+1; +00064 +00065 $Id$ +00066 +00067 *****************************************************************************************/ +00068 +00069 #include <ubixfs/ubixfs.h> +00070 #include <vfs/file.h> +00071 #include <vfs/mount.h> +00072 +00073 +00074 void syncBat(struct vfs_mountPoint *mp) { +00075 struct ubixFSInfo *fsInfo = mp->fsInfo; +00076 mp->device->devInfo->write(mp->device->devInfo->info,fsInfo->blockAllocationTable,mp->diskLabel->partitions[mp->partition].pOffset,mp->diskLabel->partitions[mp->partition].pBatSize); +00077 } +00078 +00079 int freeBlocks(int block,fileDescriptor *fd) { +00080 int i = block; +00081 +00082 struct ubixFSInfo *fsInfo = fd->mp->fsInfo; +00083 +00084 while (i != 0x0) { +00085 block = fsInfo->blockAllocationTable[i].nextBlock; +00086 +00087 fsInfo->blockAllocationTable[i].attributes = 0x0; +00088 fsInfo->blockAllocationTable[i].nextBlock = 0x0; +00089 +00090 i = block; +00091 } +00092 syncBat(fd->mp); +00093 return(i); +00094 } +00095 +00096 int getFreeBlocks(int count,fileDescriptor *fd) { +00097 uInt32 i = 0x0; +00098 uInt32 x = 0x0; +00099 +00100 struct ubixFSInfo *fsInfo = fd->mp->fsInfo; +00101 +00102 getBlocks: +00103 for (i=1;i < fsInfo->batEntries;i++) { +00104 if (fsInfo->blockAllocationTable[i].attributes == 0x0) { +00105 for (x = 1; x < (uInt32)count; x++) { +00106 if (fsInfo->blockAllocationTable[i + x].attributes != 0x0) { +00107 goto getBlocks; +00108 } +00109 } +00110 for (x = i; x < i+count;x++) { +00111 fsInfo->blockAllocationTable[x].attributes = 0x1; +00112 if ((x+1) == (i+count)) { +00113 fsInfo->blockAllocationTable[x].nextBlock = -1; 00114 } -00115 } -00116 syncBat(fd->mp); -00117 return(i); -00118 } -00119 } -00120 return(0x0); -00121 } -00122 -00123 /*** -00124 END -00125 ***/ -00126 -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00115 else { +00116 fsInfo->blockAllocationTable[x].nextBlock = x+1; +00117 } +00118 } +00119 syncBat(fd->mp); +00120 return(i); +00121 } +00122 } +00123 return(0x0); +00124 } +00125 +00126 /*** +00127 END +00128 ***/ +00129 +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/block_8c.html b/doc/html/block_8c.html index 04e2114..682cbb5 100644 --- a/doc/html/block_8c.html +++ b/doc/html/block_8c.html @@ -44,7 +44,7 @@ int getFreeBlocks (int count, fileDescriptor *fd) -void syncBat (vfs_mountPoint_t *mp) +void syncBat (struct vfs_mountPoint *mp)

Function Documentation

@@ -76,9 +76,9 @@

-Definition at line 76 of file block.c. +Definition at line 79 of file block.c.

-References blockAllocationTableEntry::attributes, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, and syncBat(). +References blockAllocationTableEntry::attributes, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, and syncBat().

@@ -109,21 +109,21 @@

-Definition at line 93 of file block.c. +Definition at line 96 of file block.c.

-References blockAllocationTableEntry::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, syncBat(), and x1. +References blockAllocationTableEntry::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, syncBat(), and x1.

Referenced by ubixFSmkDir(), and writeUbixFS().

- +

- + @@ -135,14 +135,14 @@

-Definition at line 71 of file block.c. +Definition at line 74 of file block.c.

-References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, device_interface::info, vfs_mountPoint::partition, ubixDiskLabel::partitions, and device_interface::write. +References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, device_interface::info, vfs_mountPoint::partition, ubixDiskLabel::partitions, and device_interface::write.

-Referenced by freeBlocks(), and getFreeBlocks(). +Referenced by freeBlocks(), and getFreeBlocks().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bot_8c-source.html b/doc/html/bot_8c-source.html index 0f98ddf..f61c5ee 100644 --- a/doc/html/bot_8c-source.html +++ b/doc/html/bot_8c-source.html @@ -120,7 +120,7 @@ 00088 END 00089 ***/ 00090 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/bot_8c.html b/doc/html/bot_8c.html index 421e86a..9146846 100644 --- a/doc/html/bot_8c.html +++ b/doc/html/bot_8c.html @@ -101,7 +101,7 @@ Referenced by bot_init().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btree_8cpp-source.html b/doc/html/btree_8cpp-source.html index ba830f6..0a5fb4c 100644 --- a/doc/html/btree_8cpp-source.html +++ b/doc/html/btree_8cpp-source.html @@ -797,7 +797,7 @@ 00765 cout << "tree width: " << header->treeWidth << endl; 00766 cout << "tree leaf count: " << header->treeLeafCount << endl; 00767 } // bTree::~bTree -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btree_8cpp.html b/doc/html/btree_8cpp.html index 97f6490..d7fa68e 100644 --- a/doc/html/btree_8cpp.html +++ b/doc/html/btree_8cpp.html @@ -83,7 +83,7 @@ Definition at line 12 of file btree.cpp.

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btree_8h-source.html b/doc/html/btree_8h-source.html index 5075d77..526b64b 100644 --- a/doc/html/btree_8h-source.html +++ b/doc/html/btree_8h-source.html @@ -100,7 +100,7 @@ 00068 friend class UbixFS; 00069 }; // bTree 00070 #endif // !BTREE_H -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btree_8h.html b/doc/html/btree_8h.html index d6c4d34..6e7e3c2 100644 --- a/doc/html/btree_8h.html +++ b/doc/html/btree_8h.html @@ -151,7 +151,7 @@ Referenced by bTree::allocEmptyNode().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btreeheader_8h-source.html b/doc/html/btreeheader_8h-source.html index 8a3bc1a..a7eedbb 100644 --- a/doc/html/btreeheader_8h-source.html +++ b/doc/html/btreeheader_8h-source.html @@ -43,7 +43,7 @@ 00011 } bTreeHeader; // bTreeHeader 00012 00013 #endif /* !BTREEHEADER_H */ -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/btreeheader_8h.html b/doc/html/btreeheader_8h.html index 8cd4bbd..a753956 100644 --- a/doc/html/btreeheader_8h.html +++ b/doc/html/btreeheader_8h.html @@ -40,7 +40,7 @@
void syncBat (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
struct  bTreeHeader
-
Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/buf_8h-source.html b/doc/html/buf_8h-source.html index 7a7438e..b218dd6 100644 --- a/doc/html/buf_8h-source.html +++ b/doc/html/buf_8h-source.html @@ -76,7 +76,7 @@ 00044 END 00045 ***/ 00046 -

Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +

Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/buf_8h.html b/doc/html/buf_8h.html index e013ab1..120c05b 100644 --- a/doc/html/buf_8h.html +++ b/doc/html/buf_8h.html @@ -43,7 +43,7 @@ struct  buf -
Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cc_8h-source.html b/doc/html/cc_8h-source.html index e97c2bd..70132fd 100644 --- a/doc/html/cc_8h-source.html +++ b/doc/html/cc_8h-source.html @@ -73,7 +73,7 @@ 00041 #define PACK_STRUCT_END 00042 00043 #endif /* __ARCH_CC_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cc_8h.html b/doc/html/cc_8h.html index 5c8bfd7..9924f15 100644 --- a/doc/html/cc_8h.html +++ b/doc/html/cc_8h.html @@ -120,7 +120,7 @@ Definition at line 39 of file cc.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cdefs_8h-source.html b/doc/html/cdefs_8h-source.html index d35221f..649279d 100644 --- a/doc/html/cdefs_8h-source.html +++ b/doc/html/cdefs_8h-source.html @@ -86,7 +86,7 @@ 00054 00055 END 00056 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cdefs_8h.html b/doc/html/cdefs_8h.html index 3237995..6f94e3e 100644 --- a/doc/html/cdefs_8h.html +++ b/doc/html/cdefs_8h.html @@ -78,7 +78,7 @@ Definition at line 31 of file cdefs.h.

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classDiskFS.html b/doc/html/classDiskFS.html index e72e01f..faae794 100644 --- a/doc/html/classDiskFS.html +++ b/doc/html/classDiskFS.html @@ -205,7 +205,7 @@


The documentation for this class was generated from the following files: -
Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classFileSystemAbstract.html b/doc/html/classFileSystemAbstract.html index b7ab245..fd980a8 100644 --- a/doc/html/classFileSystemAbstract.html +++ b/doc/html/classFileSystemAbstract.html @@ -148,7 +148,7 @@


The documentation for this class was generated from the following file: -
Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classUbixFS.html b/doc/html/classUbixFS.html index 5a560e6..249ee9d 100644 --- a/doc/html/classUbixFS.html +++ b/doc/html/classUbixFS.html @@ -333,7 +333,7 @@

Definition at line 835 of file ubixfs.cpp.

-References assert, getFreeBlock(), getgid(), getuid(), MAX_FILENAME_LENGTH, memset(), NULL, strncpy(), superBlock, and UBIXFS_INODE_MAGIC. +References assert, getFreeBlock(), getgid(), getuid(), MAX_FILENAME_LENGTH, memset(), NULL, strncpy(), superBlock, and UBIXFS_INODE_MAGIC.

Referenced by vfs_mkdir(), and vfs_mknod(). @@ -500,7 +500,7 @@

Definition at line 891 of file ubixfs.cpp.

-References assert, fileDescriptor::inode, INODE_DIRECTORY, MAX_FILENAME_LENGTH, memset(), mknod(), name, NULL, root, strlen(), and strncpy(). +References assert, fileDescriptor::inode, INODE_DIRECTORY, MAX_FILENAME_LENGTH, memset(), mknod(), name, NULL, root, strlen(), and strncpy().

Referenced by main(). @@ -817,7 +817,7 @@


The documentation for this class was generated from the following files: -
Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classbTree.html b/doc/html/classbTree.html index 42bfb43..7613579 100644 --- a/doc/html/classbTree.html +++ b/doc/html/classbTree.html @@ -133,7 +133,7 @@

Definition at line 39 of file btree.cpp.

-References allocEmptyNode(), assert, B_MAX_NAME_LENGTH, bTreeHeader::firstDeleted, bTreeHeader::firstNodeOffset, header, memset(), NULL, root, strncpy(), tag, bTreeHeader::treeDepth, bTreeHeader::treeLeafCount, and bTreeHeader::treeWidth. +References allocEmptyNode(), assert, B_MAX_NAME_LENGTH, bTreeHeader::firstDeleted, bTreeHeader::firstNodeOffset, header, memset(), NULL, root, strncpy(), tag, bTreeHeader::treeDepth, bTreeHeader::treeLeafCount, and bTreeHeader::treeWidth.

@@ -468,7 +468,7 @@

Definition at line 74 of file btree.cpp.

-References allocEmptyNode(), assert, B_MAX_NAME_LENGTH, Find(), bTreeHeader::firstDeleted, bTreeHeader::firstNodeOffset, header, memset(), NULL, root, strcmp(), strncpy(), bTreeHeader::treeDepth, bTreeHeader::treeLeafCount, and bTreeHeader::treeWidth. +References allocEmptyNode(), assert, B_MAX_NAME_LENGTH, Find(), bTreeHeader::firstDeleted, bTreeHeader::firstNodeOffset, header, memset(), NULL, root, strcmp(), strncpy(), bTreeHeader::treeDepth, bTreeHeader::treeLeafCount, and bTreeHeader::treeWidth.

Referenced by main(). @@ -509,7 +509,7 @@

Definition at line 389 of file btree.cpp.

-References B_MAX_KEYS, B_MAX_NAME_LENGTH, memset(), NULL, splitNode(), strcmp(), and strncpy(). +References B_MAX_KEYS, B_MAX_NAME_LENGTH, memset(), NULL, splitNode(), strcmp(), and strncpy().

Referenced by splitNode(). @@ -674,7 +674,7 @@

Definition at line 651 of file btree.cpp.

-References assert, memcpy(), and NULL. +References assert, memcpy(), and NULL.

Referenced by Save(). @@ -700,7 +700,7 @@

Definition at line 288 of file btree.cpp.

-References allocEmptyNode(), assert, B_MAX_KEYS, B_MAX_NAME_LENGTH, GetFirstNode(), header, insertNode(), memcpy(), memset(), NULL, root, strncpy(), and bTreeHeader::treeDepth. +References allocEmptyNode(), assert, B_MAX_KEYS, B_MAX_NAME_LENGTH, GetFirstNode(), header, insertNode(), memcpy(), memset(), NULL, root, strncpy(), and bTreeHeader::treeDepth.

Referenced by insertNode(). @@ -878,7 +878,7 @@


The documentation for this class was generated from the following files: -
Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classes.html b/doc/html/classes.html index b61dacd..4614673 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -34,28 +34,28 @@
  A  
diskSuperBlock   
  H  
-
ogDisplay_VESA   timeval   
api_msg   dmadat   hostRingEntry   ogModeInfo   timezone   
api_msg_msg   dos_partition   
  I  
-
ogVESAInfo   TMode_Rec   
arp_entry   dp_rcvhdr   i386_frame   osInfo   tms   
arp_hdr   driveInfo   i387Struct   
  P  
-
trapframe   
arpcom   driverType   icmp_dur_hdr   partitionInformation   tssStruct   
  B  
-
DrvGeom   icmp_echo_hdr   pbuf   tty_termNode   
blockAllocationTableEntry   
  E  
-
icmp_te_hdr   pciConfig   TVESA_Rec   
blockRun   ei_device   in_addr   pipe_args   
  U  
-
bNode   elfDynamic   initBlock   
  R  
-
ubixDiskLabel   
bootSect   elfDynSym   ioctl_args   readlink_args   ubixDiskLabel::ubixPartitions   
bsd_disklabel   elfHeader   ip_addr   
  S  
-
UbixFS   
bsd_disklabel::partition   elfPltInfo   ip_hdr   sdeWindows   ubixFSInfo   
bTree   elfProgramHeader   issetugid_args   sigaction_args   ubixfsInode   
bTreeHeader   elfSectionHeader   
  K  
-
sigprocmask_args   ubthread   
buf   eth_addr   kmod_struct   sockaddr   ubthread_cond   
  C  
+
ogModeInfo   timezone   
api_msg   dmadat   hostRingEntry   ogVESAInfo   TMode_Rec   
api_msg_msg   dos_partition   
  I  
+
osInfo   tms   
arp_entry   dp_rcvhdr   i386_frame   
  P  
+
trapframe   
arp_hdr   driveInfo   i387Struct   partitionInformation   tssStruct   
arpcom   driverType   icmp_dur_hdr   pbuf   tty_termNode   
  B  
+
DrvGeom   icmp_echo_hdr   pciConfig   TVESA_Rec   
blockAllocationTableEntry   
  E  
+
icmp_te_hdr   pipe_args   
  U  
+
blockRun   ei_device   in_addr   
  R  
+
ubixDiskLabel   
bNode   elfDynamic   initBlock   readlink_args   ubixDiskLabel::ubixPartitions   
bootSect   elfDynSym   ioctl_args   
  S  
+
UbixFS   
bsd_disklabel   elfHeader   ip_addr   sdeWindows   ubixFSInfo   
bsd_disklabel::partition   elfPltInfo   ip_hdr   sigaction_args   ubixfsInode   
bTree   elfProgramHeader   issetugid_args   sigprocmask_args   ubthread   
bTreeHeader   elfSectionHeader   
  K  
+
sockaddr   ubthread_cond   
buf   eth_addr   kmod_struct   sockaddr_in   ubthread_cond_list   
  C  
eth_hdr   
  L  
-
sockaddr_in   ubthread_cond_list   
cacheNode   etheraddr   lncInfo   stat   ubthread_list   
close_args   ethernetif   lwip_socket   sys_mbox   ubthread_mutex   
confadd   ethip_hdr   
  M  
-
sys_mbox_msg   ubthread_mutex_list   
cpuinfo_t   
  F  
-
mds   sys_sem   udp_hdr   
csum   fcntl_args   memDescriptor   sys_thread   udp_pcb   
csum_total   file   mMap   sys_timeout   ufs1_dinode   
  D  
-
fileDescriptor   mmap_args   sys_timeouts   ufs2_dinode   
dataStream   fileDescriptorStruct   mpi_mbox   sysctl_args   uPtr   
descriptorTableUnion   fileSystem   mpi_message   sysctl_entry   userFileDescriptorStruct   
devfs_devices   FileSystemAbstract   munmap_args   
  T  
+
stat   ubthread_list   
cacheNode   etheraddr   lncInfo   sys_mbox   ubthread_mutex   
close_args   ethernetif   lwip_socket   sys_mbox_msg   ubthread_mutex_list   
confadd   ethip_hdr   
  M  
+
sys_sem   udp_hdr   
cpuinfo_t   
  F  
+
mds   sys_thread   udp_pcb   
csum   fcntl_args   memDescriptor   sys_timeout   ufs1_dinode   
csum_total   file   mMap   sys_timeouts   ufs2_dinode   
  D  
+
fileDescriptor   mmap_args   sysctl_args   uPtr   
dataStream   fileDescriptorStruct   mpi_mbox   sysctl_entry   userFileDescriptorStruct   
descriptorTableUnion   fileSystem   mpi_message   
  T  
  V  
-
devfs_info   fs   
  N  
-
taskStruct   vfs_abstract   
device   fstat_args   net   tcp_hdr   vfs_mountPoint   
device_interface   
  G  
-
netbuf   tcp_pcb   
  W  
-
device_node   gdt_descr   netconn   tcp_pcb_listen   write_args   
device_resource   gdtDescriptor   netif   tcp_seg   
  _  
-
device_t   gdtGate   nicBuffer   tcpip_msg   __sigset   
devMethodType   getdtablesize_args   nicInfo   thread   __timespec   
directoryEntry   getgid_args   
  O  
-
thread_start_param   _item_t   
directoryList   getpid_args   obreak_args   timespec   _list_t   
dirent   gettimeofday_args   ogDisplay_UbixOS   timeStruct   _UbixUser   
DiskFS   getuid_args   

A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | R | S | T | U | V | W | _

-


Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +devfs_devices   FileSystemAbstract   munmap_args   taskStruct   vfs_abstract   devfs_info   fs   
  N  
+tcp_hdr   vfs_mountPoint   device   fstat_args   net   tcp_pcb   vitalsStruct   device_interface   
  G  
+netbuf   tcp_pcb_listen   
  W  
+device_node   gdt_descr   netconn   tcp_seg   write_args   device_resource   gdtDescriptor   netif   tcpip_msg   
  _  
+device_t   gdtGate   nicBuffer   thread   __sigset   devMethodType   getdtablesize_args   nicInfo   thread_start_param   __timespec   directoryEntry   getgid_args   
  O  
+timespec   _item_t   directoryList   getpid_args   obreak_args   timeStruct   _list_t   dirent   gettimeofday_args   ogDisplay_UbixOS   timeval   _UbixUser   DiskFS   getuid_args   ogDisplay_VESA   

A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | R | S | T | U | V | W | _

+


Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classogDisplay__UbixOS.html b/doc/html/classogDisplay__UbixOS.html index 2b60607..2de4b1e 100644 --- a/doc/html/classogDisplay__UbixOS.html +++ b/doc/html/classogDisplay__UbixOS.html @@ -578,7 +578,7 @@


The documentation for this class was generated from the following file: -
Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classogDisplay__VESA.html b/doc/html/classogDisplay__VESA.html index ca4f0ba..9eb548d 100644 --- a/doc/html/classogDisplay__VESA.html +++ b/doc/html/classogDisplay__VESA.html @@ -942,7 +942,7 @@


The documentation for this class was generated from the following file: -
Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/classvfs__abstract.html b/doc/html/classvfs__abstract.html index 84f5af8..e573614 100644 --- a/doc/html/classvfs__abstract.html +++ b/doc/html/classvfs__abstract.html @@ -669,7 +669,7 @@


The documentation for this class was generated from the following file: -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/copyvirtualspace_8c-source.html b/doc/html/copyvirtualspace_8c-source.html index 9a931b3..54626d1 100644 --- a/doc/html/copyvirtualspace_8c-source.html +++ b/doc/html/copyvirtualspace_8c-source.html @@ -239,51 +239,54 @@ 00207 00208 /*** 00209 $Log$ -00210 Revision 1.3 2006/12/01 05:12:35 reddawg -00211 We're almost there... :) +00210 Revision 1.4 2006/12/05 14:10:21 reddawg +00211 Workign Distro 00212 -00213 Revision 1.2 2006/11/06 19:10:12 reddawg -00214 Lots Of Updates... Still having issues with brk(); +00213 Revision 1.3 2006/12/01 05:12:35 reddawg +00214 We're almost there... :) 00215 -00216 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg -00217 ubix2 +00216 Revision 1.2 2006/11/06 19:10:12 reddawg +00217 Lots Of Updates... Still having issues with brk(); 00218 -00219 Revision 1.2 2005/10/12 00:13:38 reddawg -00220 Removed +00219 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg +00220 ubix2 00221 -00222 Revision 1.1.1.1 2005/09/26 17:24:49 reddawg -00223 no message +00222 Revision 1.2 2005/10/12 00:13:38 reddawg +00223 Removed 00224 -00225 Revision 1.7 2004/07/28 15:05:43 reddawg -00226 Major: -00227 Pages now have strict security enforcement. -00228 Many null dereferences have been resolved. -00229 When apps loaded permissions set for pages rw and ro -00230 -00231 Revision 1.6 2004/07/26 19:15:49 reddawg -00232 test code, fixes and the like +00225 Revision 1.1.1.1 2005/09/26 17:24:49 reddawg +00226 no message +00227 +00228 Revision 1.7 2004/07/28 15:05:43 reddawg +00229 Major: +00230 Pages now have strict security enforcement. +00231 Many null dereferences have been resolved. +00232 When apps loaded permissions set for pages rw and ro 00233 -00234 Revision 1.5 2004/07/25 06:04:00 reddawg -00235 Last of my fixes for the morning +00234 Revision 1.6 2004/07/26 19:15:49 reddawg +00235 test code, fixes and the like 00236 -00237 Revision 1.4 2004/07/20 22:29:55 reddawg -00238 assert: remade assert +00237 Revision 1.5 2004/07/25 06:04:00 reddawg +00238 Last of my fixes for the morning 00239 -00240 Revision 1.3 2004/07/19 01:58:12 reddawg -00241 vmmCopyVirtualSpace: cleaned up one full page memory leak we were still using old sysID over pid +00240 Revision 1.4 2004/07/20 22:29:55 reddawg +00241 assert: remade assert 00242 -00243 Revision 1.2 2004/06/15 12:35:05 reddawg -00244 Cleaned Up +00243 Revision 1.3 2004/07/19 01:58:12 reddawg +00244 vmmCopyVirtualSpace: cleaned up one full page memory leak we were still using old sysID over pid 00245 -00246 Revision 1.1.1.1 2004/04/15 12:06:51 reddawg -00247 UbixOS v1.0 +00246 Revision 1.2 2004/06/15 12:35:05 reddawg +00247 Cleaned Up 00248 -00249 Revision 1.14 2004/04/13 16:36:34 reddawg -00250 Changed our copyright, it is all now under a BSD-Style license +00249 Revision 1.1.1.1 2004/04/15 12:06:51 reddawg +00250 UbixOS v1.0 00251 -00252 END -00253 ***/ -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00252 Revision 1.14 2004/04/13 16:36:34 reddawg +00253 Changed our copyright, it is all now under a BSD-Style license +00254 +00255 END +00256 ***/ +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/copyvirtualspace_8c.html b/doc/html/copyvirtualspace_8c.html index 556c432..ef7073b 100644 --- a/doc/html/copyvirtualspace_8c.html +++ b/doc/html/copyvirtualspace_8c.html @@ -70,7 +70,7 @@

Definition at line 53 of file copyvirtualspace.c.

-References adjustCowCounter(), cvsSpinLock, kpanic(), memset(), PAGE_COW, PAGE_DEFAULT, PAGE_STACK, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, vmm_getPhysicalAddr(), vmmGetFreeKernelPage(), vmmUnmapPage(), x1, and x1000. +References adjustCowCounter(), cvsSpinLock, kpanic(), memset(), PAGE_COW, PAGE_DEFAULT, PAGE_STACK, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, vmm_getPhysicalAddr(), vmmGetFreeKernelPage(), vmmUnmapPage(), x1, and x1000.

Referenced by fork_copyProcess(). @@ -95,7 +95,7 @@ Referenced by vmmCopyVirtualSpace().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cpu_8h-source.html b/doc/html/cpu_8h-source.html index f2377fe..0b540c8 100644 --- a/doc/html/cpu_8h-source.html +++ b/doc/html/cpu_8h-source.html @@ -72,7 +72,7 @@ 00040 #endif /* BYTE_ORDER */ 00041 00042 #endif /* __ARCH_CPU_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/cpu_8h.html b/doc/html/cpu_8h.html index ffd251b..1a28b1b 100644 --- a/doc/html/cpu_8h.html +++ b/doc/html/cpu_8h.html @@ -58,7 +58,7 @@ Definition at line 39 of file cpu.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/createvirtualspace_8c-source.html b/doc/html/createvirtualspace_8c-source.html index b019601..22d70cb 100644 --- a/doc/html/createvirtualspace_8c-source.html +++ b/doc/html/createvirtualspace_8c-source.html @@ -178,7 +178,7 @@ 00146 END 00147 ***/ 00148 -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/createvirtualspace_8c.html b/doc/html/createvirtualspace_8c.html index 3a014fc..dc91b33 100644 --- a/doc/html/createvirtualspace_8c.html +++ b/doc/html/createvirtualspace_8c.html @@ -68,7 +68,7 @@ Referenced by execFile().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/debug_8h-source.html b/doc/html/debug_8h-source.html index 5aa051c..84fee85 100644 --- a/doc/html/debug_8h-source.html +++ b/doc/html/debug_8h-source.html @@ -169,7 +169,7 @@ 00137 00138 00139 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/debug_8h.html b/doc/html/debug_8h.html index e8c927b..5cbe914 100644 --- a/doc/html/debug_8h.html +++ b/doc/html/debug_8h.html @@ -730,7 +730,7 @@ Definition at line 103 of file debug.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/def_8h-source.html b/doc/html/def_8h-source.html index 8e868d4..d24d1f9 100644 --- a/doc/html/def_8h-source.html +++ b/doc/html/def_8h-source.html @@ -77,7 +77,7 @@ 00045 00046 #endif /* __LWIP_DEF_H__ */ 00047 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/def_8h.html b/doc/html/def_8h.html index f751b98..2e88759 100644 --- a/doc/html/def_8h.html +++ b/doc/html/def_8h.html @@ -60,7 +60,7 @@

Definition at line 41 of file def.h.

-Referenced by __assert(), accept_function(), alloc_socket(), bTree::allocEmptyNode(), arp_arp_input(), arp_lookup(), arp_query(), arp_timer(), bot_init(), bot_thread(), bTree::bTree(), current_thread(), bTree::Delete(), devfs_init(), device_add(), device_remove(), do_accept(), do_bind(), do_close(), do_connect(), do_connected(), do_delconn(), do_listen(), do_recv(), do_send(), do_write(), err_tcp(), ethernetif_init(), ethernetif_input(), ethernetif_output(), fclose(), bTree::findLeafNode(), fopen(), UbixFS::get8FreeBlocks(), get_socket(), bTree::GetFirstNode(), UbixFS::getFreeBlock(), inet_aton(), bTree::Info(), bTree::inodeSearch(), bTree::Insert(), bTree::insertNode(), kmain(), kmod_add(), kpanic(), kprint(), bTree::Load(), loopif_output(), low_level_input(), low_level_output(), lwip_accept(), lwip_bind(), lwip_close(), lwip_connect(), lwip_listen(), lwip_recv(), lwip_recvfrom(), lwip_send(), lwip_sendto(), lwip_socket(), lwip_write(), main(), UbixFS::mknod(), netbuf_alloc(), netbuf_copy_partial(), netbuf_data(), netbuf_delete(), netbuf_free(), netbuf_new(), netbuf_next(), netbuf_ref(), netconn_accept(), netconn_bind(), netconn_close(), netconn_connect(), netconn_delete(), netconn_listen(), netconn_new(), netconn_recv(), netconn_send(), netconn_write(), openFileUbixFS(), poll_tcp(), bTree::Print(), UbixFS::printFreeBlockList(), DiskFS::read(), readUbixFS(), recv_tcp(), recv_udp(), bTree::Save(), bTree::saveNode(), sent_tcp(), UbixFS::setFreeBlock(), shell_init(), shell_thread(), bTree::splitNode(), strstr(), strtok_r(), strtol(), sys_arch_mbox_fetch(), sys_mbox_free(), sys_sem_new_(), sys_thread_new(), sysFclose(), sysFopen(), sysFread(), sysFseek(), sysMkDir(), tcpdump(), tcpdump_init(), tcpip_apimsg(), tcpip_init(), tcpip_input(), tcpip_tcp_timer(), tcpip_thread(), bTree::treeSearch(), UbixFS::UbixFS(), ubixfs_cacheAdd(), ubixfs_cacheDelete(), ubixfs_cacheFind(), ubixfs_cacheNew(), ubixfs_findName(), ubixfs_init(), ubixfs_loadData(), udpecho_init(), udpecho_thread(), ufs_init(), unlink(), bTree::Verify(), vfs_findMount(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), vfs_abstract::vfs_mknod(), vfs_mount(), UbixFS::vfs_open(), UbixFS::vfs_read(), UbixFS::vfs_stop(), UbixFS::vfs_sync(), UbixFS::vfs_write(), vfsRegisterFS(), DiskFS::write(), writeFileByte(), and writeUbixFS(). +Referenced by __assert(), accept_function(), alloc_socket(), bTree::allocEmptyNode(), arp_arp_input(), arp_lookup(), arp_query(), arp_timer(), bot_init(), bot_thread(), bTree::bTree(), current_thread(), bTree::Delete(), devfs_init(), device_add(), device_remove(), do_accept(), do_bind(), do_close(), do_connect(), do_connected(), do_delconn(), do_listen(), do_recv(), do_send(), do_write(), err_tcp(), ethernetif_init(), ethernetif_input(), ethernetif_output(), fclose(), bTree::findLeafNode(), fopen(), UbixFS::get8FreeBlocks(), get_socket(), bTree::GetFirstNode(), UbixFS::getFreeBlock(), inet_aton(), bTree::Info(), bTree::inodeSearch(), bTree::Insert(), bTree::insertNode(), kmain(), kmod_add(), kpanic(), kprint(), bTree::Load(), loopif_output(), low_level_input(), low_level_output(), lwip_accept(), lwip_bind(), lwip_close(), lwip_connect(), lwip_listen(), lwip_recv(), lwip_recvfrom(), lwip_send(), lwip_sendto(), lwip_socket(), lwip_write(), main(), UbixFS::mknod(), netbuf_alloc(), netbuf_copy_partial(), netbuf_data(), netbuf_delete(), netbuf_free(), netbuf_new(), netbuf_next(), netbuf_ref(), netconn_accept(), netconn_bind(), netconn_close(), netconn_connect(), netconn_delete(), netconn_listen(), netconn_new(), netconn_recv(), netconn_send(), netconn_write(), openFileUbixFS(), poll_tcp(), bTree::Print(), UbixFS::printFreeBlockList(), DiskFS::read(), readUbixFS(), recv_tcp(), recv_udp(), bTree::Save(), bTree::saveNode(), sent_tcp(), UbixFS::setFreeBlock(), shell_init(), shell_thread(), bTree::splitNode(), strstr(), strtok_r(), strtol(), sys_arch_mbox_fetch(), sys_mbox_free(), sys_sem_new_(), sys_thread_new(), sysFclose(), sysFopen(), sysFread(), sysFseek(), sysMkDir(), tcpdump(), tcpdump_init(), tcpip_apimsg(), tcpip_init(), tcpip_input(), tcpip_tcp_timer(), tcpip_thread(), bTree::treeSearch(), UbixFS::UbixFS(), ubixfs_cacheAdd(), ubixfs_cacheDelete(), ubixfs_cacheFind(), ubixfs_cacheNew(), ubixfs_findName(), ubixfs_init(), ubixfs_loadData(), udpecho_init(), udpecho_thread(), ufs_init(), unlink(), bTree::Verify(), vfs_findMount(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), vfs_abstract::vfs_mknod(), vfs_mount(), UbixFS::vfs_open(), UbixFS::vfs_read(), UbixFS::vfs_stop(), UbixFS::vfs_sync(), UbixFS::vfs_write(), vfsRegisterFS(), DiskFS::write(), writeFileByte(), and writeUbixFS().

@@ -88,7 +88,7 @@ Definition at line 38 of file def.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/devfs_8c-source.html b/doc/html/devfs_8c-source.html index 4683176..b742c94 100644 --- a/doc/html/devfs_8c-source.html +++ b/doc/html/devfs_8c-source.html @@ -75,7 +75,7 @@ 00043 /* Length of dev list */ 00044 static int devfs_len = 0x0; 00045 -00046 static void devfs_initialize(vfs_mountPoint_t *mp) { +00046 static void devfs_initialize(struct vfs_mountPoint *mp) { 00047 struct devfs_info *fsInfo = 0x0; 00048 00049 /* Allocate memory for the fsInfo */ @@ -199,13 +199,13 @@ 00167 00168 00169 int devfs_makeNode(char *name,uInt8 type,uInt16 major,uInt16 minor) { -00170 vfs_mountPoint_t *mp = 0x0; +00170 struct vfs_mountPoint *mp = 0x0; 00171 struct devfs_info *fsInfo = 0x0; 00172 struct devfs_devices *tmpDev = 0x0; 00173 00174 spinLock(&devfsSpinLock); 00175 -00176 mp = vfs_findMount("devfs"); +00176 mp = vfs_findMount("devfs"); 00177 00178 if (mp == 0x0) { 00179 kprintf("Error: Can't Find Mount Point\n"); @@ -240,7 +240,7 @@ 00208 struct fileSystem devFS = 00209 {NULL, /* prev */ 00210 NULL, /* next */ -00211 (void *)devfs_initialize, /* vfsInitFS */ +00211 (void *)devfs_initialize, /* vfsInitFS */ 00212 (void *)devfs_read, /* vfsRead */ 00213 (void *)devfs_write, /* vfsWrite */ 00214 (void *)devfs_open, /* vfsOpenFile */ @@ -265,7 +265,7 @@ 00233 /*** 00234 END 00235 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/devfs_8c.html b/doc/html/devfs_8c.html index ca7dbb7..5a933a0 100644 --- a/doc/html/devfs_8c.html +++ b/doc/html/devfs_8c.html @@ -48,7 +48,7 @@

Functions

int devfs_init () -static void devfs_initialize (vfs_mountPoint_t *mp) +static void devfs_initialize (struct vfs_mountPoint *mp) int devfs_makeNode (char *name, uInt8 type, uInt16 major, uInt16 minor) @@ -88,14 +88,14 @@ References devfs_initialize(), devfs_open(), devfs_read(), devfs_write(), NULL, vfs_mount(), vfsRegisterFS(), and x1.

- +

- + @@ -109,7 +109,7 @@

Definition at line 46 of file devfs.c.

-References devfs_info::deviceList, vfs_mountPoint::fsInfo, kmalloc(), and kpanic(). +References devfs_info::deviceList, vfs_mountPoint::fsInfo, kmalloc(), and kpanic().

Referenced by devfs_init(). @@ -156,7 +156,7 @@

Definition at line 169 of file devfs.c.

-References devfs_len, devfsSpinLock, devfs_info::deviceList, devfs_devices::devMajor, devfs_devices::devMinor, devfs_devices::devName, devfs_devices::devType, vfs_mountPoint::fsInfo, kmalloc(), kprintf(), devfs_devices::next, devfs_devices::prev, spinLock(), spinUnlock(), sprintf(), strlen(), and vfs_findMount(). +References devfs_len, devfsSpinLock, devfs_info::deviceList, devfs_devices::devMajor, devfs_devices::devMinor, devfs_devices::devName, devfs_devices::devType, vfs_mountPoint::fsInfo, kmalloc(), kprintf(), devfs_devices::next, devfs_devices::prev, spinLock(), spinUnlock(), sprintf(), strlen(), and vfs_findMount().

Referenced by fdc_init(), and initHardDisk(). @@ -329,7 +329,7 @@ Referenced by devfs_makeNode(), and devfs_open().

-


Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/devfs_8h-source.html b/doc/html/devfs_8h-source.html index 2bb982f..083b0fd 100644 --- a/doc/html/devfs_8h-source.html +++ b/doc/html/devfs_8h-source.html @@ -122,7 +122,7 @@ 00090 00091 END 00092 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/devfs_8h.html b/doc/html/devfs_8h.html index 9b08bf9..a234879 100644 --- a/doc/html/devfs_8h.html +++ b/doc/html/devfs_8h.html @@ -115,12 +115,12 @@

Definition at line 169 of file devfs.c.

-References devfs_len, devfsSpinLock, devfs_info::deviceList, devfs_devices::devMajor, devfs_devices::devMinor, devfs_devices::devName, devfs_devices::devType, vfs_mountPoint::fsInfo, kmalloc(), kprintf(), devfs_devices::next, devfs_devices::prev, spinLock(), spinUnlock(), sprintf(), strlen(), and vfs_findMount(). +References devfs_len, devfsSpinLock, devfs_info::deviceList, devfs_devices::devMajor, devfs_devices::devMinor, devfs_devices::devName, devfs_devices::devType, vfs_mountPoint::fsInfo, kmalloc(), kprintf(), devfs_devices::next, devfs_devices::prev, spinLock(), spinUnlock(), sprintf(), strlen(), and vfs_findMount().

Referenced by fdc_init(), and initHardDisk().

-


Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/device_8c-source.html b/doc/html/device_8c-source.html index f832433..d777491 100644 --- a/doc/html/device_8c-source.html +++ b/doc/html/device_8c-source.html @@ -180,7 +180,7 @@ 00148 /*** 00149 END 00150 ***/ -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/device_8c.html b/doc/html/device_8c.html index a8b8417..fcffa24 100644 --- a/doc/html/device_8c.html +++ b/doc/html/device_8c.html @@ -91,7 +91,7 @@

Definition at line 51 of file device.c.

-References devices, deviceSpinLock, device_node::devInfo, device_interface::init, device_interface::initialized, kmalloc(), kprintf(), device_node::minor, device_node::next, NULL, device_node::prev, spinLock(), spinUnlock(), and device_node::type. +References devices, deviceSpinLock, device_node::devInfo, device_interface::init, device_interface::initialized, kmalloc(), kprintf(), device_node::minor, device_node::next, NULL, device_node::prev, spinLock(), spinUnlock(), and device_node::type.

Referenced by fdc_init(), and initHardDisk(). @@ -152,7 +152,7 @@

Definition at line 110 of file device.c.

-References devices, deviceSpinLock, kfree(), device_node::next, NULL, spinLock(), and spinUnlock(). +References devices, deviceSpinLock, kfree(), device_node::next, NULL, spinLock(), and spinUnlock().


Variable Documentation

@@ -194,7 +194,7 @@ Referenced by device_add(), device_find(), and device_remove().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/device_8old_8h-source.html b/doc/html/device_8old_8h-source.html index 18cff15..ca4696a 100644 --- a/doc/html/device_8old_8h-source.html +++ b/doc/html/device_8old_8h-source.html @@ -88,7 +88,7 @@ 00056 END 00057 ***/ 00058 -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/device_8old_8h.html b/doc/html/device_8old_8h.html index a6854c5..892e9dd 100644 --- a/doc/html/device_8old_8h.html +++ b/doc/html/device_8old_8h.html @@ -45,7 +45,7 @@
static void devfs_initialize (vfs_mountPoint_tstruct vfs_mountPoint mp  )  [static]
struct  net
-
Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dirCache_8c-source.html b/doc/html/dirCache_8c-source.html index 4a2412e..38c80d9 100644 --- a/doc/html/dirCache_8c-source.html +++ b/doc/html/dirCache_8c-source.html @@ -463,7 +463,7 @@ 00431 ***/ 00432 00433 -

Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +

Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dirCache_8c.html b/doc/html/dirCache_8c.html index 407d374..5053133 100644 --- a/doc/html/dirCache_8c.html +++ b/doc/html/dirCache_8c.html @@ -115,7 +115,7 @@

Definition at line 202 of file dirCache.c.

-References cacheNode::fileListHead, cacheNode::info, kfree(), cacheNode::name, cacheNode::next, NULL, and ubixfs_cacheDelete(). +References cacheNode::fileListHead, cacheNode::info, kfree(), cacheNode::name, cacheNode::next, NULL, and ubixfs_cacheDelete().

Referenced by ubixfs_cacheDelete(). @@ -176,7 +176,7 @@

Definition at line 185 of file dirCache.c.

-References assert, cacheNode::attributes, cacheNode::dirty, cacheNode::fileListHead, cacheNode::fileListTail, cacheNode::info, kmalloc(), cacheNode::name, cacheNode::next, NULL, cacheNode::parent, cacheNode::permissions, cacheNode::present, cacheNode::prev, cacheNode::size, cacheNode::startCluster, strcpy(), and strlen(). +References assert, cacheNode::attributes, cacheNode::dirty, cacheNode::fileListHead, cacheNode::fileListTail, cacheNode::info, kmalloc(), cacheNode::name, cacheNode::next, NULL, cacheNode::parent, cacheNode::permissions, cacheNode::present, cacheNode::prev, cacheNode::size, cacheNode::startCluster, strcpy(), and strlen().

Referenced by ubixfs_cacheFind(), and ubixfs_initialize(). @@ -242,7 +242,7 @@ Referenced by ubixfs_cacheAdd(), and ubixfs_cacheFind().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dirCache_8h-source.html b/doc/html/dirCache_8h-source.html index 8594044..930d2ab 100644 --- a/doc/html/dirCache_8h-source.html +++ b/doc/html/dirCache_8h-source.html @@ -58,7 +58,7 @@ 00026 struct cacheNode * ubixfs_cacheAdd(struct cacheNode *, struct cacheNode *); 00027 00028 #endif /* !DIRCACHE_H */ -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dirCache_8h.html b/doc/html/dirCache_8h.html index 760495a..18b089c 100644 --- a/doc/html/dirCache_8h.html +++ b/doc/html/dirCache_8h.html @@ -107,7 +107,7 @@

Definition at line 202 of file dirCache.c.

-References cacheNode::fileListHead, cacheNode::info, kfree(), cacheNode::name, cacheNode::next, NULL, and ubixfs_cacheDelete(). +References cacheNode::fileListHead, cacheNode::info, kfree(), cacheNode::name, cacheNode::next, NULL, and ubixfs_cacheDelete().

Referenced by ubixfs_cacheDelete(). @@ -168,12 +168,12 @@

Definition at line 185 of file dirCache.c.

-References assert, cacheNode::attributes, cacheNode::dirty, cacheNode::fileListHead, cacheNode::fileListTail, cacheNode::info, kmalloc(), cacheNode::name, cacheNode::next, NULL, cacheNode::parent, cacheNode::permissions, cacheNode::present, cacheNode::prev, cacheNode::size, cacheNode::startCluster, strcpy(), and strlen(). +References assert, cacheNode::attributes, cacheNode::dirty, cacheNode::fileListHead, cacheNode::fileListTail, cacheNode::info, kmalloc(), cacheNode::name, cacheNode::next, NULL, cacheNode::parent, cacheNode::permissions, cacheNode::present, cacheNode::prev, cacheNode::size, cacheNode::startCluster, strcpy(), and strlen().

Referenced by ubixfs_cacheFind(), and ubixfs_initialize().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_0af38c139db535004c17f658eecde1eb.html b/doc/html/dir_0af38c139db535004c17f658eecde1eb.html index 616821b..8c502d7 100644 --- a/doc/html/dir_0af38c139db535004c17f658eecde1eb.html +++ b/doc/html/dir_0af38c139db535004c17f658eecde1eb.html @@ -33,7 +33,7 @@ file  devfs.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_0da430bc12a622a01803598a1e7c0e05.html b/doc/html/dir_0da430bc12a622a01803598a1e7c0e05.html index 3d1520e..7d4244b 100644 --- a/doc/html/dir_0da430bc12a622a01803598a1e7c0e05.html +++ b/doc/html/dir_0da430bc12a622a01803598a1e7c0e05.html @@ -35,7 +35,7 @@ file  ubixfs.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_21e0927e9dd41d8ff1206ca4f0555726.html b/doc/html/dir_21e0927e9dd41d8ff1206ca4f0555726.html index c2c6fea..746e38e 100644 --- a/doc/html/dir_21e0927e9dd41d8ff1206ca4f0555726.html +++ b/doc/html/dir_21e0927e9dd41d8ff1206ca4f0555726.html @@ -59,7 +59,7 @@ file  vfs.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_248b3debdbff35864f3bdabccbc86e68.html b/doc/html/dir_248b3debdbff35864f3bdabccbc86e68.html index e4a1f0d..98da6d1 100644 --- a/doc/html/dir_248b3debdbff35864f3bdabccbc86e68.html +++ b/doc/html/dir_248b3debdbff35864f3bdabccbc86e68.html @@ -33,7 +33,7 @@ file  devfs.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_2f8fc94d4f17c865dd63167e45dee9cf.html b/doc/html/dir_2f8fc94d4f17c865dd63167e45dee9cf.html index e8bb098..4e5e3ba 100644 --- a/doc/html/dir_2f8fc94d4f17c865dd63167e45dee9cf.html +++ b/doc/html/dir_2f8fc94d4f17c865dd63167e45dee9cf.html @@ -45,7 +45,7 @@ file  rs232.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_2fce887bf7cb6c890cb427c03dad3e86.html b/doc/html/dir_2fce887bf7cb6c890cb427c03dad3e86.html index 9d624c3..1759b2b 100644 --- a/doc/html/dir_2fce887bf7cb6c890cb427c03dad3e86.html +++ b/doc/html/dir_2fce887bf7cb6c890cb427c03dad3e86.html @@ -33,7 +33,7 @@ file  ogDisplay_VESA.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_366cae809cefebd9796e1be555536f38.html b/doc/html/dir_366cae809cefebd9796e1be555536f38.html index 3f6c1e2..930364a 100644 --- a/doc/html/dir_366cae809cefebd9796e1be555536f38.html +++ b/doc/html/dir_366cae809cefebd9796e1be555536f38.html @@ -37,7 +37,7 @@ file  vfs.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_4d4c8e7174efe8ad5ca8ab494abe072d.html b/doc/html/dir_4d4c8e7174efe8ad5ca8ab494abe072d.html index c66a32b..9654ac1 100644 --- a/doc/html/dir_4d4c8e7174efe8ad5ca8ab494abe072d.html +++ b/doc/html/dir_4d4c8e7174efe8ad5ca8ab494abe072d.html @@ -35,7 +35,7 @@ file  ufs.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_531e61b8e9b8982548f8f8f296b3206c.html b/doc/html/dir_531e61b8e9b8982548f8f8f296b3206c.html index 76131c4..6893348 100644 --- a/doc/html/dir_531e61b8e9b8982548f8f8f296b3206c.html +++ b/doc/html/dir_531e61b8e9b8982548f8f8f296b3206c.html @@ -43,7 +43,7 @@ file  pit.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_5377d826f41208e35c1e6ec985f139cd.html b/doc/html/dir_5377d826f41208e35c1e6ec985f139cd.html index 1402b2f..3d327df 100644 --- a/doc/html/dir_5377d826f41208e35c1e6ec985f139cd.html +++ b/doc/html/dir_5377d826f41208e35c1e6ec985f139cd.html @@ -41,7 +41,7 @@ file  tcpip.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_538938396c33f4585b2c9d510e98cbd2.html b/doc/html/dir_538938396c33f4585b2c9d510e98cbd2.html index 00329a5..99ffd1d 100644 --- a/doc/html/dir_538938396c33f4585b2c9d510e98cbd2.html +++ b/doc/html/dir_538938396c33f4585b2c9d510e98cbd2.html @@ -43,7 +43,7 @@ file  string.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_626404c379d6b1b237f0a541878d72c0.html b/doc/html/dir_626404c379d6b1b237f0a541878d72c0.html index 032b92a..57f57be 100644 --- a/doc/html/dir_626404c379d6b1b237f0a541878d72c0.html +++ b/doc/html/dir_626404c379d6b1b237f0a541878d72c0.html @@ -35,7 +35,7 @@ file  sde.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_74196872fc832845f1a07f1162e5c554.html b/doc/html/dir_74196872fc832845f1a07f1162e5c554.html index d1a5305..c1e5e7c 100644 --- a/doc/html/dir_74196872fc832845f1a07f1162e5c554.html +++ b/doc/html/dir_74196872fc832845f1a07f1162e5c554.html @@ -41,7 +41,7 @@ file  ubixfs.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_76136493e73439838033f413ae0f827f.html b/doc/html/dir_76136493e73439838033f413ae0f827f.html index 9d8820c..4626e23 100644 --- a/doc/html/dir_76136493e73439838033f413ae0f827f.html +++ b/doc/html/dir_76136493e73439838033f413ae0f827f.html @@ -39,7 +39,7 @@ file  ip_addr.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_77bb06880a0e48020cb00f59405a6b13.html b/doc/html/dir_77bb06880a0e48020cb00f59405a6b13.html index 8998eba..391e242 100644 --- a/doc/html/dir_77bb06880a0e48020cb00f59405a6b13.html +++ b/doc/html/dir_77bb06880a0e48020cb00f59405a6b13.html @@ -37,7 +37,7 @@ file  vfs.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_7b0469299ccbf4a3a403496996173710.html b/doc/html/dir_7b0469299ccbf4a3a403496996173710.html index e4053c4..acd1fc3 100644 --- a/doc/html/dir_7b0469299ccbf4a3a403496996173710.html +++ b/doc/html/dir_7b0469299ccbf4a3a403496996173710.html @@ -41,7 +41,7 @@ file  video.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_7efffd2b1fae7bb6f2aa85845c863494.html b/doc/html/dir_7efffd2b1fae7bb6f2aa85845c863494.html index 85dbb97..9b0afb0 100644 --- a/doc/html/dir_7efffd2b1fae7bb6f2aa85845c863494.html +++ b/doc/html/dir_7efffd2b1fae7bb6f2aa85845c863494.html @@ -87,7 +87,7 @@ file  vitals.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_832905b1f7f5feaf61a306b40c0ac817.html b/doc/html/dir_832905b1f7f5feaf61a306b40c0ac817.html index 1b11398..43e7598 100644 --- a/doc/html/dir_832905b1f7f5feaf61a306b40c0ac817.html +++ b/doc/html/dir_832905b1f7f5feaf61a306b40c0ac817.html @@ -30,8 +30,6 @@ - - @@ -68,7 +66,7 @@

Directories

directory  compile
directory  devfs
directory  include
file  Makefile.inc [code]
-
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_897b6a2d7bab147dd1db58381aad3984.html b/doc/html/dir_897b6a2d7bab147dd1db58381aad3984.html index df623f1..d54932f 100644 --- a/doc/html/dir_897b6a2d7bab147dd1db58381aad3984.html +++ b/doc/html/dir_897b6a2d7bab147dd1db58381aad3984.html @@ -33,7 +33,7 @@ directory  sys -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_912887cea1b4cb6e273c4527a2250d09.html b/doc/html/dir_912887cea1b4cb6e273c4527a2250d09.html index 95d3085..272cc37 100644 --- a/doc/html/dir_912887cea1b4cb6e273c4527a2250d09.html +++ b/doc/html/dir_912887cea1b4cb6e273c4527a2250d09.html @@ -37,7 +37,7 @@ file  pci.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.html b/doc/html/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.html index 5428738..be89a21 100644 --- a/doc/html/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.html +++ b/doc/html/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.html @@ -76,8 +76,10 @@ file  ubthread.h [code] +file  vitals.h [code] + -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_a0cadbe588a0f0b62517333d702e3cca.html b/doc/html/dir_a0cadbe588a0f0b62517333d702e3cca.html index 4b443e7..d63ab33 100644 --- a/doc/html/dir_a0cadbe588a0f0b62517333d702e3cca.html +++ b/doc/html/dir_a0cadbe588a0f0b62517333d702e3cca.html @@ -33,7 +33,7 @@ file  kmod.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_b2e9f53f507f0bb44cd3f7446945d199.html b/doc/html/dir_b2e9f53f507f0bb44cd3f7446945d199.html index 7a127e0..69df3f9 100644 --- a/doc/html/dir_b2e9f53f507f0bb44cd3f7446945d199.html +++ b/doc/html/dir_b2e9f53f507f0bb44cd3f7446945d199.html @@ -45,7 +45,7 @@ file  udpecho.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_b683da389ddfd9a2385307147d6c30b8.html b/doc/html/dir_b683da389ddfd9a2385307147d6c30b8.html index 160acd1..76184ea 100644 --- a/doc/html/dir_b683da389ddfd9a2385307147d6c30b8.html +++ b/doc/html/dir_b683da389ddfd9a2385307147d6c30b8.html @@ -37,7 +37,7 @@ file  pci.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_b87deefade4e886319aa926bd3ba1491.html b/doc/html/dir_b87deefade4e886319aa926bd3ba1491.html index fdec3f5..8b5c981 100644 --- a/doc/html/dir_b87deefade4e886319aa926bd3ba1491.html +++ b/doc/html/dir_b87deefade4e886319aa926bd3ba1491.html @@ -55,7 +55,7 @@ file  vmm_memory.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_bcb67723b759fa7c88f0f248d2c080de.html b/doc/html/dir_bcb67723b759fa7c88f0f248d2c080de.html index d8a55f4..da0cc59 100644 --- a/doc/html/dir_bcb67723b759fa7c88f0f248d2c080de.html +++ b/doc/html/dir_bcb67723b759fa7c88f0f248d2c080de.html @@ -35,7 +35,7 @@ file  system.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_bdca170688007a80a8e983b8739e5b43.html b/doc/html/dir_bdca170688007a80a8e983b8739e5b43.html index cc9b5c8..98b579e 100644 --- a/doc/html/dir_bdca170688007a80a8e983b8739e5b43.html +++ b/doc/html/dir_bdca170688007a80a8e983b8739e5b43.html @@ -43,7 +43,7 @@ file  sys_arch.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.html b/doc/html/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.html index 163ad2a..32d23b0 100644 --- a/doc/html/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.html +++ b/doc/html/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.html @@ -39,7 +39,7 @@ file  tcpdump.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_c0f81d69cde38683f3447d3343de50f4.html b/doc/html/dir_c0f81d69cde38683f3447d3343de50f4.html index 148d09d..c791cd8 100644 --- a/doc/html/dir_c0f81d69cde38683f3447d3343de50f4.html +++ b/doc/html/dir_c0f81d69cde38683f3447d3343de50f4.html @@ -39,7 +39,7 @@ file  tcpdump.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_c1d11d251a83b2498f44d410b793c5eb.html b/doc/html/dir_c1d11d251a83b2498f44d410b793c5eb.html index 1889fb1..7f78915 100644 --- a/doc/html/dir_c1d11d251a83b2498f44d410b793c5eb.html +++ b/doc/html/dir_c1d11d251a83b2498f44d410b793c5eb.html @@ -78,7 +78,7 @@ file  udp.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_c3e84400a32e4fc888777536359ca22b.html b/doc/html/dir_c3e84400a32e4fc888777536359ca22b.html index 6f514cb..802d790 100644 --- a/doc/html/dir_c3e84400a32e4fc888777536359ca22b.html +++ b/doc/html/dir_c3e84400a32e4fc888777536359ca22b.html @@ -39,7 +39,7 @@ file  ip_addr.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_caf4200c438ae9601464168e21e8e4d8.html b/doc/html/dir_caf4200c438ae9601464168e21e8e4d8.html index 3cce4a2..aa780e5 100644 --- a/doc/html/dir_caf4200c438ae9601464168e21e8e4d8.html +++ b/doc/html/dir_caf4200c438ae9601464168e21e8e4d8.html @@ -70,7 +70,7 @@ file  string.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_cbd3b6f8ac372a007cdc756f615c76fe.html b/doc/html/dir_cbd3b6f8ac372a007cdc756f615c76fe.html index 21dc1a9..2819316 100644 --- a/doc/html/dir_cbd3b6f8ac372a007cdc756f615c76fe.html +++ b/doc/html/dir_cbd3b6f8ac372a007cdc756f615c76fe.html @@ -35,7 +35,7 @@ file  ufs.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_d26f37d6397a53073c964316867e8d67.html b/doc/html/dir_d26f37d6397a53073c964316867e8d67.html index 1ca6780..4cca44a 100644 --- a/doc/html/dir_d26f37d6397a53073c964316867e8d67.html +++ b/doc/html/dir_d26f37d6397a53073c964316867e8d67.html @@ -73,7 +73,7 @@ file  video.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_d5a59026f863a7643db80a2edf430514.html b/doc/html/dir_d5a59026f863a7643db80a2edf430514.html index b3f73a5..ae6b322 100644 --- a/doc/html/dir_d5a59026f863a7643db80a2edf430514.html +++ b/doc/html/dir_d5a59026f863a7643db80a2edf430514.html @@ -35,7 +35,7 @@ file  vmm.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_d6c0de4141c0ef78b51cf518480fe588.html b/doc/html/dir_d6c0de4141c0ef78b51cf518480fe588.html index 82b2b66..afbdc2c 100644 --- a/doc/html/dir_d6c0de4141c0ef78b51cf518480fe588.html +++ b/doc/html/dir_d6c0de4141c0ef78b51cf518480fe588.html @@ -33,7 +33,7 @@ file  mpi.h [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html b/doc/html/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html index c7d72e6..212d405 100644 --- a/doc/html/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html +++ b/doc/html/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html @@ -34,6 +34,8 @@ file  atan.c [code] +file  bcopy.c [code] + file  divdi3.c [code] file  kmalloc.c [code] @@ -42,6 +44,8 @@ file  libcpp.cc [code] +file  memcpy.c [code] + file  memset.c [code] file  net.c [code] @@ -59,7 +63,7 @@ file  vsprintf.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_da977d215fccd664f66e7711fda26f76.html b/doc/html/dir_da977d215fccd664f66e7711fda26f76.html index ea1b52a..049e924 100644 --- a/doc/html/dir_da977d215fccd664f66e7711fda26f76.html +++ b/doc/html/dir_da977d215fccd664f66e7711fda26f76.html @@ -37,7 +37,7 @@ directory  netif -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dir_dffcdd1ad37a0b2305f9cf289deb8f95.html b/doc/html/dir_dffcdd1ad37a0b2305f9cf289deb8f95.html index bae39a5..dcef526 100644 --- a/doc/html/dir_dffcdd1ad37a0b2305f9cf289deb8f95.html +++ b/doc/html/dir_dffcdd1ad37a0b2305f9cf289deb8f95.html @@ -37,7 +37,7 @@ file  static.c [code] -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/directory_8c-source.html b/doc/html/directory_8c-source.html index b86d0a2..0f2336f 100644 --- a/doc/html/directory_8c-source.html +++ b/doc/html/directory_8c-source.html @@ -215,7 +215,7 @@ 00183 00184 END 00185 ***/ -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/directory_8c.html b/doc/html/directory_8c.html index f23cb08..ef5b20a 100644 --- a/doc/html/directory_8c.html +++ b/doc/html/directory_8c.html @@ -85,7 +85,7 @@

Definition at line 66 of file directory.c.

-References kmalloc(), kprintf(), memcpy(), fileDescriptor::offset, readUbixFS(), fileDescriptor::size, writeUbixFS(), and x1000. +References kmalloc(), kprintf(), memcpy(), fileDescriptor::offset, readUbixFS(), fileDescriptor::size, writeUbixFS(), and x1000.

Referenced by ubixFSmkDir(). @@ -111,7 +111,7 @@

Definition at line 41 of file directory.c.

-References directoryList::dirCache, dirList, directoryList::dirName, kmalloc(), directoryList::next, directoryList::prev, sprintf(), and strcmp(). +References directoryList::dirCache, dirList, directoryList::dirName, kmalloc(), directoryList::next, directoryList::prev, sprintf(), and strcmp().

@@ -144,7 +144,7 @@

Definition at line 94 of file directory.c.

-References addDirEntry(), directoryEntry::attributes, ubixFSInfo::blockAllocationTable, blockSize, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), directoryEntry::permissions, blockAllocationTableEntry::realSector, directoryEntry::size, sprintf(), directoryEntry::startCluster, typeDirectory, and UBIXFS_BLOCKSIZE_BYTES. +References addDirEntry(), directoryEntry::attributes, ubixFSInfo::blockAllocationTable, blockSize, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), directoryEntry::permissions, blockAllocationTableEntry::realSector, directoryEntry::size, sprintf(), directoryEntry::startCluster, typeDirectory, and UBIXFS_BLOCKSIZE_BYTES.

Referenced by ubixfs_init(). @@ -169,7 +169,7 @@ Referenced by ubixfs_cacheFind(), ubixfs_findName(), and ubixFSLoadDir().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dirs.html b/doc/html/dirs.html index c6f4d02..274bfa6 100644 --- a/doc/html/dirs.html +++ b/doc/html/dirs.html @@ -28,7 +28,6 @@ -
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/divdi3_8c-source.html b/doc/html/divdi3_8c-source.html index d7d3673..49332e5 100644 --- a/doc/html/divdi3_8c-source.html +++ b/doc/html/divdi3_8c-source.html @@ -92,7 +92,7 @@ 00060 END 00061 ***/ 00062 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/divdi3_8c.html b/doc/html/divdi3_8c.html index 23cbbe1..e46dcbc 100644 --- a/doc/html/divdi3_8c.html +++ b/doc/html/divdi3_8c.html @@ -106,7 +106,7 @@ Definition at line 32 of file divdi3.c.

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dma_8c-source.html b/doc/html/dma_8c-source.html index e3bf5ae..c3c25fc 100644 --- a/doc/html/dma_8c-source.html +++ b/doc/html/dma_8c-source.html @@ -105,7 +105,7 @@ 00073 /*** 00074 END 00075 ***/ -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dma_8c.html b/doc/html/dma_8c.html index 6e758ec..353a283 100644 --- a/doc/html/dma_8c.html +++ b/doc/html/dma_8c.html @@ -328,7 +328,7 @@ Referenced by _dmaXfer().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dma_8h-source.html b/doc/html/dma_8h-source.html index ad1f17a..289ed9d 100644 --- a/doc/html/dma_8h-source.html +++ b/doc/html/dma_8h-source.html @@ -86,7 +86,7 @@ 00054 00055 END 00056 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/dma_8h.html b/doc/html/dma_8h.html index 3f2477f..6628bf6 100644 --- a/doc/html/dma_8h.html +++ b/doc/html/dma_8h.html @@ -144,7 +144,7 @@ Referenced by fdcRw().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css new file mode 100644 index 0000000..5d58369 --- /dev/null +++ b/doc/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/doc/html/driver_8h-source.html b/doc/html/driver_8h-source.html index 5cd472e..f0bd7af 100644 --- a/doc/html/driver_8h-source.html +++ b/doc/html/driver_8h-source.html @@ -97,7 +97,7 @@ 00065 00066 END 00067 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/driver_8h.html b/doc/html/driver_8h.html index 5f99676..0a0ba71 100644 --- a/doc/html/driver_8h.html +++ b/doc/html/driver_8h.html @@ -64,7 +64,7 @@ Definition at line 36 of file driver.h.

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/elf_8c-source.html b/doc/html/elf_8c-source.html index e31cbd2..a2d7ffd 100644 --- a/doc/html/elf_8c-source.html +++ b/doc/html/elf_8c-source.html @@ -141,7 +141,7 @@ 00109 END 00110 ***/ 00111 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/elf_8c.html b/doc/html/elf_8c.html index 847e078..f4289d8 100644 --- a/doc/html/elf_8c.html +++ b/doc/html/elf_8c.html @@ -362,7 +362,7 @@ Referenced by elfGetShType().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/elf_8h-source.html b/doc/html/elf_8h-source.html index b89ebc9..7edaea5 100644 --- a/doc/html/elf_8h-source.html +++ b/doc/html/elf_8h-source.html @@ -222,7 +222,7 @@ 00190 00191 END 00192 ***/ -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/elf_8h.html b/doc/html/elf_8h.html index 5d58584..98a9abb 100644 --- a/doc/html/elf_8h.html +++ b/doc/html/elf_8h.html @@ -1085,7 +1085,7 @@ References elfShType, and shTypeName.

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/endtask_8c-source.html b/doc/html/endtask_8c-source.html index 6708205..184cab6 100644 --- a/doc/html/endtask_8c-source.html +++ b/doc/html/endtask_8c-source.html @@ -61,7 +61,7 @@ 00029 00030 #include <ubixos/types.h> 00031 #include <ubixos/sched.h> -00032 #include <ubixos/vitals.h> +00032 #include <ubixos/vitals.h> 00033 #include <vmm/vmm.h> 00034 #include <lib/kprintf.h> 00035 #include <isa/8259.h> @@ -77,7 +77,7 @@ 00045 ************************************************************************/ 00046 void endTask(pidType pid) { 00047 //kTask_t *tmpTask = 0x0; -00048 +00048 00049 /* Don't mess with scheduler structures from outside the scheduler! */ 00050 /* Just set status to dead, and let the scheduler clean up itself */ 00051 sched_setStatus(pid,DEAD); @@ -87,21 +87,22 @@ 00055 //kprintf("Ending Task: (%i:0x%X)\n",tmpTask->id,tmpTask); 00056 //sched_addDelTask(tmpTask); 00057 //tmpTask->state = DEAD; -00058 +00058 00059 //tmpTask->term->owner = tmpTask->parentPid; -00060 +00060 00061 if (pid == _current->id) -00062 while(1) sched_yield(); -00063 sched_yield(); -00064 -00065 return; -00066 } -00067 -00068 /*** -00069 END -00070 ***/ -00071 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00062 while(1) +00063 sched_yield(); +00064 sched_yield(); +00065 +00066 return; +00067 } +00068 +00069 /*** +00070 END +00071 ***/ +00072 +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/endtask_8c.html b/doc/html/endtask_8c.html index bf5ab1a..d78cef1 100644 --- a/doc/html/endtask_8c.html +++ b/doc/html/endtask_8c.html @@ -34,7 +34,7 @@

#include <ubixos/types.h>
#include <ubixos/sched.h>
-#include <ubixos/vitals.h>
+#include <ubixos/vitals.h>
#include <vmm/vmm.h>
#include <lib/kprintf.h>
#include <isa/8259.h>
@@ -68,12 +68,12 @@

Definition at line 46 of file endtask.c.

-References _current, DEAD, taskStruct::id, sched_setStatus(), and sched_yield(). +References _current, DEAD, taskStruct::id, sched_setStatus(), and sched_yield().

-Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), kern_sysctl(), netMainThread(), schedEndTask(), sysExec(), sysExit(), and vmm_pageFault(). +Referenced by __sysctl(), _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), netMainThread(), schedEndTask(), sysExec(), sysExit(), and vmm_pageFault().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/endtask_8h-source.html b/doc/html/endtask_8h-source.html index a7ebbcb..793c89e 100644 --- a/doc/html/endtask_8h-source.html +++ b/doc/html/endtask_8h-source.html @@ -89,7 +89,7 @@ 00057 00058 END 00059 ***/ -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/endtask_8h.html b/doc/html/endtask_8h.html index 5b4f537..84a62c8 100644 --- a/doc/html/endtask_8h.html +++ b/doc/html/endtask_8h.html @@ -64,12 +64,12 @@

Definition at line 46 of file endtask.c.

-References _current, DEAD, taskStruct::id, sched_setStatus(), and sched_yield(). +References _current, DEAD, taskStruct::id, sched_setStatus(), and sched_yield().

-Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), kern_sysctl(), netMainThread(), schedEndTask(), sysExec(), sysExit(), and vmm_pageFault(). +Referenced by __sysctl(), _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), netMainThread(), schedEndTask(), sysExec(), sysExit(), and vmm_pageFault().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/err_8c-source.html b/doc/html/err_8c-source.html index 6a28c31..bda9256 100644 --- a/doc/html/err_8c-source.html +++ b/doc/html/err_8c-source.html @@ -92,7 +92,7 @@ 00060 /*-----------------------------------------------------------------------------------*/ 00061 00062 #endif /* LWIP_DEBUG */ -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/err_8c.html b/doc/html/err_8c.html index d80738d..6eda6ba 100644 --- a/doc/html/err_8c.html +++ b/doc/html/err_8c.html @@ -38,7 +38,7 @@ Go to the source code of this file.
-
Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/err_8h-source.html b/doc/html/err_8h-source.html index 7cfcce9..d7f17c8 100644 --- a/doc/html/err_8h-source.html +++ b/doc/html/err_8h-source.html @@ -103,7 +103,7 @@ 00071 #define lwip_strerr(x) "" 00072 #endif /* LWIP_DEBUG */ 00073 #endif /* __LWIP_ERR_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/err_8h.html b/doc/html/err_8h.html index cc2056f..3db0331 100644 --- a/doc/html/err_8h.html +++ b/doc/html/err_8h.html @@ -308,7 +308,7 @@ Definition at line 44 of file err.h.

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ethernetif_8c-source.html b/doc/html/ethernetif_8c-source.html index 561c145..92f9c8e 100644 --- a/doc/html/ethernetif_8c-source.html +++ b/doc/html/ethernetif_8c-source.html @@ -387,7 +387,7 @@ 00355 } 00356 ne2kFreeBuffer(tmpBuf); 00357 } -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ethernetif_8c.html b/doc/html/ethernetif_8c.html index 1331975..2c3aed9 100644 --- a/doc/html/ethernetif_8c.html +++ b/doc/html/ethernetif_8c.html @@ -309,7 +309,7 @@

Definition at line 81 of file ethernetif.c.

-References dev, ethernetif::ethaddr, ethernetif_thread(), device::ioAddr, device::irq, kmalloc(), kprintf(), netif::state, and sys_thread_new(). +References dev, ethernetif::ethaddr, ethernetif_thread(), device::ioAddr, device::irq, kmalloc(), kprintf(), netif::state, and sys_thread_new().

Referenced by ethernetif_init(). @@ -335,7 +335,7 @@

Definition at line 142 of file ethernetif.c.

-References bcopy(), nicBuffer::buffer, pbuf::len, nicBuffer::length, pbuf::next, NULL, pbuf::payload, pbuf_alloc(), PBUF_LINK, PBUF_POOL, and tmpBuf. +References bcopy(), nicBuffer::buffer, pbuf::len, nicBuffer::length, pbuf::next, NULL, pbuf::payload, pbuf_alloc(), PBUF_LINK, PBUF_POOL, and tmpBuf.

Referenced by ethernetif_input(). @@ -370,7 +370,7 @@

Definition at line 113 of file ethernetif.c.

-References bcopy(), dev, ERR_OK, device::ioAddr, device::irq, pbuf::len, pbuf::next, NULL, pbuf::payload, PCtoNIC(), and pbuf::tot_len. +References bcopy(), dev, ERR_OK, device::ioAddr, device::irq, pbuf::len, pbuf::next, NULL, pbuf::payload, PCtoNIC(), and pbuf::tot_len.

Referenced by ethernetif_init(), ethernetif_input(), and ethernetif_output(). @@ -433,7 +433,7 @@ Referenced by dp_pkt2user(), ethernetif_thread(), low_level_input(), ne2kAllocBuffer(), and ne2kGetBuffer().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ethernetif_8h-source.html b/doc/html/ethernetif_8h-source.html index f6ff66f..041a317 100644 --- a/doc/html/ethernetif_8h-source.html +++ b/doc/html/ethernetif_8h-source.html @@ -72,7 +72,7 @@ 00040 void ethernetif_init(struct netif *netif); 00041 00042 #endif /* __NETIF_ETHERNETIF_H__ */ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ethernetif_8h.html b/doc/html/ethernetif_8h.html index cd19b6a..aeafc3a 100644 --- a/doc/html/ethernetif_8h.html +++ b/doc/html/ethernetif_8h.html @@ -68,7 +68,7 @@ Referenced by netMainThread().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/exec_8c-source.html b/doc/html/exec_8c-source.html index 32df207..ccc87c7 100644 --- a/doc/html/exec_8c-source.html +++ b/doc/html/exec_8c-source.html @@ -526,7 +526,7 @@ 00494 /*** 00495 END 00496 ***/ -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/exec_8c.html b/doc/html/exec_8c.html index aa28fde..cf0d474 100644 --- a/doc/html/exec_8c.html +++ b/doc/html/exec_8c.html @@ -120,7 +120,7 @@

Definition at line 142 of file exec.c.

-References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, elfHeader::eEntry, tssStruct::eflags, elfHeader::eIdent, tssStruct::eip, elfHeader::ePhnum, elfHeader::ePhoff, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, elfHeader::eType, fclose(), fopen(), fread(), tssStruct::fs, fseek(), taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kfree(), kmalloc(), kpanic(), kprintf(), tssStruct::ldt, memset(), taskStruct::oInfo, tty_termNode::owner, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, STACK_ADDR, taskStruct::td, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, tty_find(), taskStruct::uid, thread::vm_daddr, vmm_remapPage(), vmm_setPageAttributes(), vmmCreateVirtualSpace(), vmmFindFreePage(), osInfo::vmStart, x1000, x18, and x30. +References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, elfHeader::eEntry, tssStruct::eflags, elfHeader::eIdent, tssStruct::eip, elfHeader::ePhnum, elfHeader::ePhoff, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, elfHeader::eType, fclose(), fopen(), fread(), tssStruct::fs, fseek(), taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kfree(), kmalloc(), kpanic(), kprintf(), tssStruct::ldt, memset(), taskStruct::oInfo, tty_termNode::owner, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, STACK_ADDR, taskStruct::td, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, tty_find(), taskStruct::uid, thread::vm_daddr, vmm_remapPage(), vmm_setPageAttributes(), vmmCreateVirtualSpace(), vmmFindFreePage(), osInfo::vmStart, x1000, x18, and x30.

Referenced by kmain(). @@ -161,9 +161,9 @@

Definition at line 54 of file exec.c.

-References assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, taskStruct::id, taskStruct::imageFd, tssStruct::io_map, kernelPageDirectory, kpanic(), tssStruct::ldt, taskStruct::oInfo, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, tssStruct::trace_bitmap, taskStruct::tss, and osInfo::vmStart. +References assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, taskStruct::id, taskStruct::imageFd, tssStruct::io_map, kernelPageDirectory, kpanic(), tssStruct::ldt, taskStruct::oInfo, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, tssStruct::trace_bitmap, taskStruct::tss, and osInfo::vmStart.

-Referenced by kmain(), and ubthread_create(). +Referenced by kmain(), and ubthread_create().

@@ -202,10 +202,10 @@

Definition at line 333 of file exec.c.

-References _current, assert, elfHeader::eEntry, elfHeader::eIdent, endTask(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, tssStruct::esp0, elfHeader::eType, fclose(), fopen(), fread(), fseek(), taskStruct::id, taskStruct::imageFd, K_PANIC, kfree(), kmalloc(), kpanic(), kprintf(), ldEnable(), memset(), taskStruct::oInfo, PAGE_DEFAULT, PAGE_PRESENT, PAGE_SHIFT, PAGE_SIZE, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, PT_DYNAMIC, PT_INTERP, PT_LOAD, round_page, STACK_ADDR, taskStruct::td, trunc_page, taskStruct::tss, thread::vm_daddr, thread::vm_dsize, vmm_cleanVirtualSpace(), vmm_remapPage(), vmm_setPageAttributes(), vmmFindFreePage(), osInfo::vmStart, and x1000. +References _current, assert, elfHeader::eEntry, elfHeader::eIdent, endTask(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, tssStruct::esp0, elfHeader::eType, fclose(), fopen(), fread(), fseek(), taskStruct::id, taskStruct::imageFd, K_PANIC, kfree(), kmalloc(), kpanic(), kprintf(), ldEnable(), memset(), taskStruct::oInfo, PAGE_DEFAULT, PAGE_PRESENT, PAGE_SHIFT, PAGE_SIZE, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, PT_DYNAMIC, PT_INTERP, PT_LOAD, round_page, STACK_ADDR, taskStruct::td, trunc_page, taskStruct::tss, thread::vm_daddr, thread::vm_dsize, vmm_cleanVirtualSpace(), vmm_remapPage(), vmm_setPageAttributes(), vmmFindFreePage(), osInfo::vmStart, and x1000.

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/exec_8h-source.html b/doc/html/exec_8h-source.html index eddaf4f..ceeb608 100644 --- a/doc/html/exec_8h-source.html +++ b/doc/html/exec_8h-source.html @@ -90,7 +90,7 @@ 00058 00059 END 00060 ***/ -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/exec_8h.html b/doc/html/exec_8h.html index 5c674ee..fc811ef 100644 --- a/doc/html/exec_8h.html +++ b/doc/html/exec_8h.html @@ -87,7 +87,7 @@

Definition at line 142 of file exec.c.

-References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, elfHeader::eEntry, tssStruct::eflags, elfHeader::eIdent, tssStruct::eip, elfHeader::ePhnum, elfHeader::ePhoff, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, elfHeader::eType, fclose(), fopen(), fread(), tssStruct::fs, fseek(), taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kfree(), kmalloc(), kpanic(), kprintf(), tssStruct::ldt, memset(), taskStruct::oInfo, tty_termNode::owner, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, STACK_ADDR, taskStruct::td, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, tty_find(), taskStruct::uid, thread::vm_daddr, vmm_remapPage(), vmm_setPageAttributes(), vmmCreateVirtualSpace(), vmmFindFreePage(), osInfo::vmStart, x1000, x18, and x30. +References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, elfHeader::eEntry, tssStruct::eflags, elfHeader::eIdent, tssStruct::eip, elfHeader::ePhnum, elfHeader::ePhoff, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, elfHeader::eType, fclose(), fopen(), fread(), tssStruct::fs, fseek(), taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kfree(), kmalloc(), kpanic(), kprintf(), tssStruct::ldt, memset(), taskStruct::oInfo, tty_termNode::owner, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, PAGE_USER, elfProgramHeader::phMemsz, elfProgramHeader::phVaddr, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, STACK_ADDR, taskStruct::td, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, tty_find(), taskStruct::uid, thread::vm_daddr, vmm_remapPage(), vmm_setPageAttributes(), vmmCreateVirtualSpace(), vmmFindFreePage(), osInfo::vmStart, x1000, x18, and x30.

Referenced by kmain(). @@ -128,12 +128,12 @@

Definition at line 54 of file exec.c.

-References assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, taskStruct::id, taskStruct::imageFd, tssStruct::io_map, kernelPageDirectory, kpanic(), tssStruct::ldt, taskStruct::oInfo, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, tssStruct::trace_bitmap, taskStruct::tss, and osInfo::vmStart. +References assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::edi, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, tssStruct::fs, tssStruct::gs, taskStruct::id, taskStruct::imageFd, tssStruct::io_map, kernelPageDirectory, kpanic(), tssStruct::ldt, taskStruct::oInfo, READY, sched_setStatus(), schedNewTask(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, tssStruct::trace_bitmap, taskStruct::tss, and osInfo::vmStart.

-Referenced by kmain(), and ubthread_create(). +Referenced by kmain(), and ubthread_create().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fdc_8c-source.html b/doc/html/fdc_8c-source.html index 240fc4d..90de26c 100644 --- a/doc/html/fdc_8c-source.html +++ b/doc/html/fdc_8c-source.html @@ -444,7 +444,7 @@ 00412 END 00413 ***/ 00414 -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fdc_8c.html b/doc/html/fdc_8c.html index 8cfa131..2bea950 100644 --- a/doc/html/fdc_8c.html +++ b/doc/html/fdc_8c.html @@ -198,7 +198,7 @@

Definition at line 63 of file fdc.c.

-References devfs_makeNode(), device_add(), dInt, dPresent, fdcInit2(), fdcRead(), fdcWrite(), floppyIsr(), device_interface::init, irqEnable(), kmalloc(), device_interface::major, mVec, device_interface::read, device_interface::reset, reset(), setVector(), and device_interface::write. +References devfs_makeNode(), device_add(), dInt, dPresent, fdcInit2(), fdcRead(), fdcWrite(), floppyIsr(), device_interface::init, irqEnable(), kmalloc(), device_interface::major, mVec, device_interface::read, device_interface::reset, reset(), setVector(), and device_interface::write.

@@ -716,7 +716,7 @@

Definition at line 46 of file fdc.c.

-Referenced by floppyIsrhndlr(), reset(), and waitFdc(). +Referenced by bcopy(), floppyIsrhndlr(), reset(), and waitFdc().

@@ -849,7 +849,7 @@

Definition at line 54 of file fdc.c.

-Referenced by fdcRw(), ne2kHandler(), vmmFindFreePage(), vmmFreeProcessPages(), vmmMemMapInit(), and waitFdc(). +Referenced by fdcRw(), ne2kHandler(), vmmFindFreePage(), vmmFreeProcessPages(), vmmMemMapInit(), and waitFdc().

@@ -890,7 +890,7 @@ Referenced by waitFdc().

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fdc_8h-source.html b/doc/html/fdc_8h-source.html index c3663d6..ea14882 100644 --- a/doc/html/fdc_8h-source.html +++ b/doc/html/fdc_8h-source.html @@ -138,7 +138,7 @@ 00106 00107 END 00108 ***/ -
Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fdc_8h.html b/doc/html/fdc_8h.html index cbc747b..54c157e 100644 --- a/doc/html/fdc_8h.html +++ b/doc/html/fdc_8h.html @@ -516,7 +516,7 @@

Definition at line 63 of file fdc.c.

-References devfs_makeNode(), device_add(), dInt, dPresent, fdcInit2(), fdcRead(), fdcWrite(), floppyIsr(), device_interface::init, irqEnable(), kmalloc(), device_interface::major, mVec, device_interface::read, reset(), device_interface::reset, setVector(), and device_interface::write. +References devfs_makeNode(), device_add(), dInt, dPresent, fdcInit2(), fdcRead(), fdcWrite(), floppyIsr(), device_interface::init, irqEnable(), kmalloc(), device_interface::major, mVec, device_interface::read, reset(), device_interface::reset, setVector(), and device_interface::write.

@@ -993,7 +993,7 @@ Referenced by fdcWrite().

-


Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ffs_8c-source.html b/doc/html/ffs_8c-source.html index 2b97c1e..03c353f 100644 --- a/doc/html/ffs_8c-source.html +++ b/doc/html/ffs_8c-source.html @@ -42,19 +42,18 @@ 00010 00011 int ffs_read(fileDescriptor *fd,char *data,uInt32 offset,long size) { 00012 struct fs *fs; -00013 struct buf *bp; -00014 -00015 fs = (struct fs *)fd->dmadat->sbbuf; -00016 -00017 if (offset < fd->size && offset >= fs->fs_maxfilesize) { -00018 //return (EOVERFLOW); -00019 return(-1); -00020 } -00021 -00022 kprintf("Reading File w/ New Function [0x%X]\n",fs->fs_maxfilesize); -00023 return(0x0); -00024 } -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00013 +00014 fs = (struct fs *)fd->dmadat->sbbuf; +00015 +00016 if (offset < fd->size && offset >= fs->fs_maxfilesize) { +00017 //return (EOVERFLOW); +00018 return(-1); +00019 } +00020 +00021 kprintf("Reading File w/ New Function [0x%X]\n",fs->fs_maxfilesize); +00022 return(0x0); +00023 } +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ffs_8c.html b/doc/html/ffs_8c.html index 810aa6e..5b188e7 100644 --- a/doc/html/ffs_8c.html +++ b/doc/html/ffs_8c.html @@ -94,7 +94,7 @@ References fs::fs_maxfilesize, and kprintf().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ffs_8h-source.html b/doc/html/ffs_8h-source.html index 9e79ee5..e7f0042 100644 --- a/doc/html/ffs_8h-source.html +++ b/doc/html/ffs_8h-source.html @@ -74,7 +74,7 @@ 00042 END 00043 ***/ 00044 -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/ffs_8h.html b/doc/html/ffs_8h.html index 9ad275a..0f5247f 100644 --- a/doc/html/ffs_8h.html +++ b/doc/html/ffs_8h.html @@ -89,7 +89,7 @@ References fs::fs_maxfilesize, and kprintf().

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/file_8c-source.html b/doc/html/file_8c-source.html index b7a91e1..28087ad 100644 --- a/doc/html/file_8c-source.html +++ b/doc/html/file_8c-source.html @@ -62,7 +62,7 @@ 00030 #include <vfs/vfs.h> 00031 #include <vfs/file.h> 00032 #include <ubixos/sched.h> -00033 #include <ubixos/vitals.h> +00033 #include <ubixos/vitals.h> 00034 #include <ubixos/kpanic.h> 00035 #include <ubixos/spinlock.h> 00036 #include <lib/kmalloc.h> @@ -328,10 +328,10 @@ 00296 00297 /* Find our mount point or set default to sys */ 00298 if (mountPoint == 0x0) { -00299 tmpFd->mp = vfs_findMount("sys"); +00299 tmpFd->mp = vfs_findMount("sys"); 00300 } 00301 else { -00302 tmpFd->mp = vfs_findMount(mountPoint); +00302 tmpFd->mp = vfs_findMount(mountPoint); 00303 } 00304 00305 if (tmpFd->mp == 0x0) { @@ -391,7 +391,7 @@ 00359 spinLock(&fdTable_lock); 00360 00361 /* Increment Number Of Open Files */ -00362 systemVitals->openFiles++; +00362 systemVitals->openFiles++; 00363 00364 tmpFd->next = fdTable; 00365 @@ -441,7 +441,7 @@ 00409 if (tmpFd == fdTable) 00410 fdTable = tmpFd->next; 00411 -00412 systemVitals->openFiles--; +00412 systemVitals->openFiles--; 00413 spinUnlock(&fdTable_lock); 00414 if(tmpFd->buffer != NULL) 00415 kfree(tmpFd->buffer); @@ -509,15 +509,15 @@ 00477 00478 int unlink(const char *node) { 00479 char *path = 0x0,*mountPoint = 0x0; -00480 vfs_mountPoint_t *mp = 0x0; +00480 struct vfs_mountPoint *mp = 0x0; 00481 00482 path = (char *)strtok((char *)node,"@"); -00483 mountPoint = strtok(NULL,"\n"); -00484 if (mountPoint == 0x0) { -00485 mp = vfs_findMount("sys"); /* _current->oInfo.container; */ +00483 mountPoint = strtok(NULL,"\n"); +00484 if (mountPoint == 0x0) { +00485 mp = vfs_findMount("sys"); /* _current->oInfo.container; */ 00486 } 00487 else { -00488 mp = vfs_findMount(mountPoint); +00488 mp = vfs_findMount(mountPoint); 00489 } 00490 if (mp == 0x0) { 00491 //kpanic("Mount Point Bad"); @@ -532,7 +532,7 @@ 00500 END 00501 ***/ 00502 -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/file_8c.html b/doc/html/file_8c.html index 1523b5e..b6ba4d0 100644 --- a/doc/html/file_8c.html +++ b/doc/html/file_8c.html @@ -35,7 +35,7 @@ #include <vfs/vfs.h>
#include <vfs/file.h>
#include <ubixos/sched.h>
-#include <ubixos/vitals.h>
+#include <ubixos/vitals.h>
#include <ubixos/kpanic.h>
#include <ubixos/spinlock.h>
#include <lib/kmalloc.h>
@@ -114,7 +114,7 @@

Definition at line 396 of file file.c.

-References assert, fdTable, fdTable_lock, kfree(), fileDescriptor::next, NULL, fileDescriptor::prev, spinLock(), spinUnlock(), systemVitals, and x1. +References assert, fdTable, fdTable_lock, kfree(), fileDescriptor::next, NULL, vitalsStruct::openFiles, fileDescriptor::prev, spinLock(), spinUnlock(), systemVitals, and x1.

Referenced by dev_ramDestroy(), dev_ramDrive(), execFile(), kmod_load(), ldEnable(), bTree::Save(), sysExec(), sysFclose(), sysMkDir(), and systemTask(). @@ -199,7 +199,9 @@

Definition at line 267 of file file.c.

-References fdOpen, fdTable, fdTable_lock, fileAppend, fileBinary, fileRead, fileWrite, kfree(), kmalloc(), kprintf(), fileDescriptor::next, NULL, fileDescriptor::offset, fileDescriptor::prev, spinLock(), spinUnlock(), sprintf(), strstr(), strtok(), systemVitals, and vfs_findMount(). +References fdOpen, fdTable, fdTable_lock, fileAppend, fileBinary, fileRead, fileWrite, kfree(), kmalloc(), kprintf(), fileDescriptor::next, NULL, fileDescriptor::offset, vitalsStruct::openFiles, fileDescriptor::prev, spinLock(), spinUnlock(), sprintf(), strstr(), strtok(), systemVitals, and vfs_findMount(). +

+Referenced by dev_ramDestroy(), dev_ramDrive(), DiskFS::DiskFS(), execFile(), kmod_load(), ldEnable(), bTree::Save(), sysExec(), sysFopen(), sysMkDir(), and tcpdump_init().

@@ -391,7 +393,7 @@

Definition at line 102 of file file.c.

-References _current, osInfo::cwd, taskStruct::oInfo, sprintf(), and strstr(). +References _current, osInfo::cwd, taskStruct::oInfo, sprintf(), and strstr().

@@ -457,7 +459,7 @@

Definition at line 59 of file file.c.

-References _current, userFileDescriptorStruct::fd, fgetc(), getch(), sched_yield(), taskStruct::term, and tty_foreground. +References _current, userFileDescriptorStruct::fd, fgetc(), getch(), sched_yield(), taskStruct::term, and tty_foreground.

@@ -613,7 +615,7 @@

Definition at line 49 of file file.c.

-References _current, userFileDescriptorStruct::fd, fwrite(), taskStruct::term, and tty_print(). +References _current, userFileDescriptorStruct::fd, fwrite(), taskStruct::term, and tty_print().

@@ -637,7 +639,7 @@

Definition at line 434 of file file.c.

-References _current, osInfo::cwd, fclose(), fopen(), kprintf(), NULL, taskStruct::oInfo, sprintf(), strstr(), and strtok(). +References _current, osInfo::cwd, fclose(), fopen(), kprintf(), NULL, taskStruct::oInfo, sprintf(), strstr(), and strtok().

@@ -715,7 +717,7 @@

Definition at line 478 of file file.c.

-References vfs_mountPoint::fs, NULL, strtok(), vfs_findMount(), and fileSystem::vfsUnlink. +References vfs_mountPoint::fs, vfs_mountPoint::mountPoint, NULL, strtok(), vfs_findMount(), and fileSystem::vfsUnlink.

Referenced by sysUnlink(). @@ -759,7 +761,7 @@ Referenced by fclose(), and fopen().

-


Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/files.html b/doc/html/files.html index 0b48bd1..b6708fd 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -30,7 +30,6 @@

UbixOS V2 File List

Here is a list of all files with brief descriptions: - @@ -140,6 +139,7 @@ + @@ -188,10 +188,12 @@ + + @@ -263,7 +265,7 @@
src/sys/Makefile.inc [code]
src/sys/compile/null.c [code]
src/sys/devfs/devfs.c [code]
src/sys/include/assert.h [code]
src/sys/include/math.h [code]
src/sys/include/ubixos/tty.h [code]
src/sys/include/ubixos/types.h [code]
src/sys/include/ubixos/ubthread.h [code]
src/sys/include/ubixos/vitals.h [code]
src/sys/include/ufs/ffs.h [code]
src/sys/include/ufs/ufs.h [code]
src/sys/include/vfs/file.h [code]
src/sys/kmods/kmod.c [code]
src/sys/lib/assert.c [code]
src/sys/lib/atan.c [code]
src/sys/lib/bcopy.c [code]
src/sys/lib/divdi3.c [code]
src/sys/lib/kmalloc.c [code]
src/sys/lib/kprintf.c [code]
src/sys/lib/libcpp.cc [code]
src/sys/lib/memcpy.c [code]
src/sys/lib/memset.c [code]
src/sys/lib/net.c [code]
src/sys/lib/ogprintf.cc [code]
src/sys/vmm/vmm_init.c [code]
src/sys/vmm/vmm_memory.c [code]
-
Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fork_8c-source.html b/doc/html/fork_8c-source.html index f6f8364..683edde 100644 --- a/doc/html/fork_8c-source.html +++ b/doc/html/fork_8c-source.html @@ -62,8 +62,8 @@ 00030 #include <ubixos/fork.h> 00031 #include <ubixos/types.h> 00032 #include <ubixos/sched.h> -00033 #include <ubixos/vitals.h> -00034 #include <ubixos/tty.h> +00033 #include <ubixos/tty.h> +00034 #include <ubixos/vitals.h> 00035 #include <vmm/vmm.h> 00036 #include <string.h> 00037 #include <assert.h> @@ -163,7 +163,7 @@ 00131 END 00132 ***/ 00133 -
Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fork_8c.html b/doc/html/fork_8c.html index c8329c0..ae4f983 100644 --- a/doc/html/fork_8c.html +++ b/doc/html/fork_8c.html @@ -35,8 +35,8 @@ #include <ubixos/fork.h>
#include <ubixos/types.h>
#include <ubixos/sched.h>
-#include <ubixos/vitals.h>
#include <ubixos/tty.h>
+#include <ubixos/vitals.h>
#include <vmm/vmm.h>
#include <string.h>
#include <assert.h>
@@ -194,10 +194,10 @@

Definition at line 50 of file fork.c.

-References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, osInfo::cwd, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, FORK, tssStruct::fs, taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, tssStruct::ldt, memcpy(), taskStruct::oInfo, tty_termNode::owner, sched_yield(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, taskStruct::uid, vmmCopyVirtualSpace(), and osInfo::vmStart. +References _current, assert, tssStruct::back_link, tssStruct::cr3, tssStruct::cs, osInfo::cwd, tssStruct::ds, tssStruct::eax, tssStruct::ebp, tssStruct::ebx, tssStruct::ecx, tssStruct::edi, tssStruct::edx, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esi, tssStruct::esp, tssStruct::esp0, tssStruct::esp1, tssStruct::esp2, FORK, tssStruct::fs, taskStruct::gid, tssStruct::gs, taskStruct::id, tssStruct::io_map, tssStruct::ldt, memcpy(), taskStruct::oInfo, tty_termNode::owner, sched_yield(), tssStruct::ss, tssStruct::ss0, tssStruct::ss1, tssStruct::ss2, taskStruct::state, taskStruct::term, tssStruct::trace_bitmap, taskStruct::tss, taskStruct::uid, vmmCopyVirtualSpace(), and osInfo::vmStart.

-


Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fork_8h-source.html b/doc/html/fork_8h-source.html index 87ba023..15ac9f8 100644 --- a/doc/html/fork_8h-source.html +++ b/doc/html/fork_8h-source.html @@ -89,7 +89,7 @@ 00057 00058 END 00059 ***/ -
Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fork_8h.html b/doc/html/fork_8h.html index 2e4205e..3052411 100644 --- a/doc/html/fork_8h.html +++ b/doc/html/fork_8h.html @@ -62,7 +62,7 @@

-


Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fsAbstract_8h-source.html b/doc/html/fsAbstract_8h-source.html index ad6e74a..c0f0286 100644 --- a/doc/html/fsAbstract_8h-source.html +++ b/doc/html/fsAbstract_8h-source.html @@ -76,7 +76,7 @@ 00044 }; // vfs_FS 00045 00046 #endif // !FSABSTRACT_H -
Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/fsAbstract_8h.html b/doc/html/fsAbstract_8h.html index 7501922..ab490c5 100644 --- a/doc/html/fsAbstract_8h.html +++ b/doc/html/fsAbstract_8h.html @@ -45,7 +45,7 @@ class  vfs_abstract -
Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
diff --git a/doc/html/functions.html b/doc/html/functions.html index 16a0aca..21c7c7f 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -78,7 +79,7 @@ : stat
  • __st_ctimensec : stat
  • __st_mtimensec : stat -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x61.html b/doc/html/functions_0x61.html index c41e1ef..0ecda88 100644 --- a/doc/html/functions_0x61.html +++ b/doc/html/functions_0x61.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -97,7 +98,7 @@ : fcntl_args
  • arpcom : lncInfo
  • attributes : directoryEntry, blockAllocationTableEntry, cacheNode -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html index 4f21800..b6a2fff 100644 --- a/doc/html/functions_0x62.html +++ b/doc/html/functions_0x62.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -100,7 +101,7 @@ : confadd, pciConfig
  • bytes : etheraddr
  • BytesPerSector : bootSect -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html index 7038142..4a1eace 100644 --- a/doc/html/functions_0x63.html +++ b/doc/html/functions_0x63.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -112,7 +113,7 @@ : ei_device
  • cwd : osInfo, i387Struct
  • cwnd : tcp_pcb -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html index 262a754..7cd4c8f 100644 --- a/doc/html/functions_0x64.html +++ b/doc/html/functions_0x64.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -165,7 +166,8 @@ : dos_partition
  • dp_ssect : dos_partition
  • dp_start : dos_partition
  • dp_type -: dos_partition
  • dr_next +: dos_partition
  • dQuantum +: vitalsStruct
  • dr_next : dp_rcvhdr
  • dr_rbch : dp_rcvhdr
  • dr_rbcl : dp_rcvhdr
  • dr_status @@ -182,7 +184,7 @@ : elfDynSym
  • dynVal : elfDynamic
  • dynValue : elfDynSym -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html index 3b4b364..3aca9b3 100644 --- a/doc/html/functions_0x65.html +++ b/doc/html/functions_0x65.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -106,7 +107,7 @@ : ethernetif, arp_entry
  • eType : elfHeader
  • eVersion : elfHeader -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x66.html b/doc/html/functions_0x66.html index 8e2fef5..74a5e7a 100644 --- a/doc/html/functions_0x66.html +++ b/doc/html/functions_0x66.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -82,7 +83,8 @@ : cpuinfo_t
  • fileListHead : cacheNode
  • fileListTail : cacheNode
  • fileName -: fileDescriptorStruct, directoryEntry
  • Find() +: fileDescriptorStruct, directoryEntry
  • fileSystems +: vitalsStruct
  • Find() : bTree
  • findLeafNode() : bTree
  • findMode() : ogDisplay_VESA
  • FindMode() @@ -96,10 +98,12 @@ : mmap_args
  • flags_r_ : mmap_args
  • flow1 : ip_hdr
  • flow2 -: ip_hdr
  • foo +: ip_hdr
  • font +: vitalsStruct
  • foo : i387Struct
  • fos : i387Struct
  • freeBlockList -: UbixFS
  • fromaddr +: UbixFS
  • freePages +: vitalsStruct
  • fromaddr : netbuf
  • fromport : netbuf
  • fs : bTree, vfs_mountPoint, i386_frame, tssStruct
  • fs_active @@ -197,7 +201,7 @@ : bootSect
  • func : confadd, pciConfig
  • function : thread_start_param -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html index c86250c..79a9c42 100644 --- a/doc/html/functions_0x67.html +++ b/doc/html/functions_0x67.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -87,7 +88,7 @@ : i386_frame, tssStruct
  • gs_reserved : tssStruct
  • gw : netif -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html index 37308c9..f7ef4ea 100644 --- a/doc/html/functions_0x68.html +++ b/doc/html/functions_0x68.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -94,7 +95,7 @@ : sigprocmask_args
  • how_r_ : sigprocmask_args
  • hwaddr : netif -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x69.html b/doc/html/functions_0x69.html index 3579096..89ce58f 100644 --- a/doc/html/functions_0x69.html +++ b/doc/html/functions_0x69.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -105,7 +106,7 @@ : arp_entry, api_msg_msg
  • iPtr : uPtr
  • irq : device, device_resource, pciConfig -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6a.html b/doc/html/functions_0x6a.html index 50c12f1..7570266 100644 --- a/doc/html/functions_0x6a.html +++ b/doc/html/functions_0x6a.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -74,7 +75,7 @@

    - j -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6b.html b/doc/html/functions_0x6b.html index 269ee3c..76e7563 100644 --- a/doc/html/functions_0x6b.html +++ b/doc/html/functions_0x6b.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -74,7 +75,7 @@

    - k -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html index 2ee055d..31dcc90 100644 --- a/doc/html/functions_0x6c.html +++ b/doc/html/functions_0x6c.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -95,7 +96,7 @@ : tcp_pcb_listen, tcp_pcb
  • local_port : udp_pcb, tcp_pcb_listen, tcp_pcb
  • locked : ubthread_mutex, ubthread_cond -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6d.html b/doc/html/functions_0x6d.html index d592021..19127be 100644 --- a/doc/html/functions_0x6d.html +++ b/doc/html/functions_0x6d.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -94,15 +95,16 @@ : ogDisplay_UbixOS
  • ModeRec : ogDisplay_VESA
  • mon : timeStruct
  • mountPoint -: vfs_mountPoint
  • mp -: fileDescriptorStruct
  • msg +: vfs_mountPoint
  • mountPoints +: vitalsStruct
  • mp +: fileDescriptorStruct
  • msg : sys_mbox_msg, tcpip_msg, api_msg, api_msg_msg, mpi_mbox
  • msgLast : mpi_mbox
  • msgs : sys_mbox
  • mss : tcp_pcb
  • mtu : device
  • mutex : sys_sem, sys_mbox, ubthread_mutex_list -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6e.html b/doc/html/functions_0x6e.html index 1f535d4..a97746c 100644 --- a/doc/html/functions_0x6e.html +++ b/doc/html/functions_0x6e.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -104,7 +105,7 @@ : lncInfo
  • num : netif
  • numPartitions : ubixDiskLabel -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x6f.html b/doc/html/functions_0x6f.html index 2f34179..3b9fb4f 100644 --- a/doc/html/functions_0x6f.html +++ b/doc/html/functions_0x6f.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -109,13 +110,14 @@ : ufs1_dinode
  • oldlenp : sysctl_args
  • oldlenp_l_ : sysctl_args
  • oldlenp_r_ -: sysctl_args
  • oset +: sysctl_args
  • openFiles +: vitalsStruct
  • oset : sigprocmask_args
  • oset_l_ : sigprocmask_args
  • oset_r_ : sigprocmask_args
  • output : netif
  • owner : tty_termNode -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x70.html b/doc/html/functions_0x70.html index 1e3d4f1..c816c18 100644 --- a/doc/html/functions_0x70.html +++ b/doc/html/functions_0x70.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -80,7 +81,9 @@ : bsd_disklabel::partition
  • p_offset : bsd_disklabel::partition
  • p_size : bsd_disklabel::partition
  • PACK_STRUCT_FIELD() -: ethip_hdr, arp_hdr, eth_hdr, eth_addr, udp_hdr, tcp_hdr, ip_addr, ip_hdr, icmp_te_hdr, icmp_dur_hdr, icmp_echo_hdr
  • pad +: ethip_hdr, arp_hdr, eth_hdr, eth_addr, udp_hdr, tcp_hdr, ip_addr, ip_hdr, icmp_te_hdr, icmp_dur_hdr, icmp_echo_hdr
  • packet +: vitalsStruct
  • packetLength +: vitalsStruct
  • pad : mmap_args
  • pad_l_ : mmap_args
  • pad_r_ : mmap_args
  • paddington @@ -137,7 +140,7 @@ : mmap_args
  • pSize : ubixDiskLabel::ubixPartitions
  • ptr : netbuf -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x71.html b/doc/html/functions_0x71.html index 62603b8..06f6910 100644 --- a/doc/html/functions_0x71.html +++ b/doc/html/functions_0x71.html @@ -75,7 +75,7 @@

    - q -

    -
    Generated on Fri Dec 1 14:04:30 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x72.html b/doc/html/functions_0x72.html index c1369b4..8bb1bed 100644 --- a/doc/html/functions_0x72.html +++ b/doc/html/functions_0x72.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -107,7 +108,7 @@ : tcp_pcb
  • rttest : tcp_pcb
  • rxStartPage : ei_device -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html index 6cba113..e9d8edd 100644 --- a/doc/html/functions_0x73.html +++ b/doc/html/functions_0x73.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -83,7 +84,8 @@ : fstat_args
  • sb_l_ : fstat_args
  • sb_r_ : fstat_args
  • sbbuf -: dmadat
  • ScreenSelector +: dmadat
  • screen +: vitalsStruct
  • ScreenSelector : ogDisplay_VESA
  • sec : timeStruct
  • secbuf : dmadat
  • SectersPerTrack @@ -96,9 +98,9 @@ : sigprocmask_args
  • set_l_ : sigprocmask_args
  • set_r_ : sigprocmask_args
  • setFreeBlock() -: UbixFS
  • SetMode() -: ogDisplay_UbixOS
  • setMode() -: ogDisplay_VESA
  • SetPal() +: UbixFS
  • setMode() +: ogDisplay_VESA
  • SetMode() +: ogDisplay_UbixOS
  • SetPal() : ogDisplay_UbixOS
  • setPal() : ogDisplay_VESA
  • shAddr : elfSectionHeader
  • shAddralign @@ -176,8 +178,10 @@ : pciConfig
  • superBlock : UbixFS
  • sv : tcp_pcb
  • swd -: i387Struct -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +: i387Struct
  • sysTicks +: vitalsStruct
  • sysUptime +: vitalsStruct +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x74.html b/doc/html/functions_0x74.html index 981f581..4712c49 100644 --- a/doc/html/functions_0x74.html +++ b/doc/html/functions_0x74.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -104,7 +105,8 @@ : thread_start_param, ubthread_list
  • time : sys_timeout
  • timeouts : sys_thread
  • timer -: osInfo
  • tlen +: osInfo
  • timeStart +: vitalsStruct
  • tlen : initBlock
  • tmp : bootSect
  • tmp2 : bootSect
  • tmr @@ -145,7 +147,7 @@ : gettimeofday_args
  • tzp_l_ : gettimeofday_args
  • tzp_r_ : gettimeofday_args -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x75.html b/doc/html/functions_0x75.html index c032091..3545e2b 100644 --- a/doc/html/functions_0x75.html +++ b/doc/html/functions_0x75.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -84,7 +85,7 @@ : i386_frame
  • user_ss : i386_frame
  • username : _UbixUser -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x76.html b/doc/html/functions_0x76.html index 69db03a..07039fe 100644 --- a/doc/html/functions_0x76.html +++ b/doc/html/functions_0x76.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -114,7 +115,7 @@ : thread
  • vmStart : osInfo
  • vPtr : uPtr -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x77.html b/doc/html/functions_0x77.html index 41af4eb..9d7777d 100644 --- a/doc/html/functions_0x77.html +++ b/doc/html/functions_0x77.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -76,7 +77,7 @@ : api_msg_msg
  • word16 : ei_device
  • write : DiskFS, FileSystemAbstract, device_t, device_interface -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x79.html b/doc/html/functions_0x79.html index acdea74..983b6e8 100644 --- a/doc/html/functions_0x79.html +++ b/doc/html/functions_0x79.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -74,7 +75,7 @@

    - y -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html index 4e75034..caebb62 100644 --- a/doc/html/functions_0x7e.html +++ b/doc/html/functions_0x7e.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -80,7 +81,7 @@ : ogDisplay_VESA
  • ~UbixFS() : UbixFS
  • ~vfs_abstract() : vfs_abstract -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index f88276c..41e55b0 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -145,9 +145,9 @@
  • Save() : bTree
  • saveNode() : bTree
  • setFreeBlock() -: UbixFS
  • SetMode() -: ogDisplay_UbixOS
  • setMode() -: ogDisplay_VESA
  • SetPal() +: UbixFS
  • setMode() +: ogDisplay_VESA
  • SetMode() +: ogDisplay_UbixOS
  • SetPal() : ogDisplay_UbixOS
  • setPal() : ogDisplay_VESA
  • splitNode() : bTree @@ -189,7 +189,7 @@ : ogDisplay_VESA
  • ~UbixFS() : UbixFS
  • ~vfs_abstract() : vfs_abstract -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_rela.html b/doc/html/functions_rela.html index 5e2ee4a..ad01328 100644 --- a/doc/html/functions_rela.html +++ b/doc/html/functions_rela.html @@ -44,7 +44,7 @@
  • bTree : bTree, UbixFS
  • UbixFS : UbixFS, bTree -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html index 62c2f2e..4247ea3 100644 --- a/doc/html/functions_vars.html +++ b/doc/html/functions_vars.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -76,7 +77,7 @@ : stat
  • __st_ctimensec : stat
  • __st_mtimensec : stat -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x61.html b/doc/html/functions_vars_0x61.html index 141f1a0..8e44ad7 100644 --- a/doc/html/functions_vars_0x61.html +++ b/doc/html/functions_vars_0x61.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -95,7 +96,7 @@ : fcntl_args
  • arpcom : lncInfo
  • attributes : directoryEntry, blockAllocationTableEntry, cacheNode -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x62.html b/doc/html/functions_vars_0x62.html index c061009..0023b16 100644 --- a/doc/html/functions_vars_0x62.html +++ b/doc/html/functions_vars_0x62.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -98,7 +99,7 @@ : confadd, pciConfig
  • bytes : etheraddr
  • BytesPerSector : bootSect -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x63.html b/doc/html/functions_vars_0x63.html index d85061d..2d3929f 100644 --- a/doc/html/functions_vars_0x63.html +++ b/doc/html/functions_vars_0x63.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -111,7 +112,7 @@ : ei_device
  • cwd : osInfo, i387Struct
  • cwnd : tcp_pcb -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x64.html b/doc/html/functions_vars_0x64.html index 7363d72..85d9999 100644 --- a/doc/html/functions_vars_0x64.html +++ b/doc/html/functions_vars_0x64.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -162,7 +163,8 @@ : dos_partition
  • dp_ssect : dos_partition
  • dp_start : dos_partition
  • dp_type -: dos_partition
  • dr_next +: dos_partition
  • dQuantum +: vitalsStruct
  • dr_next : dp_rcvhdr
  • dr_rbch : dp_rcvhdr
  • dr_rbcl : dp_rcvhdr
  • dr_status @@ -179,7 +181,7 @@ : elfDynSym
  • dynVal : elfDynamic
  • dynValue : elfDynSym -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x65.html b/doc/html/functions_vars_0x65.html index 382a114..5872b14 100644 --- a/doc/html/functions_vars_0x65.html +++ b/doc/html/functions_vars_0x65.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -105,7 +106,7 @@ : ethernetif, arp_entry
  • eType : elfHeader
  • eVersion : elfHeader -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x66.html b/doc/html/functions_vars_0x66.html index 5b0b077..2b0169d 100644 --- a/doc/html/functions_vars_0x66.html +++ b/doc/html/functions_vars_0x66.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -81,7 +82,8 @@ : cpuinfo_t
  • fileListHead : cacheNode
  • fileListTail : cacheNode
  • fileName -: fileDescriptorStruct, directoryEntry
  • fip +: fileDescriptorStruct, directoryEntry
  • fileSystems +: vitalsStruct
  • fip : i387Struct
  • First : _list_t
  • first : sys_mbox
  • firstDeleted @@ -91,10 +93,12 @@ : mmap_args
  • flags_r_ : mmap_args
  • flow1 : ip_hdr
  • flow2 -: ip_hdr
  • foo +: ip_hdr
  • font +: vitalsStruct
  • foo : i387Struct
  • fos : i387Struct
  • freeBlockList -: UbixFS
  • fromaddr +: UbixFS
  • freePages +: vitalsStruct
  • fromaddr : netbuf
  • fromport : netbuf
  • fs : bTree, vfs_mountPoint, i386_frame, tssStruct
  • fs_active @@ -192,7 +196,7 @@ : bootSect
  • func : confadd, pciConfig
  • function : thread_start_param -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x67.html b/doc/html/functions_vars_0x67.html index c0de86b..0f0f4c3 100644 --- a/doc/html/functions_vars_0x67.html +++ b/doc/html/functions_vars_0x67.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -78,7 +79,7 @@ : i386_frame, tssStruct
  • gs_reserved : tssStruct
  • gw : netif -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x68.html b/doc/html/functions_vars_0x68.html index 3ea41e5..b4fc719 100644 --- a/doc/html/functions_vars_0x68.html +++ b/doc/html/functions_vars_0x68.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -93,7 +94,7 @@ : sigprocmask_args
  • how_r_ : sigprocmask_args
  • hwaddr : netif -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x69.html b/doc/html/functions_vars_0x69.html index 38d2476..be9b226 100644 --- a/doc/html/functions_vars_0x69.html +++ b/doc/html/functions_vars_0x69.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -100,7 +101,7 @@ : arp_entry, api_msg_msg
  • iPtr : uPtr
  • irq : device, device_resource, pciConfig -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6a.html b/doc/html/functions_vars_0x6a.html index fb6a7d0..a8ac351 100644 --- a/doc/html/functions_vars_0x6a.html +++ b/doc/html/functions_vars_0x6a.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -73,7 +74,7 @@

    - j -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6b.html b/doc/html/functions_vars_0x6b.html index cee98f7..75d0f0e 100644 --- a/doc/html/functions_vars_0x6b.html +++ b/doc/html/functions_vars_0x6b.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -73,7 +74,7 @@

    - k -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6c.html b/doc/html/functions_vars_0x6c.html index dba2126..7218797 100644 --- a/doc/html/functions_vars_0x6c.html +++ b/doc/html/functions_vars_0x6c.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -93,7 +94,7 @@ : tcp_pcb_listen, tcp_pcb
  • local_port : udp_pcb, tcp_pcb_listen, tcp_pcb
  • locked : ubthread_mutex, ubthread_cond -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6d.html b/doc/html/functions_vars_0x6d.html index 6b9b90e..4e45b9f 100644 --- a/doc/html/functions_vars_0x6d.html +++ b/doc/html/functions_vars_0x6d.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -92,15 +93,16 @@ : ogDisplay_UbixOS
  • ModeRec : ogDisplay_VESA
  • mon : timeStruct
  • mountPoint -: vfs_mountPoint
  • mp -: fileDescriptorStruct
  • msg +: vfs_mountPoint
  • mountPoints +: vitalsStruct
  • mp +: fileDescriptorStruct
  • msg : sys_mbox_msg, tcpip_msg, api_msg, api_msg_msg, mpi_mbox
  • msgLast : mpi_mbox
  • msgs : sys_mbox
  • mss : tcp_pcb
  • mtu : device
  • mutex : sys_sem, sys_mbox, ubthread_mutex_list -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6e.html b/doc/html/functions_vars_0x6e.html index 462eb1f..8765902 100644 --- a/doc/html/functions_vars_0x6e.html +++ b/doc/html/functions_vars_0x6e.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -103,7 +104,7 @@ : lncInfo
  • num : netif
  • numPartitions : ubixDiskLabel -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x6f.html b/doc/html/functions_vars_0x6f.html index 0a11aa3..b932f74 100644 --- a/doc/html/functions_vars_0x6f.html +++ b/doc/html/functions_vars_0x6f.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -87,13 +88,14 @@ : ufs1_dinode
  • oldlenp : sysctl_args
  • oldlenp_l_ : sysctl_args
  • oldlenp_r_ -: sysctl_args
  • oset +: sysctl_args
  • openFiles +: vitalsStruct
  • oset : sigprocmask_args
  • oset_l_ : sigprocmask_args
  • oset_r_ : sigprocmask_args
  • output : netif
  • owner : tty_termNode -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x70.html b/doc/html/functions_vars_0x70.html index 6ab9e95..49b13b9 100644 --- a/doc/html/functions_vars_0x70.html +++ b/doc/html/functions_vars_0x70.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -78,7 +79,9 @@ : bsd_disklabel::partition
  • p_fstype : bsd_disklabel::partition
  • p_offset : bsd_disklabel::partition
  • p_size -: bsd_disklabel::partition
  • pad +: bsd_disklabel::partition
  • packet +: vitalsStruct
  • packetLength +: vitalsStruct
  • pad : mmap_args
  • pad_l_ : mmap_args
  • pad_r_ : mmap_args
  • paddington @@ -131,7 +134,7 @@ : mmap_args
  • pSize : ubixDiskLabel::ubixPartitions
  • ptr : netbuf -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x71.html b/doc/html/functions_vars_0x71.html index 4e355d1..e6a95f7 100644 --- a/doc/html/functions_vars_0x71.html +++ b/doc/html/functions_vars_0x71.html @@ -74,7 +74,7 @@

    - q -

    -
    Generated on Fri Dec 1 14:04:30 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x72.html b/doc/html/functions_vars_0x72.html index d354b85..5aa2964 100644 --- a/doc/html/functions_vars_0x72.html +++ b/doc/html/functions_vars_0x72.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -103,7 +104,7 @@ : tcp_pcb
  • rttest : tcp_pcb
  • rxStartPage : ei_device -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x73.html b/doc/html/functions_vars_0x73.html index 86cf655..e6050be 100644 --- a/doc/html/functions_vars_0x73.html +++ b/doc/html/functions_vars_0x73.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -80,7 +81,8 @@ : fstat_args
  • sb_l_ : fstat_args
  • sb_r_ : fstat_args
  • sbbuf -: dmadat
  • ScreenSelector +: dmadat
  • screen +: vitalsStruct
  • ScreenSelector : ogDisplay_VESA
  • sec : timeStruct
  • secbuf : dmadat
  • SectersPerTrack @@ -167,8 +169,10 @@ : pciConfig
  • superBlock : UbixFS
  • sv : tcp_pcb
  • swd -: i387Struct -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +: i387Struct
  • sysTicks +: vitalsStruct
  • sysUptime +: vitalsStruct +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x74.html b/doc/html/functions_vars_0x74.html index c987c75..e9a00f0 100644 --- a/doc/html/functions_vars_0x74.html +++ b/doc/html/functions_vars_0x74.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -103,7 +104,8 @@ : thread_start_param, ubthread_list
  • time : sys_timeout
  • timeouts : sys_thread
  • timer -: osInfo
  • tlen +: osInfo
  • timeStart +: vitalsStruct
  • tlen : initBlock
  • tmp : bootSect
  • tmp2 : bootSect
  • tmr @@ -143,7 +145,7 @@ : gettimeofday_args
  • tzp_l_ : gettimeofday_args
  • tzp_r_ : gettimeofday_args -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x75.html b/doc/html/functions_vars_0x75.html index a2461df..a2fcb1f 100644 --- a/doc/html/functions_vars_0x75.html +++ b/doc/html/functions_vars_0x75.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -82,7 +83,7 @@ : i386_frame
  • user_ss : i386_frame
  • username : _UbixUser -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x76.html b/doc/html/functions_vars_0x76.html index db0b22c..cbc8165 100644 --- a/doc/html/functions_vars_0x76.html +++ b/doc/html/functions_vars_0x76.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -95,7 +96,7 @@ : thread
  • vmStart : osInfo
  • vPtr : uPtr -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x77.html b/doc/html/functions_vars_0x77.html index 739b081..ea4ca64 100644 --- a/doc/html/functions_vars_0x77.html +++ b/doc/html/functions_vars_0x77.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -75,7 +76,7 @@ : api_msg_msg
  • word16 : ei_device
  • write : DiskFS, FileSystemAbstract, device_t, device_interface -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/functions_vars_0x79.html b/doc/html/functions_vars_0x79.html index aa6f283..889c975 100644 --- a/doc/html/functions_vars_0x79.html +++ b/doc/html/functions_vars_0x79.html @@ -57,6 +57,7 @@
  • n
  • o
  • p
  • +
  • q
  • r
  • s
  • t
  • @@ -73,7 +74,7 @@

    - y -

    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gdt_8h-source.html b/doc/html/gdt_8h-source.html index 1abed5a..e75dcb9 100644 --- a/doc/html/gdt_8h-source.html +++ b/doc/html/gdt_8h-source.html @@ -152,7 +152,7 @@ 00120 00121 END 00122 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gdt_8h.html b/doc/html/gdt_8h.html index 114b8f1..b0e95a2 100644 --- a/doc/html/gdt_8h.html +++ b/doc/html/gdt_8h.html @@ -263,7 +263,7 @@

    Definition at line 47 of file gdt.h.

    -Referenced by atkbd_init(), idt_init(), and ne2k_init(). +Referenced by atkbd_init(), idt_init(), and ne2k_init().

    @@ -352,7 +352,7 @@

    Definition at line 37 of file gdt.h.

    -Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init(). +Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init().

    @@ -407,7 +407,7 @@

    Definition at line 48 of file gdt.h.

    -Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init(). +Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init().

    @@ -644,7 +644,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gen__calls_8c-source.html b/doc/html/gen__calls_8c-source.html index ad08b89..b493c9d 100644 --- a/doc/html/gen__calls_8c-source.html +++ b/doc/html/gen__calls_8c-source.html @@ -86,43 +86,45 @@ 00054 00055 int sys_write(struct thread *td, struct write_args *uap) { 00056 char *buffer = 0x0; -00057 char *in = 0x0; -00058 if (uap->fd == 2) { -00059 kprintf("stderr: %s",uap->buf); -00060 } -00061 if (uap->fd == 1) { -00062 in = uap->buf; -00063 buffer = kmalloc(1024); -00064 memcpy(buffer,uap->buf,uap->nbyte); -00065 kprintf("%s",buffer); -00066 kfree(buffer); -00067 } -00068 else { -00069 kprintf("(%i) %s",uap->fd,uap->buf); -00070 } -00071 return(0x0); -00072 } -00073 -00074 int issetugid(register struct thread *td, struct issetugid_args *uap) { -00075 td->td_retval[0] = 0; -00076 return (0); -00077 } -00078 -00079 int readlink(struct thread *td,struct readlink_args *uap) { -00080 kprintf("readlink: [%s:%i]\n",uap->path,uap->count); -00081 td->td_retval[0] = -1; -00082 td->td_retval[1] = 0x0; -00083 return(0x0); -00084 } -00085 -00086 int gettimeofday_new(struct thread *td, struct gettimeofday_args *uap) { -00087 return(0x0); -00088 } -00089 -00090 /*** -00091 END -00092 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00057 char *in = 0x0; +00058 +00059 if (uap->fd == 2) { +00060 kprintf("stderr: %s",uap->buf); +00061 } +00062 +00063 if (uap->fd == 1) { +00064 in = uap->buf; +00065 buffer = kmalloc(1024); +00066 memcpy(buffer,uap->buf,uap->nbyte); +00067 kprintf("%s",buffer); +00068 kfree(buffer); +00069 } +00070 else { +00071 kprintf("(%i) %s",uap->fd,uap->buf); +00072 } +00073 return(0x0); +00074 } +00075 +00076 int issetugid(register struct thread *td, struct issetugid_args *uap) { +00077 td->td_retval[0] = 0; +00078 return (0); +00079 } +00080 +00081 int readlink(struct thread *td,struct readlink_args *uap) { +00082 kprintf("readlink: [%s:%i]\n",uap->path,uap->count); +00083 td->td_retval[0] = -1; +00084 td->td_retval[1] = 0x0; +00085 return(0x0); +00086 } +00087 +00088 int gettimeofday_new(struct thread *td, struct gettimeofday_args *uap) { +00089 return(0x0); +00090 } +00091 +00092 /*** +00093 END +00094 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gen__calls_8c.html b/doc/html/gen__calls_8c.html index e042568..be68ec8 100644 --- a/doc/html/gen__calls_8c.html +++ b/doc/html/gen__calls_8c.html @@ -89,7 +89,7 @@

    Definition at line 50 of file gen_calls.c.

    -References _current, taskStruct::gid, taskStruct::td, and thread::td_retval. +References _current, taskStruct::gid, taskStruct::td, and thread::td_retval.

    @@ -122,7 +122,7 @@

    Definition at line 38 of file gen_calls.c.

    -References _current, taskStruct::id, taskStruct::td, and thread::td_retval. +References _current, taskStruct::id, taskStruct::td, and thread::td_retval.

    @@ -153,7 +153,7 @@

    -Definition at line 86 of file gen_calls.c. +Definition at line 88 of file gen_calls.c.

    @@ -186,7 +186,7 @@

    Definition at line 44 of file gen_calls.c.

    -References _current, taskStruct::td, thread::td_retval, and taskStruct::uid. +References _current, taskStruct::td, thread::td_retval, and taskStruct::uid.

    @@ -217,7 +217,7 @@

    -Definition at line 74 of file gen_calls.c. +Definition at line 76 of file gen_calls.c.

    @@ -248,7 +248,7 @@

    -Definition at line 79 of file gen_calls.c. +Definition at line 81 of file gen_calls.c.

    References readlink_args::count, kprintf(), readlink_args::path, taskStruct::td, and thread::td_retval. @@ -283,10 +283,10 @@

    Definition at line 55 of file gen_calls.c.

    -References write_args::buf, buffer, write_args::fd, kfree(), kmalloc(), kprintf(), memcpy(), and write_args::nbyte. +References write_args::buf, buffer, write_args::fd, kfree(), kmalloc(), kprintf(), memcpy(), and write_args::nbyte.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gen__calls_8h-source.html b/doc/html/gen__calls_8h-source.html index 82f06fe..88266b4 100644 --- a/doc/html/gen__calls_8h-source.html +++ b/doc/html/gen__calls_8h-source.html @@ -79,7 +79,7 @@ 00047 END 00048 ***/ 00049 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/gen__calls_8h.html b/doc/html/gen__calls_8h.html index 612a320..63a7b0b 100644 --- a/doc/html/gen__calls_8h.html +++ b/doc/html/gen__calls_8h.html @@ -147,7 +147,7 @@

    -Definition at line 86 of file gen_calls.c. +Definition at line 88 of file gen_calls.c.

    @@ -211,7 +211,7 @@

    -Definition at line 74 of file gen_calls.c. +Definition at line 76 of file gen_calls.c.

    @@ -242,7 +242,7 @@

    -Definition at line 79 of file gen_calls.c. +Definition at line 81 of file gen_calls.c.

    @@ -276,7 +276,7 @@ Definition at line 55 of file gen_calls.c.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getfreepage_8c-source.html b/doc/html/getfreepage_8c-source.html index cb48c99..b265a82 100644 --- a/doc/html/getfreepage_8c-source.html +++ b/doc/html/getfreepage_8c-source.html @@ -112,7 +112,7 @@ 00080 END 00081 ***/ 00082 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getfreepage_8c.html b/doc/html/getfreepage_8c.html index 1caae82..fb6634b 100644 --- a/doc/html/getfreepage_8c.html +++ b/doc/html/getfreepage_8c.html @@ -68,7 +68,7 @@

    Definition at line 48 of file getfreepage.c.

    -References KERNEL_PAGE_DEFAULT, kpanic(), spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), vmmGFPlock, and x1000. +References KERNEL_PAGE_DEFAULT, kpanic(), spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), vmmGFPlock, and x1000.

    Referenced by vmmCreateVirtualSpace(). @@ -93,7 +93,7 @@ Referenced by vmmGetFreePage().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getfreevirtualpage_8c-source.html b/doc/html/getfreevirtualpage_8c-source.html index 5f0d502..2da8595 100644 --- a/doc/html/getfreevirtualpage_8c-source.html +++ b/doc/html/getfreevirtualpage_8c-source.html @@ -194,7 +194,7 @@ 00162 END 00163 ***/ 00164 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getfreevirtualpage_8c.html b/doc/html/getfreevirtualpage_8c.html index a945118..34a55e8 100644 --- a/doc/html/getfreevirtualpage_8c.html +++ b/doc/html/getfreevirtualpage_8c.html @@ -85,9 +85,9 @@

    Definition at line 47 of file getfreevirtualpage.c.

    -References _current, btoc, ctob, fvpSpinLock, taskStruct::id, K_PANIC, kpanic(), kprintf(), taskStruct::oInfo, PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, VM_TASK, VM_THRD, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), osInfo::vmStart, x1, and x1000. +References _current, btoc, ctob, fvpSpinLock, taskStruct::id, K_PANIC, kpanic(), kprintf(), taskStruct::oInfo, PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, VM_TASK, VM_THRD, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), osInfo::vmStart, x1, and x1000.

    -Referenced by mmap(), sysGetFreePage(), and vmm_pageFault(). +Referenced by mmap(), sysGetFreePage(), and vmm_pageFault().


    Variable Documentation

    @@ -110,7 +110,7 @@ Referenced by vmmGetFreeVirtualPage().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getphysicaladdr_8c-source.html b/doc/html/getphysicaladdr_8c-source.html index 11c285e..bff263a 100644 --- a/doc/html/getphysicaladdr_8c-source.html +++ b/doc/html/getphysicaladdr_8c-source.html @@ -80,7 +80,7 @@ 00056 /*** 00057 END 00058 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/getphysicaladdr_8c.html b/doc/html/getphysicaladdr_8c.html index fdcad44..0c1d36b 100644 --- a/doc/html/getphysicaladdr_8c.html +++ b/doc/html/getphysicaladdr_8c.html @@ -68,7 +68,7 @@ Referenced by vmm_pageFault(), vmmCopyVirtualSpace(), and vmmCreateVirtualSpace().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals.html b/doc/html/globals.html index 42f3181..2750fb6 100644 --- a/doc/html/globals.html +++ b/doc/html/globals.html @@ -77,7 +77,7 @@

    - $ -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x5f.html b/doc/html/globals_0x5f.html index e00a13a..f951280 100644 --- a/doc/html/globals_0x5f.html +++ b/doc/html/globals_0x5f.html @@ -133,13 +133,14 @@ : signal.h
  • _SIG_VALID : signal.h
  • _SIG_WORD : signal.h
  • _SIG_WORDS -: signal.h
  • _start +: signal.h
  • _SIGNALL_H +: signal.h
  • _start : start.S
  • _sysCall : syscall.h, sys_call.S
  • _sysCall_new : syscall.h, sys_call_new.S
  • _usedMath : sched.c, sched.h
  • _vmm_pageFault : paging.h, page_fault.S -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x61.html b/doc/html/globals_0x61.html index 2180ddf..7dc6c89 100644 --- a/doc/html/globals_0x61.html +++ b/doc/html/globals_0x61.html @@ -150,7 +150,7 @@ : atkbd.c
  • ATTR_INODE : ubixfs.h
  • ax : ap-boot.S -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x62.html b/doc/html/globals_0x62.html index 4ae42d5..0eb43ef 100644 --- a/doc/html/globals_0x62.html +++ b/doc/html/globals_0x62.html @@ -103,7 +103,7 @@ : video.c, video.h
  • baseClass : pci.c
  • BCD_TO_BIN : time.h
  • bcopy() -: net.c, lib.h
  • BIG_ENDIAN +: net.c, bcopy.c, lib.h
  • BIG_ENDIAN : arch.h
  • bios16Code() : bioscall.h
  • biosCall() : bioscall.c, bioscall.h
  • bkl @@ -120,7 +120,7 @@ : shell.c
  • BYTE_ORDER : cpu.h
  • bzero() : net.c, lib.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x63.html b/doc/html/globals_0x63.html index f65aac3..19824f8 100644 --- a/doc/html/globals_0x63.html +++ b/doc/html/globals_0x63.html @@ -130,7 +130,8 @@ : arp.c
  • CTL_DEBUG : kern_sysctl.h
  • CTL_HW : kern_sysctl.h
  • CTL_KERN -: kern_sysctl.h
  • CTL_MACHDEP +: kern_sysctl.h
  • CTL_KERN_OPENFILES +: kern_sysctl.h
  • CTL_MACHDEP : kern_sysctl.h
  • CTL_MAXNAME : kern_sysctl.h
  • CTL_NET : kern_sysctl.h
  • CTL_P1003_1B @@ -144,7 +145,7 @@ : paging.h
  • current_thread() : sys_arch.c
  • cvsSpinLock : copyvirtualspace.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x64.html b/doc/html/globals_0x64.html index b7fbc09..f67766a 100644 --- a/doc/html/globals_0x64.html +++ b/doc/html/globals_0x64.html @@ -111,7 +111,7 @@ : ramdrive.h, ramdrive.cpp
  • dev_ramDrive() : ramdrive.h, ramdrive.cpp
  • devfs_init() : devfs.h, devfs.c
  • devfs_initialize() -: devfs.c
  • devfs_len +: devfs.c
  • devfs_len : devfs.c
  • devfs_makeNode() : devfs.h, devfs.c
  • devfs_open() : devfs.c
  • devfs_read() @@ -182,7 +182,7 @@ : gdt.h
  • dTss : gdt.h
  • dWrite : gdt.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x65.html b/doc/html/globals_0x65.html index 3b1cc29..27251db 100644 --- a/doc/html/globals_0x65.html +++ b/doc/html/globals_0x65.html @@ -186,7 +186,7 @@ : elf.h
  • execFile() : exec.c, exec.h
  • execThread() : exec.c, exec.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x66.html b/doc/html/globals_0x66.html index 45ef5fb..501ea8d 100644 --- a/doc/html/globals_0x66.html +++ b/doc/html/globals_0x66.html @@ -133,7 +133,7 @@ : fdc.c, fdc.h
  • FNDELAY : kern_descrip.h
  • FNONBLOCK : kern_descrip.h
  • fopen() -: file.c, vfs.h, file.h
  • FORK +: file.c, file.h
  • FORK : sched.h
  • fork_copyProcess() : fork.c
  • FP_TO_LINEAR : idt.c
  • FPOSIXSHM @@ -160,7 +160,7 @@ : getfreevirtualpage.c
  • fwrite() : file.c, file.h
  • FWRITE : kern_descrip.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x67.html b/doc/html/globals_0x67.html index 0ae39a2..18c90e3 100644 --- a/doc/html/globals_0x67.html +++ b/doc/html/globals_0x67.html @@ -95,7 +95,7 @@ : gen_calls.c, syscalls_new.h, gen_calls.h
  • getuid() : gen_calls.c, syscalls_new.h, gen_calls.h
  • gid_t : types.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x68.html b/doc/html/globals_0x68.html index a360ea0..e0cf4bf 100644 --- a/doc/html/globals_0x68.html +++ b/doc/html/globals_0x68.html @@ -94,13 +94,13 @@ : hd.c, hd.h
  • hdWrite() : hd.c, hd.h
  • highByte : dma.c
  • HOUR -: time.h
  • HTONL -: inet.h
  • htonl -: net.c, inet.h
  • htons -: net.c, inet.h
  • HTONS -: inet.h
  • HWTYPE_ETHERNET +: time.h
  • htonl +: net.c, inet.h
  • HTONL +: inet.h
  • HTONS +: inet.h
  • htons +: net.c, inet.h
  • HWTYPE_ETHERNET : arp.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x69.html b/doc/html/globals_0x69.html index cdf8eb3..d9f6fc3 100644 --- a/doc/html/globals_0x69.html +++ b/doc/html/globals_0x69.html @@ -242,7 +242,7 @@ : vsprintf.c
  • issetugid() : gen_calls.c, syscalls_new.h, gen_calls.h
  • Item_t : lists.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x6b.html b/doc/html/globals_0x6b.html index 5be12a3..83cc0d7 100644 --- a/doc/html/globals_0x6b.html +++ b/doc/html/globals_0x6b.html @@ -80,7 +80,7 @@ : mouse.c
  • kbdWrite() : mouse.c
  • kbdWriteRead() : mouse.c
  • kern_sysctl() -: kern_sysctl.c
  • kernel_function() +: kern_sysctl.h
  • kernel_function() : smp.c
  • KERNEL_PAGE_DEFAULT : paging.h
  • kernelPageDirectory : paging.c, paging.h
  • keyboardHandler() @@ -98,7 +98,7 @@ : video.c, video.h
  • kprintf() : kprintf.c, kprintf.h, kprint.h
  • kTask_t : sched.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x6c.html b/doc/html/globals_0x6c.html index eadbd6d..1232022 100644 --- a/doc/html/globals_0x6c.html +++ b/doc/html/globals_0x6c.html @@ -132,7 +132,7 @@ : opt.h, lwipopts.h
  • LWIP_UDP : opt.h, lwipopts.h
  • lwip_write() : sockets.c, sockets.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x6d.html b/doc/html/globals_0x6d.html index ad9a773..776d1b9 100644 --- a/doc/html/globals_0x6d.html +++ b/doc/html/globals_0x6d.html @@ -111,8 +111,10 @@ : lnc.h
  • MEM_STATS : lwipopts.h
  • memAvail : vmm.h
  • memcmp() -: string.c, string.h
  • memcpy() -: string.c, string.h
  • memNotavail +: string.c, string.h
  • MEMCOPY +: memcpy.c
  • memcpy() +: string.h
  • memcpyold() +: string.c
  • memNotavail : vmm.h
  • MEMP_API_MSG : memp.h
  • MEMP_DEBUG : debug.h
  • memp_free() @@ -180,7 +182,7 @@ : paging.c, paging.h, syscalls_new.h
  • mutex : ubthread.c
  • mVec : 8259.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x6e.html b/doc/html/globals_0x6e.html index d5e831e..61a5b58 100644 --- a/doc/html/globals_0x6e.html +++ b/doc/html/globals_0x6e.html @@ -195,7 +195,7 @@ : vsprintf.c
  • numPages : vmm_memory.c, vmm.h
  • NXADDR : ufs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x6f.html b/doc/html/globals_0x6f.html index 4248d9d..40df04a 100644 --- a/doc/html/globals_0x6f.html +++ b/doc/html/globals_0x6f.html @@ -110,7 +110,7 @@ : io.c, io.h
  • outportDWord() : io.c, io.h
  • outportWord() : io.c, io.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x70.html b/doc/html/globals_0x70.html index f60272f..730b0d2 100644 --- a/doc/html/globals_0x70.html +++ b/doc/html/globals_0x70.html @@ -186,7 +186,7 @@ : elf.h
  • PT_PHDR : elf.h
  • PT_SHLIB : elf.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x71.html b/doc/html/globals_0x71.html index 468413d..ef9f560 100644 --- a/doc/html/globals_0x71.html +++ b/doc/html/globals_0x71.html @@ -77,7 +77,7 @@

    - q -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x72.html b/doc/html/globals_0x72.html index 6cea897..5f0e544 100644 --- a/doc/html/globals_0x72.html +++ b/doc/html/globals_0x72.html @@ -117,7 +117,7 @@ : ne2k.h
  • RUNNING : sched.h
  • RXON : lnc.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x73.html b/doc/html/globals_0x73.html index 0ca20ef..fa32b98 100644 --- a/doc/html/globals_0x73.html +++ b/doc/html/globals_0x73.html @@ -175,7 +175,7 @@ : 8259.h
  • SYN_RCVD : tcp.h
  • SYN_SENT : tcp.h
  • syncBat() -: block.c, ubixfs.h
  • sys_arch_mbox_fetch() +: block.c, ubixfs.h
  • sys_arch_mbox_fetch() : sys_arch.c, sys.h
  • sys_arch_sem_wait() : sys_arch.c, sys.h
  • sys_arch_timeouts() : sys_arch.c, sys.h
  • SYS_DEBUG @@ -209,10 +209,10 @@ : syscall_new.c
  • sysChDir() : file.c, file.h, syscalls.h
  • sysCheckPid() : syscall.c, syscalls.h
  • sysctl_add() -: kern_sysctl.c
  • sysctl_enabled -: kern_sysctl.c
  • sysctl_find() +: kern_sysctl.c, kern_sysctl.h
  • sysctl_enabled +: kern_sysctl.h
  • sysctl_find() : kern_sysctl.c
  • sysctl_init() -: kern_sysctl.c
  • sysExec() +: kern_sysctl.c, kern_sysctl.h
  • sysExec() : exec.c, syscalls.h
  • sysExit() : syscall.c, syscalls_new.h, syscalls.h
  • sysFclose() : file.c, syscalls.h
  • sysFgetc() @@ -248,9 +248,9 @@ : syscalls.h
  • systemCalls_new : syscalls_new.h
  • systemTask() : systemtask.c, systemtask.h
  • systemVitals -: vitals.c, timer.S
  • sysUnlink() +: vitals.c, timer.S, vitals.h
  • sysUnlink() : file.c, syscalls.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x74.html b/doc/html/globals_0x74.html index ebdfdf6..4b0b034 100644 --- a/doc/html/globals_0x74.html +++ b/doc/html/globals_0x74.html @@ -126,9 +126,9 @@ : tcp.h
  • TCP_REXMIT_DEBUG : debug.h
  • tcp_rexmit_seg() : tcp.h
  • TCP_RMV -: tcp.h
  • tcp_rst() -: tcp.h
  • TCP_RST -: tcp.h
  • TCP_RST_DEBUG +: tcp.h
  • TCP_RST +: tcp.h
  • tcp_rst() +: tcp.h
  • TCP_RST_DEBUG : debug.h
  • TCP_RTO_DEBUG : debug.h
  • tcp_seg_copy() : tcp.h
  • tcp_seg_free() @@ -170,9 +170,9 @@ : tcp.h
  • tcpip_apimsg() : tcpip.c, tcpip.h
  • TCPIP_DEBUG : debug.h
  • tcpip_init() -: tcpip.c, tcpip.h
  • tcpip_init_done -: init.c, tcpip.c
  • TCPIP_INIT_DONE -: init.h
  • tcpip_init_done_arg +: tcpip.c, tcpip.h
  • TCPIP_INIT_DONE +: init.h
  • tcpip_init_done +: init.c, tcpip.c
  • tcpip_init_done_arg : tcpip.c
  • tcpip_input() : tcpip.c, tcpip.h
  • TCPIP_MSG_API : tcpip.h
  • TCPIP_MSG_INPUT @@ -196,7 +196,9 @@ : time.c, time.h
  • timeOut : fdc.c
  • timerInt : idt.h, timer.S
  • TINT -: lnc.h
  • tmpBuf +: lnc.h
  • TLOOP +: bcopy.c
  • TLOOP1 +: bcopy.c
  • tmpBuf : ethernetif.c
  • totalCalls : syscalls.h
  • totalCalls_new : syscalls_new.h
  • TRANSBUFSIZE @@ -221,7 +223,7 @@ : ubixfs.h
  • typeDirectory : ubixfs.h
  • typeFile : ubixfs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x75.html b/doc/html/globals_0x75.html index 97a9b53..25646e3 100644 --- a/doc/html/globals_0x75.html +++ b/doc/html/globals_0x75.html @@ -98,16 +98,16 @@ : dirCache.c
  • ubixFS_Info : thread.c
  • ubixfs_init() : ubixfs.c, ubixfs.h
  • ubixfs_initialize() -: ubixfs.c, ubixfs.h
  • UBIXFS_INODE_MAGIC +: ubixfs.c, ubixfs.h
  • UBIXFS_INODE_MAGIC : ubixfs.h
  • ubixfs_loadData() : ubixfs.c
  • UBIXFS_MAGIC1 : ubixfs.h
  • UBIXFS_MAGIC2 : ubixfs.h
  • UBIXFS_MAGIC3 : ubixfs.h
  • ubixfs_thread() -: thread.c, ubixfs.h
  • ubixFSLoadDir() +: thread.c, ubixfs.h
  • ubixFSLoadDir() : directory.c, ubixfs.h
  • ubixFSmkDir() : directory.c, ubixfs.h
  • ubixFSUnlink() -: ubixfs.c, ubixfs.h
  • ubixGateDescriptor +: ubixfs.c, ubixfs.h
  • ubixGateDescriptor : gdt.h
  • ubixGDT : gdt.h
  • ubixStandardDescriptor : gdt.h
  • UbixUser @@ -148,7 +148,7 @@ : ufs.h
  • ufs2_daddr_t : ufs.h
  • ufs_init() : ufs.c, ufs.h
  • ufs_initialize() -: ufs.c, ufs.h
  • ufs_lbn_t +: ufs.c, ufs.h
  • ufs_lbn_t : ufs.h
  • ufs_openFile() : ufs.c
  • ufs_readFile() : ufs.c
  • ufs_time_t @@ -159,7 +159,8 @@ : types.h
  • uInt32 : types.h
  • uInt64 : types.h
  • uInt8 -: types.h
  • UMAX +: types.h
  • uintptr_t +: bcopy.c
  • UMAX : sys_arch.c, def.h
  • UNIXIF_DEBUG : debug.h
  • UNKNOWN : lnc.h
  • unlink() @@ -167,7 +168,7 @@ : ubthread.h
  • usedKernDesc : kmalloc.c
  • userFileDescriptor : file.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x76.html b/doc/html/globals_0x76.html index dc3881d..0e6c466 100644 --- a/doc/html/globals_0x76.html +++ b/doc/html/globals_0x76.html @@ -86,15 +86,16 @@ : ufs.c, file.h
  • VERIFY : btree.cpp
  • verifyDir() : file.h
  • vfs_addMount() -: mount.c, mount.h
  • vfs_findMount() -: mount.c, mount.h
  • vfs_init() +: mount.c, mount.h
  • vfs_findFS() +: vfs.h
  • vfs_findMount() +: mount.c, mount.h
  • vfs_init() : vfs.c, vfs.h
  • vfs_mount() -: mount.c, mount.h
  • vfs_mountPoint_t -: mount.h
  • vfsFindFS() -: vfs.c, vfs.h
  • vfsRegisterFS() +: mount.c, mount.h
  • vfsFindFS() +: vfs.c
  • vfsRegisterFS() : vfs.c, vfs.h
  • videoBuffer : video.c, systemtask.c
  • vitals_init() -: vitals.c
  • vm_offset_t +: vitals.c, vitals.h
  • vitalsNode +: vitals.h
  • vm_offset_t : types.h
  • VM_TASK : paging.h
  • VM_THRD : paging.h
  • vmm_cleanVirtualSpace() @@ -126,7 +127,7 @@ : unmappage.c, paging.h
  • vram : smp.c
  • vsprintf() : vsprintf.c, stdarg.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x77.html b/doc/html/globals_0x77.html index d2250db..bb45a39 100644 --- a/doc/html/globals_0x77.html +++ b/doc/html/globals_0x77.html @@ -81,14 +81,15 @@ : memset.c
  • windowReady : sde.h
  • windows : sde.h
  • wmask -: memset.c
  • writeBcr() +: memset.c, bcopy.c
  • word +: bcopy.c
  • writeBcr() : lnc.c, lnc.h
  • writeBlock() : fdc.c, fdc.h
  • writeCsr() : lnc.c, lnc.h
  • writeFileByte() : ubixfs.c, ubixfs.h
  • writeUbixFS() : ubixfs.c, ubixfs.h
  • wsize -: memset.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +: memset.c, bcopy.c +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x78.html b/doc/html/globals_0x78.html index 65d3f00..84aca74 100644 --- a/doc/html/globals_0x78.html +++ b/doc/html/globals_0x78.html @@ -89,7 +89,7 @@ : page_fault.S
  • xchgl() : ap-boot.S
  • xe9 : ap-boot.S -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x79.html b/doc/html/globals_0x79.html index 8782da0..845a565 100644 --- a/doc/html/globals_0x79.html +++ b/doc/html/globals_0x79.html @@ -77,7 +77,7 @@

    - y -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_0x7a.html b/doc/html/globals_0x7a.html index 7e18610..e81fa29 100644 --- a/doc/html/globals_0x7a.html +++ b/doc/html/globals_0x7a.html @@ -77,7 +77,7 @@

    - z -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html index e78f203..1dfdbcd 100644 --- a/doc/html/globals_defs.html +++ b/doc/html/globals_defs.html @@ -83,8 +83,9 @@ : signal.h
  • _SIG_VALID : signal.h
  • _SIG_WORD : signal.h
  • _SIG_WORDS -: signal.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +: signal.h
  • _SIGNALL_H +: signal.h +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x61.html b/doc/html/globals_defs_0x61.html index e8dc3e2..6c74aa7 100644 --- a/doc/html/globals_defs_0x61.html +++ b/doc/html/globals_defs_0x61.html @@ -100,7 +100,7 @@ : debug.h
  • assert : assert.h
  • ATTR_INODE : ubixfs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x62.html b/doc/html/globals_defs_0x62.html index 16cd42c..faf587c 100644 --- a/doc/html/globals_defs_0x62.html +++ b/doc/html/globals_defs_0x62.html @@ -102,7 +102,7 @@ : ubixfs.h
  • btoc : paging.h
  • BYTE_ORDER : cpu.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x63.html b/doc/html/globals_defs_0x63.html index 1ad8382..3979602 100644 --- a/doc/html/globals_defs_0x63.html +++ b/doc/html/globals_defs_0x63.html @@ -96,7 +96,8 @@ : lnc.h
  • CTL_DEBUG : kern_sysctl.h
  • CTL_HW : kern_sysctl.h
  • CTL_KERN -: kern_sysctl.h
  • CTL_MACHDEP +: kern_sysctl.h
  • CTL_KERN_OPENFILES +: kern_sysctl.h
  • CTL_MACHDEP : kern_sysctl.h
  • CTL_MAXNAME : kern_sysctl.h
  • CTL_NET : kern_sysctl.h
  • CTL_P1003_1B @@ -107,7 +108,7 @@ : kern_sysctl.h
  • CTL_VM : kern_sysctl.h
  • ctob : paging.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x64.html b/doc/html/globals_defs_0x64.html index 14fa79a..32f8e69 100644 --- a/doc/html/globals_defs_0x64.html +++ b/doc/html/globals_defs_0x64.html @@ -132,7 +132,7 @@ : gdt.h
  • dTss : gdt.h
  • dWrite : gdt.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x65.html b/doc/html/globals_defs_0x65.html index 030d7e0..68654c7 100644 --- a/doc/html/globals_defs_0x65.html +++ b/doc/html/globals_defs_0x65.html @@ -156,7 +156,7 @@ : shell.c
  • EV_CURRENT : elf.h
  • EV_NONE : elf.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x66.html b/doc/html/globals_defs_0x66.html index 9fd8154..0e50b14 100644 --- a/doc/html/globals_defs_0x66.html +++ b/doc/html/globals_defs_0x66.html @@ -114,7 +114,7 @@ : ufs.h
  • FSMAXSNAP : ufs.h
  • FWRITE : kern_descrip.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x68.html b/doc/html/globals_defs_0x68.html index eb70a0e..8f2ae10 100644 --- a/doc/html/globals_defs_0x68.html +++ b/doc/html/globals_defs_0x68.html @@ -82,13 +82,13 @@ : hd.h
  • hdStat : hd.h
  • highByte : dma.c
  • HOUR -: time.h
  • HTONL -: inet.h
  • htonl -: net.c, inet.h
  • htons -: net.c, inet.h
  • HTONS -: inet.h
  • HWTYPE_ETHERNET +: time.h
  • htonl +: net.c, inet.h
  • HTONL +: inet.h
  • HTONS +: inet.h
  • htons +: net.c, inet.h
  • HWTYPE_ETHERNET : arp.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x69.html b/doc/html/globals_defs_0x69.html index 79b6608..9af45f7 100644 --- a/doc/html/globals_defs_0x69.html +++ b/doc/html/globals_defs_0x69.html @@ -170,7 +170,7 @@ : sockets.h
  • IPPROTO_UDP : sockets.h
  • is_digit : vsprintf.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x6b.html b/doc/html/globals_defs_0x6b.html index cfa70c8..d2a1465 100644 --- a/doc/html/globals_defs_0x6b.html +++ b/doc/html/globals_defs_0x6b.html @@ -75,7 +75,7 @@ : kpanic.h
  • KERNEL_PAGE_DEFAULT : paging.h
  • killWindow : sde.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x6c.html b/doc/html/globals_defs_0x6c.html index 1bf388c..7fa2194 100644 --- a/doc/html/globals_defs_0x6c.html +++ b/doc/html/globals_defs_0x6c.html @@ -89,7 +89,7 @@ : err.h
  • LWIP_TCP : opt.h, lwipopts.h
  • LWIP_UDP : opt.h, lwipopts.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x6d.html b/doc/html/globals_defs_0x6d.html index 30856b8..c88d523 100644 --- a/doc/html/globals_defs_0x6d.html +++ b/doc/html/globals_defs_0x6d.html @@ -91,7 +91,8 @@ : lwipopts.h
  • MEM_SLEW : lnc.h
  • MEM_STATS : lwipopts.h
  • memAvail -: vmm.h
  • memNotavail +: vmm.h
  • MEMCOPY +: memcpy.c
  • memNotavail : vmm.h
  • MEMP_DEBUG : debug.h
  • MEMP_NUM_API_MSG : lwipopts.h
  • MEMP_NUM_NETBUF @@ -114,7 +115,7 @@ : lnc.h
  • mPic : 8259.h
  • mVec : 8259.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x6e.html b/doc/html/globals_defs_0x6e.html index d2656cd..f211a44 100644 --- a/doc/html/globals_defs_0x6e.html +++ b/doc/html/globals_defs_0x6e.html @@ -120,7 +120,7 @@ : ubixfs.h
  • NUM_SOCKETS : sockets.c
  • NXADDR : ufs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x6f.html b/doc/html/globals_defs_0x6f.html index b019c25..f47f0e0 100644 --- a/doc/html/globals_defs_0x6f.html +++ b/doc/html/globals_defs_0x6f.html @@ -93,7 +93,7 @@ : 8259.h
  • OFLAGS : kern_descrip.h
  • OK : ne2k.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x70.html b/doc/html/globals_defs_0x70.html index 4b89583..ad14006 100644 --- a/doc/html/globals_defs_0x70.html +++ b/doc/html/globals_defs_0x70.html @@ -140,7 +140,7 @@ : elf.h
  • PT_PHDR : elf.h
  • PT_SHLIB : elf.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x72.html b/doc/html/globals_defs_0x72.html index eb64fbf..0ac3147 100644 --- a/doc/html/globals_defs_0x72.html +++ b/doc/html/globals_defs_0x72.html @@ -92,7 +92,7 @@ : ne2k.h
  • RSR_PRX : ne2k.h
  • RXON : lnc.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x73.html b/doc/html/globals_defs_0x73.html index 528318b..4bba7db 100644 --- a/doc/html/globals_defs_0x73.html +++ b/doc/html/globals_defs_0x73.html @@ -107,7 +107,7 @@ : sys_arch.h
  • SYS_STATS : lwipopts.h
  • sysID : kmalloc.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x74.html b/doc/html/globals_defs_0x74.html index 135dc87..192c5ee 100644 --- a/doc/html/globals_defs_0x74.html +++ b/doc/html/globals_defs_0x74.html @@ -132,7 +132,9 @@ : tcp.h
  • TF_INFR : tcp.h
  • TF_RESET : tcp.h
  • TINT -: lnc.h
  • TRANSBUFSIZE +: lnc.h
  • TLOOP +: bcopy.c
  • TLOOP1 +: bcopy.c
  • TRANSBUFSIZE : lnc.h
  • trunc_page : paging.h
  • TTY_MAX_TERMS : tty.h
  • TUNIF_DEBUG @@ -145,7 +147,7 @@ : ubixfs.h
  • typeDirectory : ubixfs.h
  • typeFile : ubixfs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x75.html b/doc/html/globals_defs_0x75.html index cbb2a5a..1a864a3 100644 --- a/doc/html/globals_defs_0x75.html +++ b/doc/html/globals_defs_0x75.html @@ -96,7 +96,7 @@ : debug.h
  • UNKNOWN : lnc.h
  • UNLOCKED : ubthread.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x76.html b/doc/html/globals_defs_0x76.html index 10f602d..ed4ba2a 100644 --- a/doc/html/globals_defs_0x76.html +++ b/doc/html/globals_defs_0x76.html @@ -84,7 +84,7 @@ : paging.h
  • vmmID : vmm.h
  • vmmMemoryMapAddr : vmm.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x77.html b/doc/html/globals_defs_0x77.html index caf386f..27d7ab3 100644 --- a/doc/html/globals_defs_0x77.html +++ b/doc/html/globals_defs_0x77.html @@ -74,9 +74,9 @@
  • WIDEVAL : memset.c
  • windowReady : sde.h
  • wmask -: memset.c
  • wsize -: memset.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +: memset.c, bcopy.c
  • wsize +: memset.c, bcopy.c +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x79.html b/doc/html/globals_defs_0x79.html index 56b0067..cbf379c 100644 --- a/doc/html/globals_defs_0x79.html +++ b/doc/html/globals_defs_0x79.html @@ -73,7 +73,7 @@

    - y -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_defs_0x7a.html b/doc/html/globals_defs_0x7a.html index 76b0ee8..2d7b3c8 100644 --- a/doc/html/globals_defs_0x7a.html +++ b/doc/html/globals_defs_0x7a.html @@ -73,7 +73,7 @@

    - z -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_enum.html b/doc/html/globals_enum.html index d74a7bd..59ca4b7 100644 --- a/doc/html/globals_enum.html +++ b/doc/html/globals_enum.html @@ -55,7 +55,7 @@ : tcp.h
  • tcpip_msg_type : tcpip.h
  • tState : sched.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html index 8e31bdc..caedbc9 100644 --- a/doc/html/globals_eval.html +++ b/doc/html/globals_eval.html @@ -159,7 +159,7 @@

    - w -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index c430c3f..6697b38 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -99,7 +99,7 @@ : syscall.h, sys_call.S
  • _sysCall_new() : syscall.h, sys_call_new.S
  • _vmm_pageFault() : paging.h, page_fault.S -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x61.html b/doc/html/globals_func_0x61.html index 0489dfb..965e9e1 100644 --- a/doc/html/globals_func_0x61.html +++ b/doc/html/globals_func_0x61.html @@ -96,7 +96,7 @@ : atkbd.c, atkbd.h
  • atkbd_isr() : atkbd.h
  • atkbd_scan() : atkbd.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x62.html b/doc/html/globals_func_0x62.html index 8a413c1..4f90626 100644 --- a/doc/html/globals_func_0x62.html +++ b/doc/html/globals_func_0x62.html @@ -73,14 +73,14 @@

    - b -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x63.html b/doc/html/globals_func_0x63.html index dd6ab09..4f09b1f 100644 --- a/doc/html/globals_func_0x63.html +++ b/doc/html/globals_func_0x63.html @@ -87,7 +87,7 @@ : smp.c, smp.h
  • CreateItem() : lists.h
  • current_thread() : sys_arch.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x64.html b/doc/html/globals_func_0x64.html index 2a40732..f4b6568 100644 --- a/doc/html/globals_func_0x64.html +++ b/doc/html/globals_func_0x64.html @@ -78,7 +78,7 @@ : ramdrive.h, ramdrive.cpp
  • dev_ramDrive() : ramdrive.h, ramdrive.cpp
  • devfs_init() : devfs.h, devfs.c
  • devfs_initialize() -: devfs.c
  • devfs_makeNode() +: devfs.c
  • devfs_makeNode() : devfs.h, devfs.c
  • devfs_open() : devfs.c
  • devfs_read() : devfs.c
  • devfs_write() @@ -101,7 +101,7 @@ : ne2k.c
  • dp_recv() : ne2k.c
  • dskread() : ufs.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x65.html b/doc/html/globals_func_0x65.html index 907bc82..d27b1b4 100644 --- a/doc/html/globals_func_0x65.html +++ b/doc/html/globals_func_0x65.html @@ -83,7 +83,7 @@ : ethernetif.c
  • execFile() : exec.c, exec.h
  • execThread() : exec.c, exec.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x66.html b/doc/html/globals_func_0x66.html index 6ac339b..6bc6e3b 100644 --- a/doc/html/globals_func_0x66.html +++ b/doc/html/globals_func_0x66.html @@ -85,7 +85,7 @@ : file.c, file.h
  • floppyIsr() : fdc.h
  • floppyIsrhndlr() : fdc.c, fdc.h
  • fopen() -: file.c, vfs.h, file.h
  • fork_copyProcess() +: file.c, file.h
  • fork_copyProcess() : fork.c
  • fputc() : file.c
  • fread() : file.c, file.h
  • freeBlocks() @@ -97,7 +97,7 @@ : kern_descrip.c, syscalls_new.h, kern_descrip.h
  • fuword() : syscall.c
  • fwrite() : file.c, file.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x67.html b/doc/html/globals_func_0x67.html index 5f50c10..5e2c116 100644 --- a/doc/html/globals_func_0x67.html +++ b/doc/html/globals_func_0x67.html @@ -89,7 +89,7 @@ : time.c, time.h
  • gettimeofday_new() : gen_calls.c, syscalls_new.h, gen_calls.h
  • getuid() : gen_calls.c, syscalls_new.h, gen_calls.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x68.html b/doc/html/globals_func_0x68.html index d86e5e0..0e86ddf 100644 --- a/doc/html/globals_func_0x68.html +++ b/doc/html/globals_func_0x68.html @@ -82,7 +82,7 @@ : hd.c, hd.h
  • htonl() : net.c, inet.h
  • htons() : net.c, inet.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x69.html b/doc/html/globals_func_0x69.html index b3a6c2f..35bb743 100644 --- a/doc/html/globals_func_0x69.html +++ b/doc/html/globals_func_0x69.html @@ -109,7 +109,7 @@ : 8259.c, 8259.h
  • irqEnable() : 8259.c, 8259.h
  • issetugid() : gen_calls.c, syscalls_new.h, gen_calls.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x6b.html b/doc/html/globals_func_0x6b.html index 9100ee1..b11639c 100644 --- a/doc/html/globals_func_0x6b.html +++ b/doc/html/globals_func_0x6b.html @@ -75,7 +75,7 @@ : mouse.c
  • kbdWrite() : mouse.c
  • kbdWriteRead() : mouse.c
  • kern_sysctl() -: kern_sysctl.c
  • kernel_function() +: kern_sysctl.h
  • kernel_function() : smp.c
  • keyboardHandler() : atkbd.c, atkbd.h
  • kfree() : kmalloc.c, kmalloc.h
  • kmain() @@ -86,7 +86,7 @@ : kpanic.c, kpanic.h
  • kprint() : video.c, video.h
  • kprintf() : kprintf.c, kprintf.h, kprint.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x6c.html b/doc/html/globals_func_0x6c.html index 436de37..64ad1a7 100644 --- a/doc/html/globals_func_0x6c.html +++ b/doc/html/globals_func_0x6c.html @@ -103,7 +103,7 @@ : sockets.c, sockets.h
  • lwip_socket() : sockets.c, sockets.h
  • lwip_write() : sockets.c, sockets.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x6d.html b/doc/html/globals_func_0x6d.html index 9c74998..12d8977 100644 --- a/doc/html/globals_func_0x6d.html +++ b/doc/html/globals_func_0x6d.html @@ -81,7 +81,8 @@ : mem.h
  • mem_reallocm() : mem.h
  • memcmp() : string.c, string.h
  • memcpy() -: string.c, string.h
  • memp_free() +: string.h
  • memcpyold() +: string.c
  • memp_free() : memp.h
  • memp_freep() : memp.h
  • memp_init() : memp.h
  • memp_malloc() @@ -105,7 +106,7 @@ : system.c, mpi.h
  • mpi_spam() : system.c, mpi.h
  • munmap() : paging.c, paging.h, syscalls_new.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x6e.html b/doc/html/globals_func_0x6e.html index f501714..cf4b2c5 100644 --- a/doc/html/globals_func_0x6e.html +++ b/doc/html/globals_func_0x6e.html @@ -122,7 +122,7 @@ : inet.h
  • ntohs() : inet.h
  • number() : vsprintf.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x6f.html b/doc/html/globals_func_0x6f.html index fe051ed..3f716d0 100644 --- a/doc/html/globals_func_0x6f.html +++ b/doc/html/globals_func_0x6f.html @@ -83,7 +83,7 @@ : io.c, io.h
  • outportDWord() : io.c, io.h
  • outportWord() : io.c, io.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x70.html b/doc/html/globals_func_0x70.html index a0f7e0e..6146766 100644 --- a/doc/html/globals_func_0x70.html +++ b/doc/html/globals_func_0x70.html @@ -94,7 +94,7 @@ : api_msg.c
  • probe() : lnc.c, lnc.h
  • prompt() : shell.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x72.html b/doc/html/globals_func_0x72.html index abb60cf..f630731 100644 --- a/doc/html/globals_func_0x72.html +++ b/doc/html/globals_func_0x72.html @@ -87,7 +87,7 @@ : lists.h
  • reset() : fdc.c, fdc.h
  • rs232Init() : rs232.c -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x73.html b/doc/html/globals_func_0x73.html index d00b6d9..ca0cc88 100644 --- a/doc/html/globals_func_0x73.html +++ b/doc/html/globals_func_0x73.html @@ -120,7 +120,7 @@ : strtok.c, string.h
  • strtok_r() : strtok.c, string.h
  • strtol() : strtol.c, string.h
  • syncBat() -: block.c, ubixfs.h
  • sys_arch_mbox_fetch() +: block.c, ubixfs.h
  • sys_arch_mbox_fetch() : sys_arch.c, sys.h
  • sys_arch_sem_wait() : sys_arch.c, sys.h
  • sys_arch_timeouts() : sys_arch.c, sys.h
  • sys_init() @@ -145,9 +145,9 @@ : syscall_new.c
  • sysChDir() : file.c, file.h, syscalls.h
  • sysCheckPid() : syscall.c, syscalls.h
  • sysctl_add() -: kern_sysctl.c
  • sysctl_find() +: kern_sysctl.c, kern_sysctl.h
  • sysctl_find() : kern_sysctl.c
  • sysctl_init() -: kern_sysctl.c
  • sysExec() +: kern_sysctl.c, kern_sysctl.h
  • sysExec() : exec.c, syscalls.h
  • sysExit() : syscall.c, syscalls_new.h, syscalls.h
  • sysFclose() : file.c, syscalls.h
  • sysFgetc() @@ -181,7 +181,7 @@ : syscall.c, syscalls.h
  • systemTask() : systemtask.c, systemtask.h
  • sysUnlink() : file.c, syscalls.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x74.html b/doc/html/globals_func_0x74.html index cb25e26..7fabc12 100644 --- a/doc/html/globals_func_0x74.html +++ b/doc/html/globals_func_0x74.html @@ -119,7 +119,7 @@ : tty.c, tty.h
  • tty_init() : tty.c, tty.h
  • tty_print() : tty.c, tty.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x75.html b/doc/html/globals_func_0x75.html index e95d054..de70f8f 100644 --- a/doc/html/globals_func_0x75.html +++ b/doc/html/globals_func_0x75.html @@ -79,12 +79,12 @@ : dirCache.c, dirCache.h
  • ubixfs_findName() : dirCache.c
  • ubixfs_init() : ubixfs.c, ubixfs.h
  • ubixfs_initialize() -: ubixfs.c, ubixfs.h
  • ubixfs_loadData() +: ubixfs.c, ubixfs.h
  • ubixfs_loadData() : ubixfs.c
  • ubixfs_thread() -: thread.c, ubixfs.h
  • ubixFSLoadDir() +: thread.c, ubixfs.h
  • ubixFSLoadDir() : directory.c, ubixfs.h
  • ubixFSmkDir() : directory.c, ubixfs.h
  • ubixFSUnlink() -: ubixfs.c, ubixfs.h
  • ubthread_cond_destroy() +: ubixfs.c, ubixfs.h
  • ubthread_cond_destroy() : ubthread.c, ubthread.h
  • ubthread_cond_init() : ubthread.c, ubthread.h
  • ubthread_cond_signal() : ubthread.c, ubthread.h
  • ubthread_cond_timedwait() @@ -108,12 +108,12 @@ : udpecho.h, udpecho.c
  • udpecho_thread() : udpecho.c
  • ufs_init() : ufs.c, ufs.h
  • ufs_initialize() -: ufs.c, ufs.h
  • ufs_openFile() +: ufs.c, ufs.h
  • ufs_openFile() : ufs.c
  • ufs_readFile() : ufs.c
  • ufs_writeFile() : ufs.c
  • unlink() : file.c, file.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x76.html b/doc/html/globals_func_0x76.html index cffcefc..44f73a0 100644 --- a/doc/html/globals_func_0x76.html +++ b/doc/html/globals_func_0x76.html @@ -73,13 +73,14 @@

    - v -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x77.html b/doc/html/globals_func_0x77.html index 5b0943f..085ffbf 100644 --- a/doc/html/globals_func_0x77.html +++ b/doc/html/globals_func_0x77.html @@ -78,7 +78,7 @@ : lnc.c, lnc.h
  • writeFileByte() : ubixfs.c, ubixfs.h
  • writeUbixFS() : ubixfs.c, ubixfs.h -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_func_0x78.html b/doc/html/globals_func_0x78.html index 1307568..22e8b6e 100644 --- a/doc/html/globals_func_0x78.html +++ b/doc/html/globals_func_0x78.html @@ -73,7 +73,7 @@

    - x -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html index 6b8444f..8478ba2 100644 --- a/doc/html/globals_type.html +++ b/doc/html/globals_type.html @@ -62,6 +62,7 @@
  • t
  • u
  • v
  • +
  • w
  • @@ -206,14 +207,18 @@ : types.h
  • uInt32 : types.h
  • uInt64 : types.h
  • uInt8 -: types.h
  • userFileDescriptor +: types.h
  • uintptr_t +: bcopy.c
  • userFileDescriptor : file.h

    - v -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +

    - w -

    +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html index d6d9b2c..d7b5d2e 100644 --- a/doc/html/globals_vars.html +++ b/doc/html/globals_vars.html @@ -243,10 +243,10 @@ : atkbd.c
  • stdinSize : atkbd.c
  • subClass : pci.c
  • sysctl_enabled -: kern_sysctl.c
  • systemCalls +: kern_sysctl.h
  • systemCalls : syscalls.h
  • systemCalls_new : syscalls_new.h
  • systemVitals -: vitals.c, timer.S +: vitals.c, timer.S, vitals.h

    - t -

    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/hd_8c-source.html b/doc/html/hd_8c-source.html index 2131609..4853eae 100644 --- a/doc/html/hd_8c-source.html +++ b/doc/html/hd_8c-source.html @@ -475,7 +475,7 @@ 00443 00444 END 00445 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/hd_8c.html b/doc/html/hd_8c.html index 34427d0..237c4f9 100644 --- a/doc/html/hd_8c.html +++ b/doc/html/hd_8c.html @@ -320,10 +320,10 @@

    Definition at line 39 of file hd.c.

    -References bsd_disklabel::d_npartitions, bsd_disklabel::d_partitions, devfs_makeNode(), device_add(), dos_partition::dp_start, fstypenames, driveInfo::hdDev, hdInit(), hdIoctl(), driveInfo::hdPort, hdRead(), hdReset(), driveInfo::hdSize, hdStandby(), hdStart(), hdStop(), hdWrite(), device_interface::info, device_interface::init, device_interface::ioctl, kmalloc(), kprintf(), device_interface::major, memcpy(), name, bsd_disklabel::partition::p_fstype, bsd_disklabel::partition::p_offset, bsd_disklabel::partition::p_size, driveInfo::parOffset, device_interface::read, device_interface::reset, sprintf(), device_interface::standby, device_interface::start, device_interface::stop, device_interface::write, and x1. +References bsd_disklabel::d_npartitions, bsd_disklabel::d_partitions, devfs_makeNode(), device_add(), dos_partition::dp_start, fstypenames, driveInfo::hdDev, hdInit(), hdIoctl(), driveInfo::hdPort, hdRead(), hdReset(), driveInfo::hdSize, hdStandby(), hdStart(), hdStop(), hdWrite(), device_interface::info, device_interface::init, device_interface::ioctl, kmalloc(), kprintf(), device_interface::major, memcpy(), name, bsd_disklabel::partition::p_fstype, bsd_disklabel::partition::p_offset, bsd_disklabel::partition::p_size, driveInfo::parOffset, device_interface::read, device_interface::reset, sprintf(), device_interface::standby, device_interface::start, device_interface::stop, device_interface::write, and x1.

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/hd_8h-source.html b/doc/html/hd_8h-source.html index b003e07..7b87b75 100644 --- a/doc/html/hd_8h-source.html +++ b/doc/html/hd_8h-source.html @@ -252,7 +252,7 @@ 00220 00221 END 00222 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/hd_8h.html b/doc/html/hd_8h.html index 07e287f..aa29867 100644 --- a/doc/html/hd_8h.html +++ b/doc/html/hd_8h.html @@ -571,7 +571,7 @@

    Definition at line 39 of file hd.c.

    -References bsd_disklabel::d_npartitions, bsd_disklabel::d_partitions, devfs_makeNode(), device_add(), dos_partition::dp_start, fstypenames, driveInfo::hdDev, hdInit(), hdIoctl(), driveInfo::hdPort, hdRead(), hdReset(), driveInfo::hdSize, hdStandby(), hdStart(), hdStop(), hdWrite(), device_interface::info, device_interface::init, device_interface::ioctl, kmalloc(), kprintf(), device_interface::major, memcpy(), name, bsd_disklabel::partition::p_fstype, bsd_disklabel::partition::p_offset, bsd_disklabel::partition::p_size, driveInfo::parOffset, device_interface::read, device_interface::reset, sprintf(), device_interface::standby, device_interface::start, device_interface::stop, device_interface::write, and x1. +References bsd_disklabel::d_npartitions, bsd_disklabel::d_partitions, devfs_makeNode(), device_add(), dos_partition::dp_start, fstypenames, driveInfo::hdDev, hdInit(), hdIoctl(), driveInfo::hdPort, hdRead(), hdReset(), driveInfo::hdSize, hdStandby(), hdStart(), hdStop(), hdWrite(), device_interface::info, device_interface::init, device_interface::ioctl, kmalloc(), kprintf(), device_interface::major, memcpy(), name, bsd_disklabel::partition::p_fstype, bsd_disklabel::partition::p_offset, bsd_disklabel::partition::p_size, driveInfo::parOffset, device_interface::read, device_interface::reset, sprintf(), device_interface::standby, device_interface::start, device_interface::stop, device_interface::write, and x1.


    Variable Documentation

    @@ -618,7 +618,7 @@ Referenced by initHardDisk().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html index 55e136e..a685a60 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -199,9 +199,10 @@
  • UbixFS
  • vfs_mountPoint +
  • vitalsStruct
  • write_args -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/idt_8c-source.html b/doc/html/idt_8c-source.html index af083ae..334086e 100644 --- a/doc/html/idt_8c-source.html +++ b/doc/html/idt_8c-source.html @@ -496,7 +496,7 @@ 00464 /*** 00465 END 00466 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/idt_8c.html b/doc/html/idt_8c.html index 042f92f..3d49c3b 100644 --- a/doc/html/idt_8c.html +++ b/doc/html/idt_8c.html @@ -153,7 +153,7 @@

    Definition at line 197 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -178,7 +178,7 @@

    Definition at line 203 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -203,7 +203,7 @@

    Definition at line 263 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -228,7 +228,7 @@

    Definition at line 269 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -253,7 +253,7 @@

    Definition at line 275 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -278,7 +278,7 @@

    Definition at line 281 of file idt.c.

    -References _current, _int13(), tssStruct::cs, DEAD, tssStruct::eax, tssStruct::ebp, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::esp, FALSE, FP_TO_LINEAR, taskStruct::id, inportByte(), inportWord(), irqDisable(), irqEnable(), kpanic(), kprintf(), taskStruct::oInfo, outportByte(), outportWord(), tssStruct::ss, taskStruct::state, osInfo::timer, TRUE, taskStruct::tss, and osInfo::v86If. +References _current, _int13(), tssStruct::cs, DEAD, tssStruct::eax, tssStruct::ebp, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::esp, FALSE, FP_TO_LINEAR, taskStruct::id, inportByte(), inportWord(), irqDisable(), irqEnable(), kpanic(), kprintf(), taskStruct::oInfo, outportByte(), outportWord(), tssStruct::ss, taskStruct::state, osInfo::timer, TRUE, taskStruct::tss, and osInfo::v86If.

    Referenced by _int13(), and idt_init(). @@ -303,7 +303,7 @@

    Definition at line 209 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -328,7 +328,7 @@

    Definition at line 215 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -353,7 +353,7 @@

    Definition at line 221 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -378,7 +378,7 @@

    Definition at line 227 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -403,7 +403,7 @@

    Definition at line 233 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -447,7 +447,7 @@

    Definition at line 239 of file idt.c.

    -References _current, _int8(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esp, tssStruct::fs, tssStruct::gs, taskStruct::id, tssStruct::io_map, kernelPageDirectory, kpanic(), and tssStruct::ss. +References _current, _int8(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esp, tssStruct::fs, tssStruct::gs, taskStruct::id, tssStruct::io_map, kernelPageDirectory, kpanic(), and tssStruct::ss.

    Referenced by _int8(), and idt_init(). @@ -472,7 +472,7 @@

    Definition at line 257 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -555,7 +555,7 @@

    Definition at line 187 of file idt.c.

    -References _current, taskStruct::id, and kprintf(). +References _current, taskStruct::id, and kprintf().

    Referenced by idt_init(). @@ -580,7 +580,7 @@

    Definition at line 424 of file idt.c.

    -References _current, _usedMath, taskStruct::i387, and taskStruct::usedMath. +References _current, _usedMath, taskStruct::i387, and taskStruct::usedMath.

    @@ -662,7 +662,7 @@

    References gdtGate::access, descriptorTableUnion::gate, gdtGate::offsetHigh, gdtGate::offsetLow, and gdtGate::selector.

    -Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init(). +Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init().

    @@ -714,7 +714,7 @@ Referenced by idt_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/idt_8h-source.html b/doc/html/idt_8h-source.html index 63a4911..849d859 100644 --- a/doc/html/idt_8h-source.html +++ b/doc/html/idt_8h-source.html @@ -117,7 +117,7 @@ 00085 00086 END 00087 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/idt_8h.html b/doc/html/idt_8h.html index 4003d2a..469d0c4 100644 --- a/doc/html/idt_8h.html +++ b/doc/html/idt_8h.html @@ -177,7 +177,7 @@

    Definition at line 197 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -202,7 +202,7 @@

    Definition at line 203 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -227,7 +227,7 @@

    Definition at line 263 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -252,7 +252,7 @@

    Definition at line 269 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -277,7 +277,7 @@

    Definition at line 275 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -302,7 +302,7 @@

    Definition at line 281 of file idt.c.

    -References _current, _int13(), tssStruct::cs, DEAD, tssStruct::eax, tssStruct::ebp, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::esp, FALSE, FP_TO_LINEAR, taskStruct::id, inportByte(), inportWord(), irqDisable(), irqEnable(), kpanic(), kprintf(), taskStruct::oInfo, outportByte(), outportWord(), tssStruct::ss, taskStruct::state, osInfo::timer, TRUE, taskStruct::tss, and osInfo::v86If. +References _current, _int13(), tssStruct::cs, DEAD, tssStruct::eax, tssStruct::ebp, tssStruct::edx, EFLAG_IF, EFLAG_VM, tssStruct::eflags, tssStruct::eip, tssStruct::esp, FALSE, FP_TO_LINEAR, taskStruct::id, inportByte(), inportWord(), irqDisable(), irqEnable(), kpanic(), kprintf(), taskStruct::oInfo, outportByte(), outportWord(), tssStruct::ss, taskStruct::state, osInfo::timer, TRUE, taskStruct::tss, and osInfo::v86If.

    Referenced by _int13(), and idt_init(). @@ -327,7 +327,7 @@

    Definition at line 209 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -352,7 +352,7 @@

    Definition at line 215 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -377,7 +377,7 @@

    Definition at line 221 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -402,7 +402,7 @@

    Definition at line 227 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -427,7 +427,7 @@

    Definition at line 233 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -473,7 +473,7 @@

    Definition at line 239 of file idt.c.

    -References _current, _int8(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esp, tssStruct::fs, tssStruct::gs, taskStruct::id, tssStruct::io_map, kernelPageDirectory, kpanic(), and tssStruct::ss. +References _current, _int8(), tssStruct::cr3, tssStruct::cs, tssStruct::ds, tssStruct::ebp, tssStruct::eflags, tssStruct::eip, tssStruct::es, tssStruct::esp, tssStruct::fs, tssStruct::gs, taskStruct::id, tssStruct::io_map, kernelPageDirectory, kpanic(), and tssStruct::ss.

    Referenced by _int8(), and idt_init(). @@ -498,7 +498,7 @@

    Definition at line 257 of file idt.c.

    -References _current, endTask(), taskStruct::id, kpanic(), and sched_yield(). +References _current, endTask(), taskStruct::id, kpanic(), and sched_yield().

    Referenced by idt_init(). @@ -546,7 +546,7 @@

    Definition at line 187 of file idt.c.

    -References _current, taskStruct::id, and kprintf(). +References _current, taskStruct::id, and kprintf().

    Referenced by idt_init(). @@ -630,7 +630,7 @@

    References gdtGate::access, descriptorTableUnion::gate, gdtGate::offsetHigh, gdtGate::offsetLow, and gdtGate::selector.

    -Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init(). +Referenced by atkbd_init(), fdc_init(), idt_init(), initLNC(), mouseInit(), and ne2k_init().

    @@ -652,7 +652,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2sys_2device_8h-source.html b/doc/html/include_2sys_2device_8h-source.html index b25a8be..88dc30e 100644 --- a/doc/html/include_2sys_2device_8h-source.html +++ b/doc/html/include_2sys_2device_8h-source.html @@ -144,7 +144,7 @@ 00112 END 00113 ***/ 00114 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2sys_2device_8h.html b/doc/html/include_2sys_2device_8h.html index b245a56..ecf0696 100644 --- a/doc/html/include_2sys_2device_8h.html +++ b/doc/html/include_2sys_2device_8h.html @@ -89,7 +89,7 @@

    Definition at line 51 of file device.c.

    -References devices, deviceSpinLock, device_node::devInfo, device_interface::init, device_interface::initialized, kmalloc(), kprintf(), device_node::minor, device_node::next, NULL, device_node::prev, spinLock(), spinUnlock(), and device_node::type. +References devices, deviceSpinLock, device_node::devInfo, device_interface::init, device_interface::initialized, kmalloc(), kprintf(), device_node::minor, device_node::next, NULL, device_node::prev, spinLock(), spinUnlock(), and device_node::type.

    Referenced by fdc_init(), and initHardDisk(). @@ -150,10 +150,10 @@

    Definition at line 110 of file device.c.

    -References devices, deviceSpinLock, kfree(), device_node::next, NULL, spinLock(), and spinUnlock(). +References devices, deviceSpinLock, kfree(), device_node::next, NULL, spinLock(), and spinUnlock().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2ubixfs_2ubixfs_8h-source.html b/doc/html/include_2ubixfs_2ubixfs_8h-source.html index 049ca3b..7fbe130 100644 --- a/doc/html/include_2ubixfs_2ubixfs_8h-source.html +++ b/doc/html/include_2ubixfs_2ubixfs_8h-source.html @@ -177,10 +177,10 @@ 00145 00146 int readUbixFS(fileDescriptor *fd,char *data,uInt32,long size); 00147 int writeUbixFS(fileDescriptor *fd,char *data,long offset,long size); -00148 void syncBat(vfs_mountPoint_t *mp); +00148 void syncBat(struct vfs_mountPoint *mp); 00149 int freeBlocks(int block,fileDescriptor *fd); 00150 int addDirEntry(struct directoryEntry *dir,fileDescriptor *fd); -00151 void ubixFSUnlink(char *path,vfs_mountPoint_t *mp); +00151 void ubixFSUnlink(char *path,struct vfs_mountPoint *mp); 00152 int ubixFSmkDir(char *dir,fileDescriptor *fd); 00153 00154 int ubixfs_init(); @@ -192,45 +192,48 @@ 00160 00161 /*** 00162 $Log$ -00163 Revision 1.1.1.1 2006/06/01 12:46:14 reddawg -00164 ubix2 +00163 Revision 1.2 2006/12/05 14:10:21 reddawg +00164 Workign Distro 00165 -00166 Revision 1.2 2005/10/12 00:13:37 reddawg -00167 Removed +00166 Revision 1.1.1.1 2006/06/01 12:46:14 reddawg +00167 ubix2 00168 -00169 Revision 1.1.1.1 2005/09/26 17:23:53 reddawg -00170 no message +00169 Revision 1.2 2005/10/12 00:13:37 reddawg +00170 Removed 00171 -00172 Revision 1.21 2004/09/14 20:57:01 reddawg -00173 Bug fixes: macro problem over opt a multiply +00172 Revision 1.1.1.1 2005/09/26 17:23:53 reddawg +00173 no message 00174 -00175 Revision 1.20 2004/08/01 17:58:39 flameshadow -00176 chg: fixed string allocation bug in ubixfs_cacheNew() +00175 Revision 1.21 2004/09/14 20:57:01 reddawg +00176 Bug fixes: macro problem over opt a multiply 00177 -00178 Revision 1.19 2004/07/27 12:02:01 reddawg -00179 chg: fixed marks bug readFile did a lookup which is why it looked like it was loopping so much +00178 Revision 1.20 2004/08/01 17:58:39 flameshadow +00179 chg: fixed string allocation bug in ubixfs_cacheNew() 00180 -00181 Revision 1.18 2004/07/23 09:10:06 reddawg -00182 ubixfs: cleaned up some functions played with the caching a bit -00183 vfs: renamed a bunch of functions -00184 cleaned up a few misc bugs -00185 -00186 Revision 1.17 2004/07/22 22:37:03 reddawg -00187 Caching is working now the FS is extremely fast but needs to be optimized to do 32bit copies over 8bit +00181 Revision 1.19 2004/07/27 12:02:01 reddawg +00182 chg: fixed marks bug readFile did a lookup which is why it looked like it was loopping so much +00183 +00184 Revision 1.18 2004/07/23 09:10:06 reddawg +00185 ubixfs: cleaned up some functions played with the caching a bit +00186 vfs: renamed a bunch of functions +00187 cleaned up a few misc bugs 00188 -00189 Revision 1.16 2004/07/20 21:28:16 flameshadow -00190 oops +00189 Revision 1.17 2004/07/22 22:37:03 reddawg +00190 Caching is working now the FS is extremely fast but needs to be optimized to do 32bit copies over 8bit 00191 -00192 Revision 1.14 2004/07/20 19:36:49 reddawg -00193 UBU Tags +00192 Revision 1.16 2004/07/20 21:28:16 flameshadow +00193 oops 00194 -00195 Revision 1.13 2004/07/14 12:21:49 reddawg -00196 ubixfs: enableUbixFs to ubixfs_init -00197 Changed Startup Routines -00198 -00199 END -00200 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +00195 Revision 1.14 2004/07/20 19:36:49 reddawg +00196 UBU Tags +00197 +00198 Revision 1.13 2004/07/14 12:21:49 reddawg +00199 ubixfs: enableUbixFs to ubixfs_init +00200 Changed Startup Routines +00201 +00202 END +00203 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2ubixfs_2ubixfs_8h.html b/doc/html/include_2ubixfs_2ubixfs_8h.html index 423e61d..e6a951f 100644 --- a/doc/html/include_2ubixfs_2ubixfs_8h.html +++ b/doc/html/include_2ubixfs_2ubixfs_8h.html @@ -93,7 +93,7 @@ int readUbixFS (fileDescriptor *fd, char *data, uInt32, long size) -void syncBat (vfs_mountPoint_t *mp) +void syncBat (struct vfs_mountPoint *mp) int ubixfs_init () @@ -105,7 +105,7 @@ int ubixFSmkDir (char *dir, fileDescriptor *fd) -void ubixFSUnlink (char *path, vfs_mountPoint_t *mp) +void ubixFSUnlink (char *path, struct vfs_mountPoint *mp) int writeFileByte (int ch, fileDescriptor *fd, long offset) @@ -353,7 +353,7 @@

    Definition at line 66 of file directory.c.

    -References kmalloc(), kprintf(), memcpy(), fileDescriptor::offset, readUbixFS(), fileDescriptor::size, writeUbixFS(), and x1000. +References kmalloc(), kprintf(), memcpy(), fileDescriptor::offset, readUbixFS(), fileDescriptor::size, writeUbixFS(), and x1000.

    Referenced by ubixFSmkDir(). @@ -386,9 +386,9 @@

    -Definition at line 76 of file block.c. +Definition at line 79 of file block.c.

    -References blockAllocationTableEntry::attributes, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, and syncBat(). +References blockAllocationTableEntry::attributes, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, and syncBat().

    @@ -419,9 +419,9 @@

    -Definition at line 93 of file block.c. +Definition at line 96 of file block.c.

    -References blockAllocationTableEntry::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, syncBat(), and x1. +References blockAllocationTableEntry::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, blockAllocationTableEntry::nextBlock, syncBat(), and x1.

    Referenced by ubixFSmkDir(), and writeUbixFS(). @@ -493,14 +493,14 @@ Referenced by addDirEntry(), and ubixfs_init().

    - +

    - + @@ -512,11 +512,11 @@

    -Definition at line 71 of file block.c. +Definition at line 74 of file block.c.

    -References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, device_interface::info, vfs_mountPoint::partition, ubixDiskLabel::partitions, and device_interface::write. +References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, device_interface::info, vfs_mountPoint::partition, ubixDiskLabel::partitions, and device_interface::write.

    -Referenced by freeBlocks(), and getFreeBlocks(). +Referenced by freeBlocks(), and getFreeBlocks().

    @@ -603,7 +603,7 @@

    Definition at line 41 of file directory.c.

    -References directoryList::dirCache, dirList, directoryList::dirName, kmalloc(), directoryList::next, directoryList::prev, sprintf(), and strcmp(). +References directoryList::dirCache, dirList, directoryList::dirName, kmalloc(), directoryList::next, directoryList::prev, sprintf(), and strcmp().

    @@ -636,12 +636,12 @@

    Definition at line 94 of file directory.c.

    -References addDirEntry(), directoryEntry::attributes, ubixFSInfo::blockAllocationTable, blockSize, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), directoryEntry::permissions, blockAllocationTableEntry::realSector, directoryEntry::size, sprintf(), directoryEntry::startCluster, typeDirectory, and UBIXFS_BLOCKSIZE_BYTES. +References addDirEntry(), directoryEntry::attributes, ubixFSInfo::blockAllocationTable, blockSize, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), directoryEntry::permissions, blockAllocationTableEntry::realSector, directoryEntry::size, sprintf(), directoryEntry::startCluster, typeDirectory, and UBIXFS_BLOCKSIZE_BYTES.

    Referenced by ubixfs_init().

    - +

    void syncBat (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    @@ -654,7 +654,7 @@ - + @@ -671,7 +671,7 @@

    Definition at line 309 of file ubixfs.c.

    -References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, directoryEntry::fileName, vfs_mountPoint::fsInfo, device_interface::info, kmalloc(), kprintf(), vfs_mountPoint::partition, ubixDiskLabel::partitions, device_interface::read, ubixFSInfo::rootDir, strcmp(), typeDeleted, device_interface::write, and x1000. +References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, directoryEntry::fileName, vfs_mountPoint::fsInfo, device_interface::info, kmalloc(), kprintf(), vfs_mountPoint::partition, ubixDiskLabel::partitions, device_interface::read, ubixFSInfo::rootDir, strcmp(), typeDeleted, device_interface::write, and x1000.

    Referenced by ubixfs_init(). @@ -757,12 +757,12 @@

    Definition at line 232 of file ubixfs.c.

    -References assert, ubixFSInfo::blockAllocationTable, blockSize, EOBC, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), blockAllocationTableEntry::nextBlock, NULL, blockAllocationTableEntry::realSector, fileDescriptor::size, directoryEntry::size, directoryEntry::startCluster, strcmp(), and x1000. +References assert, ubixFSInfo::blockAllocationTable, blockSize, EOBC, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), blockAllocationTableEntry::nextBlock, NULL, blockAllocationTableEntry::realSector, fileDescriptor::size, directoryEntry::size, directoryEntry::startCluster, strcmp(), and x1000.

    Referenced by addDirEntry(), and ubixfs_init().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2ubixos_2types_8h-source.html b/doc/html/include_2ubixos_2types_8h-source.html index 543c3f7..5582195 100644 --- a/doc/html/include_2ubixos_2types_8h-source.html +++ b/doc/html/include_2ubixos_2types_8h-source.html @@ -148,7 +148,7 @@ 00116 END 00117 ***/ 00118 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2ubixos_2types_8h.html b/doc/html/include_2ubixos_2types_8h.html index 81f1b24..0569ce2 100644 --- a/doc/html/include_2ubixos_2types_8h.html +++ b/doc/html/include_2ubixos_2types_8h.html @@ -738,7 +738,7 @@ Definition at line 67 of file types.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2vfs_2file_8h-source.html b/doc/html/include_2vfs_2file_8h-source.html index 287fc70..f105dbb 100644 --- a/doc/html/include_2vfs_2file_8h-source.html +++ b/doc/html/include_2vfs_2file_8h-source.html @@ -78,7 +78,7 @@ 00046 typedef struct fileDescriptorStruct { 00047 struct fileDescriptorStruct *prev; 00048 struct fileDescriptorStruct *next; -00049 vfs_mountPoint_t *mp; +00049 struct vfs_mountPoint *mp; 00050 uInt16 status; 00051 uInt16 mode; 00052 uInt32 offset; @@ -124,7 +124,7 @@ 00092 char *verifyDir(const char *path); 00093 00094 #endif -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2vfs_2file_8h.html b/doc/html/include_2vfs_2file_8h.html index dec36d7..eaeb191 100644 --- a/doc/html/include_2vfs_2file_8h.html +++ b/doc/html/include_2vfs_2file_8h.html @@ -275,7 +275,7 @@

    Definition at line 396 of file file.c.

    -References assert, fdTable, fdTable_lock, kfree(), fileDescriptor::next, NULL, fileDescriptor::prev, spinLock(), spinUnlock(), systemVitals, and x1. +References assert, fdTable, fdTable_lock, kfree(), fileDescriptor::next, NULL, vitalsStruct::openFiles, fileDescriptor::prev, spinLock(), spinUnlock(), systemVitals, and x1.

    Referenced by dev_ramDestroy(), dev_ramDrive(), execFile(), kmod_load(), ldEnable(), bTree::Save(), sysExec(), sysFclose(), sysMkDir(), and systemTask(). @@ -360,6 +360,8 @@

    Definition at line 267 of file file.c.

    +References fdOpen, fdTable, fdTable_lock, fileAppend, fileBinary, fileRead, fileWrite, kfree(), kmalloc(), kprintf(), fileDescriptor::next, NULL, fileDescriptor::offset, vitalsStruct::openFiles, fileDescriptor::prev, spinLock(), spinUnlock(), sprintf(), strstr(), strtok(), systemVitals, and vfs_findMount(). +

    Referenced by dev_ramDestroy(), dev_ramDrive(), DiskFS::DiskFS(), execFile(), kmod_load(), ldEnable(), bTree::Save(), sysExec(), sysFopen(), sysMkDir(), and tcpdump_init().

    @@ -519,7 +521,7 @@

    Definition at line 102 of file file.c.

    -References _current, osInfo::cwd, taskStruct::oInfo, sprintf(), and strstr(). +References _current, osInfo::cwd, taskStruct::oInfo, sprintf(), and strstr().

    @@ -582,7 +584,7 @@

    Definition at line 478 of file file.c.

    -References vfs_mountPoint::fs, NULL, strtok(), vfs_findMount(), and fileSystem::vfsUnlink. +References vfs_mountPoint::fs, vfs_mountPoint::mountPoint, NULL, strtok(), vfs_findMount(), and fileSystem::vfsUnlink.

    Referenced by sysUnlink(). @@ -627,7 +629,7 @@ Referenced by fclose(), and fopen().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2vfs_2vfs_8h-source.html b/doc/html/include_2vfs_2vfs_8h-source.html index 9a5297a..5561330 100644 --- a/doc/html/include_2vfs_2vfs_8h-source.html +++ b/doc/html/include_2vfs_2vfs_8h-source.html @@ -99,37 +99,19 @@ 00067 *int vfsRegisterFS(int,void *,void *,void *,void *,void *,void *,void *,void *); 00068 */ 00069 int vfsRegisterFS(struct fileSystem); -00070 -00071 struct fileSystem *vfsFindFS(int); +00070 struct fileSystem *vfs_findFS(int); +00071 00072 -00073 -00074 -00075 //File IO -00076 fileDescriptor *fopen(const char *file,const char *flags); -00077 -00078 -00079 #endif -00080 -00081 /*** -00082 $Log$ -00083 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg -00084 ubix2 -00085 -00086 Revision 1.2 2005/10/12 00:13:37 reddawg -00087 Removed -00088 -00089 Revision 1.1.1.1 2005/09/26 17:23:58 reddawg -00090 no message -00091 -00092 Revision 1.5 2004/07/23 09:10:06 reddawg -00093 ubixfs: cleaned up some functions played with the caching a bit -00094 vfs: renamed a bunch of functions -00095 cleaned up a few misc bugs -00096 -00097 END -00098 ***/ -00099 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +00073 //File IO +00074 //fileDescriptor *fopen(const char *file,const char *flags); +00075 +00076 +00077 #endif +00078 +00079 /*** +00080 END +00081 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/include_2vfs_2vfs_8h.html b/doc/html/include_2vfs_2vfs_8h.html index 9546703..2f148c6 100644 --- a/doc/html/include_2vfs_2vfs_8h.html +++ b/doc/html/include_2vfs_2vfs_8h.html @@ -62,12 +62,10 @@
    - + - -
    vfs_mountPoint_tstruct vfs_mountPoint mp 
    #define maxFd   32

    Functions

    fileDescriptorfopen (const char *file, const char *flags)
    fileSystemvfs_findFS (int)
    int vfs_init ()
    fileSystemvfsFindFS (int)
    int vfsRegisterFS (struct fileSystem)
    @@ -240,26 +238,17 @@


    Function Documentation

    - +
    - + - - - - - - - - - - - - - + + + +
    fileDescriptor* fopen struct fileSystem* vfs_findFS (const char *  file,
    const char *  flags 
    )int   ) 
    @@ -267,10 +256,6 @@

    -

    -Definition at line 267 of file file.c. -

    -References fdOpen, fdTable, fdTable_lock, fileAppend, fileBinary, fileRead, fileWrite, kfree(), kmalloc(), kprintf(), fileDescriptor::next, NULL, fileDescriptor::offset, fileDescriptor::prev, spinLock(), spinUnlock(), sprintf(), strstr(), strtok(), systemVitals, and vfs_findMount().

    @@ -293,33 +278,7 @@

    Definition at line 47 of file vfs.c.

    -References kprintf(), and systemVitals. - -

    - -

    -
    - - - - - - - - - -
    struct fileSystem* vfsFindFS (int   ) 
    -
    -
    - -

    - -

    -Definition at line 58 of file vfs.c. -

    -References fileSystem::next, systemVitals, and fileSystem::vfsType. -

    -Referenced by vfs_mount(), and vfsRegisterFS(). +References vitalsStruct::fileSystems, kprintf(), and systemVitals.

    @@ -343,12 +302,12 @@

    Definition at line 73 of file vfs.c.

    -References kmalloc(), kprintf(), memcpy(), fileSystem::next, NULL, fileSystem::prev, systemVitals, vfsFindFS(), fileSystem::vfsType, and x1. +References vitalsStruct::fileSystems, kmalloc(), kprintf(), memcpy(), fileSystem::next, NULL, fileSystem::prev, systemVitals, vfsFindFS(), fileSystem::vfsType, and x1.

    Referenced by devfs_init(), ubixfs_init(), and ufs_init().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/index.hhc b/doc/html/index.hhc new file mode 100644 index 0000000..aec175e --- /dev/null +++ b/doc/html/index.hhc @@ -0,0 +1,948 @@ + + + + + +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
          +
        • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
          +
        • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
          +
        • +
            +
          • +
              +
            • +
            +
          • +
              +
            • +
                +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              +
            • +
                +
              • +
                  +
                • +
                • +
                • +
                • +
                • +
                • +
                +
              • +
                  +
                • +
                • +
                • +
                • +
                +
              • +
                  +
                • +
                • +
                • +
                • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              +
            • +
                +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            +
          • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              +
            • +
                +
              • +
              • +
              • +
              • +
              +
            +
          • +
              +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            +
          • +
              +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            • +
            +
          • +
          +
        +
      +
    • +
    diff --git a/doc/html/index.hhk b/doc/html/index.hhk new file mode 100644 index 0000000..a906cdb --- /dev/null +++ b/doc/html/index.hhk @@ -0,0 +1,9607 @@ + + + + + +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
        +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    diff --git a/doc/html/index.hhp b/doc/html/index.hhp new file mode 100644 index 0000000..2fb3e6f --- /dev/null +++ b/doc/html/index.hhp @@ -0,0 +1,833 @@ +[OPTIONS] +Compatibility=1.1 +Full-text search=Yes +Contents file=index.hhc +Default Window=main +Default topic=main.html +Index file=index.hhk +Language=0x409 English (United States) +Binary TOC=YES +Create CHI file=YES +Title=UbixOS V2 + +[WINDOWS] +main="UbixOS V2","index.hhc","index.hhk","main.html","main.html",,,,,0x23520,,0x387e,,,,,,,,0 + +[FILES] +main.html +devfs_8c-source.html +assert_8h-source.html +devfs_8h-source.html +8259_8h-source.html +atkbd_8h-source.html +fdc_8h-source.html +mouse_8h-source.html +ne2k_8h-source.html +pit_8h-source.html +bioscall_8h-source.html +kmalloc_8h-source.html +kprint_8h-source.html +kprintf_8h-source.html +libcpp_8h-source.html +lib_2string_8h-source.html +string_8h-source.html +math_8h-source.html +mpi_8h-source.html +api_8h-source.html +api__msg_8h-source.html +arch_8h-source.html +cc_8h-source.html +cpu_8h-source.html +net_2arch_2init_8h-source.html +ubixos_2init_8h-source.html +lib_8h-source.html +perf_8h-source.html +sys__arch_8h-source.html +debug_8h-source.html +def_8h-source.html +err_8h-source.html +ipv4_2icmp_8h-source.html +ipv6_2icmp_8h-source.html +ipv4_2inet_8h-source.html +ipv6_2inet_8h-source.html +ipv4_2ip_8h-source.html +ipv6_2ip_8h-source.html +ipv4_2ip__addr_8h-source.html +ipv6_2ip__addr_8h-source.html +list_8h-source.html +lwipopts_8h-source.html +mem_8h-source.html +memp_8h-source.html +net_8h-source.html +netif_8h-source.html +opt_8h-source.html +pbuf_8h-source.html +sockets_8h-source.html +stats_8h-source.html +sys_8h-source.html +tcp_8h-source.html +tcpip_8h-source.html +udp_8h-source.html +arp_8h-source.html +ethernetif_8h-source.html +loopif_8h-source.html +tcpdump_8h-source.html +ogDisplay__VESA_8h-source.html +hd_8h-source.html +lnc_8h-source.html +pci_8h-source.html +ogDisplay__UbixOS_8h-source.html +sde_8h-source.html +stdarg_8h-source.html +__types_8h-source.html +buf_8h-source.html +cdefs_8h-source.html +include_2sys_2device_8h-source.html +ubixfsv2_2device_8h-source.html +device_8old_8h-source.html +dma_8h-source.html +driver_8h-source.html +gdt_8h-source.html +gen__calls_8h-source.html +idt_8h-source.html +io_8h-source.html +kern__descrip_8h-source.html +kern__sig_8h-source.html +kern__sysctl_8h-source.html +pipe_8h-source.html +signal_8h-source.html +sysproto_8h-source.html +thread_8h-source.html +trap_8h-source.html +tss_8h-source.html +video_8h-source.html +dirCache_8h-source.html +include_2ubixfs_2ubixfs_8h-source.html +ubixfsv2_2ubixfs_8h-source.html +elf_8h-source.html +endtask_8h-source.html +exec_8h-source.html +fork_8h-source.html +kmod_8h-source.html +kpanic_8h-source.html +ld_8h-source.html +lists_8h-source.html +sched_8h-source.html +sem_8h-source.html +smp_8h-source.html +spinlock_8h-source.html +static_8h-source.html +syscall_8h-source.html +syscalls_8h-source.html +syscalls__new_8h-source.html +systemtask_8h-source.html +time_8h-source.html +times_8h-source.html +tty_8h-source.html +include_2ubixos_2types_8h-source.html +ubixfsv2_2types_8h-source.html +ubthread_8h-source.html +vitals_8h-source.html +ffs_8h-source.html +ufs_8h-source.html +include_2vfs_2file_8h-source.html +ubixfsv2_2file_8h-source.html +mount_8h-source.html +include_2vfs_2vfs_8h-source.html +ubixfsv2_2vfs_8h-source.html +paging_8h-source.html +vmm_8h-source.html +main_8c-source.html +start_8S-source.html +static_8c-source.html +8259_8c-source.html +atkbd_8c-source.html +fdc_8c-source.html +mouse_8c-source.html +ne2k_8c-source.html +pit_8c-source.html +rs232_8c-source.html +ap-boot_8S-source.html +bioscall_8c-source.html +elf_8c-source.html +endtask_8c-source.html +exec_8c-source.html +fork_8c-source.html +gen__calls_8c-source.html +kern__descrip_8c-source.html +kern__sig_8c-source.html +kern__sysctl_8c-source.html +kpanic_8c-source.html +ld_8c-source.html +pipe_8c-source.html +sched_8c-source.html +schedyield_8S-source.html +sem_8c-source.html +smp_8c-source.html +spinlock_8c-source.html +sys__call_8S-source.html +sys__call__new_8S-source.html +syscall_8c-source.html +syscall__new_8c-source.html +systemtask_8c-source.html +time_8c-source.html +timer_8S-source.html +tty_8c-source.html +ubthread_8c-source.html +vitals_8c-source.html +kmod_8c-source.html +assert_8c-source.html +atan_8c-source.html +bcopy_8c-source.html +divdi3_8c-source.html +kmalloc_8c-source.html +kprintf_8c-source.html +libcpp_8cc-source.html +memcpy_8c-source.html +memset_8c-source.html +net_8c-source.html +ogprintf_8cc-source.html +sqrt_8c-source.html +string_8c-source.html +strtok_8c-source.html +strtol_8c-source.html +vsprintf_8c-source.html +Makefile_8inc-source.html +message_8c-source.html +system_8c-source.html +api__lib_8c-source.html +api__msg_8c-source.html +err_8c-source.html +sockets_8c-source.html +tcpip_8c-source.html +bot_8c-source.html +init_8c-source.html +shell_8c-source.html +shell_8h-source.html +sys__arch_8c-source.html +udpecho_8c-source.html +udpecho_8h-source.html +arp_8c-source.html +ethernetif_8c-source.html +loopif_8c-source.html +tcpdump_8c-source.html +hd_8c-source.html +lnc_8c-source.html +pci_8c-source.html +device_8c-source.html +dma_8c-source.html +idt_8c-source.html +io_8c-source.html +video_8c-source.html +block_8c-source.html +dirCache_8c-source.html +directory_8c-source.html +thread_8c-source.html +ubixfs_8c-source.html +btree_8cpp-source.html +btree_8h-source.html +btreeheader_8h-source.html +fsAbstract_8h-source.html +main_8cpp-source.html +ramdrive_8cpp-source.html +ramdrive_8h-source.html +ubixfs_8cpp-source.html +vfs_8cpp-source.html +ffs_8c-source.html +ufs_8c-source.html +file_8c-source.html +mount_8c-source.html +vfs_8c-source.html +copyvirtualspace_8c-source.html +createvirtualspace_8c-source.html +getfreepage_8c-source.html +getfreevirtualpage_8c-source.html +getphysicaladdr_8c-source.html +page__fault_8S-source.html +pagefault_8c-source.html +paging_8c-source.html +setpageattributes_8c-source.html +unmappage_8c-source.html +vmm__init_8c-source.html +vmm__memory_8c-source.html +devfs_8c.html +assert_8h.html +devfs_8h.html +8259_8h.html +atkbd_8h.html +fdc_8h.html +mouse_8h.html +ne2k_8h.html +pit_8h.html +bioscall_8h.html +kmalloc_8h.html +kprint_8h.html +kprintf_8h.html +libcpp_8h.html +lib_2string_8h.html +string_8h.html +math_8h.html +mpi_8h.html +api_8h.html +api__msg_8h.html +arch_8h.html +cc_8h.html +cpu_8h.html +net_2arch_2init_8h.html +ubixos_2init_8h.html +lib_8h.html +perf_8h.html +sys__arch_8h.html +debug_8h.html +def_8h.html +err_8h.html +ipv4_2icmp_8h.html +ipv6_2icmp_8h.html +ipv4_2inet_8h.html +ipv6_2inet_8h.html +ipv4_2ip_8h.html +ipv6_2ip_8h.html +ipv4_2ip__addr_8h.html +ipv6_2ip__addr_8h.html +list_8h.html +lwipopts_8h.html +mem_8h.html +memp_8h.html +net_8h.html +netif_8h.html +opt_8h.html +pbuf_8h.html +sockets_8h.html +stats_8h.html +sys_8h.html +tcp_8h.html +tcpip_8h.html +udp_8h.html +arp_8h.html +ethernetif_8h.html +loopif_8h.html +tcpdump_8h.html +ogDisplay__VESA_8h.html +hd_8h.html +lnc_8h.html +pci_8h.html +ogDisplay__UbixOS_8h.html +sde_8h.html +stdarg_8h.html +__types_8h.html +buf_8h.html +cdefs_8h.html +include_2sys_2device_8h.html +ubixfsv2_2device_8h.html +device_8old_8h.html +dma_8h.html +driver_8h.html +gdt_8h.html +gen__calls_8h.html +idt_8h.html +io_8h.html +kern__descrip_8h.html +kern__sig_8h.html +kern__sysctl_8h.html +pipe_8h.html +signal_8h.html +sysproto_8h.html +thread_8h.html +trap_8h.html +tss_8h.html +video_8h.html +dirCache_8h.html +include_2ubixfs_2ubixfs_8h.html +ubixfsv2_2ubixfs_8h.html +elf_8h.html +endtask_8h.html +exec_8h.html +fork_8h.html +kmod_8h.html +kpanic_8h.html +ld_8h.html +lists_8h.html +sched_8h.html +sem_8h.html +smp_8h.html +spinlock_8h.html +static_8h.html +syscall_8h.html +syscalls_8h.html +syscalls__new_8h.html +systemtask_8h.html +time_8h.html +times_8h.html +tty_8h.html +include_2ubixos_2types_8h.html +ubixfsv2_2types_8h.html +ubthread_8h.html +vitals_8h.html +ffs_8h.html +ufs_8h.html +include_2vfs_2file_8h.html +ubixfsv2_2file_8h.html +mount_8h.html +include_2vfs_2vfs_8h.html +ubixfsv2_2vfs_8h.html +paging_8h.html +vmm_8h.html +main_8c.html +start_8S.html +static_8c.html +8259_8c.html +atkbd_8c.html +fdc_8c.html +mouse_8c.html +ne2k_8c.html +pit_8c.html +rs232_8c.html +ap-boot_8S.html +bioscall_8c.html +elf_8c.html +endtask_8c.html +exec_8c.html +fork_8c.html +gen__calls_8c.html +kern__descrip_8c.html +kern__sig_8c.html +kern__sysctl_8c.html +kpanic_8c.html +ld_8c.html +pipe_8c.html +sched_8c.html +schedyield_8S.html +sem_8c.html +smp_8c.html +spinlock_8c.html +sys__call_8S.html +sys__call__new_8S.html +syscall_8c.html +syscall__new_8c.html +systemtask_8c.html +time_8c.html +timer_8S.html +tty_8c.html +ubthread_8c.html +vitals_8c.html +kmod_8c.html +assert_8c.html +atan_8c.html +bcopy_8c.html +divdi3_8c.html +kmalloc_8c.html +kprintf_8c.html +libcpp_8cc.html +memcpy_8c.html +memset_8c.html +net_8c.html +ogprintf_8cc.html +sqrt_8c.html +string_8c.html +strtok_8c.html +strtol_8c.html +vsprintf_8c.html +Makefile_8inc.html +message_8c.html +system_8c.html +api__lib_8c.html +api__msg_8c.html +err_8c.html +sockets_8c.html +tcpip_8c.html +bot_8c.html +init_8c.html +shell_8c.html +shell_8h.html +sys__arch_8c.html +udpecho_8c.html +udpecho_8h.html +arp_8c.html +ethernetif_8c.html +loopif_8c.html +tcpdump_8c.html +hd_8c.html +lnc_8c.html +pci_8c.html +device_8c.html +dma_8c.html +idt_8c.html +io_8c.html +video_8c.html +block_8c.html +dirCache_8c.html +directory_8c.html +thread_8c.html +ubixfs_8c.html +btree_8cpp.html +btree_8h.html +btreeheader_8h.html +fsAbstract_8h.html +main_8cpp.html +ramdrive_8cpp.html +ramdrive_8h.html +ubixfs_8cpp.html +vfs_8cpp.html +ffs_8c.html +ufs_8c.html +file_8c.html +mount_8c.html +vfs_8c.html +copyvirtualspace_8c.html +createvirtualspace_8c.html +getfreepage_8c.html +getfreevirtualpage_8c.html +getphysicaladdr_8c.html +page__fault_8S.html +pagefault_8c.html +paging_8c.html +setpageattributes_8c.html +unmappage_8c.html +vmm__init_8c.html +vmm__memory_8c.html +annotated.html +classes.html +hierarchy.html +functions.html +functions_0x61.html +functions_0x62.html +functions_0x63.html +functions_0x64.html +functions_0x65.html +functions_0x66.html +functions_0x67.html +functions_0x68.html +functions_0x69.html +functions_0x6a.html +functions_0x6b.html +functions_0x6c.html +functions_0x6d.html +functions_0x6e.html +functions_0x6f.html +functions_0x70.html +functions_0x71.html +functions_0x72.html +functions_0x73.html +functions_0x74.html +functions_0x75.html +functions_0x76.html +functions_0x77.html +functions_0x79.html +functions_0x7e.html +functions_func.html +functions_vars.html +functions_vars_0x61.html +functions_vars_0x62.html +functions_vars_0x63.html +functions_vars_0x64.html +functions_vars_0x65.html +functions_vars_0x66.html +functions_vars_0x67.html +functions_vars_0x68.html +functions_vars_0x69.html +functions_vars_0x6a.html +functions_vars_0x6b.html +functions_vars_0x6c.html +functions_vars_0x6d.html +functions_vars_0x6e.html +functions_vars_0x6f.html +functions_vars_0x70.html +functions_vars_0x71.html +functions_vars_0x72.html +functions_vars_0x73.html +functions_vars_0x74.html +functions_vars_0x75.html +functions_vars_0x76.html +functions_vars_0x77.html +functions_vars_0x79.html +functions_rela.html +struct____sigset.html +struct____timespec.html +struct__item__t.html +struct__list__t.html +struct__UbixUser.html +structapi__msg.html +structapi__msg__msg.html +structarp__entry.html +structarp__hdr.html +structarpcom.html +structblockAllocationTableEntry.html +structblockRun.html +structbNode.html +structbootSect.html +structbsd__disklabel.html +structbsd__disklabel_1_1partition.html +classbTree.html +structbTreeHeader.html +structbuf.html +structcacheNode.html +structclose__args.html +structconfadd.html +structcpuinfo__t.html +structcsum.html +structcsum__total.html +structdataStream.html +uniondescriptorTableUnion.html +structdevfs__devices.html +structdevfs__info.html +structdevice.html +structdevice__interface.html +structdevice__node.html +structdevice__resource.html +structdevice__t.html +structdevMethodType.html +structdirectoryEntry.html +structdirectoryList.html +structdirent.html +classDiskFS.html +structdiskSuperBlock.html +structdmadat.html +structdos__partition.html +structdp__rcvhdr.html +structdriveInfo.html +structdriverType.html +structDrvGeom.html +structei__device.html +structelfDynamic.html +structelfDynSym.html +structelfHeader.html +structelfPltInfo.html +structelfProgramHeader.html +structelfSectionHeader.html +structeth__addr.html +structeth__hdr.html +unionetheraddr.html +structethernetif.html +structethip__hdr.html +structfcntl__args.html +structfile.html +structfileDescriptor.html +structfileDescriptorStruct.html +structfileSystem.html +classFileSystemAbstract.html +structfs.html +structfstat__args.html +structgdt__descr.html +structgdtDescriptor.html +structgdtGate.html +structgetdtablesize__args.html +structgetgid__args.html +structgetpid__args.html +structgettimeofday__args.html +structgetuid__args.html +structhostRingEntry.html +structi386__frame.html +structi387Struct.html +structicmp__dur__hdr.html +structicmp__echo__hdr.html +structicmp__te__hdr.html +structin__addr.html +structinitBlock.html +structioctl__args.html +structip__addr.html +structip__hdr.html +structissetugid__args.html +structkmod__struct.html +structlncInfo.html +structlwip__socket.html +structmds.html +structmemDescriptor.html +structmMap.html +structmmap__args.html +structmpi__mbox.html +structmpi__message.html +structmunmap__args.html +structnet.html +structnetbuf.html +structnetconn.html +structnetif.html +structnicBuffer.html +structnicInfo.html +structobreak__args.html +classogDisplay__UbixOS.html +classogDisplay__VESA.html +structogModeInfo.html +structogVESAInfo.html +structosInfo.html +structpartitionInformation.html +structpbuf.html +structpciConfig.html +structpipe__args.html +structreadlink__args.html +structsdeWindows.html +structsigaction__args.html +structsigprocmask__args.html +structsockaddr.html +structsockaddr__in.html +structstat.html +structsys__mbox.html +structsys__mbox__msg.html +structsys__sem.html +structsys__thread.html +structsys__timeout.html +structsys__timeouts.html +structsysctl__args.html +structsysctl__entry.html +structtaskStruct.html +structtcp__hdr.html +structtcp__pcb.html +structtcp__pcb__listen.html +structtcp__seg.html +structtcpip__msg.html +structthread.html +structthread__start__param.html +structtimespec.html +structtimeStruct.html +structtimeval.html +structtimezone.html +structTMode__Rec.html +structtms.html +structtrapframe.html +structtssStruct.html +structtty__termNode.html +structTVESA__Rec.html +structubixDiskLabel.html +structubixDiskLabel_1_1ubixPartitions.html +classUbixFS.html +structubixFSInfo.html +structubixfsInode.html +structubthread.html +structubthread__cond.html +structubthread__cond__list.html +structubthread__list.html +structubthread__mutex.html +structubthread__mutex__list.html +structudp__hdr.html +structudp__pcb.html +structufs1__dinode.html +structufs2__dinode.html +unionuPtr.html +structuserFileDescriptorStruct.html +classvfs__abstract.html +structvfs__mountPoint.html +structvitalsStruct.html +structwrite__args.html +namespaces.html +namespacestd.html +dir_5377d826f41208e35c1e6ec985f139cd.html +dir_bdca170688007a80a8e983b8739e5b43.html +dir_248b3debdbff35864f3bdabccbc86e68.html +dir_0af38c139db535004c17f658eecde1eb.html +dir_caf4200c438ae9601464168e21e8e4d8.html +dir_dffcdd1ad37a0b2305f9cf289deb8f95.html +dir_c3e84400a32e4fc888777536359ca22b.html +dir_76136493e73439838033f413ae0f827f.html +dir_2f8fc94d4f17c865dd63167e45dee9cf.html +dir_531e61b8e9b8982548f8f8f296b3206c.html +dir_7efffd2b1fae7bb6f2aa85845c863494.html +dir_a0cadbe588a0f0b62517333d702e3cca.html +dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html +dir_538938396c33f4585b2c9d510e98cbd2.html +dir_bcb67723b759fa7c88f0f248d2c080de.html +dir_d6c0de4141c0ef78b51cf518480fe588.html +dir_b2e9f53f507f0bb44cd3f7446945d199.html +dir_da977d215fccd664f66e7711fda26f76.html +dir_c1d11d251a83b2498f44d410b793c5eb.html +dir_becc64c1c5cdfab2e137aa1ca4b91e6b.html +dir_c0f81d69cde38683f3447d3343de50f4.html +dir_2fce887bf7cb6c890cb427c03dad3e86.html +dir_b683da389ddfd9a2385307147d6c30b8.html +dir_912887cea1b4cb6e273c4527a2250d09.html +dir_626404c379d6b1b237f0a541878d72c0.html +dir_897b6a2d7bab147dd1db58381aad3984.html +dir_7b0469299ccbf4a3a403496996173710.html +dir_d26f37d6397a53073c964316867e8d67.html +dir_832905b1f7f5feaf61a306b40c0ac817.html +dir_74196872fc832845f1a07f1162e5c554.html +dir_0da430bc12a622a01803598a1e7c0e05.html +dir_21e0927e9dd41d8ff1206ca4f0555726.html +dir_9854bc9d2b9a2a73f32c73e97d31d0f7.html +dir_cbd3b6f8ac372a007cdc756f615c76fe.html +dir_4d4c8e7174efe8ad5ca8ab494abe072d.html +dir_366cae809cefebd9796e1be555536f38.html +dir_77bb06880a0e48020cb00f59405a6b13.html +dir_b87deefade4e886319aa926bd3ba1491.html +dir_d5a59026f863a7643db80a2edf430514.html +files.html +dirs.html +globals.html +globals_0x5f.html +globals_0x61.html +globals_0x62.html +globals_0x63.html +globals_0x64.html +globals_0x65.html +globals_0x66.html +globals_0x67.html +globals_0x68.html +globals_0x69.html +globals_0x6b.html +globals_0x6c.html +globals_0x6d.html +globals_0x6e.html +globals_0x6f.html +globals_0x70.html +globals_0x71.html +globals_0x72.html +globals_0x73.html +globals_0x74.html +globals_0x75.html +globals_0x76.html +globals_0x77.html +globals_0x78.html +globals_0x79.html +globals_0x7a.html +globals_func.html +globals_func_0x61.html +globals_func_0x62.html +globals_func_0x63.html +globals_func_0x64.html +globals_func_0x65.html +globals_func_0x66.html +globals_func_0x67.html +globals_func_0x68.html +globals_func_0x69.html +globals_func_0x6b.html +globals_func_0x6c.html +globals_func_0x6d.html +globals_func_0x6e.html +globals_func_0x6f.html +globals_func_0x70.html +globals_func_0x72.html +globals_func_0x73.html +globals_func_0x74.html +globals_func_0x75.html +globals_func_0x76.html +globals_func_0x77.html +globals_func_0x78.html +globals_vars.html +globals_type.html +globals_enum.html +globals_eval.html +globals_defs.html +globals_defs_0x61.html +globals_defs_0x62.html +globals_defs_0x63.html +globals_defs_0x64.html +globals_defs_0x65.html +globals_defs_0x66.html +globals_defs_0x68.html +globals_defs_0x69.html +globals_defs_0x6b.html +globals_defs_0x6c.html +globals_defs_0x6d.html +globals_defs_0x6e.html +globals_defs_0x6f.html +globals_defs_0x70.html +globals_defs_0x72.html +globals_defs_0x73.html +globals_defs_0x74.html +globals_defs_0x75.html +globals_defs_0x76.html +globals_defs_0x77.html +globals_defs_0x79.html +globals_defs_0x7a.html +tabs.css +tab_b.gif +tab_l.gif +tab_r.gif diff --git a/doc/html/init_8c-source.html b/doc/html/init_8c-source.html index 5f764a2..5b3ba76 100644 --- a/doc/html/init_8c-source.html +++ b/doc/html/init_8c-source.html @@ -134,7 +134,7 @@ 00102 END 00103 ***/ 00104 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/init_8c.html b/doc/html/init_8c.html index 1cad5fb..8d4ec27 100644 --- a/doc/html/init_8c.html +++ b/doc/html/init_8c.html @@ -101,7 +101,7 @@

    Definition at line 66 of file init.c.

    -References _current, endTask(), ethernetif_init(), taskStruct::id, IP4_ADDR, kprintf(), loopif_init(), netif_add(), netif_init(), netif_set_default(), shell_init(), sys_sem_free(), sys_sem_new(), sys_sem_wait(), tcpip_init(), tcpip_init_done, and tcpip_input(). +References _current, endTask(), ethernetif_init(), taskStruct::id, IP4_ADDR, kprintf(), loopif_init(), netif_add(), netif_init(), netif_set_default(), shell_init(), sys_sem_free(), sys_sem_new(), sys_sem_wait(), tcpip_init(), tcpip_init_done, and tcpip_input().

    Referenced by net_init(). @@ -130,7 +130,7 @@ References sys_sem_signal().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/installdox b/doc/html/installdox new file mode 100755 index 0000000..9b89fe0 --- /dev/null +++ b/doc/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/doc/html/io_8c-source.html b/doc/html/io_8c-source.html index b2f3118..70a93bc 100644 --- a/doc/html/io_8c-source.html +++ b/doc/html/io_8c-source.html @@ -176,7 +176,7 @@ 00144 /*** 00145 END 00146 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/io_8c.html b/doc/html/io_8c.html index dbd190f..584e95d 100644 --- a/doc/html/io_8c.html +++ b/doc/html/io_8c.html @@ -75,7 +75,7 @@

    Definition at line 39 of file io.c.

    -Referenced by _int13(), atkbd_scan(), backSpace(), countMemory(), dp_recv(), fdcRw(), getByte(), hdInit(), hdRead(), hdWrite(), initLNC(), kbdRead(), kbdWrite(), keyboardHandler(), kprint(), ne2k_init(), ne2kHandler(), pciRead(), PCtoNIC(), sendByte(), setLED(), systemTask(), timeCmosRead(), tty_init(), and waitFdc(). +Referenced by _int13(), atkbd_scan(), backSpace(), countMemory(), dp_recv(), fdcRw(), getByte(), hdInit(), hdRead(), hdWrite(), initLNC(), kbdRead(), kbdWrite(), keyboardHandler(), kprint(), ne2k_init(), ne2kHandler(), pciRead(), PCtoNIC(), sendByte(), setLED(), systemTask(), timeCmosRead(), tty_init(), and waitFdc().

    @@ -156,7 +156,7 @@

    Definition at line 73 of file io.c.

    -Referenced by _dmaXfer(), _int13(), atkbd_scan(), backSpace(), c_ap_boot(), clearScreen(), countMemory(), dp_recv(), fdcRw(), floppyIsrhndlr(), getblock(), hdInit(), hdRead(), hdWrite(), i8259_init(), irqDisable(), irqEnable(), kbdWrite(), keyboardHandler(), kprint(), lncInt(), motorOn(), mouseHandler(), mouseInit(), ne2k_init(), ne2kHandler(), NICtoPC(), pciWrite(), PCtoNIC(), pit_init(), reset(), sendByte(), setLED(), systemTask(), tty_change(), tty_init(), and tty_print(). +Referenced by _dmaXfer(), _int13(), atkbd_scan(), backSpace(), c_ap_boot(), clearScreen(), countMemory(), dp_recv(), fdcRw(), floppyIsrhndlr(), getblock(), hdInit(), hdRead(), hdWrite(), i8259_init(), irqDisable(), irqEnable(), kbdWrite(), keyboardHandler(), kprint(), lncInt(), motorOn(), mouseHandler(), mouseInit(), ne2k_init(), ne2kHandler(), NICtoPC(), pciWrite(), PCtoNIC(), pit_init(), reset(), sendByte(), setLED(), systemTask(), tty_change(), tty_init(), and tty_print().

    @@ -258,7 +258,7 @@ Referenced by _int13(), hdWrite(), lncInt(), pciWrite(), PCtoNIC(), readBcr(), readCsr(), writeBcr(), and writeCsr().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/io_8h-source.html b/doc/html/io_8h-source.html index f7a96f7..3043e24 100644 --- a/doc/html/io_8h-source.html +++ b/doc/html/io_8h-source.html @@ -92,7 +92,7 @@ 00060 00061 END 00062 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/io_8h.html b/doc/html/io_8h.html index e0b2f29..6ec7b7d 100644 --- a/doc/html/io_8h.html +++ b/doc/html/io_8h.html @@ -74,7 +74,7 @@

    Definition at line 39 of file io.c.

    -Referenced by _int13(), atkbd_scan(), backSpace(), countMemory(), dp_recv(), fdcRw(), getByte(), hdInit(), hdRead(), hdWrite(), initLNC(), kbdRead(), kbdWrite(), keyboardHandler(), kprint(), ne2k_init(), ne2kHandler(), pciRead(), PCtoNIC(), sendByte(), setLED(), systemTask(), timeCmosRead(), tty_init(), and waitFdc(). +Referenced by _int13(), atkbd_scan(), backSpace(), countMemory(), dp_recv(), fdcRw(), getByte(), hdInit(), hdRead(), hdWrite(), initLNC(), kbdRead(), kbdWrite(), keyboardHandler(), kprint(), ne2k_init(), ne2kHandler(), pciRead(), PCtoNIC(), sendByte(), setLED(), systemTask(), timeCmosRead(), tty_init(), and waitFdc().

    @@ -155,7 +155,7 @@

    Definition at line 73 of file io.c.

    -Referenced by _dmaXfer(), _int13(), atkbd_scan(), backSpace(), c_ap_boot(), clearScreen(), countMemory(), dp_recv(), fdcRw(), floppyIsrhndlr(), getblock(), hdInit(), hdRead(), hdWrite(), i8259_init(), irqDisable(), irqEnable(), kbdWrite(), keyboardHandler(), kprint(), lncInt(), motorOn(), mouseHandler(), mouseInit(), ne2k_init(), ne2kHandler(), NICtoPC(), pciWrite(), PCtoNIC(), pit_init(), reset(), sendByte(), setLED(), systemTask(), tty_change(), tty_init(), and tty_print(). +Referenced by _dmaXfer(), _int13(), atkbd_scan(), backSpace(), c_ap_boot(), clearScreen(), countMemory(), dp_recv(), fdcRw(), floppyIsrhndlr(), getblock(), hdInit(), hdRead(), hdWrite(), i8259_init(), irqDisable(), irqEnable(), kbdWrite(), keyboardHandler(), kprint(), lncInt(), motorOn(), mouseHandler(), mouseInit(), ne2k_init(), ne2kHandler(), NICtoPC(), pciWrite(), PCtoNIC(), pit_init(), reset(), sendByte(), setLED(), systemTask(), tty_change(), tty_init(), and tty_print().

    @@ -257,7 +257,7 @@ Referenced by _int13(), hdWrite(), lncInt(), pciWrite(), PCtoNIC(), readBcr(), readCsr(), writeBcr(), and writeCsr().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2icmp_8h-source.html b/doc/html/ipv4_2icmp_8h-source.html index eb5f14e..c8d8778 100644 --- a/doc/html/ipv4_2icmp_8h-source.html +++ b/doc/html/ipv4_2icmp_8h-source.html @@ -134,7 +134,7 @@ 00102 00103 #endif /* __LWIP_ICMP_H__ */ 00104 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2icmp_8h.html b/doc/html/ipv4_2icmp_8h.html index 703975e..4caca88 100644 --- a/doc/html/ipv4_2icmp_8h.html +++ b/doc/html/ipv4_2icmp_8h.html @@ -584,7 +584,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2inet_8h-source.html b/doc/html/ipv4_2inet_8h-source.html index 376693a..1dab566 100644 --- a/doc/html/ipv4_2inet_8h-source.html +++ b/doc/html/ipv4_2inet_8h-source.html @@ -152,7 +152,7 @@ 00120 00121 #endif /* __LWIP_INET_H__ */ 00122 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2inet_8h.html b/doc/html/ipv4_2inet_8h.html index 2a01b62..a27d2ba 100644 --- a/doc/html/ipv4_2inet_8h.html +++ b/doc/html/ipv4_2inet_8h.html @@ -371,7 +371,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2ip_8h-source.html b/doc/html/ipv4_2ip_8h-source.html index 34613b9..b0f3f17 100644 --- a/doc/html/ipv4_2ip_8h-source.html +++ b/doc/html/ipv4_2ip_8h-source.html @@ -150,7 +150,7 @@ 00118 #endif /* __LWIP_IP_H__ */ 00119 00120 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2ip_8h.html b/doc/html/ipv4_2ip_8h.html index 106bff6..c61c148 100644 --- a/doc/html/ipv4_2ip_8h.html +++ b/doc/html/ipv4_2ip_8h.html @@ -884,7 +884,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2ip__addr_8h-source.html b/doc/html/ipv4_2ip__addr_8h-source.html index 0897655..80ff7a9 100644 --- a/doc/html/ipv4_2ip__addr_8h-source.html +++ b/doc/html/ipv4_2ip__addr_8h-source.html @@ -122,7 +122,7 @@ 00090 00091 00092 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv4_2ip__addr_8h.html b/doc/html/ipv4_2ip__addr_8h.html index 796f32c..f91c0ee 100644 --- a/doc/html/ipv4_2ip__addr_8h.html +++ b/doc/html/ipv4_2ip__addr_8h.html @@ -472,7 +472,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2icmp_8h-source.html b/doc/html/ipv6_2icmp_8h-source.html index 61139a7..abf0b4c 100644 --- a/doc/html/ipv6_2icmp_8h-source.html +++ b/doc/html/ipv6_2icmp_8h-source.html @@ -123,7 +123,7 @@ 00091 00092 #endif /* __LWIP_ICMP_H__ */ 00093 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2icmp_8h.html b/doc/html/ipv6_2icmp_8h.html index 30f9ca5..8ca24cc 100644 --- a/doc/html/ipv6_2icmp_8h.html +++ b/doc/html/ipv6_2icmp_8h.html @@ -296,7 +296,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2inet_8h-source.html b/doc/html/ipv6_2inet_8h-source.html index 7c49fd5..420dcc5 100644 --- a/doc/html/ipv6_2inet_8h-source.html +++ b/doc/html/ipv6_2inet_8h-source.html @@ -93,7 +93,7 @@ 00061 00062 #endif /* __LWIP_INET_H__ */ 00063 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2inet_8h.html b/doc/html/ipv6_2inet_8h.html index 3bdebc5..a3132e7 100644 --- a/doc/html/ipv6_2inet_8h.html +++ b/doc/html/ipv6_2inet_8h.html @@ -233,7 +233,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2ip_8h-source.html b/doc/html/ipv6_2ip_8h-source.html index 3e33575..ef1fc06 100644 --- a/doc/html/ipv6_2ip_8h-source.html +++ b/doc/html/ipv6_2ip_8h-source.html @@ -129,7 +129,7 @@ 00097 #endif /* __LWIP_IP_H__ */ 00098 00099 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2ip_8h.html b/doc/html/ipv6_2ip_8h.html index 3d6a4d1..c059b6e 100644 --- a/doc/html/ipv6_2ip_8h.html +++ b/doc/html/ipv6_2ip_8h.html @@ -343,7 +343,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2ip__addr_8h-source.html b/doc/html/ipv6_2ip__addr_8h-source.html index 9b4784a..31945a3 100644 --- a/doc/html/ipv6_2ip__addr_8h-source.html +++ b/doc/html/ipv6_2ip__addr_8h-source.html @@ -92,7 +92,7 @@ 00060 #endif /* IP_DEBUG */ 00061 00062 #endif /* __LWIP_IP_ADDR_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ipv6_2ip__addr_8h.html b/doc/html/ipv6_2ip__addr_8h.html index fa9bb10..8522cd4 100644 --- a/doc/html/ipv6_2ip__addr_8h.html +++ b/doc/html/ipv6_2ip__addr_8h.html @@ -237,7 +237,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__descrip_8c-source.html b/doc/html/kern__descrip_8c-source.html index 872341b..8a0a0f1 100644 --- a/doc/html/kern__descrip_8c-source.html +++ b/doc/html/kern__descrip_8c-source.html @@ -127,26 +127,25 @@ 00095 /* HACK */ 00096 int fstat(struct thread *td,struct fstat_args *uap) { 00097 struct file *fp = 0x0; -00098 kprintf("fd: %i",uap->fd); -00099 fp = _current->td.o_files[uap->fd]; +00098 +00099 fp = _current->td.o_files[uap->fd]; 00100 uap->sb->st_mode = 0x2180; 00101 uap->sb->st_blksize = 0x1000; 00102 return(0x0); 00103 } 00104 -00105 int ioctl(struct thread *td, struct ioctl_args *uap) { -00106 kprintf("ioctl HACK"); -00107 td->td_retval[0] = 0x0; -00108 return(0x0); -00109 } -00110 -00111 +00108 int ioctl(struct thread *td, struct ioctl_args *uap) { +00109 td->td_retval[0] = 0x0; +00110 return(0x0); +00111 } 00112 -00113 /*** -00114 END -00115 ***/ -00116 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00113 +00114 +00115 /*** +00116 END +00117 ***/ +00118 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__descrip_8c.html b/doc/html/kern__descrip_8c.html index 2448353..4dd39b9 100644 --- a/doc/html/kern__descrip_8c.html +++ b/doc/html/kern__descrip_8c.html @@ -89,7 +89,7 @@

    Definition at line 82 of file kern_descrip.c.

    -References close_args::fd, kfree(), thread::o_files, and thread::td_retval. +References close_args::fd, kfree(), thread::o_files, and thread::td_retval.

    @@ -128,9 +128,9 @@

    Definition at line 63 of file kern_descrip.c.

    -References kmalloc(), and thread::o_files. +References kmalloc(), and thread::o_files.

    -Referenced by pipe(). +Referenced by pipe().

    @@ -196,7 +196,7 @@

    Definition at line 96 of file kern_descrip.c.

    -References _current, fstat_args::fd, kprintf(), thread::o_files, fstat_args::sb, stat::st_blksize, stat::st_mode, and taskStruct::td. +References _current, fstat_args::fd, thread::o_files, fstat_args::sb, stat::st_blksize, stat::st_mode, and taskStruct::td.

    @@ -258,14 +258,14 @@

    - +HACK

    -Definition at line 105 of file kern_descrip.c. +Definition at line 108 of file kern_descrip.c.

    -References kprintf(), and thread::td_retval. +References thread::td_retval.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__descrip_8h-source.html b/doc/html/kern__descrip_8h-source.html index d31bb83..deb275c 100644 --- a/doc/html/kern__descrip_8h-source.html +++ b/doc/html/kern__descrip_8h-source.html @@ -191,7 +191,7 @@ 00159 END 00160 ***/ 00161 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__descrip_8h.html b/doc/html/kern__descrip_8h.html index e41dfd2..6457347 100644 --- a/doc/html/kern__descrip_8h.html +++ b/doc/html/kern__descrip_8h.html @@ -492,7 +492,7 @@

    Definition at line 52 of file kern_descrip.h.

    -Referenced by pipe(). +Referenced by pipe().

    @@ -511,7 +511,7 @@

    Definition at line 53 of file kern_descrip.h.

    -Referenced by pipe(). +Referenced by pipe().

    @@ -930,9 +930,9 @@

    Definition at line 63 of file kern_descrip.c.

    -References kmalloc(), and thread::o_files. +References kmalloc(), and thread::o_files.

    -Referenced by pipe(). +Referenced by pipe().

    @@ -1036,13 +1036,13 @@ int ioctl ( struct thread *  - , + td, struct ioctl_args *  -   + uap  @@ -1054,12 +1054,12 @@

    - +HACK

    -Definition at line 105 of file kern_descrip.c. +Definition at line 108 of file kern_descrip.c.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sig_8c-source.html b/doc/html/kern__sig_8c-source.html index cafaa58..2aaebb2 100644 --- a/doc/html/kern__sig_8c-source.html +++ b/doc/html/kern__sig_8c-source.html @@ -82,7 +82,7 @@ 00050 END 00051 ***/ 00052 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sig_8c.html b/doc/html/kern__sig_8c.html index c2ec483..0b9956c 100644 --- a/doc/html/kern__sig_8c.html +++ b/doc/html/kern__sig_8c.html @@ -113,7 +113,7 @@ Definition at line 43 of file kern_sig.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sig_8h-source.html b/doc/html/kern__sig_8h-source.html index c0c1f6a..6aa0deb 100644 --- a/doc/html/kern__sig_8h-source.html +++ b/doc/html/kern__sig_8h-source.html @@ -74,7 +74,7 @@ 00042 END 00043 ***/ 00044 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sig_8h.html b/doc/html/kern__sig_8h.html index 965ba76..7ea1760 100644 --- a/doc/html/kern__sig_8h.html +++ b/doc/html/kern__sig_8h.html @@ -103,7 +103,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sysctl_8c-source.html b/doc/html/kern__sysctl_8c-source.html index 684520b..9cd9b3c 100644 --- a/doc/html/kern__sysctl_8c-source.html +++ b/doc/html/kern__sysctl_8c-source.html @@ -59,249 +59,231 @@ 00027 00028 *****************************************************************************************/ 00029 -00030 #include <sys/kern_sysctl.h> -00031 #include <ubixos/types.h> -00032 #include <ubixos/endtask.h> -00033 #include <ubixos/kpanic.h> -00034 #include <ubixos/spinlock.h> -00035 #include <sys/thread.h> +00030 #include <ubixos/types.h> +00031 #include <sys/sysproto.h> +00032 #include <sys/thread.h> +00033 #include <sys/kern_sysctl.h> +00034 #include <ubixos/endtask.h> +00035 #include <ubixos/kpanic.h> 00036 #include <lib/kprintf.h> 00037 #include <lib/kmalloc.h> 00038 #include <assert.h> 00039 #include <string.h> 00040 00041 static struct sysctl_entry *ctls = 0x0; -00042 static struct sysctl_entry *sysctl_find(int *,int); -00043 -00044 bool sysctl_enabled = FALSE; -00045 -00049 static void def_ctls() { -00050 int name[CTL_MAXNAME], name_len; -00051 uInt32 page_val = 0x1000; -00052 name[0] = 6; -00053 name[1] = 7; -00054 name_len = 2; -00055 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); -00056 /* Clock Rate */ -00057 name[0] = 1; -00058 name [1] = 12; -00059 page_val = 0x3E8; -00060 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); -00061 /* User Stack */ -00062 name[0] = 1; -00063 name [1] = 33; -00064 page_val = 0xCBE8000; -00065 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); -00066 } -00067 -00069 -00072 int sysctl_init() { -00073 struct sysctl_entry *tmpCtl = 0x0; -00074 if (ctls != 0x0) -00075 K_PANIC("sysctl already Initialized\n"); -00076 -00077 ctls = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00078 ctls->prev = 0x0; -00079 ctls->id = CTL_UNSPEC; -00080 ctls->children = 0x0; -00081 sprintf(ctls->name,"unspec"); -00082 -00083 tmpCtl = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00084 tmpCtl->prev = ctls; -00085 tmpCtl->id = CTL_KERN; -00086 tmpCtl->children = 0x0; -00087 sprintf(tmpCtl->name,"kern"); -00088 ctls->next = tmpCtl; -00089 -00090 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00091 tmpCtl->next->prev = tmpCtl; -00092 tmpCtl = tmpCtl->next; -00093 tmpCtl->id = CTL_VM; -00094 tmpCtl->children = 0x0; -00095 sprintf(tmpCtl->name,"vm"); -00096 -00097 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00098 tmpCtl->next->prev = tmpCtl; -00099 tmpCtl = tmpCtl->next; -00100 tmpCtl->id = CTL_VFS; -00101 tmpCtl->children = 0x0; -00102 sprintf(tmpCtl->name,"vfs"); -00103 -00104 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00105 tmpCtl->next->prev = tmpCtl; -00106 tmpCtl = tmpCtl->next; -00107 tmpCtl->id = CTL_NET; -00108 tmpCtl->children = 0x0; -00109 sprintf(tmpCtl->name,"net"); -00110 -00111 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00112 tmpCtl->next->prev = tmpCtl; -00113 tmpCtl = tmpCtl->next; -00114 tmpCtl->id = CTL_DEBUG; -00115 tmpCtl->children = 0x0; -00116 sprintf(tmpCtl->name,"debug"); -00117 -00118 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00119 tmpCtl->next->prev = tmpCtl; -00120 tmpCtl = tmpCtl->next; -00121 tmpCtl->id = CTL_HW; -00122 tmpCtl->children = 0x0; -00123 sprintf(tmpCtl->name,"hw"); -00124 -00125 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00126 tmpCtl->next->prev = tmpCtl; -00127 tmpCtl = tmpCtl->next; -00128 tmpCtl->id = CTL_MACHDEP; -00129 tmpCtl->children = 0x0; -00130 sprintf(tmpCtl->name,"machdep"); -00131 -00132 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00133 tmpCtl->next->prev = tmpCtl; -00134 tmpCtl = tmpCtl->next; -00135 tmpCtl->id = CTL_USER; -00136 tmpCtl->children = 0x0; -00137 sprintf(tmpCtl->name,"user"); -00138 -00139 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00140 tmpCtl->next->prev = tmpCtl; -00141 tmpCtl = tmpCtl->next; -00142 tmpCtl->id = CTL_P1003_1B; -00143 tmpCtl->children = 0x0; -00144 sprintf(tmpCtl->name,"p1003_1b"); -00145 -00146 tmpCtl->next = (struct sysctl_enctry *)kmalloc(sizeof(struct sysctl_entry)); -00147 tmpCtl->next->prev = tmpCtl; -00148 tmpCtl = tmpCtl->next; -00149 tmpCtl->id = CTL_UBIX; -00150 tmpCtl->children = 0x0; -00151 sprintf(tmpCtl->name,"ubix"); +00042 +00043 static struct sysctl_entry *sysctl_find(int *,int); +00044 +00045 /* This is a cheat for now */ +00046 static void def_ctls() { +00047 int name[CTL_MAXNAME], name_len; +00048 uInt32 page_val = 0x1000; +00049 name[0] = 6; +00050 name[1] = 7; +00051 name_len = 2; +00052 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +00053 /* Clock Rate */ +00054 name[0] = 1; +00055 name [1] = 12; +00056 page_val = 0x3E8; +00057 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +00058 /* User Stack */ +00059 name[0] = 1; +00060 name [1] = 33; +00061 page_val = 0xCBE8000; +00062 sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +00063 } +00064 +00065 int sysctl_init() { +00066 struct sysctl_entry *tmpCtl = 0x0; +00067 if (ctls != 0x0) { +00068 kprintf("sysctl already Initialized\n"); +00069 while (1); +00070 } +00071 +00072 ctls = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00073 ctls->prev = 0x0; +00074 ctls->id = CTL_UNSPEC; +00075 ctls->children = 0x0; +00076 sprintf(ctls->name,"unspec"); +00077 +00078 tmpCtl = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00079 tmpCtl->prev = ctls; +00080 tmpCtl->id = CTL_KERN; +00081 tmpCtl->children = 0x0; +00082 sprintf(tmpCtl->name,"kern"); +00083 ctls->next = tmpCtl; +00084 +00085 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00086 tmpCtl->next->prev = tmpCtl; +00087 tmpCtl = tmpCtl->next; +00088 tmpCtl->id = CTL_VM; +00089 tmpCtl->children = 0x0; +00090 sprintf(tmpCtl->name,"vm"); +00091 +00092 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00093 tmpCtl->next->prev = tmpCtl; +00094 tmpCtl = tmpCtl->next; +00095 tmpCtl->id = CTL_VFS; +00096 tmpCtl->children = 0x0; +00097 sprintf(tmpCtl->name,"vfs"); +00098 +00099 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00100 tmpCtl->next->prev = tmpCtl; +00101 tmpCtl = tmpCtl->next; +00102 tmpCtl->id = CTL_NET; +00103 tmpCtl->children = 0x0; +00104 sprintf(tmpCtl->name,"net"); +00105 +00106 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00107 tmpCtl->next->prev = tmpCtl; +00108 tmpCtl = tmpCtl->next; +00109 tmpCtl->id = CTL_DEBUG; +00110 tmpCtl->children = 0x0; +00111 sprintf(tmpCtl->name,"debug"); +00112 +00113 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00114 tmpCtl->next->prev = tmpCtl; +00115 tmpCtl = tmpCtl->next; +00116 tmpCtl->id = CTL_HW; +00117 tmpCtl->children = 0x0; +00118 sprintf(tmpCtl->name,"hw"); +00119 +00120 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00121 tmpCtl->next->prev = tmpCtl; +00122 tmpCtl = tmpCtl->next; +00123 tmpCtl->id = CTL_MACHDEP; +00124 tmpCtl->children = 0x0; +00125 sprintf(tmpCtl->name,"machdep"); +00126 +00127 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00128 tmpCtl->next->prev = tmpCtl; +00129 tmpCtl = tmpCtl->next; +00130 tmpCtl->id = CTL_USER; +00131 tmpCtl->children = 0x0; +00132 sprintf(tmpCtl->name,"user"); +00133 +00134 tmpCtl->next = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00135 tmpCtl->next->prev = tmpCtl; +00136 tmpCtl = tmpCtl->next; +00137 tmpCtl->id = CTL_P1003_1B; +00138 tmpCtl->children = 0x0; +00139 sprintf(tmpCtl->name,"p1003_1b"); +00140 +00141 tmpCtl->next = (struct sysctl_enctry *)kmalloc(sizeof(struct sysctl_entry)); +00142 tmpCtl->next->prev = tmpCtl; +00143 tmpCtl = tmpCtl->next; +00144 tmpCtl->id = CTL_UBIX; +00145 tmpCtl->children = 0x0; +00146 sprintf(tmpCtl->name,"ubix"); +00147 +00148 def_ctls(); +00149 +00150 return(0x0); +00151 } 00152 -00154 def_ctls(); -00155 -00156 sysctl_enabled = TRUE; -00157 -00158 return(0x0); -00159 } -00160 -00161 int __sysctl(struct thread *td, struct sysctl_args *uap) { -00162 int err = 0x0; -00163 int name[CTL_MAXNAME]; -00164 size_t j = 0x0; -00165 -00169 if ((uap->namelen < 0x2) || (uap->namelen > CTL_MAXNAME)) { -00170 return(EINVAL); -00171 } -00172 -00176 err = memcpy(name,uap->name,uap->namelen * sizeof(int)); -00177 if (err) -00178 return(err); -00179 spinLock(&Master); +00153 int __sysctl(struct thread *td, struct sysctl_args *uap) { +00154 struct sysctl_entry *tmpCtl = 0x0; +00155 int i = 0; +00156 +00157 if (ctls == 0x0) +00158 K_PANIC("sysctl not initialized"); +00159 +00160 if (uap->newlen < 0) { +00161 kprintf("Changing Not supported yet.\n"); +00162 endTask(_current->id); +00163 } +00164 +00165 tmpCtl = sysctl_find(uap->name,uap->namelen); +00166 if (tmpCtl == 0x0) { +00167 kprintf("Invalid CTL\n"); +00168 for (i=0;i<uap->namelen;i++) +00169 kprintf("(%i)",uap->name[i]); +00170 kprintf("\n"); +00171 endTask(_current->id); +00172 } +00173 +00174 if ((u_int32_t)uap->oldlenp < tmpCtl->val_len) +00175 memcpy(uap->old,tmpCtl->value,(uInt32)uap->oldlenp); +00176 else +00177 memcpy(uap->old,tmpCtl->value,tmpCtl->val_len); +00178 +00179 td->td_retval[0] = 0x0; 00180 -00181 kern_sysctl(td,name,uap->namelen, uap->old,uap->oldlenp,0x0,uap->new, uap->newlen, &j, 0x0); -00182 spinUnlock(&Master); +00181 return(0x0); +00182 } 00183 -00184 return(0x0); -00185 } -00186 -00187 int kern_sysctl(struct thread *td,int *name,u_int namelen,void *old,size_t *oldlenp,int inkernel,void *new,size_t newlen,size_t *retval,int flags) { -00188 struct sysctl_entry *tmpCtl = 0x0; -00189 int i = 0; -00190 -00191 if (newlen < 0) { -00192 kprintf("Changing Not supported yet.\n"); -00193 endTask(_current->id); -00194 } -00195 -00196 tmpCtl = sysctl_find(name,namelen); -00197 if (tmpCtl == 0x0) { -00198 kprintf("Invalid CTL\n"); -00199 for (i = 0x0;i < namelen;i++) -00200 kprintf("(%i)",name[i]); -00201 kprintf("\n"); -00202 endTask(_current->id); -00203 } +00184 static struct sysctl_entry *sysctl_find(int *name,int namelen) { +00185 int i = 0x0; +00186 struct sysctl_entry *tmpCtl = 0x0; +00187 struct sysctl_entry *lCtl = ctls; +00188 +00189 /* Loop Name Len */ +00190 for (i = 0; i < namelen;i++) { +00191 for (tmpCtl = lCtl;tmpCtl != 0x0;tmpCtl = tmpCtl->next) { +00192 //kprintf("ctlName: [%s], ctlId; [%i]\n",tmpCtl->name,tmpCtl->id); +00193 if (tmpCtl->id == name[i]) { +00194 if ((i+1) == namelen) { +00195 return(tmpCtl); +00196 } +00197 lCtl = tmpCtl->children; +00198 break; +00199 } +00200 } +00201 } +00202 return(0x0); +00203 } 00204 -00205 if (oldlenp < tmpCtl->val_len) -00206 memcpy(old,tmpCtl->value,oldlenp); -00207 else -00208 memcpy(old,tmpCtl->value,tmpCtl->val_len); -00209 -00210 td->td_retval[0] = 0x0; -00211 -00212 return(0x0); -00213 } -00214 -00215 static struct sysctl_entry *sysctl_find(int *name,int namelen) { -00216 int i = 0x0; -00217 struct sysctl_entry *tmpCtl = 0x0; -00218 struct sysctl_entry *lCtl = ctls; -00219 -00220 /* Loop Name Len */ -00221 for (i = 0; i < namelen;i++) { -00222 for (tmpCtl = lCtl;tmpCtl != 0x0;tmpCtl = tmpCtl->next) { -00223 //kprintf("ctlName: [%s], ctlId; [%i]\n",tmpCtl->name,tmpCtl->id); -00224 if (tmpCtl->id == name[i]) { -00225 if ((i+1) == namelen) { -00226 return(tmpCtl); -00227 } -00228 lCtl = tmpCtl->children; -00229 break; -00230 } -00231 } +00205 int sysctl_add(int *name,int namelen,char *str_name,void *buf,int buf_size) { +00206 struct sysctl_entry *tmpCtl = 0x0; +00207 struct sysctl_entry *newCtl = 0x0; +00208 +00209 /* Check if it exists */ +00210 tmpCtl = sysctl_find(name,namelen); +00211 if (tmpCtl != 0x0) { +00212 kprintf("Node Exists!\n"); +00213 while (1); +00214 } +00215 +00216 /* Get Parent Node */ +00217 tmpCtl = sysctl_find(name,namelen-1); +00218 if (tmpCtl == 0x0) { +00219 kprintf("Parent Node Non Existant\n"); +00220 return(-1); +00221 } +00222 if (tmpCtl->children == 0x0) { +00223 tmpCtl->children = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00224 tmpCtl->children->children = 0x0; +00225 tmpCtl->children->prev = 0x0; +00226 tmpCtl->children->next = 0x0; +00227 tmpCtl->children->id = name[namelen-1]; +00228 sprintf(tmpCtl->children->name,str_name); +00229 tmpCtl->children->value = (void *)kmalloc(buf_size); +00230 memcpy(tmpCtl->children->value,buf,buf_size); +00231 tmpCtl->children->val_len = buf_size; 00232 } -00233 return(0x0); -00234 } -00235 -00236 int sysctl_add(int *name,int namelen,char *str_name,void *buf,int buf_size) { -00237 struct sysctl_entry *tmpCtl = 0x0; -00238 struct sysctl_entry *newCtl = 0x0; -00239 -00240 /* Check if it exists */ -00241 tmpCtl = sysctl_find(name,namelen); -00242 if (tmpCtl != 0x0) { -00243 kprintf("Node Exists!\n"); -00244 while (1); +00233 else { +00234 newCtl = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); +00235 newCtl->prev = 0x0; +00236 newCtl->next = tmpCtl->children; +00237 newCtl->children = 0x0; +00238 newCtl->id = name[namelen-1]; +00239 sprintf(newCtl->name,str_name); +00240 newCtl->value = (void *)kmalloc(buf_size); +00241 memcpy(newCtl->value,buf,buf_size); +00242 newCtl->val_len = buf_size; +00243 tmpCtl->children->prev = newCtl; +00244 tmpCtl->children = newCtl; 00245 } 00246 -00247 /* Get Parent Node */ -00248 tmpCtl = sysctl_find(name,namelen-1); -00249 if (tmpCtl == 0x0) { -00250 kprintf("Parent Node Non Existant\n"); -00251 return(-1); -00252 } -00253 if (tmpCtl->children == 0x0) { -00254 tmpCtl->children = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00255 tmpCtl->children->children = 0x0; -00256 tmpCtl->children->prev = 0x0; -00257 tmpCtl->children->next = 0x0; -00258 tmpCtl->children->id = name[namelen-1]; -00259 sprintf(tmpCtl->children->name,str_name); -00260 tmpCtl->children->value = (void *)kmalloc(buf_size); -00261 memcpy(tmpCtl->children->value,buf,buf_size); -00262 tmpCtl->children->val_len = buf_size; -00263 } -00264 else { -00265 newCtl = (struct sysctl_entry *)kmalloc(sizeof(struct sysctl_entry)); -00266 newCtl->prev = 0x0; -00267 newCtl->next = tmpCtl->children; -00268 newCtl->children = 0x0; -00269 newCtl->id = name[namelen-1]; -00270 sprintf(newCtl->name,str_name); -00271 newCtl->value = (void *)kmalloc(buf_size); -00272 memcpy(newCtl->value,buf,buf_size); -00273 newCtl->val_len = buf_size; -00274 tmpCtl->children->prev = newCtl; -00275 tmpCtl->children = newCtl; -00276 } -00277 -00278 return(0x0); -00279 } -00280 -00281 -00282 /*** -00283 END -00284 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00247 return(0x0); +00248 } +00249 +00250 +00251 /*** +00252 END +00253 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sysctl_8c.html b/doc/html/kern__sysctl_8c.html index 54089bc..59c789c 100644 --- a/doc/html/kern__sysctl_8c.html +++ b/doc/html/kern__sysctl_8c.html @@ -32,12 +32,12 @@ src » sys » kernel

    kern_sysctl.c File Reference

    -#include <sys/kern_sysctl.h>
    #include <ubixos/types.h>
    +#include <sys/sysproto.h>
    +#include <sys/thread.h>
    +#include <sys/kern_sysctl.h>
    #include <ubixos/endtask.h>
    #include <ubixos/kpanic.h>
    -#include <ubixos/spinlock.h>
    -#include <sys/thread.h>
    #include <lib/kprintf.h>
    #include <lib/kmalloc.h>
    #include <assert.h>
    @@ -51,20 +51,15 @@ static void def_ctls () -int kern_sysctl (struct thread *td, int *name, u_int namelen, void *old, size_t *oldlenp, int inkernel, void *new, size_t newlen, size_t *retval, int flags) - int sysctl_add (int *name, int namelen, char *str_name, void *buf, int buf_size) static struct sysctl_entrysysctl_find (int *, int) int sysctl_init () - sysctl initialization routine

    Variables

    static struct sysctl_entryctls = 0x0 -bool sysctl_enabled = FALSE -

    Function Documentation

    @@ -95,9 +90,9 @@

    -Definition at line 161 of file kern_sysctl.c. +Definition at line 153 of file kern_sysctl.c.

    -References CTL_MAXNAME, EINVAL, kern_sysctl(), Master, memcpy(), sysctl_args::name, name, sysctl_args::namelen, sysctl_args::new, sysctl_args::newlen, sysctl_args::old, sysctl_args::oldlenp, spinLock(), and spinUnlock(). +References _current, ctls, endTask(), taskStruct::id, K_PANIC, kprintf(), memcpy(), sysctl_args::name, sysctl_args::namelen, sysctl_args::newlen, sysctl_args::old, sysctl_args::oldlenp, sysctl_find(), thread::td_retval, sysctl_entry::val_len, and sysctl_entry::value.

    @@ -116,96 +111,13 @@

    -This is a cheat for now it set ups some default CTL information -

    -Definition at line 49 of file kern_sysctl.c. -

    -References CTL_MAXNAME, name, and sysctl_add(). -

    -Referenced by sysctl_init(). -

    -

    - -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    int kern_sysctl (struct thread td,
    int *  name,
    u_int  namelen,
    void *  old,
    size_t oldlenp,
    int  inkernel,
    void *  new,
    size_t  newlen,
    size_t retval,
    int  flags 
    )
    -
    -

    - +Definition at line 46 of file kern_sysctl.c.

    -Definition at line 187 of file kern_sysctl.c. +References CTL_MAXNAME, name, and sysctl_add().

    -References _current, endTask(), taskStruct::id, kprintf(), memcpy(), sysctl_find(), thread::td_retval, sysctl_entry::val_len, and sysctl_entry::value. -

    -Referenced by __sysctl(). +Referenced by sysctl_init().

    @@ -254,11 +166,11 @@

    -Definition at line 236 of file kern_sysctl.c. +Definition at line 205 of file kern_sysctl.c.

    -References sysctl_entry::children, sysctl_entry::id, kmalloc(), kprintf(), memcpy(), sysctl_entry::name, sysctl_entry::next, sysctl_entry::prev, sprintf(), sysctl_find(), sysctl_entry::val_len, and sysctl_entry::value. +References sysctl_entry::children, sysctl_entry::id, kmalloc(), kprintf(), memcpy(), sysctl_entry::name, sysctl_entry::next, sysctl_entry::prev, sprintf(), sysctl_find(), sysctl_entry::val_len, and sysctl_entry::value.

    -Referenced by def_ctls(). +Referenced by def_ctls().

    @@ -289,11 +201,11 @@

    -Definition at line 215 of file kern_sysctl.c. +Definition at line 184 of file kern_sysctl.c.

    -References sysctl_entry::children, ctls, sysctl_entry::id, and sysctl_entry::next. +References sysctl_entry::children, ctls, sysctl_entry::id, and sysctl_entry::next.

    -Referenced by kern_sysctl(), and sysctl_add(). +Referenced by __sysctl(), and sysctl_add().

    @@ -312,15 +224,11 @@


    Variable Documentation

    @@ -340,29 +248,10 @@

    Definition at line 41 of file kern_sysctl.c.

    -Referenced by sysctl_find(), and sysctl_init(). +Referenced by __sysctl(), sysctl_find(), and sysctl_init().

    - -

    -
    - - - - -
    bool sysctl_enabled = FALSE
    -
    -
    - -

    - -

    -Definition at line 44 of file kern_sysctl.c. -

    -Referenced by sysctl_init(), and vmmFindFreePage(). -

    -

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sysctl_8h-source.html b/doc/html/kern__sysctl_8h-source.html index f0663b5..4e71c11 100644 --- a/doc/html/kern__sysctl_8h-source.html +++ b/doc/html/kern__sysctl_8h-source.html @@ -62,45 +62,52 @@ 00030 #ifndef _KERNSYSCTL_H 00031 #define _KERNSYSCTL_H 00032 -00033 #include <sys/thread.h> -00034 #include <sys/sysproto.h> +00033 #include <sys/sysproto.h> +00034 #include <sys/thread.h> 00035 00036 #define CTL_MAXNAME 24 /* largest number of components supported */ 00037 00038 /* 00039 * Top-level identifiers 00040 */ -00041 #define CTL_UNSPEC 0 /* unused */ -00042 #define CTL_KERN 1 /* "high kernel": proc, limits */ -00043 #define CTL_VM 2 /* virtual memory */ -00044 #define CTL_VFS 3 /* filesystem, mount type is next */ -00045 #define CTL_NET 4 /* network, see socket.h */ -00046 #define CTL_DEBUG 5 /* debugging parameters */ -00047 #define CTL_HW 6 /* generic cpu/io */ -00048 #define CTL_MACHDEP 7 /* machine dependent */ -00049 #define CTL_USER 8 /* user-level */ -00050 #define CTL_P1003_1B 9 /* POSIX 1003.1B */ -00051 #define CTL_UBIX 10 /* ubixos */ +00041 #define CTL_UNSPEC 0 /* unused */ +00042 #define CTL_KERN 1 /* "high kernel": proc, limits */ +00043 #define CTL_VM 2 /* virtual memory */ +00044 #define CTL_VFS 3 /* filesystem, mount type is next */ +00045 #define CTL_NET 4 /* network, see socket.h */ +00046 #define CTL_DEBUG 5 /* debugging parameters */ +00047 #define CTL_HW 6 /* generic cpu/io */ +00048 #define CTL_MACHDEP 7 /* machine dependent */ +00049 #define CTL_USER 8 /* user-level */ +00050 #define CTL_P1003_1B 9 /* POSIX 1003.1B */ +00051 #define CTL_UBIX 10 /* ubixos */ 00052 -00053 #define EINVAL -1 /* */ +00053 #define CTL_KERN_OPENFILES 1 /* kernel openfiles */ 00054 -00055 struct sysctl_entry { -00056 struct sysctl_entry *prev; -00057 struct sysctl_entry *next; -00058 struct sysctl_entry *children; -00059 char name[32]; -00060 int id; -00061 void *value; -00062 int val_len; -00063 }; -00064 -00065 #endif -00066 -00067 /*** -00068 END -00069 ***/ +00055 #define EINVAL -1 /* */ +00056 +00057 struct sysctl_entry { +00058 struct sysctl_entry *prev; +00059 struct sysctl_entry *next; +00060 struct sysctl_entry *children; +00061 char name[32]; +00062 int id; +00063 void *value; +00064 int val_len; +00065 }; +00066 +00067 int kern_sysctl(int *name,u_int namelen,void *old,size_t *oldlenp,void *new,size_t newlen,size_t *retval,int flags); +00068 int sysctl_add(int *,int,char *,void *,int); +00069 int sysctl_init(); 00070 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +00071 extern bool sysctl_enabled; +00072 #endif +00073 +00074 /*** +00075 END +00076 ***/ +00077 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kern__sysctl_8h.html b/doc/html/kern__sysctl_8h.html index 208514e..cbbeaea 100644 --- a/doc/html/kern__sysctl_8h.html +++ b/doc/html/kern__sysctl_8h.html @@ -32,8 +32,8 @@ src » sys » include » sys

    kern_sysctl.h File Reference

    -#include <sys/thread.h>
    #include <sys/sysproto.h>
    +#include <sys/thread.h>

    Go to the source code of this file. @@ -48,6 +48,8 @@ + + @@ -68,6 +70,16 @@ + + + + + + + + + +
    #define CTL_KERN   1
    #define CTL_KERN_OPENFILES   1
    #define CTL_MACHDEP   7
    #define CTL_MAXNAME   24
    #define EINVAL   -1

    Functions

    int kern_sysctl (int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen, size_t *retval, int flags)
    int sysctl_add (int *, int, char *, void *, int)
    int sysctl_init ()

    Variables

    bool sysctl_enabled


    Define Documentation

    @@ -86,7 +98,7 @@

    Definition at line 46 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -105,7 +117,7 @@

    Definition at line 47 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -124,7 +136,24 @@

    Definition at line 42 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init(). + +

    + +

    +
    + + + + +
    #define CTL_KERN_OPENFILES   1
    +
    +
    + +

    + +

    +Definition at line 53 of file kern_sysctl.h.

    @@ -143,7 +172,7 @@

    Definition at line 48 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -162,7 +191,7 @@

    Definition at line 36 of file kern_sysctl.h.

    -Referenced by __sysctl(), and def_ctls(). +Referenced by def_ctls().

    @@ -181,7 +210,7 @@

    Definition at line 45 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -200,7 +229,7 @@

    Definition at line 50 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -219,7 +248,7 @@

    Definition at line 51 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -238,7 +267,7 @@

    Definition at line 41 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -257,7 +286,7 @@

    Definition at line 49 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -276,7 +305,7 @@

    Definition at line 44 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -295,7 +324,7 @@

    Definition at line 43 of file kern_sysctl.h.

    -Referenced by sysctl_init(). +Referenced by sysctl_init().

    @@ -312,12 +341,168 @@

    -Definition at line 53 of file kern_sysctl.h. -

    -Referenced by __sysctl(). +Definition at line 55 of file kern_sysctl.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    int kern_sysctl (int *  name,
    u_int  namelen,
    void *  old,
    size_t oldlenp,
    void *  new,
    size_t  newlen,
    size_t retval,
    int  flags 
    )
    +
    +
    + +

    + +

    +

    + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    int sysctl_add (int * ,
    int ,
    char * ,
    void * ,
    int  
    )
    +
    + +

    + +

    +


    Variable Documentation

    + +
    +
    + + + + +
    bool sysctl_enabled
    +
    +
    + +

    + +

    +

    +


    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmalloc_8c-source.html b/doc/html/kmalloc_8c-source.html index b60743c..31f9da4 100644 --- a/doc/html/kmalloc_8c-source.html +++ b/doc/html/kmalloc_8c-source.html @@ -115,470 +115,474 @@ 00083 spinUnlock(&emptyDescSpinLock); 00084 return(tmpDesc); 00085 } -00086 -00087 if ((emptyKernDesc = (struct memDescriptor *)vmm_getFreeMallocPage(4)) == 0x0) -00088 kpanic("Error: vmmGetFreeKernelPage returned NULL\n"); -00089 -00090 /* zero out the memory so we know there is no garbage */ -00091 memset(emptyKernDesc,0x0,0x4000); -00092 -00093 emptyKernDesc[0].next = &emptyKernDesc[1]; -00094 -00095 for (i = 0x1;i < ((0x4000/sizeof(struct memDescriptor)));i++) { -00096 if (i+1 < (0x4000/sizeof(struct memDescriptor))) -00097 emptyKernDesc[i].next = &emptyKernDesc[i+1]; -00098 else -00099 emptyKernDesc[i].next = 0x0; -00100 emptyKernDesc[i].prev = &emptyKernDesc[i-1]; -00101 } -00102 -00103 tmpDesc = &emptyKernDesc[0]; -00104 -00105 emptyKernDesc = tmpDesc->next; -00106 emptyKernDesc->prev = 0x0; -00107 tmpDesc->next = 0x0; -00108 tmpDesc->prev = 0x0; -00109 spinUnlock(&emptyDescSpinLock); -00110 return(tmpDesc); -00111 } -00112 -00113 /************************************************************************ -00114 -00115 Function: void insertFreeDesc(struct memDescriptor *freeDesc) -00116 Description: This Function Inserts A Free Descriptor On The List Which Is -00117 Kept In Size Order -00118 -00119 Notes: -00120 -00121 02/17/03 - This Was Inspired By TCA's Great Wisdom - -00122 "[20:20:59] <TCA> You should just insert it in order" -00123 -00124 ************************************************************************/ -00125 static int insertFreeDesc(struct memDescriptor *freeDesc) { -00126 struct memDescriptor *tmpDesc = 0x0; -00127 assert(freeDesc); -00128 -00129 if (freeDesc->limit <= 0x0) -00130 kpanic("Inserting Descriptor with no limit\n"); -00131 -00132 if (freeKernDesc != 0x0) { -00133 -00134 #if 0 -00135 freeDesc->next = freeKernDesc; -00136 freeDesc->prev = 0x0; -00137 freeKernDesc->prev = freeDesc; -00138 freeKernDesc = freeDesc; -00139 #endif -00140 -00141 for (tmpDesc = freeKernDesc;tmpDesc != 0x0;tmpDesc = tmpDesc->next) { -00142 if (freeDesc->limit <= tmpDesc->limit) { -00143 -00144 freeDesc->prev = tmpDesc->prev; -00145 if (tmpDesc->prev != 0x0) -00146 tmpDesc->prev->next = freeDesc; -00147 -00148 -00149 tmpDesc->prev = freeDesc; -00150 freeDesc->next = tmpDesc; -00151 -00152 if (tmpDesc == freeKernDesc) -00153 freeKernDesc = freeDesc; -00154 return(0x0); -00155 } -00156 if (tmpDesc->next == 0x0) { -00157 tmpDesc->next = freeDesc; -00158 freeDesc->prev = tmpDesc; -00159 freeDesc->next = 0x0; -00160 return(0x0); -00161 } -00162 } -00163 kpanic("didnt Insert\n"); -00164 return(0x0); -00165 } -00166 else { -00167 freeDesc->prev = 0x0; -00168 freeDesc->next = 0x0; -00169 freeKernDesc = freeDesc; -00170 return(0x0); -00171 } -00172 -00173 return(0x1); -00174 } -00175 -00176 /************************************************************************ -00177 -00178 Function: void mergeMemBlocks() -00179 Description: This Function Will Merge Free Blocks And Free Pages -00180 -00181 Notes: -00182 -00183 03/05/03 - We Have A Problem It Seems The First Block Is Limit 0x0 -00184 -00185 ************************************************************************/ -00186 static void mergeMemBlocks() { -00187 struct memDescriptor *tmpDesc1 = 0x0; -00188 struct memDescriptor *tmpDesc2 = 0x0; -00189 uInt32 baseAddr = 0x0; -00190 -00191 return; -00192 -00193 //Loop The Free Descriptors See If We Can Merge Them -00194 mergeStart: -00195 for (tmpDesc1=freeKernDesc;tmpDesc1 != 0x0;tmpDesc1=tmpDesc1->next) { -00196 /* -00197 Compare The Base Addr With The Other Descriptors If You Find The One -00198 That You Are Looking For Lets Merge Them -00199 */ -00200 if (tmpDesc1->limit != 0x0) { -00201 baseAddr = (uInt32)tmpDesc1->baseAddr + (uInt32)tmpDesc1->limit; -00202 for (tmpDesc2=freeKernDesc;tmpDesc2;tmpDesc2=tmpDesc2->next) { -00203 if ((uInt32)tmpDesc2->baseAddr == baseAddr) { -00204 tmpDesc1->limit += tmpDesc2->limit; -00205 tmpDesc2->baseAddr = 0x0; -00206 tmpDesc2->limit = 0x0; -00207 if (tmpDesc2->prev) { -00208 tmpDesc2->prev->next = tmpDesc2->next; -00209 } -00210 if (tmpDesc2->next) { -00211 tmpDesc2->next->prev = tmpDesc2->prev; -00212 } -00213 tmpDesc2->prev = 0x0; -00214 tmpDesc2->next = emptyKernDesc; -00215 emptyKernDesc->prev = tmpDesc2; -00216 emptyKernDesc = tmpDesc2; -00217 if (tmpDesc1->prev) { -00218 tmpDesc1->prev->next = tmpDesc1->next; -00219 } -00220 if (tmpDesc1->next) { -00221 tmpDesc1->next->prev = tmpDesc1->prev; -00222 } -00223 tmpDesc1->prev = 0x0; -00224 tmpDesc1->next = 0x0; -00225 kprintf("mergememBlocks: [%i]\n",tmpDesc1->limit); -00226 insertFreeDesc(tmpDesc1); -00227 //tmpDesc1 = freeKernDesc; -00228 goto mergeStart; -00229 break; -00230 } -00231 } -00232 } -00233 } -00234 return; -00235 } +00086 if ((emptyKernDesc = (struct memDescriptor *)vmm_getFreeMallocPage(4)) == 0x0) +00087 kpanic("Error: vmmGetFreeKernelPage returned NULL\n"); +00088 +00089 /* zero out the memory so we know there is no garbage */ +00090 memset(emptyKernDesc,0x0,0x4000); +00091 +00092 emptyKernDesc[0].next = &emptyKernDesc[1]; +00093 +00094 for (i = 0x1;i < ((0x4000/sizeof(struct memDescriptor)));i++) { +00095 if (i+1 < (0x4000/sizeof(struct memDescriptor))) +00096 emptyKernDesc[i].next = &emptyKernDesc[i+1]; +00097 else +00098 emptyKernDesc[i].next = 0x0; +00099 emptyKernDesc[i].prev = &emptyKernDesc[i-1]; +00100 } +00101 +00102 tmpDesc = &emptyKernDesc[0]; +00103 +00104 emptyKernDesc = tmpDesc->next; +00105 emptyKernDesc->prev = 0x0; +00106 tmpDesc->next = 0x0; +00107 tmpDesc->prev = 0x0; +00108 spinUnlock(&emptyDescSpinLock); +00109 return(tmpDesc); +00110 } +00111 +00112 /************************************************************************ +00113 +00114 Function: void insertFreeDesc(struct memDescriptor *freeDesc) +00115 Description: This Function Inserts A Free Descriptor On The List Which Is +00116 Kept In Size Order +00117 +00118 Notes: +00119 +00120 02/17/03 - This Was Inspired By TCA's Great Wisdom - +00121 "[20:20:59] <TCA> You should just insert it in order" +00122 +00123 ************************************************************************/ +00124 static int insertFreeDesc(struct memDescriptor *freeDesc) { +00125 struct memDescriptor *tmpDesc = 0x0; +00126 assert(freeDesc); +00127 +00128 if (freeDesc->limit <= 0x0) +00129 kpanic("Inserting Descriptor with no limit\n"); +00130 +00131 if (freeKernDesc != 0x0) { +00132 +00133 #if 0 +00134 freeDesc->next = freeKernDesc; +00135 freeDesc->prev = 0x0; +00136 freeKernDesc->prev = freeDesc; +00137 freeKernDesc = freeDesc; +00138 #endif +00139 +00140 for (tmpDesc = freeKernDesc;tmpDesc != 0x0;tmpDesc = tmpDesc->next) { +00141 if (freeDesc->limit <= tmpDesc->limit) { +00142 +00143 freeDesc->prev = tmpDesc->prev; +00144 if (tmpDesc->prev != 0x0) +00145 tmpDesc->prev->next = freeDesc; +00146 +00147 +00148 tmpDesc->prev = freeDesc; +00149 freeDesc->next = tmpDesc; +00150 +00151 if (tmpDesc == freeKernDesc) +00152 freeKernDesc = freeDesc; +00153 return(0x0); +00154 } +00155 if (tmpDesc->next == 0x0) { +00156 tmpDesc->next = freeDesc; +00157 freeDesc->prev = tmpDesc; +00158 freeDesc->next = 0x0; +00159 return(0x0); +00160 } +00161 } +00162 kpanic("didnt Insert\n"); +00163 return(0x0); +00164 } +00165 else { +00166 freeDesc->prev = 0x0; +00167 freeDesc->next = 0x0; +00168 freeKernDesc = freeDesc; +00169 return(0x0); +00170 } +00171 +00172 return(0x1); +00173 } +00174 +00175 /************************************************************************ +00176 +00177 Function: void mergeMemBlocks() +00178 Description: This Function Will Merge Free Blocks And Free Pages +00179 +00180 Notes: +00181 +00182 03/05/03 - We Have A Problem It Seems The First Block Is Limit 0x0 +00183 +00184 ************************************************************************/ +00185 static void mergeMemBlocks() { +00186 struct memDescriptor *tmpDesc1 = 0x0; +00187 struct memDescriptor *tmpDesc2 = 0x0; +00188 uInt32 baseAddr = 0x0; +00189 +00190 return; +00191 +00192 //Loop The Free Descriptors See If We Can Merge Them +00193 mergeStart: +00194 for (tmpDesc1=freeKernDesc;tmpDesc1 != 0x0;tmpDesc1=tmpDesc1->next) { +00195 /* +00196 Compare The Base Addr With The Other Descriptors If You Find The One +00197 That You Are Looking For Lets Merge Them +00198 */ +00199 if (tmpDesc1->limit != 0x0) { +00200 baseAddr = (uInt32)tmpDesc1->baseAddr + (uInt32)tmpDesc1->limit; +00201 for (tmpDesc2=freeKernDesc;tmpDesc2;tmpDesc2=tmpDesc2->next) { +00202 if ((uInt32)tmpDesc2->baseAddr == baseAddr) { +00203 tmpDesc1->limit += tmpDesc2->limit; +00204 tmpDesc2->baseAddr = 0x0; +00205 tmpDesc2->limit = 0x0; +00206 if (tmpDesc2->prev) { +00207 tmpDesc2->prev->next = tmpDesc2->next; +00208 } +00209 if (tmpDesc2->next) { +00210 tmpDesc2->next->prev = tmpDesc2->prev; +00211 } +00212 tmpDesc2->prev = 0x0; +00213 tmpDesc2->next = emptyKernDesc; +00214 emptyKernDesc->prev = tmpDesc2; +00215 emptyKernDesc = tmpDesc2; +00216 if (tmpDesc1->prev) { +00217 tmpDesc1->prev->next = tmpDesc1->next; +00218 } +00219 if (tmpDesc1->next) { +00220 tmpDesc1->next->prev = tmpDesc1->prev; +00221 } +00222 tmpDesc1->prev = 0x0; +00223 tmpDesc1->next = 0x0; +00224 kprintf("mergememBlocks: [%i]\n",tmpDesc1->limit); +00225 insertFreeDesc(tmpDesc1); +00226 //tmpDesc1 = freeKernDesc; +00227 goto mergeStart; +00228 break; +00229 } +00230 } +00231 } +00232 } +00233 return; +00234 } +00235 00236 -00237 -00238 /************************************************************************ -00239 -00240 Function: void *kmalloc(uInt32 len) -00241 Description: Allocate Kernel Memory -00242 -00243 Notes: -00244 -00245 02/17/03 - Do I Still Need To Pass In The Pid? -00246 -00247 ************************************************************************/ -00248 void *kmalloc(uInt32 len) { -00249 struct memDescriptor *tmpDesc1 = 0x0; -00250 struct memDescriptor *tmpDesc2 = 0x0; -00251 char *buf = 0x0; -00252 int i = 0x0; -00253 uInt16 pages = 0x0; +00237 /************************************************************************ +00238 +00239 Function: void *kmalloc(uInt32 len) +00240 Description: Allocate Kernel Memory +00241 +00242 Notes: +00243 +00244 02/17/03 - Do I Still Need To Pass In The Pid? +00245 +00246 ************************************************************************/ +00247 void *kmalloc(uInt32 len) { +00248 struct memDescriptor *tmpDesc1 = 0x0; +00249 struct memDescriptor *tmpDesc2 = 0x0; +00250 char *buf = 0x0; +00251 int i = 0x0; +00252 uInt16 pages = 0x0; +00253 00254 00255 spinLock(&mallocSpinLock); 00256 00257 len = MALLOC_ALIGN(len); -00258 -00259 if (len == 0x0) { -00260 spinUnlock(&mallocSpinLock); -00261 kprintf("kmalloc: len = 0!\n"); -00262 return(0x0); -00263 } -00264 for (tmpDesc1 = freeKernDesc;tmpDesc1 != 0x0;tmpDesc1=tmpDesc1->next) { -00265 assert(tmpDesc1); -00266 if (tmpDesc1->limit >= len) { -00267 if (tmpDesc1->prev != 0x0) -00268 tmpDesc1->prev->next = tmpDesc1->next; -00269 if (tmpDesc1->next != 0x0) -00270 tmpDesc1->next->prev = tmpDesc1->prev; -00271 -00272 if (tmpDesc1 == freeKernDesc) -00273 freeKernDesc = tmpDesc1->next; -00274 -00275 tmpDesc1->prev = 0x0; -00276 tmpDesc1->next = usedKernDesc; -00277 if (usedKernDesc != 0x0) -00278 usedKernDesc->prev = tmpDesc1; -00279 usedKernDesc = tmpDesc1; -00280 if (tmpDesc1->limit > len) { -00281 tmpDesc2 = getEmptyDesc(); -00282 assert(tmpDesc2); -00283 tmpDesc2->limit = tmpDesc1->limit - len; -00284 tmpDesc1->limit = len; -00285 tmpDesc2->baseAddr = tmpDesc1->baseAddr + len; -00286 tmpDesc2->next = 0x0; -00287 tmpDesc2->prev = 0x0; -00288 insertFreeDesc(tmpDesc2); -00289 } -00290 buf = (char *)tmpDesc1->baseAddr; -00291 for (i=0;i<tmpDesc1->limit;i++) { -00292 (char)buf[i] = (char)0x0; -00293 } -00294 spinUnlock(&mallocSpinLock); -00295 //kprintf("m1[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); -00296 assert(tmpDesc1->baseAddr); -00297 return(tmpDesc1->baseAddr); -00298 } -00299 } -00300 tmpDesc1 = getEmptyDesc(); -00301 //kprintf("no empty desc\n"); -00302 if (tmpDesc1 != 0x0) { -00303 pages = ((len + 4095)/4096); -00304 tmpDesc1->baseAddr = (struct memDescriptor *)vmm_getFreeMallocPage(pages); -00305 tmpDesc1->limit = len; -00306 tmpDesc1->next = usedKernDesc; -00307 tmpDesc1->prev = 0x0; -00308 if (usedKernDesc != 0x0) -00309 usedKernDesc->prev = tmpDesc1; -00310 usedKernDesc = tmpDesc1; -00311 -00312 if (((pages * 4096)-len) > 0x0) { -00313 tmpDesc2 = getEmptyDesc(); -00314 assert(tmpDesc2); -00315 tmpDesc2->baseAddr = tmpDesc1->baseAddr + tmpDesc1->limit; -00316 tmpDesc2->limit = ((pages * 4096)-len); -00317 tmpDesc2->prev = 0x0; -00318 tmpDesc2->next = 0x0; -00319 if (tmpDesc2->limit <= 0x0) -00320 kprintf("kmalloc-2 tmpDesc2: [%i]\n",tmpDesc2->limit); -00321 insertFreeDesc(tmpDesc2); -00322 } -00323 -00324 buf = (char *)tmpDesc1->baseAddr; -00325 for (i=0;i<tmpDesc1->limit;i++) { -00326 (char)buf[i] = (char)0x0; -00327 } -00328 spinUnlock(&mallocSpinLock); -00329 //kprintf("baseAddr2[0x%X:0x%X]",tmpDesc1,tmpDesc1->baseAddr); -00330 //kprintf("m2[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); -00331 assert(tmpDesc1->baseAddr); -00332 return(tmpDesc1->baseAddr); -00333 } -00334 //Return Null If Unable To Malloc -00335 spinUnlock(&mallocSpinLock); -00336 //kprintf("baseAddr3[0x0]"); -00337 return(0x0); -00338 } -00339 -00340 /************************************************************************ -00341 -00342 Function: void kfree(void *baseAddr) -00343 Description: This Will Find The Descriptor And Free It -00344 -00345 Notes: -00346 -00347 02/17/03 - I need To Make It Join Descriptors -00348 -00349 ************************************************************************/ -00350 void kfree(void *baseAddr) { -00351 struct memDescriptor *tmpDesc = 0x0; -00352 -00353 if (baseAddr == 0x0) return; -00354 assert(baseAddr); -00355 -00356 assert(usedKernDesc); -00357 spinLock(&mallocSpinLock); -00358 -00359 for (tmpDesc = usedKernDesc;tmpDesc != 0x0;tmpDesc = tmpDesc->next) { -00360 -00361 if (tmpDesc->baseAddr == baseAddr) { -00362 memset(tmpDesc->baseAddr,0xBE,tmpDesc->limit); -00363 -00364 if (usedKernDesc == tmpDesc) -00365 usedKernDesc = tmpDesc->next; -00366 -00367 if (tmpDesc->prev != 0x0) -00368 tmpDesc->prev->next = tmpDesc->next; -00369 -00370 if (tmpDesc->next != 0x0) -00371 tmpDesc->next->prev = tmpDesc->prev; -00372 +00258 +00259 +00260 if (len == 0x0) { +00261 spinUnlock(&mallocSpinLock); +00262 kprintf("kmalloc: len = 0!\n"); +00263 return(0x0); +00264 } +00265 for (tmpDesc1 = freeKernDesc;tmpDesc1 != 0x0;tmpDesc1=tmpDesc1->next) { +00266 assert(tmpDesc1); +00267 if (tmpDesc1->limit >= len) { +00268 if (tmpDesc1->prev != 0x0) +00269 tmpDesc1->prev->next = tmpDesc1->next; +00270 if (tmpDesc1->next != 0x0) +00271 tmpDesc1->next->prev = tmpDesc1->prev; +00272 +00273 if (tmpDesc1 == freeKernDesc) +00274 freeKernDesc = tmpDesc1->next; +00275 +00276 tmpDesc1->prev = 0x0; +00277 tmpDesc1->next = usedKernDesc; +00278 if (usedKernDesc != 0x0) +00279 usedKernDesc->prev = tmpDesc1; +00280 usedKernDesc = tmpDesc1; +00281 if (tmpDesc1->limit > len) { +00282 tmpDesc2 = getEmptyDesc(); +00283 assert(tmpDesc2); +00284 tmpDesc2->limit = tmpDesc1->limit - len; +00285 tmpDesc1->limit = len; +00286 tmpDesc2->baseAddr = tmpDesc1->baseAddr + len; +00287 tmpDesc2->next = 0x0; +00288 tmpDesc2->prev = 0x0; +00289 insertFreeDesc(tmpDesc2); +00290 } +00291 buf = (char *)tmpDesc1->baseAddr; +00292 for (i=0;i<tmpDesc1->limit;i++) { +00293 (char)buf[i] = (char)0x0; +00294 } +00295 spinUnlock(&mallocSpinLock); +00296 //kprintf("m1[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); +00297 assert(tmpDesc1->baseAddr); +00298 return(tmpDesc1->baseAddr); +00299 } +00300 } +00301 tmpDesc1 = getEmptyDesc(); +00302 //kprintf("no empty desc\n"); +00303 if (tmpDesc1 != 0x0) { +00304 pages = ((len + 4095)/4096); +00305 tmpDesc1->baseAddr = (struct memDescriptor *)vmm_getFreeMallocPage(pages); +00306 tmpDesc1->limit = len; +00307 tmpDesc1->next = usedKernDesc; +00308 tmpDesc1->prev = 0x0; +00309 if (usedKernDesc != 0x0) +00310 usedKernDesc->prev = tmpDesc1; +00311 usedKernDesc = tmpDesc1; +00312 +00313 if (((pages * 4096)-len) > 0x0) { +00314 tmpDesc2 = getEmptyDesc(); +00315 assert(tmpDesc2); +00316 tmpDesc2->baseAddr = tmpDesc1->baseAddr + tmpDesc1->limit; +00317 tmpDesc2->limit = ((pages * 4096)-len); +00318 tmpDesc2->prev = 0x0; +00319 tmpDesc2->next = 0x0; +00320 if (tmpDesc2->limit <= 0x0) +00321 kprintf("kmalloc-2 tmpDesc2: [%i]\n",tmpDesc2->limit); +00322 insertFreeDesc(tmpDesc2); +00323 } +00324 +00325 buf = (char *)tmpDesc1->baseAddr; +00326 for (i=0;i<tmpDesc1->limit;i++) { +00327 (char)buf[i] = (char)0x0; +00328 } +00329 spinUnlock(&mallocSpinLock); +00330 //kprintf("baseAddr2[0x%X:0x%X]",tmpDesc1,tmpDesc1->baseAddr); +00331 //kprintf("m2[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); +00332 assert(tmpDesc1->baseAddr); +00333 return(tmpDesc1->baseAddr); +00334 } +00335 //Return Null If Unable To Malloc +00336 spinUnlock(&mallocSpinLock); +00337 //kprintf("baseAddr3[0x0]"); +00338 return(0x0); +00339 } +00340 +00341 /************************************************************************ +00342 +00343 Function: void kfree(void *baseAddr) +00344 Description: This Will Find The Descriptor And Free It +00345 +00346 Notes: +00347 +00348 02/17/03 - I need To Make It Join Descriptors +00349 +00350 ************************************************************************/ +00351 void kfree(void *baseAddr) { +00352 struct memDescriptor *tmpDesc = 0x0; +00353 +00354 if (baseAddr == 0x0) return; +00355 assert(baseAddr); +00356 +00357 assert(usedKernDesc); +00358 spinLock(&mallocSpinLock); +00359 +00360 for (tmpDesc = usedKernDesc;tmpDesc != 0x0;tmpDesc = tmpDesc->next) { +00361 +00362 if (tmpDesc->baseAddr == baseAddr) { +00363 memset(tmpDesc->baseAddr,0xBE,tmpDesc->limit); +00364 +00365 if (usedKernDesc == tmpDesc) +00366 usedKernDesc = tmpDesc->next; +00367 +00368 if (tmpDesc->prev != 0x0) +00369 tmpDesc->prev->next = tmpDesc->next; +00370 +00371 if (tmpDesc->next != 0x0) +00372 tmpDesc->next->prev = tmpDesc->prev; 00373 -00374 tmpDesc->next = 0x0; -00375 tmpDesc->prev = 0x0; -00376 -00377 if (tmpDesc->limit <= 0x0) -00378 kprintf("kfree tmpDesc1: [%i]\n",tmpDesc->limit); -00379 //kprintf("{0x%X}",tmpDesc->baseAddr); -00380 insertFreeDesc(tmpDesc); -00381 -00382 // mergeMemBlocks(); -00383 spinUnlock(&mallocSpinLock); -00384 return; -00385 } -00386 } -00387 spinUnlock(&mallocSpinLock); -00388 kprintf("Kernel: Error Freeing Descriptor! [0x%X]\n",(uInt32)baseAddr); -00389 return; -00390 } -00391 -00392 /*** -00393 $Log$ -00394 Revision 1.2 2006/10/06 15:48:01 reddawg -00395 Starting to make ubixos work with UFS2 -00396 -00397 Revision 1.1.1.1 2006/06/01 12:46:16 reddawg -00398 ubix2 -00399 -00400 Revision 1.4 2006/06/01 12:42:09 reddawg -00401 Getting back to the basics -00402 -00403 Revision 1.3 2006/06/01 03:58:33 reddawg -00404 wondering about this stuff here -00405 -00406 Revision 1.2 2005/10/12 00:13:37 reddawg -00407 Removed -00408 -00409 Revision 1.1.1.1 2005/09/26 17:24:11 reddawg -00410 no message -00411 -00412 Revision 1.35 2005/08/04 18:32:59 fsdfs -00413 -00414 added error reporting +00374 +00375 tmpDesc->next = 0x0; +00376 tmpDesc->prev = 0x0; +00377 +00378 if (tmpDesc->limit <= 0x0) +00379 kprintf("kfree tmpDesc1: [%i]\n",tmpDesc->limit); +00380 //kprintf("{0x%X}",tmpDesc->baseAddr); +00381 insertFreeDesc(tmpDesc); +00382 +00383 // mergeMemBlocks(); +00384 spinUnlock(&mallocSpinLock); +00385 return; +00386 } +00387 } +00388 spinUnlock(&mallocSpinLock); +00389 kprintf("Kernel: Error Freeing Descriptor! [0x%X]\n",(uInt32)baseAddr); +00390 return; +00391 } +00392 +00393 /*** +00394 $Log$ +00395 Revision 1.3 2006/12/05 14:10:21 reddawg +00396 Workign Distro +00397 +00398 Revision 1.2 2006/10/06 15:48:01 reddawg +00399 Starting to make ubixos work with UFS2 +00400 +00401 Revision 1.1.1.1 2006/06/01 12:46:16 reddawg +00402 ubix2 +00403 +00404 Revision 1.4 2006/06/01 12:42:09 reddawg +00405 Getting back to the basics +00406 +00407 Revision 1.3 2006/06/01 03:58:33 reddawg +00408 wondering about this stuff here +00409 +00410 Revision 1.2 2005/10/12 00:13:37 reddawg +00411 Removed +00412 +00413 Revision 1.1.1.1 2005/09/26 17:24:11 reddawg +00414 no message 00415 -00416 Revision 1.34 2005/08/04 18:23:41 reddawg -00417 BUG: Assert has issues that must be looked into -00418 -00419 Revision 1.33 2005/08/04 17:11:11 fsdfs -00420 -00421 ---------------------------------------- +00416 Revision 1.35 2005/08/04 18:32:59 fsdfs +00417 +00418 added error reporting +00419 +00420 Revision 1.34 2005/08/04 18:23:41 reddawg +00421 BUG: Assert has issues that must be looked into 00422 -00423 ------------------- +00423 Revision 1.33 2005/08/04 17:11:11 fsdfs 00424 -00425 Revision 1.32 2004/09/28 21:50:04 reddawg -00426 kmalloc: now when we kfree memory is filled with 0xBE so it is easy to debug if we continue to use free'd memory -00427 -00428 Revision 1.31 2004/09/19 16:17:25 reddawg -00429 fixed memory leak we now lose no memory.... -00430 -00431 Revision 1.30 2004/09/14 21:51:24 reddawg -00432 Debug info -00433 -00434 Revision 1.29 2004/09/11 23:39:31 reddawg -00435 ok time for bed -00436 -00437 Revision 1.28 2004/09/11 23:21:26 reddawg -00438 run now do you get fegfaults with BB? -00439 -00440 Revision 1.27 2004/09/11 22:49:28 reddawg -00441 pat look at lines 276-285 does the math seem right? -00442 -00443 Revision 1.26 2004/09/11 22:33:13 reddawg -00444 minor changes -00445 -00446 Revision 1.25 2004/09/11 12:11:11 reddawg -00447 Cleaning up the VFS more changes to follow... -00448 -00449 Revision 1.24 2004/09/08 23:19:58 reddawg -00450 hmm -00451 -00452 Revision 1.23 2004/09/06 15:13:25 reddawg -00453 Last commit before FreeBSD 6.0 -00454 -00455 Revision 1.22 2004/08/26 22:51:18 reddawg -00456 TCA touched me :( i think he likes men.... -00457 +00425 ---------------------------------------- +00426 +00427 ------------------- +00428 +00429 Revision 1.32 2004/09/28 21:50:04 reddawg +00430 kmalloc: now when we kfree memory is filled with 0xBE so it is easy to debug if we continue to use free'd memory +00431 +00432 Revision 1.31 2004/09/19 16:17:25 reddawg +00433 fixed memory leak we now lose no memory.... +00434 +00435 Revision 1.30 2004/09/14 21:51:24 reddawg +00436 Debug info +00437 +00438 Revision 1.29 2004/09/11 23:39:31 reddawg +00439 ok time for bed +00440 +00441 Revision 1.28 2004/09/11 23:21:26 reddawg +00442 run now do you get fegfaults with BB? +00443 +00444 Revision 1.27 2004/09/11 22:49:28 reddawg +00445 pat look at lines 276-285 does the math seem right? +00446 +00447 Revision 1.26 2004/09/11 22:33:13 reddawg +00448 minor changes +00449 +00450 Revision 1.25 2004/09/11 12:11:11 reddawg +00451 Cleaning up the VFS more changes to follow... +00452 +00453 Revision 1.24 2004/09/08 23:19:58 reddawg +00454 hmm +00455 +00456 Revision 1.23 2004/09/06 15:13:25 reddawg +00457 Last commit before FreeBSD 6.0 00458 -00459 sched.h: kTask_t added parentPid -00460 endtask.c: fixed term back to parentPid -00461 exec.c: cleaned warnings -00462 fork.c: fixed term to childPid -00463 sched.c: clean up for dead tasks -00464 systemtask.c: clean up dead tasks -00465 kmalloc.c: cleaned up warnings -00466 udp.c: cleaned up warnings -00467 bot.c: cleaned up warnings -00468 shell.c: cleaned up warnings -00469 tcpdump.c: took a dump -00470 hd.c: cleaned up warnings -00471 ubixfs.c: stopped prning debug info -00472 -00473 Revision 1.21 2004/07/28 15:05:43 reddawg -00474 Major: -00475 Pages now have strict security enforcement. -00476 Many null dereferences have been resolved. -00477 When apps loaded permissions set for pages rw and ro -00478 -00479 Revision 1.20 2004/07/28 00:17:05 reddawg -00480 Major: -00481 Disconnected page 0x0 from the system... Unfortunately this broke many things -00482 all of which have been fixed. This was good because nothing deferences NULL -00483 any more. -00484 -00485 Things affected: -00486 malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file -00487 -00488 Revision 1.19 2004/07/26 19:15:49 reddawg -00489 test code, fixes and the like -00490 -00491 Revision 1.18 2004/07/26 16:52:45 reddawg -00492 here we go -00493 -00494 Revision 1.17 2004/07/24 23:04:44 reddawg -00495 Changes... mark let me know if you fault at pid 185 when you type stress -00496 -00497 Revision 1.16 2004/07/21 10:02:09 reddawg -00498 devfs: renamed functions -00499 device system: renamed functions -00500 fdc: fixed a few potential bugs and cleaned up some unused variables -00501 strol: fixed definition -00502 endtask: made it print out freepage debug info -00503 kmalloc: fixed a huge memory leak we had some unhandled descriptor insertion so some descriptors were lost -00504 ld: fixed a pointer conversion -00505 file: cleaned up a few unused variables -00506 sched: broke task deletion -00507 kprintf: fixed ogPrintf definition -00508 -00509 Revision 1.15 2004/07/20 23:20:50 reddawg -00510 kmalloc: forgot to remove an assert -00511 -00512 Revision 1.14 2004/07/20 23:18:11 reddawg -00513 Made malloc a little more robust but we have a serious memory leak somewhere -00514 -00515 Revision 1.13 2004/07/20 22:29:55 reddawg -00516 assert: remade assert -00517 -00518 Revision 1.12 2004/07/20 18:58:24 reddawg -00519 Few fixes -00520 -00521 Revision 1.11 2004/07/18 05:24:15 reddawg -00522 Fixens -00523 -00524 Revision 1.10 2004/07/17 18:00:47 reddawg -00525 kmalloc: added assert() -00526 -00527 Revision 1.9 2004/07/17 15:54:52 reddawg -00528 kmalloc: added assert() -00529 bioscall: fixed some potential problem by not making 16bit code -00530 paging: added assert() -00531 -00532 Revision 1.8 2004/06/17 14:50:32 reddawg -00533 kmalloc: converted some variables to static -00534 -00535 Revision 1.7 2004/06/17 02:54:54 flameshadow -00536 chg: fixed cast -00537 -00538 Revision 1.6 2004/05/26 11:56:51 reddawg -00539 kmalloc: fixed memrgeMemBlocks hopefully it will prevent future segfault issues -00540 by not having any more overlapping blocks +00459 Revision 1.22 2004/08/26 22:51:18 reddawg +00460 TCA touched me :( i think he likes men.... +00461 +00462 +00463 sched.h: kTask_t added parentPid +00464 endtask.c: fixed term back to parentPid +00465 exec.c: cleaned warnings +00466 fork.c: fixed term to childPid +00467 sched.c: clean up for dead tasks +00468 systemtask.c: clean up dead tasks +00469 kmalloc.c: cleaned up warnings +00470 udp.c: cleaned up warnings +00471 bot.c: cleaned up warnings +00472 shell.c: cleaned up warnings +00473 tcpdump.c: took a dump +00474 hd.c: cleaned up warnings +00475 ubixfs.c: stopped prning debug info +00476 +00477 Revision 1.21 2004/07/28 15:05:43 reddawg +00478 Major: +00479 Pages now have strict security enforcement. +00480 Many null dereferences have been resolved. +00481 When apps loaded permissions set for pages rw and ro +00482 +00483 Revision 1.20 2004/07/28 00:17:05 reddawg +00484 Major: +00485 Disconnected page 0x0 from the system... Unfortunately this broke many things +00486 all of which have been fixed. This was good because nothing deferences NULL +00487 any more. +00488 +00489 Things affected: +00490 malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file +00491 +00492 Revision 1.19 2004/07/26 19:15:49 reddawg +00493 test code, fixes and the like +00494 +00495 Revision 1.18 2004/07/26 16:52:45 reddawg +00496 here we go +00497 +00498 Revision 1.17 2004/07/24 23:04:44 reddawg +00499 Changes... mark let me know if you fault at pid 185 when you type stress +00500 +00501 Revision 1.16 2004/07/21 10:02:09 reddawg +00502 devfs: renamed functions +00503 device system: renamed functions +00504 fdc: fixed a few potential bugs and cleaned up some unused variables +00505 strol: fixed definition +00506 endtask: made it print out freepage debug info +00507 kmalloc: fixed a huge memory leak we had some unhandled descriptor insertion so some descriptors were lost +00508 ld: fixed a pointer conversion +00509 file: cleaned up a few unused variables +00510 sched: broke task deletion +00511 kprintf: fixed ogPrintf definition +00512 +00513 Revision 1.15 2004/07/20 23:20:50 reddawg +00514 kmalloc: forgot to remove an assert +00515 +00516 Revision 1.14 2004/07/20 23:18:11 reddawg +00517 Made malloc a little more robust but we have a serious memory leak somewhere +00518 +00519 Revision 1.13 2004/07/20 22:29:55 reddawg +00520 assert: remade assert +00521 +00522 Revision 1.12 2004/07/20 18:58:24 reddawg +00523 Few fixes +00524 +00525 Revision 1.11 2004/07/18 05:24:15 reddawg +00526 Fixens +00527 +00528 Revision 1.10 2004/07/17 18:00:47 reddawg +00529 kmalloc: added assert() +00530 +00531 Revision 1.9 2004/07/17 15:54:52 reddawg +00532 kmalloc: added assert() +00533 bioscall: fixed some potential problem by not making 16bit code +00534 paging: added assert() +00535 +00536 Revision 1.8 2004/06/17 14:50:32 reddawg +00537 kmalloc: converted some variables to static +00538 +00539 Revision 1.7 2004/06/17 02:54:54 flameshadow +00540 chg: fixed cast 00541 -00542 Revision 1.5 2004/05/25 14:01:14 reddawg -00543 Implimented Better Spinlocking No More Issues With KMALLOC which actually -00544 was causing bizzare problems +00542 Revision 1.6 2004/05/26 11:56:51 reddawg +00543 kmalloc: fixed memrgeMemBlocks hopefully it will prevent future segfault issues +00544 by not having any more overlapping blocks 00545 -00546 END -00547 ***/ -00548 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00546 Revision 1.5 2004/05/25 14:01:14 reddawg +00547 Implimented Better Spinlocking No More Issues With KMALLOC which actually +00548 was causing bizzare problems +00549 +00550 END +00551 ***/ +00552 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmalloc_8c.html b/doc/html/kmalloc_8c.html index 88b5227..2875093 100644 --- a/doc/html/kmalloc_8c.html +++ b/doc/html/kmalloc_8c.html @@ -90,7 +90,7 @@

    References emptyDescSpinLock, emptyKernDesc, kpanic(), memset(), memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), vmm_getFreeMallocPage(), and x1.

    -Referenced by kmalloc(). +Referenced by kmalloc().

    @@ -112,11 +112,11 @@

    -Definition at line 125 of file kmalloc.c. +Definition at line 124 of file kmalloc.c.

    References assert, freeKernDesc, kpanic(), memDescriptor::limit, memDescriptor::next, and memDescriptor::prev.

    -Referenced by kfree(), and kmalloc(). +Referenced by kfree(), and kmalloc().

    @@ -138,11 +138,11 @@

    -Definition at line 350 of file kmalloc.c. +Definition at line 351 of file kmalloc.c.

    -References assert, memDescriptor::baseAddr, insertFreeDesc(), kprintf(), memDescriptor::limit, mallocSpinLock, memset(), memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc. +References assert, memDescriptor::baseAddr, insertFreeDesc(), kprintf(), memDescriptor::limit, mallocSpinLock, memset(), memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc.

    -Referenced by close(), device_remove(), execFile(), fclose(), fopen(), kmod_load(), ldEnable(), mpi_destroyMbox(), mpi_fetchMessage(), ne2kFreeBuffer(), operator delete(), operator delete[](), sys_mbox_free(), sys_sem_free_(), sys_write(), sysExec(), systemTask(), ubixfs_cacheDelete(), ubixFSmkDir(), ubthread_cond_destroy(), ubthread_mutex_destroy(), vfs_mount(), and writeUbixFS(). +Referenced by close(), device_remove(), execFile(), fclose(), fopen(), kmod_load(), ldEnable(), mpi_destroyMbox(), mpi_fetchMessage(), ne2kFreeBuffer(), operator delete(), operator delete[](), sys_mbox_free(), sys_sem_free_(), sys_write(), sysExec(), systemTask(), ubixfs_cacheDelete(), ubixFSmkDir(), ubthread_cond_destroy(), ubthread_mutex_destroy(), vfs_mount(), and writeUbixFS().

    @@ -164,11 +164,11 @@

    -Definition at line 248 of file kmalloc.c. +Definition at line 247 of file kmalloc.c.

    -References assert, memDescriptor::baseAddr, freeKernDesc, getEmptyDesc(), insertFreeDesc(), kprintf(), memDescriptor::limit, MALLOC_ALIGN, mallocSpinLock, memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc. +References assert, memDescriptor::baseAddr, freeKernDesc, getEmptyDesc(), insertFreeDesc(), kprintf(), memDescriptor::limit, MALLOC_ALIGN, mallocSpinLock, memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc.

    -Referenced by addDirEntry(), biosCall(), devfs_initialize(), devfs_makeNode(), device_add(), execFile(), falloc(), fdc_init(), fopen(), initHardDisk(), initLNC(), kmain(), kmod_add(), kmod_load(), ldEnable(), lncAttach(), low_level_init(), mpi_createMbox(), mpi_postMessage(), mpi_spam(), ne2k_init(), ne2kAllocBuffer(), openFileUbixFS(), operator new(), operator new[](), sched_init(), schedNewTask(), shell_thread(), sys_mbox_new(), sys_sem_new_(), sys_thread_new(), sys_write(), sysctl_add(), sysctl_init(), sysExec(), tty_init(), ubixfs_cacheNew(), ubixfs_initialize(), ubixFSLoadDir(), ubixFSmkDir(), ubixFSUnlink(), ubthread_cond_init(), ubthread_create(), ubthread_mutex_init(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vitals_init(), and writeUbixFS(). +Referenced by addDirEntry(), biosCall(), devfs_initialize(), devfs_makeNode(), device_add(), execFile(), falloc(), fdc_init(), fopen(), initHardDisk(), initLNC(), kmain(), kmod_add(), kmod_load(), ldEnable(), lncAttach(), low_level_init(), mpi_createMbox(), mpi_postMessage(), mpi_spam(), ne2k_init(), ne2kAllocBuffer(), openFileUbixFS(), operator new(), operator new[](), sched_init(), schedNewTask(), shell_thread(), sys_mbox_new(), sys_sem_new_(), sys_thread_new(), sys_write(), sysctl_add(), sysctl_init(), sysExec(), tty_init(), ubixfs_cacheNew(), ubixfs_initialize(), ubixFSLoadDir(), ubixFSmkDir(), ubixFSUnlink(), ubthread_cond_init(), ubthread_create(), ubthread_mutex_init(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vitals_init(), and writeUbixFS().

    @@ -189,7 +189,7 @@

    -Definition at line 186 of file kmalloc.c. +Definition at line 185 of file kmalloc.c.

    References memDescriptor::baseAddr, emptyKernDesc, freeKernDesc, memDescriptor::limit, memDescriptor::next, and memDescriptor::prev. @@ -230,7 +230,7 @@

    Definition at line 49 of file kmalloc.c.

    -Referenced by getEmptyDesc(), and mergeMemBlocks(). +Referenced by getEmptyDesc(), and mergeMemBlocks().

    @@ -249,7 +249,7 @@

    Definition at line 48 of file kmalloc.c.

    -Referenced by insertFreeDesc(), kmalloc(), and mergeMemBlocks(). +Referenced by insertFreeDesc(), kmalloc(), and mergeMemBlocks().

    @@ -268,7 +268,7 @@

    Definition at line 54 of file kmalloc.c.

    -Referenced by kfree(), and kmalloc(). +Referenced by kfree(), and kmalloc().

    @@ -287,10 +287,10 @@

    Definition at line 47 of file kmalloc.c.

    -Referenced by kfree(), and kmalloc(). +Referenced by kfree(), and kmalloc().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmalloc_8h-source.html b/doc/html/kmalloc_8h-source.html index 11a4664..7586ae6 100644 --- a/doc/html/kmalloc_8h-source.html +++ b/doc/html/kmalloc_8h-source.html @@ -127,7 +127,7 @@ 00095 00096 END 00097 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmalloc_8h.html b/doc/html/kmalloc_8h.html index e0d59ad..4de22bc 100644 --- a/doc/html/kmalloc_8h.html +++ b/doc/html/kmalloc_8h.html @@ -75,7 +75,7 @@

    Definition at line 41 of file kmalloc.h.

    -Referenced by kmalloc(). +Referenced by kmalloc().

    @@ -111,7 +111,7 @@

    Definition at line 39 of file kmalloc.h.

    -Referenced by vmm_getFreeMallocPage(), vmm_pagingInit(), and vmmFindFreePage(). +Referenced by vmm_getFreeMallocPage(), vmm_pagingInit(), and vmmFindFreePage().


    Function Documentation

    @@ -134,11 +134,11 @@

    -Definition at line 350 of file kmalloc.c. +Definition at line 351 of file kmalloc.c.

    -References assert, memDescriptor::baseAddr, insertFreeDesc(), kprintf(), memDescriptor::limit, mallocSpinLock, memset(), memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc. +References assert, memDescriptor::baseAddr, insertFreeDesc(), kprintf(), memDescriptor::limit, mallocSpinLock, memset(), memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc.

    -Referenced by close(), device_remove(), execFile(), fclose(), fopen(), kmod_load(), ldEnable(), mpi_destroyMbox(), mpi_fetchMessage(), ne2kFreeBuffer(), operator delete(), operator delete[](), sys_mbox_free(), sys_sem_free_(), sys_write(), sysExec(), systemTask(), ubixfs_cacheDelete(), ubixFSmkDir(), ubthread_cond_destroy(), ubthread_mutex_destroy(), vfs_mount(), and writeUbixFS(). +Referenced by close(), device_remove(), execFile(), fclose(), fopen(), kmod_load(), ldEnable(), mpi_destroyMbox(), mpi_fetchMessage(), ne2kFreeBuffer(), operator delete(), operator delete[](), sys_mbox_free(), sys_sem_free_(), sys_write(), sysExec(), systemTask(), ubixfs_cacheDelete(), ubixFSmkDir(), ubthread_cond_destroy(), ubthread_mutex_destroy(), vfs_mount(), and writeUbixFS().

    @@ -160,14 +160,14 @@

    -Definition at line 248 of file kmalloc.c. +Definition at line 247 of file kmalloc.c.

    -References assert, memDescriptor::baseAddr, freeKernDesc, getEmptyDesc(), insertFreeDesc(), kprintf(), memDescriptor::limit, MALLOC_ALIGN, mallocSpinLock, memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc. +References assert, memDescriptor::baseAddr, freeKernDesc, getEmptyDesc(), insertFreeDesc(), kprintf(), memDescriptor::limit, MALLOC_ALIGN, mallocSpinLock, memDescriptor::next, memDescriptor::prev, spinLock(), spinUnlock(), and usedKernDesc.

    -Referenced by addDirEntry(), biosCall(), devfs_initialize(), devfs_makeNode(), device_add(), execFile(), falloc(), fdc_init(), fopen(), initHardDisk(), initLNC(), kmain(), kmod_add(), kmod_load(), ldEnable(), lncAttach(), low_level_init(), mpi_createMbox(), mpi_postMessage(), mpi_spam(), ne2k_init(), ne2kAllocBuffer(), openFileUbixFS(), operator new(), operator new[](), sched_init(), schedNewTask(), shell_thread(), sys_mbox_new(), sys_sem_new_(), sys_thread_new(), sys_write(), sysctl_add(), sysctl_init(), sysExec(), tty_init(), ubixfs_cacheNew(), ubixfs_initialize(), ubixFSLoadDir(), ubixFSmkDir(), ubixFSUnlink(), ubthread_cond_init(), ubthread_create(), ubthread_mutex_init(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vitals_init(), and writeUbixFS(). +Referenced by addDirEntry(), biosCall(), devfs_initialize(), devfs_makeNode(), device_add(), execFile(), falloc(), fdc_init(), fopen(), initHardDisk(), initLNC(), kmain(), kmod_add(), kmod_load(), ldEnable(), lncAttach(), low_level_init(), mpi_createMbox(), mpi_postMessage(), mpi_spam(), ne2k_init(), ne2kAllocBuffer(), openFileUbixFS(), operator new(), operator new[](), sched_init(), schedNewTask(), shell_thread(), sys_mbox_new(), sys_sem_new_(), sys_thread_new(), sys_write(), sysctl_add(), sysctl_init(), sysExec(), tty_init(), ubixfs_cacheNew(), ubixfs_initialize(), ubixFSLoadDir(), ubixFSmkDir(), ubixFSUnlink(), ubthread_cond_init(), ubthread_create(), ubthread_mutex_init(), ufs_openFile(), vfs_mount(), vfsRegisterFS(), vitals_init(), and writeUbixFS().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmod_8c-source.html b/doc/html/kmod_8c-source.html index 49a8e8a..8d1c1e3 100644 --- a/doc/html/kmod_8c-source.html +++ b/doc/html/kmod_8c-source.html @@ -245,7 +245,7 @@ 00213 /*** 00214 END 00215 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmod_8c.html b/doc/html/kmod_8c.html index 578a67b..c0e77bc 100644 --- a/doc/html/kmod_8c.html +++ b/doc/html/kmod_8c.html @@ -89,7 +89,7 @@

    Definition at line 46 of file kmod.c.

    -References CreateItem(), _item_t::data, InitializeList(), InsertItemAtFront(), kmalloc(), kmod_load(), kprintf(), List, and NULL. +References CreateItem(), _item_t::data, InitializeList(), InsertItemAtFront(), kmalloc(), kmod_load(), kprintf(), List, and NULL.

    @@ -113,7 +113,7 @@

    Definition at line 75 of file kmod.c.

    -References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000. +References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000.

    Referenced by kmod_add(). @@ -138,7 +138,7 @@ Referenced by kmod_add().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmod_8h-source.html b/doc/html/kmod_8h-source.html index 36349be..1919768 100644 --- a/doc/html/kmod_8h-source.html +++ b/doc/html/kmod_8h-source.html @@ -110,7 +110,7 @@ 00078 00079 END 00080 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kmod_8h.html b/doc/html/kmod_8h.html index cba8034..b02f321 100644 --- a/doc/html/kmod_8h.html +++ b/doc/html/kmod_8h.html @@ -119,7 +119,7 @@

    Definition at line 46 of file kmod.c.

    -References CreateItem(), _item_t::data, InitializeList(), InsertItemAtFront(), kmalloc(), kmod_load(), kprintf(), List, and NULL. +References CreateItem(), _item_t::data, InitializeList(), InsertItemAtFront(), kmalloc(), kmod_load(), kprintf(), List, and NULL.

    @@ -143,12 +143,12 @@

    Definition at line 75 of file kmod.c.

    -References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000. +References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000.

    Referenced by kmod_add().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kpanic_8c-source.html b/doc/html/kpanic_8c-source.html index 99c1ee1..e954925 100644 --- a/doc/html/kpanic_8c-source.html +++ b/doc/html/kpanic_8c-source.html @@ -100,7 +100,7 @@ 00068 END 00069 ***/ 00070 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kpanic_8c.html b/doc/html/kpanic_8c.html index ec693d4..6c9dd98 100644 --- a/doc/html/kpanic_8c.html +++ b/doc/html/kpanic_8c.html @@ -79,10 +79,10 @@

    References irqDisable(), kprintf(), NULL, tty_foreground, vaEnd, vaStart, and vsprintf().

    -Referenced by __assert(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), cpuidDetect(), cpuInfo(), devfs_initialize(), dp_recv(), execFile(), execThread(), getEmptyDesc(), insertFreeDesc(), kmain(), kmod_load(), PCtoNIC(), readUbixFS(), sched_init(), schedNewTask(), sys_thread_new(), sysExec(), systemTask(), tcpdump_init(), tty_change(), tty_init(), ubixfs_init(), ubixfs_thread(), ufs_init(), vitals_init(), vmm_pageFault(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by __assert(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), cpuidDetect(), cpuInfo(), devfs_initialize(), dp_recv(), execFile(), execThread(), getEmptyDesc(), insertFreeDesc(), kmain(), kmod_load(), PCtoNIC(), readUbixFS(), sched_init(), schedNewTask(), sys_thread_new(), sysExec(), systemTask(), tcpdump_init(), tty_change(), tty_init(), ubixfs_init(), ubixfs_thread(), ufs_init(), vitals_init(), vmm_pageFault(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kpanic_8h-source.html b/doc/html/kpanic_8h-source.html index 35b9c67..b9d3a92 100644 --- a/doc/html/kpanic_8h-source.html +++ b/doc/html/kpanic_8h-source.html @@ -72,7 +72,7 @@ 00040 END 00041 ***/ 00042 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kpanic_8h.html b/doc/html/kpanic_8h.html index 98d20a7..28799cd 100644 --- a/doc/html/kpanic_8h.html +++ b/doc/html/kpanic_8h.html @@ -65,7 +65,7 @@

    Definition at line 33 of file kpanic.h.

    -Referenced by execFile(), ldEnable(), obreak(), sysctl_init(), sysExec(), vmm_getFreeMallocPage(), vmm_init(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeKernelPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). +Referenced by __sysctl(), execFile(), ldEnable(), obreak(), sysExec(), vmm_getFreeMallocPage(), vmm_init(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeKernelPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask().


    Function Documentation

    @@ -101,10 +101,10 @@

    References irqDisable(), kprintf(), NULL, tty_foreground, vaEnd, vaStart, and vsprintf().

    -Referenced by __assert(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), cpuidDetect(), cpuInfo(), devfs_initialize(), dp_recv(), execFile(), execThread(), getEmptyDesc(), insertFreeDesc(), kmain(), kmod_load(), PCtoNIC(), readUbixFS(), sched_init(), schedNewTask(), sys_thread_new(), sysExec(), systemTask(), tcpdump_init(), tty_change(), tty_init(), ubixfs_init(), ubixfs_thread(), ufs_init(), vitals_init(), vmm_pageFault(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by __assert(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), cpuidDetect(), cpuInfo(), devfs_initialize(), dp_recv(), execFile(), execThread(), getEmptyDesc(), insertFreeDesc(), kmain(), kmod_load(), PCtoNIC(), readUbixFS(), sched_init(), schedNewTask(), sys_thread_new(), sysExec(), systemTask(), tcpdump_init(), tty_change(), tty_init(), ubixfs_init(), ubixfs_thread(), ufs_init(), vitals_init(), vmm_pageFault(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprint_8h-source.html b/doc/html/kprint_8h-source.html index 052dad7..6f4fef4 100644 --- a/doc/html/kprint_8h-source.html +++ b/doc/html/kprint_8h-source.html @@ -87,7 +87,7 @@ 00055 00056 END 00057 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprint_8h.html b/doc/html/kprint_8h.html index fd2971b..0f8514a 100644 --- a/doc/html/kprint_8h.html +++ b/doc/html/kprint_8h.html @@ -75,7 +75,7 @@

    Definition at line 38 of file kprintf.c.

    -Referenced by __assert(), _int13(), addDirEntry(), apicMagic(), arp_arp_input(), atkbd_init(), bot_thread(), devfs_makeNode(), devfs_open(), devfs_read(), device_add(), dp_pkt2user(), dp_recv(), execFile(), fcntl(), fdcRw(), ffs_read(), fopen(), fsread(), fstat(), hdInit(), hdRead(), hdWrite(), i8259_init(), idt_init(), inet_aton(), initHardDisk(), initLNC(), intNull(), invalidCall(), InvalidSystemCall(), ioctl(), kern_sysctl(), keyboardHandler(), kfree(), kmain(), kmalloc(), kmod_add(), kmod_load(), kpanic(), ldEnable(), lncAttach(), lncInt(), lookup(), low_level_init(), mmap(), mouseHandler(), mouseInit(), munmap(), ne2k_init(), ne2kHandler(), netconn_connect(), netMainThread(), openFileUbixFS(), pci_init(), pciProbe(), pipe(), pit_init(), readlink(), sched_init(), seek(), shell_main(), shell_thread(), sys_thread_new(), sys_write(), sysAuth(), syscall(), sysctl_add(), sysExec(), sysFopen(), sysMkDir(), sysPasswd(), systemTask(), time_init(), tty_init(), ubixfs_initialize(), ubixfs_thread(), ubixFSUnlink(), ubthread_mutex_lock(), udpecho_thread(), ufs_writeFile(), vfs_init(), vfs_mount(), vfsRegisterFS(), vitals_init(), vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMemMapInit(). +Referenced by __assert(), __sysctl(), _int13(), addDirEntry(), apicMagic(), arp_arp_input(), atkbd_init(), bot_thread(), devfs_makeNode(), devfs_open(), devfs_read(), device_add(), dp_pkt2user(), dp_recv(), execFile(), fcntl(), fdcRw(), ffs_read(), fopen(), fsread(), hdInit(), hdRead(), hdWrite(), i8259_init(), idt_init(), inet_aton(), initHardDisk(), initLNC(), intNull(), invalidCall(), InvalidSystemCall(), keyboardHandler(), kfree(), kmain(), kmalloc(), kmod_add(), kmod_load(), kpanic(), ldEnable(), lncAttach(), lncInt(), lookup(), low_level_init(), mmap(), mouseHandler(), mouseInit(), munmap(), ne2k_init(), ne2kHandler(), netconn_connect(), netMainThread(), openFileUbixFS(), pci_init(), pciProbe(), pit_init(), readlink(), sched_init(), seek(), shell_main(), shell_thread(), sys_thread_new(), sys_write(), sysAuth(), syscall(), sysctl_add(), sysctl_init(), sysExec(), sysFopen(), sysMkDir(), sysPasswd(), systemTask(), time_init(), tty_init(), ubixfs_initialize(), ubixfs_thread(), ubixFSUnlink(), ubthread_mutex_lock(), udpecho_thread(), ufs_writeFile(), vfs_init(), vfs_mount(), vfsRegisterFS(), vitals_init(), vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMemMapInit().


    Variable Documentation

    @@ -98,7 +98,7 @@ Referenced by kprintf(), and systemTask().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprintf_8c-source.html b/doc/html/kprintf_8c-source.html index 14df65a..4aa1f1a 100644 --- a/doc/html/kprintf_8c-source.html +++ b/doc/html/kprintf_8c-source.html @@ -93,7 +93,7 @@ 00061 END 00062 ***/ 00063 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprintf_8c.html b/doc/html/kprintf_8c.html index 0ef8d83..fefb0d7 100644 --- a/doc/html/kprintf_8c.html +++ b/doc/html/kprintf_8c.html @@ -159,7 +159,7 @@ Definition at line 35 of file kprintf.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprintf_8h-source.html b/doc/html/kprintf_8h-source.html index e999aa7..06a6199 100644 --- a/doc/html/kprintf_8h-source.html +++ b/doc/html/kprintf_8h-source.html @@ -89,7 +89,7 @@ 00057 00058 END 00059 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/kprintf_8h.html b/doc/html/kprintf_8h.html index 5f3d78e..778b875 100644 --- a/doc/html/kprintf_8h.html +++ b/doc/html/kprintf_8h.html @@ -103,7 +103,7 @@

    Definition at line 42 of file ogprintf.cc.

    -References systemVitals. +References vitalsStruct::font, vitalsStruct::screen, and systemVitals.


    Variable Documentation

    @@ -141,7 +141,7 @@ Definition at line 35 of file kprintf.c.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ld_8c-source.html b/doc/html/ld_8c-source.html index 4847e73..099e928 100644 --- a/doc/html/ld_8c-source.html +++ b/doc/html/ld_8c-source.html @@ -211,7 +211,7 @@ 00179 END 00180 ***/ 00181 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ld_8c.html b/doc/html/ld_8c.html index 547a023..a168d68 100644 --- a/doc/html/ld_8c.html +++ b/doc/html/ld_8c.html @@ -72,12 +72,12 @@

    Definition at line 42 of file ld.c.

    -References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, K_PANIC, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000. +References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, K_PANIC, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000.

    Referenced by sysExec().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ld_8h-source.html b/doc/html/ld_8h-source.html index f28cf58..0686648 100644 --- a/doc/html/ld_8h-source.html +++ b/doc/html/ld_8h-source.html @@ -104,7 +104,7 @@ 00072 00073 END 00074 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ld_8h.html b/doc/html/ld_8h.html index 26aa0da..7a13dbd 100644 --- a/doc/html/ld_8h.html +++ b/doc/html/ld_8h.html @@ -83,12 +83,12 @@

    Definition at line 42 of file ld.c.

    -References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, K_PANIC, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000. +References _current, assert, elfHeader::eEntry, ELF32_R_SYM, ELF32_R_TYPE, elfGetRelType(), elfHeader::ePhnum, elfHeader::ePhoff, elfHeader::eShnum, elfHeader::eShoff, elfHeader::eShstrndx, fclose(), fopen(), fread(), fseek(), taskStruct::id, K_PANIC, kfree(), kmalloc(), 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, strcmp(), vmm_remapPage(), vmmFindFreePage(), and x1000.

    Referenced by sysExec().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lib_2string_8h-source.html b/doc/html/lib_2string_8h-source.html index b8473f2..b94cef9 100644 --- a/doc/html/lib_2string_8h-source.html +++ b/doc/html/lib_2string_8h-source.html @@ -116,7 +116,7 @@ 00084 00085 END 00086 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lib_2string_8h.html b/doc/html/lib_2string_8h.html index 103475b..647dabb 100644 --- a/doc/html/lib_2string_8h.html +++ b/doc/html/lib_2string_8h.html @@ -98,7 +98,7 @@

    -Definition at line 98 of file string.c. +Definition at line 102 of file string.c.

    @@ -135,9 +135,7 @@

    -Definition at line 70 of file string.c. -

    -Referenced by __sysctl(), addDirEntry(), apicMagic(), bcopy(), fork_copyProcess(), fsread(), initHardDisk(), kern_sysctl(), lookup(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ramDrive_read(), ramDrive_write(), bTree::saveNode(), bTree::splitNode(), sys_write(), syscall(), sysctl_add(), tty_change(), and vfsRegisterFS(). +Referenced by __sysctl(), addDirEntry(), apicMagic(), bcopy(), fork_copyProcess(), fsread(), initHardDisk(), lookup(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ramDrive_read(), ramDrive_write(), bTree::saveNode(), bTree::splitNode(), sys_write(), syscall(), sysctl_add(), tty_change(), and vfsRegisterFS().

    @@ -176,7 +174,7 @@

    Definition at line 37 of file memset.c.

    -Referenced by bTree::allocEmptyNode(), bTree::bTree(), bzero(), execFile(), getEmptyDesc(), idt_init(), bTree::Insert(), bTree::insertNode(), kfree(), kmod_load(), ldEnable(), main(), UbixFS::mknod(), bTree::Save(), schedNewTask(), bTree::splitNode(), sysExec(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), vitals_init(), vmm_pagingInit(), and vmmCopyVirtualSpace(). +Referenced by bTree::allocEmptyNode(), bTree::bTree(), bzero(), execFile(), getEmptyDesc(), idt_init(), bTree::Insert(), bTree::insertNode(), kfree(), kmod_load(), ldEnable(), main(), UbixFS::mknod(), bTree::Save(), schedNewTask(), bTree::splitNode(), sysExec(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), vitals_init(), vmm_pagingInit(), and vmmCopyVirtualSpace().

    @@ -215,7 +213,7 @@

    Definition at line 51 of file kprintf.c.

    -Referenced by devfs_makeNode(), fopen(), initHardDisk(), mpi_createMbox(), sysChDir(), sysctl_add(), sysctl_init(), sysGetCwd(), sysMkDir(), ubixFSLoadDir(), ubixFSmkDir(), and vfs_mount(). +Referenced by devfs_makeNode(), fopen(), initHardDisk(), mpi_createMbox(), sysChDir(), sysctl_add(), sysctl_init(), sysGetCwd(), sysMkDir(), ubixFSLoadDir(), ubixFSmkDir(), and vfs_mount().

    @@ -303,9 +301,9 @@

    -Definition at line 87 of file string.c. +Definition at line 91 of file string.c.

    -Referenced by devfs_makeNode(), sendstr(), strstr(), ubixfs_cacheNew(), UbixFS::vfs_mkdir(), and vsprintf(). +Referenced by devfs_makeNode(), sendstr(), strstr(), ubixfs_cacheNew(), UbixFS::vfs_mkdir(), and vsprintf().

    @@ -344,7 +342,7 @@

    Definition at line 58 of file string.c.

    -Referenced by strstr(). +Referenced by strstr().

    @@ -381,7 +379,7 @@

    -Definition at line 123 of file string.c. +Definition at line 127 of file string.c.

    Referenced by bTree::bTree(), bTree::Insert(), bTree::insertNode(), UbixFS::mknod(), bTree::splitNode(), and UbixFS::vfs_mkdir(). @@ -414,9 +412,9 @@

    -Definition at line 136 of file string.c. +Definition at line 140 of file string.c.

    -References NULL, strlen(), and strncmp(). +References NULL, strlen(), and strncmp().

    Referenced by fopen(), sysChDir(), and sysMkDir(). @@ -497,7 +495,7 @@ Referenced by strtok().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lib_8h-source.html b/doc/html/lib_8h-source.html index eeb3c2c..7d6c2f9 100644 --- a/doc/html/lib_8h-source.html +++ b/doc/html/lib_8h-source.html @@ -77,7 +77,7 @@ 00045 #endif /* _STRING_H_ */ 00046 00047 #endif /* __ARCH_LIB_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lib_8h.html b/doc/html/lib_8h.html index a701057..65d6ed9 100644 --- a/doc/html/lib_8h.html +++ b/doc/html/lib_8h.html @@ -81,9 +81,9 @@

    -Definition at line 103 of file net.c. +Definition at line 70 of file bcopy.c.

    -References memcpy(). +References memcpy().

    Referenced by loopif_output(), low_level_input(), and low_level_output(). @@ -140,7 +140,7 @@

    -Definition at line 87 of file string.c. +Definition at line 91 of file string.c.

    @@ -180,7 +180,7 @@ Definition at line 58 of file string.c.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/libcpp_8cc-source.html b/doc/html/libcpp_8cc-source.html index 83ec948..3c8711a 100644 --- a/doc/html/libcpp_8cc-source.html +++ b/doc/html/libcpp_8cc-source.html @@ -130,7 +130,7 @@ 00098 00099 END 00100 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/libcpp_8cc.html b/doc/html/libcpp_8cc.html index ea4e841..8ac6388 100644 --- a/doc/html/libcpp_8cc.html +++ b/doc/html/libcpp_8cc.html @@ -179,7 +179,7 @@

    Definition at line 64 of file libcpp.cc.

    -References kfree(). +References kfree().

    @@ -203,7 +203,7 @@

    Definition at line 51 of file libcpp.cc.

    -References kfree(). +References kfree().

    @@ -227,7 +227,7 @@

    Definition at line 58 of file libcpp.cc.

    -References kmalloc(). +References kmalloc().

    @@ -251,10 +251,10 @@

    Definition at line 46 of file libcpp.cc.

    -References kmalloc(). +References kmalloc().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/libcpp_8h-source.html b/doc/html/libcpp_8h-source.html index 9c1f046..0b44108 100644 --- a/doc/html/libcpp_8h-source.html +++ b/doc/html/libcpp_8h-source.html @@ -88,7 +88,7 @@ 00056 00057 END 00058 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/libcpp_8h.html b/doc/html/libcpp_8h.html index abbff35..f0ab239 100644 --- a/doc/html/libcpp_8h.html +++ b/doc/html/libcpp_8h.html @@ -69,7 +69,7 @@

    Definition at line 64 of file libcpp.cc.

    -References kfree(). +References kfree().

    @@ -93,7 +93,7 @@

    Definition at line 51 of file libcpp.cc.

    -References kfree(). +References kfree().

    @@ -117,7 +117,7 @@

    Definition at line 58 of file libcpp.cc.

    -References kmalloc(). +References kmalloc().

    @@ -141,10 +141,10 @@

    Definition at line 46 of file libcpp.cc.

    -References kmalloc(). +References kmalloc().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/list_8h-source.html b/doc/html/list_8h-source.html index 652f829..2e9cc16 100644 --- a/doc/html/list_8h-source.html +++ b/doc/html/list_8h-source.html @@ -80,7 +80,7 @@ 00048 void list_map(struct list *list, void (* func)(void *arg)); 00049 00050 #endif /* __LWIP_LIST_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/list_8h.html b/doc/html/list_8h.html index de94725..439c312 100644 --- a/doc/html/list_8h.html +++ b/doc/html/list_8h.html @@ -242,7 +242,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lists_8h-source.html b/doc/html/lists_8h-source.html index 3ac2416..c017538 100644 --- a/doc/html/lists_8h-source.html +++ b/doc/html/lists_8h-source.html @@ -81,7 +81,7 @@ 00049 InsertItemListBetweenItems( IN Item_t * Previous, 00050 IN Item_t * Next, 00051 IN List_t * Insert); -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lists_8h.html b/doc/html/lists_8h.html index 1b7fbd6..8c91c45 100644 --- a/doc/html/lists_8h.html +++ b/doc/html/lists_8h.html @@ -452,7 +452,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lnc_8c-source.html b/doc/html/lnc_8c-source.html index 3012dae..acaec58 100644 --- a/doc/html/lnc_8c-source.html +++ b/doc/html/lnc_8c-source.html @@ -343,7 +343,7 @@ 00311 END 00312 ***/ 00313 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lnc_8c.html b/doc/html/lnc_8c.html index 68b42fb..8d7d847 100644 --- a/doc/html/lnc_8c.html +++ b/doc/html/lnc_8c.html @@ -115,7 +115,7 @@

    Definition at line 104 of file lnc.c.

    -References _lncInt(), arpcom::ac_enaddr, lncInfo::arpcom, lncInfo::bdp, CSR0, CSR3, dDpl3, dInt, DMA_FIXED, dPresent, ETHER_ADDR_LEN, nicInfo::ic, nicInfo::ident, IDON, INEA, INIT, inportByte(), kmalloc(), kprintf(), lnc, lncAttach(), nicInfo::memMode, mVec, NE2100, lncInfo::nic, NRDRE, lncInfo::nrdre, NTDRE, lncInfo::ntdre, PCnet_32, PCNET_BDP, PCNET_RAP, PCNET_RDP, probe(), lncInfo::rap, lncInfo::rdp, readCsr(), setVector(), STRT, writeCsr(), and x1000. +References _lncInt(), arpcom::ac_enaddr, lncInfo::arpcom, lncInfo::bdp, CSR0, CSR3, dDpl3, dInt, DMA_FIXED, dPresent, ETHER_ADDR_LEN, nicInfo::ic, nicInfo::ident, IDON, INEA, INIT, inportByte(), kmalloc(), kprintf(), lnc, lncAttach(), nicInfo::memMode, mVec, NE2100, lncInfo::nic, NRDRE, lncInfo::nrdre, NTDRE, lncInfo::ntdre, PCnet_32, PCNET_BDP, PCNET_RAP, PCNET_RDP, probe(), lncInfo::rap, lncInfo::rdp, readCsr(), setVector(), STRT, writeCsr(), and x1000.

    @@ -174,7 +174,7 @@

    Definition at line 246 of file lnc.c.

    -References arpcom::ac_enaddr, lncInfo::arpcom, C_LANCE, DMA_FIXED, nicInfo::ic, icIdent, nicInfo::ident, kmalloc(), kprintf(), LANCE, lnc, MEM_SLEW, nicInfo::memMode, nicInfo::mode, NDESC, lncInfo::nic, nicIdent, NORMAL, lncInfo::nrdre, lncInfo::ntdre, PCnet_32, RECVBUFSIZE, lncInfo::recvRing, SHMEM, and TRANSBUFSIZE. +References arpcom::ac_enaddr, lncInfo::arpcom, C_LANCE, DMA_FIXED, nicInfo::ic, icIdent, nicInfo::ident, kmalloc(), kprintf(), LANCE, lnc, MEM_SLEW, nicInfo::memMode, nicInfo::mode, NDESC, lncInfo::nic, nicIdent, NORMAL, lncInfo::nrdre, lncInfo::ntdre, PCnet_32, RECVBUFSIZE, lncInfo::recvRing, SHMEM, and TRANSBUFSIZE.

    Referenced by initLNC(). @@ -455,7 +455,7 @@ Referenced by lncAttach().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lnc_8h-source.html b/doc/html/lnc_8h-source.html index 88c5b06..d121253 100644 --- a/doc/html/lnc_8h-source.html +++ b/doc/html/lnc_8h-source.html @@ -233,7 +233,7 @@ 00201 00202 END 00203 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lnc_8h.html b/doc/html/lnc_8h.html index b0d31f0..a6c763e 100644 --- a/doc/html/lnc_8h.html +++ b/doc/html/lnc_8h.html @@ -1442,7 +1442,7 @@

    Definition at line 104 of file lnc.c.

    -References _lncInt(), arpcom::ac_enaddr, lncInfo::arpcom, lncInfo::bdp, CSR0, CSR3, dDpl3, dInt, DMA_FIXED, dPresent, ETHER_ADDR_LEN, nicInfo::ic, nicInfo::ident, IDON, INEA, INIT, inportByte(), kmalloc(), kprintf(), lnc, lncAttach(), nicInfo::memMode, mVec, NE2100, lncInfo::nic, lncInfo::nrdre, NRDRE, lncInfo::ntdre, NTDRE, PCnet_32, PCNET_BDP, PCNET_RAP, PCNET_RDP, probe(), lncInfo::rap, lncInfo::rdp, readCsr(), setVector(), STRT, writeCsr(), and x1000. +References _lncInt(), arpcom::ac_enaddr, lncInfo::arpcom, lncInfo::bdp, CSR0, CSR3, dDpl3, dInt, DMA_FIXED, dPresent, ETHER_ADDR_LEN, nicInfo::ic, nicInfo::ident, IDON, INEA, INIT, inportByte(), kmalloc(), kprintf(), lnc, lncAttach(), nicInfo::memMode, mVec, NE2100, lncInfo::nic, lncInfo::nrdre, NRDRE, lncInfo::ntdre, NTDRE, PCnet_32, PCNET_BDP, PCNET_RAP, PCNET_RDP, probe(), lncInfo::rap, lncInfo::rdp, readCsr(), setVector(), STRT, writeCsr(), and x1000.

    @@ -1501,7 +1501,7 @@

    Definition at line 246 of file lnc.c.

    -References arpcom::ac_enaddr, lncInfo::arpcom, C_LANCE, DMA_FIXED, nicInfo::ic, icIdent, nicInfo::ident, kmalloc(), kprintf(), LANCE, lnc, MEM_SLEW, nicInfo::memMode, nicInfo::mode, NDESC, lncInfo::nic, nicIdent, NORMAL, lncInfo::nrdre, lncInfo::ntdre, PCnet_32, RECVBUFSIZE, lncInfo::recvRing, SHMEM, and TRANSBUFSIZE. +References arpcom::ac_enaddr, lncInfo::arpcom, C_LANCE, DMA_FIXED, nicInfo::ic, icIdent, nicInfo::ident, kmalloc(), kprintf(), LANCE, lnc, MEM_SLEW, nicInfo::memMode, nicInfo::mode, NDESC, lncInfo::nic, nicIdent, NORMAL, lncInfo::nrdre, lncInfo::ntdre, PCnet_32, RECVBUFSIZE, lncInfo::recvRing, SHMEM, and TRANSBUFSIZE.

    Referenced by initLNC(). @@ -1723,7 +1723,7 @@ Referenced by initLNC(), lanceProbe(), lncAttach(), lncInt(), probe(), readCsr(), writeBcr(), and writeCsr().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/loopif_8c-source.html b/doc/html/loopif_8c-source.html index 0ea2811..4c8a0a8 100644 --- a/doc/html/loopif_8c-source.html +++ b/doc/html/loopif_8c-source.html @@ -114,7 +114,7 @@ 00082 00083 00084 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/loopif_8c.html b/doc/html/loopif_8c.html index 2e71439..0b1b214 100644 --- a/doc/html/loopif_8c.html +++ b/doc/html/loopif_8c.html @@ -112,12 +112,12 @@

    Definition at line 46 of file loopif.c.

    -References bcopy(), ERR_MEM, ERR_OK, netif::input, pbuf::len, pbuf::next, NULL, pbuf::payload, pbuf_alloc(), PBUF_RAM, PBUF_RAW, tcpdump(), and pbuf::tot_len. +References bcopy(), ERR_MEM, ERR_OK, netif::input, pbuf::len, pbuf::next, NULL, pbuf::payload, pbuf_alloc(), PBUF_RAM, PBUF_RAW, tcpdump(), and pbuf::tot_len.

    Referenced by loopif_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/loopif_8h-source.html b/doc/html/loopif_8h-source.html index 7340506..d181e90 100644 --- a/doc/html/loopif_8h-source.html +++ b/doc/html/loopif_8h-source.html @@ -72,7 +72,7 @@ 00040 void loopif_init(struct netif *netif); 00041 00042 #endif /* __NETIF_LOOPIF_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/loopif_8h.html b/doc/html/loopif_8h.html index c325201..c192adf 100644 --- a/doc/html/loopif_8h.html +++ b/doc/html/loopif_8h.html @@ -68,7 +68,7 @@ Referenced by netMainThread().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lwipopts_8h-source.html b/doc/html/lwipopts_8h-source.html index f7cf243..314db5a 100644 --- a/doc/html/lwipopts_8h-source.html +++ b/doc/html/lwipopts_8h-source.html @@ -204,7 +204,7 @@ 00172 #endif /* STATS */ 00173 00174 #endif /* __LWIPOPTS_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/lwipopts_8h.html b/doc/html/lwipopts_8h.html index 59fed4e..d6381a2 100644 --- a/doc/html/lwipopts_8h.html +++ b/doc/html/lwipopts_8h.html @@ -877,7 +877,7 @@ Definition at line 156 of file lwipopts.h.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/main.html b/doc/html/main.html index 9213cfc..f7dd5c3 100644 --- a/doc/html/main.html +++ b/doc/html/main.html @@ -25,7 +25,7 @@

    UbixOS V2 Documentation

    -

    2.0


    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +

    2.0


    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/main_8c-source.html b/doc/html/main_8c-source.html index 2ea5b30..6029fac 100644 --- a/doc/html/main_8c-source.html +++ b/doc/html/main_8c-source.html @@ -165,7 +165,7 @@ 00133 */ 00134 00135 /* Initialize the system */ -00136 kprintf("Free Pages: [%i]\n",systemVitals->freePages); +00136 kprintf("Free Pages: [%i]\n",systemVitals->freePages); 00137 00138 kprintf("MemoryMap: [0x%X]\n",vmmMemoryMap); 00139 kprintf("Starting OS\n"); @@ -191,7 +191,7 @@ 00159 END 00160 ***/ 00161 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/main_8c.html b/doc/html/main_8c.html index 9bcda7d..d56e496 100644 --- a/doc/html/main_8c.html +++ b/doc/html/main_8c.html @@ -469,7 +469,7 @@

    Definition at line 101 of file main.c.

    -References B_ADAPTOR, B_CONTROLLER, B_PARTITION, B_SLICE, B_TYPE, B_UNIT, clearScreen(), execFile(), execThread(), init_tasks, init_tasksTotal, irqEnable(), kmalloc(), kpanic(), kprint(), kprintf(), NULL, systemTask(), systemVitals, vfs_mount(), vmmMemoryMap, x1, and x2000. +References B_ADAPTOR, B_CONTROLLER, B_PARTITION, B_SLICE, B_TYPE, B_UNIT, clearScreen(), execFile(), execThread(), vitalsStruct::freePages, init_tasks, init_tasksTotal, irqEnable(), kmalloc(), kpanic(), kprint(), kprintf(), NULL, systemTask(), systemVitals, vfs_mount(), vmmMemoryMap, x1, and x2000.

    @@ -521,7 +521,7 @@

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/main_8cpp-source.html b/doc/html/main_8cpp-source.html index f421199..38bbda0 100644 --- a/doc/html/main_8cpp-source.html +++ b/doc/html/main_8cpp-source.html @@ -95,7 +95,7 @@ 00063 cout << "sizeof(bTreeHeader): " << sizeof(struct bTreeHeader) << endl; 00064 return 0; 00065 } -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/main_8cpp.html b/doc/html/main_8cpp.html index 4705328..4c65a2e 100644 --- a/doc/html/main_8cpp.html +++ b/doc/html/main_8cpp.html @@ -73,7 +73,7 @@ References dev_ramDestroy(), dev_ramDrive(), bTree::GetFirstNode(), bTree::Insert(), memset(), name, NULL, bTree::Save(), strcpy(), UbixFS::vfs_format(), UbixFS::vfs_init(), UbixFS::vfs_mkdir(), and UbixFS::vfs_stop().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/math_8h-source.html b/doc/html/math_8h-source.html index 75a4c13..715085f 100644 --- a/doc/html/math_8h-source.html +++ b/doc/html/math_8h-source.html @@ -94,7 +94,7 @@ 00062 00063 END 00064 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/math_8h.html b/doc/html/math_8h.html index f97f0c5..1708203 100644 --- a/doc/html/math_8h.html +++ b/doc/html/math_8h.html @@ -175,7 +175,7 @@ Definition at line 30 of file sqrt.c.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mem_8h-source.html b/doc/html/mem_8h-source.html index 1d73699..ab0f8c9 100644 --- a/doc/html/mem_8h-source.html +++ b/doc/html/mem_8h-source.html @@ -110,7 +110,7 @@ 00078 00079 #endif /* __LWIP_MEM_H__ */ 00080 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mem_8h.html b/doc/html/mem_8h.html index 6894b55..4de13c57 100644 --- a/doc/html/mem_8h.html +++ b/doc/html/mem_8h.html @@ -298,7 +298,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/memp_8h-source.html b/doc/html/memp_8h-source.html index a88281c..cadd24b 100644 --- a/doc/html/memp_8h-source.html +++ b/doc/html/memp_8h-source.html @@ -109,7 +109,7 @@ 00077 00078 #endif /* __LWIP_MEMP_H__ */ 00079 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/memp_8h.html b/doc/html/memp_8h.html index 8909927..8980431 100644 --- a/doc/html/memp_8h.html +++ b/doc/html/memp_8h.html @@ -332,7 +332,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/memset_8c-source.html b/doc/html/memset_8c-source.html index 01d69f9..75236ec 100644 --- a/doc/html/memset_8c-source.html +++ b/doc/html/memset_8c-source.html @@ -73,7 +73,7 @@ 00041 00042 dst = dst0; 00043 -00044 if (length < 3 * wsize) { +00044 if (length < 3 * wsize) { 00045 while (length != 0) { 00046 *dst++ = VAL; 00047 --length; @@ -87,8 +87,8 @@ 00055 } 00056 00057 /* Align destination by filling in bytes. */ -00058 if ((t = (long)dst & wmask) != 0) { -00059 t = wsize - t; +00058 if ((t = (long)dst & wmask) != 0) { +00059 t = wsize - t; 00060 length -= t; 00061 do { 00062 *dst++ = VAL; @@ -96,10 +96,10 @@ 00064 } 00065 00066 /* Fill words. Length was >= 2*words so we know t >= 1 here. */ -00067 t = length / wsize; +00067 t = length / wsize; 00068 do { 00069 *(u_int *)dst = WIDEVAL; -00070 dst += wsize; +00070 dst += wsize; 00071 } while (--t != 0); 00072 00073 /* Mop up trailing bytes, if any. */ @@ -129,7 +129,7 @@ 00097 END 00098 ***/ 00099 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/memset_8c.html b/doc/html/memset_8c.html index 781b883..b05ec03 100644 --- a/doc/html/memset_8c.html +++ b/doc/html/memset_8c.html @@ -104,8 +104,6 @@

    Definition at line 33 of file memset.c. -

    -Referenced by memset().

    @@ -123,8 +121,6 @@

    Definition at line 32 of file memset.c. -

    -Referenced by memset().


    Function Documentation

    @@ -164,10 +160,10 @@

    Definition at line 37 of file memset.c.

    -References VAL, WIDEVAL, wmask, and wsize. +References VAL, WIDEVAL, wmask, and wsize.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/message_8c-source.html b/doc/html/message_8c-source.html index 11b0ab5..d05d41c 100644 --- a/doc/html/message_8c-source.html +++ b/doc/html/message_8c-source.html @@ -111,7 +111,7 @@ 00079 END 00080 ***/ 00081 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/message_8c.html b/doc/html/message_8c.html index ed3ac5a..efadd10 100644 --- a/doc/html/message_8c.html +++ b/doc/html/message_8c.html @@ -233,7 +233,7 @@ References mpi_spam().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mount_8c-source.html b/doc/html/mount_8c-source.html index 83698cb..a262336 100644 --- a/doc/html/mount_8c-source.html +++ b/doc/html/mount_8c-source.html @@ -60,7 +60,7 @@ 00028 *****************************************************************************************/ 00029 00030 #include <vfs/mount.h> -00031 #include <ubixos/vitals.h> +00031 #include <ubixos/vitals.h> 00032 #include <ubixos/kpanic.h> 00033 #include <lib/kmalloc.h> 00034 #include <lib/kprintf.h> @@ -76,12 +76,12 @@ 00044 Notes: 00045 00046 ************************************************************************/ -00047 int vfs_mount(int major,int minor,int partition,int vfsType,char *mountPoint,char *perms) { -00048 vfs_mountPoint_t *mp = 0x0; +00047 int vfs_mount(int major,int minor,int partition,int vfsType,char *mountPoint,char *perms) { +00048 struct vfs_mountPoint *mp = 0x0; 00049 struct device_node *device = 0x0; 00050 00051 /* Allocate Memory For Mount Point */ -00052 if ((mp = (vfs_mountPoint_t *)kmalloc(sizeof(vfs_mountPoint_t))) == NULL) +00052 if ((mp = (struct vfs_mountPoint *)kmalloc(sizeof(struct vfs_mountPoint))) == NULL) 00053 kprintf("vfs_mount: failed to allocate mp\n"); 00054 00055 /* Copy Mount Point Into Buffer */ @@ -92,7 +92,7 @@ 00060 00061 /* Set Up Mp Defaults */ 00062 mp->device = device; -00063 mp->fs = vfsFindFS(vfsType); +00063 mp->fs = vfsFindFS(vfsType); 00064 mp->partition = partition; 00065 mp->perms = *perms; 00066 @@ -111,7 +111,7 @@ 00079 */ 00080 00081 /* Add Mountpoint If It Fails Free And Return */ -00082 if (vfs_addMount(mp) != 0x0) { +00082 if (vfs_addMount(mp) != 0x0) { 00083 kfree(mp); 00084 return(0x1); 00085 } @@ -127,26 +127,26 @@ 00095 00096 /************************************************************************ 00097 -00098 Function: vfs_addMount(vfs_mountPoint_t *mp) +00098 Function: vfs_addMount(struct vfs_mountPoint *mp) 00099 00100 Description: This function adds a mount point to the system 00101 00102 Notes: 00103 00104 ************************************************************************/ -00105 int vfs_addMount(vfs_mountPoint_t *mp) { +00105 int vfs_addMount(struct vfs_mountPoint *mp) { 00106 00107 /* If There Are No Existing Mounts Make It The First */ -00108 if (systemVitals->mountPoints == 0x0) { +00108 if (systemVitals->mountPoints == 0x0) { 00109 mp->prev = 0x0; 00110 mp->next = 0x0; -00111 systemVitals->mountPoints = mp; +00111 systemVitals->mountPoints = mp; 00112 } 00113 else { -00114 mp->next = systemVitals->mountPoints; -00115 systemVitals->mountPoints->prev = mp; +00114 mp->next = systemVitals->mountPoints; +00115 systemVitals->mountPoints->prev = mp; 00116 mp->prev = 0x0; -00117 systemVitals->mountPoints = mp; +00117 systemVitals->mountPoints = mp; 00118 } 00119 /* Return */ 00120 return(0x0); @@ -161,10 +161,10 @@ 00129 Notes: 00130 00131 ************************************************************************/ -00132 vfs_mountPoint_t *vfs_findMount(char *mountPoint) { -00133 vfs_mountPoint_t *tmpMp = 0x0; +00132 struct vfs_mountPoint *vfs_findMount(char *mountPoint) { +00133 struct vfs_mountPoint *tmpMp = 0x0; 00134 -00135 for (tmpMp=systemVitals->mountPoints;tmpMp;tmpMp=tmpMp->next) { +00135 for (tmpMp=systemVitals->mountPoints;tmpMp;tmpMp=tmpMp->next) { 00136 if (strcmp(tmpMp->mountPoint,mountPoint) == 0x0) { 00137 return(tmpMp); 00138 } @@ -177,7 +177,7 @@ 00145 END 00146 ***/ 00147 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mount_8c.html b/doc/html/mount_8c.html index 5b79970..93ba8b1 100644 --- a/doc/html/mount_8c.html +++ b/doc/html/mount_8c.html @@ -33,7 +33,7 @@

    mount.c File Reference

    #include <vfs/mount.h>
    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>
    #include <ubixos/kpanic.h>
    #include <lib/kmalloc.h>
    #include <lib/kprintf.h>
    @@ -44,22 +44,22 @@ Go to the source code of this file. - + - +

    Functions

    int vfs_addMount (vfs_mountPoint_t *mp)
    int vfs_addMount (struct vfs_mountPoint *mp)
    vfs_mountPoint_tvfs_findMount (char *mountPoint)
    vfs_mountPointvfs_findMount (char *mountPoint)
    int vfs_mount (int major, int minor, int partition, int vfsType, char *mountPoint, char *perms)


    Function Documentation

    - +
    - + @@ -73,17 +73,17 @@

    Definition at line 105 of file mount.c.

    -References vfs_mountPoint::next, vfs_mountPoint::prev, and systemVitals. +References vitalsStruct::mountPoints, vfs_mountPoint::next, vfs_mountPoint::prev, and systemVitals.

    Referenced by vfs_mount().

    - +

    int vfs_addMount (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    - + @@ -99,7 +99,7 @@

    Definition at line 132 of file mount.c.

    -References vfs_mountPoint::mountPoint, vfs_mountPoint::next, NULL, strcmp(), and systemVitals. +References vfs_mountPoint::mountPoint, vitalsStruct::mountPoints, vfs_mountPoint::next, NULL, strcmp(), and systemVitals.

    Referenced by devfs_makeNode(), fopen(), and unlink(). @@ -158,12 +158,12 @@

    Definition at line 47 of file mount.c.

    -References vfs_mountPoint::device, device_find(), vfs_mountPoint::fs, kfree(), kmalloc(), kprintf(), vfs_mountPoint::mountPoint, NULL, vfs_mountPoint::partition, vfs_mountPoint::perms, sprintf(), vfs_addMount(), vfsFindFS(), fileSystem::vfsInitFS, and x1. +References vfs_mountPoint::device, device_find(), vfs_mountPoint::fs, kfree(), kmalloc(), kprintf(), vfs_mountPoint::mountPoint, NULL, vfs_mountPoint::partition, vfs_mountPoint::perms, sprintf(), vfs_addMount(), vfsFindFS(), fileSystem::vfsInitFS, and x1.

    Referenced by devfs_init(), and kmain().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mount_8h-source.html b/doc/html/mount_8h-source.html index ae3de05..4b8065f 100644 --- a/doc/html/mount_8h-source.html +++ b/doc/html/mount_8h-source.html @@ -63,29 +63,30 @@ 00031 #define _MOUNT_H 00032 00033 #include <ubixos/types.h> -00034 -00035 typedef struct vfs_mountPoint { -00036 struct vfs_mountPoint *prev; -00037 struct vfs_mountPoint *next; -00038 struct fileSystem *fs; -00039 struct device_node *device; -00040 struct ubixDiskLabel *diskLabel; -00041 void *fsInfo; -00042 int partition; -00043 char mountPoint[1024]; -00044 char perms; -00045 } vfs_mountPoint_t; -00046 -00047 int vfs_mount(int major,int minor,int partition,int fsType,char *mountPoint,char *perms); -00048 int vfs_addMount(vfs_mountPoint_t *mp); -00049 vfs_mountPoint_t *vfs_findMount(char *mountPoint); -00050 -00051 #endif -00052 -00053 /*** -00054 END -00055 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +00034 #include <vfs/vfs.h> +00035 +00036 struct vfs_mountPoint { +00037 struct vfs_mountPoint *prev; +00038 struct vfs_mountPoint *next; +00039 struct fileSystem *fs; +00040 struct device_node *device; +00041 struct ubixDiskLabel *diskLabel; +00042 void *fsInfo; +00043 int partition; +00044 char mountPoint[1024]; +00045 char perms; +00046 }; +00047 +00048 int vfs_mount(int major,int minor,int partition,int fsType,char *mountPoint,char *perms); +00049 int vfs_addMount(struct vfs_mountPoint *mp); +00050 struct vfs_mountPoint *vfs_findMount(char *mountPoint); +00051 +00052 #endif +00053 +00054 /*** +00055 END +00056 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mount_8h.html b/doc/html/mount_8h.html index 8756f2d..4ee8316 100644 --- a/doc/html/mount_8h.html +++ b/doc/html/mount_8h.html @@ -33,6 +33,7 @@

    mount.h File Reference

    #include <ubixos/types.h>
    +#include <vfs/vfs.h>

    Go to the source code of this file.

    vfs_mountPoint_t* vfs_findMount struct vfs_mountPoint* vfs_findMount ( char *  mountPoint
    @@ -40,42 +41,23 @@ - - - - + - +

    Data Structures

    struct  vfs_mountPoint

    Typedefs

    typedef vfs_mountPoint vfs_mountPoint_t

    Functions

    int vfs_addMount (vfs_mountPoint_t *mp)
    int vfs_addMount (struct vfs_mountPoint *mp)
    vfs_mountPoint_tvfs_findMount (char *mountPoint)
    vfs_mountPointvfs_findMount (char *mountPoint)
    int vfs_mount (int major, int minor, int partition, int fsType, char *mountPoint, char *perms)
    -

    Typedef Documentation

    - -
    -
    - - - - -
    typedef struct vfs_mountPoint vfs_mountPoint_t
    -
    -
    - -

    - -

    -


    Function Documentation

    - +
    - + @@ -89,17 +71,17 @@

    Definition at line 105 of file mount.c.

    -References vfs_mountPoint::next, vfs_mountPoint::prev, and systemVitals. +References vitalsStruct::mountPoints, vfs_mountPoint::next, vfs_mountPoint::prev, and systemVitals.

    Referenced by vfs_mount().

    - +

    int vfs_addMount (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    - + @@ -115,7 +97,7 @@

    Definition at line 132 of file mount.c.

    -References vfs_mountPoint::mountPoint, vfs_mountPoint::next, NULL, strcmp(), and systemVitals. +References vfs_mountPoint::mountPoint, vitalsStruct::mountPoints, vfs_mountPoint::next, NULL, strcmp(), and systemVitals.

    Referenced by devfs_makeNode(), fopen(), and unlink(). @@ -174,12 +156,12 @@

    Definition at line 47 of file mount.c.

    -References vfs_mountPoint::device, device_find(), vfs_mountPoint::fs, kfree(), kmalloc(), kprintf(), vfs_mountPoint::mountPoint, NULL, vfs_mountPoint::partition, vfs_mountPoint::perms, sprintf(), vfs_addMount(), vfsFindFS(), fileSystem::vfsInitFS, and x1. +References vfs_mountPoint::device, device_find(), vfs_mountPoint::fs, kfree(), kmalloc(), kprintf(), vfs_mountPoint::mountPoint, NULL, vfs_mountPoint::partition, vfs_mountPoint::perms, sprintf(), vfs_addMount(), vfsFindFS(), fileSystem::vfsInitFS, and x1.

    Referenced by devfs_init(), and kmain().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mouse_8c-source.html b/doc/html/mouse_8c-source.html index 60ace46..cb35f7d 100644 --- a/doc/html/mouse_8c-source.html +++ b/doc/html/mouse_8c-source.html @@ -202,7 +202,7 @@ 00170 END 00171 ***/ 00172 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mouse_8c.html b/doc/html/mouse_8c.html index 2b1add9..0640dbb 100644 --- a/doc/html/mouse_8c.html +++ b/doc/html/mouse_8c.html @@ -225,7 +225,7 @@ References dDpl3, dInt, dPresent, eoi, irqEnable(), kbdRead(), kbdWrite(), kbdWriteRead(), kprintf(), mouseISR(), mPic, mVec, outportByte(), setVector(), and sPic.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mouse_8h-source.html b/doc/html/mouse_8h-source.html index 6fdaf97..ecb82d9 100644 --- a/doc/html/mouse_8h-source.html +++ b/doc/html/mouse_8h-source.html @@ -84,7 +84,7 @@ 00052 00053 END 00054 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mouse_8h.html b/doc/html/mouse_8h.html index b681b24..255cc12 100644 --- a/doc/html/mouse_8h.html +++ b/doc/html/mouse_8h.html @@ -133,7 +133,7 @@ Referenced by mouseInit().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mpi_8h-source.html b/doc/html/mpi_8h-source.html index 8b407f9..f3807ad 100644 --- a/doc/html/mpi_8h-source.html +++ b/doc/html/mpi_8h-source.html @@ -133,7 +133,7 @@ 00101 END 00102 ***/ 00103 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/mpi_8h.html b/doc/html/mpi_8h.html index 0a5600f..12f4f11 100644 --- a/doc/html/mpi_8h.html +++ b/doc/html/mpi_8h.html @@ -140,7 +140,7 @@

    Definition at line 69 of file system.c.

    -References _current, taskStruct::id, kmalloc(), mbox, mboxList, mpi_findMbox(), mpiSpinLock, mpi_mbox::prev, spinLock(), spinUnlock(), and sprintf(). +References _current, taskStruct::id, kmalloc(), mbox, mboxList, mpi_findMbox(), mpiSpinLock, mpi_mbox::prev, spinLock(), spinUnlock(), and sprintf().

    Referenced by sysMpiCreateMbox(), systemTask(), and ubixfs_thread(). @@ -166,7 +166,7 @@

    Definition at line 234 of file system.c.

    -References _current, taskStruct::id, kfree(), mbox, mboxList, mpiSpinLock, spinLock(), spinUnlock(), and strcmp(). +References _current, taskStruct::id, kfree(), mbox, mboxList, mpiSpinLock, spinLock(), spinUnlock(), and strcmp().

    Referenced by sysMpiDestroyMbox(). @@ -201,7 +201,7 @@

    Definition at line 189 of file system.c.

    -References _current, mpi_message::data, mpi_message::header, taskStruct::id, kfree(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::pid, spinLock(), and spinUnlock(). +References _current, mpi_message::data, mpi_message::header, taskStruct::id, kfree(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::pid, spinLock(), and spinUnlock().

    Referenced by sysMpiFetchMessage(), systemTask(), and ubixfs_thread(). @@ -242,7 +242,7 @@

    Definition at line 143 of file system.c.

    -References _current, mpi_message::data, mpi_message::header, taskStruct::id, kmalloc(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::next, mpi_message::pid, spinLock(), spinUnlock(), and x1. +References _current, mpi_message::data, mpi_message::header, taskStruct::id, kmalloc(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::next, mpi_message::pid, spinLock(), spinUnlock(), and x1.

    Referenced by sysMpiPostMessage(). @@ -277,12 +277,12 @@

    Definition at line 108 of file system.c.

    -References mpi_message::data, mpi_message::header, kmalloc(), mbox, mboxList, memcpy(), MESSAGE_LENGTH, mpiSpinLock, mpi_message::next, spinLock(), and spinUnlock(). +References mpi_message::data, mpi_message::header, kmalloc(), mbox, mboxList, memcpy(), MESSAGE_LENGTH, mpiSpinLock, mpi_message::next, spinLock(), and spinUnlock().

    Referenced by sysMpiSpam().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html index 58fac18..3f79621 100644 --- a/doc/html/namespaces.html +++ b/doc/html/namespaces.html @@ -26,7 +26,7 @@

    UbixOS V2 Namespace List

    Here is a list of all namespaces with brief descriptions:
    vfs_mountPoint_t* vfs_findMount struct vfs_mountPoint* vfs_findMount ( char *  mountPoint
    std
    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/namespacestd.html b/doc/html/namespacestd.html index b537936..c30258d 100644 --- a/doc/html/namespacestd.html +++ b/doc/html/namespacestd.html @@ -30,7 +30,7 @@
    -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ne2k_8c-source.html b/doc/html/ne2k_8c-source.html index a47d96f..77ed82d 100644 --- a/doc/html/ne2k_8c-source.html +++ b/doc/html/ne2k_8c-source.html @@ -68,7 +68,7 @@ 00036 #include <lib/kprintf.h> 00037 #include <string.h> 00038 #include <ubixos/kpanic.h> -00039 #include <ubixos/vitals.h> +00039 #include <ubixos/vitals.h> 00040 #include <ubixos/spinlock.h> 00041 #include <assert.h> 00042 @@ -449,7 +449,7 @@ 00417 END 00418 ***/ 00419 -

    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ne2k_8c.html b/doc/html/ne2k_8c.html index e9101a7..2da8100 100644 --- a/doc/html/ne2k_8c.html +++ b/doc/html/ne2k_8c.html @@ -41,7 +41,7 @@ #include <lib/kprintf.h>
    #include <string.h>
    #include <ubixos/kpanic.h>
    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>
    #include <ubixos/spinlock.h>
    #include <assert.h>
    @@ -240,7 +240,7 @@

    Definition at line 70 of file ne2k.c.

    -References dDpl0, dInt, DP_CNTR0, DP_CNTR1, DP_CNTR2, DP_CURR, DP_MAR0, DP_MAR1, DP_MAR2, DP_MAR3, DP_MAR4, DP_MAR5, DP_MAR6, DP_MAR7, dPresent, inportByte(), device::ioAddr, device::irq, irqEnable(), kmalloc(), kprintf(), mDev, mVec, ne2kISR(), NE_BNRY, NE_CMD, NE_DCR, NE_IMR, NE_ISR, NE_PSTART, NE_PSTOP, NE_RBCR0, NE_RBCR1, NE_RCR, NE_TCR, outportByte(), setVector(), startPage, stopPage, and x20. +References dDpl0, dInt, DP_CNTR0, DP_CNTR1, DP_CNTR2, DP_CURR, DP_MAR0, DP_MAR1, DP_MAR2, DP_MAR3, DP_MAR4, DP_MAR5, DP_MAR6, DP_MAR7, dPresent, inportByte(), device::ioAddr, device::irq, irqEnable(), kmalloc(), kprintf(), mDev, mVec, ne2kISR(), NE_BNRY, NE_CMD, NE_DCR, NE_IMR, NE_ISR, NE_PSTART, NE_PSTOP, NE_RBCR0, NE_RBCR1, NE_RCR, NE_TCR, outportByte(), setVector(), startPage, stopPage, and x20.

    @@ -264,7 +264,7 @@

    Definition at line 313 of file ne2k.c.

    -References nicBuffer::buffer, kmalloc(), nicBuffer::length, ne2k_spinLock, ne2kBuffer, nicBuffer::next, spinLock(), spinUnlock(), and tmpBuf. +References nicBuffer::buffer, kmalloc(), nicBuffer::length, ne2k_spinLock, ne2kBuffer, nicBuffer::next, spinLock(), spinUnlock(), and tmpBuf.

    Referenced by dp_pkt2user(). @@ -290,7 +290,7 @@

    Definition at line 353 of file ne2k.c.

    -References nicBuffer::buffer, and kfree(). +References nicBuffer::buffer, and kfree().

    Referenced by ethernetif_thread(). @@ -489,7 +489,7 @@ Referenced by ne2kAllocBuffer(), and ne2kGetBuffer().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ne2k_8h-source.html b/doc/html/ne2k_8h-source.html index 69cf4c2..acd34c6 100644 --- a/doc/html/ne2k_8h-source.html +++ b/doc/html/ne2k_8h-source.html @@ -227,7 +227,7 @@ 00195 00196 END 00197 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ne2k_8h.html b/doc/html/ne2k_8h.html index cd510f7..bd2caed 100644 --- a/doc/html/ne2k_8h.html +++ b/doc/html/ne2k_8h.html @@ -1676,7 +1676,7 @@

    Definition at line 70 of file ne2k.c.

    -References dDpl0, dInt, DP_CNTR0, DP_CNTR1, DP_CNTR2, DP_CURR, DP_MAR0, DP_MAR1, DP_MAR2, DP_MAR3, DP_MAR4, DP_MAR5, DP_MAR6, DP_MAR7, dPresent, inportByte(), device::ioAddr, device::irq, irqEnable(), kmalloc(), kprintf(), mDev, mVec, ne2kISR(), NE_BNRY, NE_CMD, NE_DCR, NE_IMR, NE_ISR, NE_PSTART, NE_PSTOP, NE_RBCR0, NE_RBCR1, NE_RCR, NE_TCR, outportByte(), setVector(), startPage, stopPage, and x20. +References dDpl0, dInt, DP_CNTR0, DP_CNTR1, DP_CNTR2, DP_CURR, DP_MAR0, DP_MAR1, DP_MAR2, DP_MAR3, DP_MAR4, DP_MAR5, DP_MAR6, DP_MAR7, dPresent, inportByte(), device::ioAddr, device::irq, irqEnable(), kmalloc(), kprintf(), mDev, mVec, ne2kISR(), NE_BNRY, NE_CMD, NE_DCR, NE_IMR, NE_ISR, NE_PSTART, NE_PSTOP, NE_RBCR0, NE_RBCR1, NE_RCR, NE_TCR, outportByte(), setVector(), startPage, stopPage, and x20.

    @@ -1700,7 +1700,7 @@

    Definition at line 313 of file ne2k.c.

    -References nicBuffer::buffer, kmalloc(), nicBuffer::length, ne2k_spinLock, ne2kBuffer, nicBuffer::next, spinLock(), spinUnlock(), and tmpBuf. +References nicBuffer::buffer, kmalloc(), nicBuffer::length, ne2k_spinLock, ne2kBuffer, nicBuffer::next, spinLock(), spinUnlock(), and tmpBuf.

    Referenced by dp_pkt2user(). @@ -1746,7 +1746,7 @@

    Definition at line 353 of file ne2k.c.

    -References nicBuffer::buffer, and kfree(). +References nicBuffer::buffer, and kfree().

    Referenced by ethernetif_thread(). @@ -1997,7 +1997,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_2arch_2init_8h-source.html b/doc/html/net_2arch_2init_8h-source.html index 6515aea..430bfce 100644 --- a/doc/html/net_2arch_2init_8h-source.html +++ b/doc/html/net_2arch_2init_8h-source.html @@ -74,7 +74,7 @@ 00042 00043 00044 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_2arch_2init_8h.html b/doc/html/net_2arch_2init_8h.html index c3f9380..7d7fcba 100644 --- a/doc/html/net_2arch_2init_8h.html +++ b/doc/html/net_2arch_2init_8h.html @@ -63,7 +63,7 @@ Definition at line 38 of file init.h.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_8c-source.html b/doc/html/net_8c-source.html index 4a6cb5f..34f4605 100644 --- a/doc/html/net_8c-source.html +++ b/doc/html/net_8c-source.html @@ -244,7 +244,7 @@ 00212 END 00213 ***/ 00214 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_8c.html b/doc/html/net_8c.html index 061c277..19b02f0 100644 --- a/doc/html/net_8c.html +++ b/doc/html/net_8c.html @@ -110,7 +110,7 @@

    Definition at line 103 of file net.c.

    -References memcpy(). +References memcpy().

    Referenced by loopif_output(), low_level_input(), and low_level_output(). @@ -225,7 +225,7 @@ References htonl, kprintf(), NULL, in_addr::s_addr, and strtol().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_8h-source.html b/doc/html/net_8h-source.html index 519e269..14ece08 100644 --- a/doc/html/net_8h-source.html +++ b/doc/html/net_8h-source.html @@ -66,7 +66,7 @@ 00034 END 00035 ***/ 00036 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/net_8h.html b/doc/html/net_8h.html index 93bd14e..bd4c1a5 100644 --- a/doc/html/net_8h.html +++ b/doc/html/net_8h.html @@ -65,7 +65,7 @@ References mem_init(), memp_init(), netMainThread(), pbuf_init(), sys_init(), and sys_thread_new().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/netif_8h-source.html b/doc/html/netif_8h-source.html index ae16060..4f84386 100644 --- a/doc/html/netif_8h-source.html +++ b/doc/html/netif_8h-source.html @@ -129,7 +129,7 @@ 00097 void netif_set_gw(struct netif *netif, struct ip_addr *gw); 00098 00099 #endif /* __LWIP_NETIF_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/netif_8h.html b/doc/html/netif_8h.html index 83a6616..4032ad1 100644 --- a/doc/html/netif_8h.html +++ b/doc/html/netif_8h.html @@ -296,7 +296,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogDisplay__UbixOS_8h-source.html b/doc/html/ogDisplay__UbixOS_8h-source.html index 992ae09..e111260 100644 --- a/doc/html/ogDisplay__UbixOS_8h-source.html +++ b/doc/html/ogDisplay__UbixOS_8h-source.html @@ -117,7 +117,7 @@ 00085 }; // ogDisplay_UbixOS 00086 00087 #endif -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogDisplay__UbixOS_8h.html b/doc/html/ogDisplay__UbixOS_8h.html index 4f4db23..918c8f3 100644 --- a/doc/html/ogDisplay__UbixOS_8h.html +++ b/doc/html/ogDisplay__UbixOS_8h.html @@ -45,7 +45,7 @@ struct  ogVESAInfo -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogDisplay__VESA_8h-source.html b/doc/html/ogDisplay__VESA_8h-source.html index a1ab4bd..3f6fe91 100644 --- a/doc/html/ogDisplay__VESA_8h-source.html +++ b/doc/html/ogDisplay__VESA_8h-source.html @@ -125,7 +125,7 @@ 00093 }; // ogDisplay_VESA 00094 00095 #endif -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogDisplay__VESA_8h.html b/doc/html/ogDisplay__VESA_8h.html index d26ff8d..d1e2ed8 100644 --- a/doc/html/ogDisplay__VESA_8h.html +++ b/doc/html/ogDisplay__VESA_8h.html @@ -45,7 +45,7 @@ struct  TVESA_Rec -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogprintf_8cc-source.html b/doc/html/ogprintf_8cc-source.html index f975a46..3f9b4ea 100644 --- a/doc/html/ogprintf_8cc-source.html +++ b/doc/html/ogprintf_8cc-source.html @@ -65,7 +65,7 @@ 00033 00034 extern "C" { 00035 -00036 #include <ubixos/vitals.h> +00036 #include <ubixos/vitals.h> 00037 00038 00039 static int screenRow = 0x0; @@ -74,8 +74,8 @@ 00042 int ogPrintf(char *s) { 00043 int i = 0x0; 00044 int bufHeight; -00045 ogSurface *screen = (ogDisplay_UbixOS *)systemVitals->screen; -00046 ogBitFont *font = (ogBitFont *)systemVitals->font; +00045 ogSurface *screen = (ogDisplay_UbixOS *)systemVitals->screen; +00046 ogBitFont *font = (ogBitFont *)systemVitals->font; 00047 00048 00049 while ('\0' != s[i]) { @@ -154,7 +154,7 @@ 00122 00123 END 00124 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ogprintf_8cc.html b/doc/html/ogprintf_8cc.html index c0c1725..708c68b 100644 --- a/doc/html/ogprintf_8cc.html +++ b/doc/html/ogprintf_8cc.html @@ -35,7 +35,7 @@ #include <objgfx40/objgfx40.h>
    #include <objgfx40/ogFont.h>
    #include <sde/ogDisplay_UbixOS.h>
    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>

    Go to the source code of this file. @@ -71,7 +71,7 @@

    Definition at line 42 of file ogprintf.cc.

    -References systemVitals. +References vitalsStruct::font, vitalsStruct::screen, and systemVitals.


    Variable Documentation

    @@ -109,7 +109,7 @@ Definition at line 39 of file ogprintf.cc.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/opt_8h-source.html b/doc/html/opt_8h-source.html index f7e6982..025f95c 100644 --- a/doc/html/opt_8h-source.html +++ b/doc/html/opt_8h-source.html @@ -127,7 +127,7 @@ 00095 00096 00097 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/opt_8h.html b/doc/html/opt_8h.html index 73b3629..b073c93 100644 --- a/doc/html/opt_8h.html +++ b/doc/html/opt_8h.html @@ -287,7 +287,7 @@ Definition at line 47 of file opt.h.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/page__fault_8S-source.html b/doc/html/page__fault_8S-source.html index ac75144..6de452b 100644 --- a/doc/html/page__fault_8S-source.html +++ b/doc/html/page__fault_8S-source.html @@ -90,7 +90,7 @@ 00058 /*** 00059 END 00060 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/page__fault_8S.html b/doc/html/page__fault_8S.html index 74e2580..835e712 100644 --- a/doc/html/page__fault_8S.html +++ b/doc/html/page__fault_8S.html @@ -131,7 +131,7 @@ Definition at line 46 of file page_fault.S.

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pagefault_8c-source.html b/doc/html/pagefault_8c-source.html index 3d0d388..5a52c5a 100644 --- a/doc/html/pagefault_8c-source.html +++ b/doc/html/pagefault_8c-source.html @@ -86,10 +86,10 @@ 00054 uInt32 i = 0x0, pageTableIndex = 0x0,pageDirectoryIndex = 0x0; 00055 uInt32 *pageDir = 0x0,*pageTable = 0x0; 00056 uInt32 *src = 0x0,*dst = 0x0; -00057 +00057 00058 /* Try to aquire lock otherwise spin till we do */ 00059 spinLock(&pageFaultSpinLock); -00060 +00060 00061 /* Set page dir pointer to the address of the visable page directory */ 00062 pageDir = (uInt32 *)parentPageDirAddr; 00063 @@ -98,7 +98,7 @@ 00066 kprintf("Segfault At Address: [0x%X][0x%X][%i][0x%X]\n",memAddr,esp,_current->id,eip); 00067 kpanic("Error We Wrote To 0x0\n"); 00068 } -00069 +00069 00070 /* Calculate The Page Directory Index */ 00071 pageDirectoryIndex = (memAddr >> 22); 00072 @@ -164,84 +164,87 @@ 00132 00133 /*** 00134 $Log$ -00135 Revision 1.5 2006/12/01 05:12:35 reddawg -00136 We're almost there... :) +00135 Revision 1.6 2006/12/05 14:10:21 reddawg +00136 Workign Distro 00137 -00138 Revision 1.4 2006/11/21 13:25:49 reddawg -00139 A handful of changes ;) +00138 Revision 1.5 2006/12/01 05:12:35 reddawg +00139 We're almost there... :) 00140 -00141 Revision 1.3 2006/11/06 19:10:12 reddawg -00142 Lots Of Updates... Still having issues with brk(); +00141 Revision 1.4 2006/11/21 13:25:49 reddawg +00142 A handful of changes ;) 00143 -00144 Revision 1.2 2006/10/31 20:44:19 reddawg -00145 Lots of changes +00144 Revision 1.3 2006/11/06 19:10:12 reddawg +00145 Lots Of Updates... Still having issues with brk(); 00146 -00147 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg -00148 ubix2 +00147 Revision 1.2 2006/10/31 20:44:19 reddawg +00148 Lots of changes 00149 -00150 Revision 1.2 2005/10/12 00:13:38 reddawg -00151 Removed +00150 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg +00151 ubix2 00152 -00153 Revision 1.1.1.1 2005/09/26 17:24:52 reddawg -00154 no message +00153 Revision 1.2 2005/10/12 00:13:38 reddawg +00154 Removed 00155 -00156 Revision 1.14 2004/08/25 22:02:41 reddawg -00157 task switching - We now are using software switching to be consistant with the rest of the world because all of this open source freaks gave me a hard time about something I liked. There doesn't seem to be any gain in performance but it is working fine and flawlessly +00156 Revision 1.1.1.1 2005/09/26 17:24:52 reddawg +00157 no message 00158 -00159 Revision 1.13 2004/08/24 05:24:37 reddawg -00160 TCA Is A BONER!!!! +00159 Revision 1.14 2004/08/25 22:02:41 reddawg +00160 task switching - We now are using software switching to be consistant with the rest of the world because all of this open source freaks gave me a hard time about something I liked. There doesn't seem to be any gain in performance but it is working fine and flawlessly 00161 -00162 Revision 1.12 2004/08/14 11:23:03 reddawg -00163 Changes +00162 Revision 1.13 2004/08/24 05:24:37 reddawg +00163 TCA Is A BONER!!!! 00164 -00165 Revision 1.11 2004/07/28 15:05:43 reddawg -00166 Major: -00167 Pages now have strict security enforcement. -00168 Many null dereferences have been resolved. -00169 When apps loaded permissions set for pages rw and ro -00170 -00171 Revision 1.10 2004/07/28 00:22:56 reddawg -00172 bah +00165 Revision 1.12 2004/08/14 11:23:03 reddawg +00166 Changes +00167 +00168 Revision 1.11 2004/07/28 15:05:43 reddawg +00169 Major: +00170 Pages now have strict security enforcement. +00171 Many null dereferences have been resolved. +00172 When apps loaded permissions set for pages rw and ro 00173 -00174 Revision 1.9 2004/07/28 00:17:05 reddawg -00175 Major: -00176 Disconnected page 0x0 from the system... Unfortunately this broke many things -00177 all of which have been fixed. This was good because nothing deferences NULL -00178 any more. -00179 -00180 Things affected: -00181 malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file +00174 Revision 1.10 2004/07/28 00:22:56 reddawg +00175 bah +00176 +00177 Revision 1.9 2004/07/28 00:17:05 reddawg +00178 Major: +00179 Disconnected page 0x0 from the system... Unfortunately this broke many things +00180 all of which have been fixed. This was good because nothing deferences NULL +00181 any more. 00182 -00183 Revision 1.8 2004/07/27 07:09:38 reddawg -00184 Put in a test for 0x0 +00183 Things affected: +00184 malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file 00185 -00186 Revision 1.7 2004/07/26 19:15:49 reddawg -00187 test code, fixes and the like +00186 Revision 1.8 2004/07/27 07:09:38 reddawg +00187 Put in a test for 0x0 00188 -00189 Revision 1.6 2004/07/24 23:04:44 reddawg -00190 Changes... mark let me know if you fault at pid 185 when you type stress +00189 Revision 1.7 2004/07/26 19:15:49 reddawg +00190 test code, fixes and the like 00191 -00192 Revision 1.5 2004/07/24 20:00:51 reddawg -00193 Lots of changes to the vmm subsystem.... Page faults have been adjust to now be blocking on a per thread basis not system wide. This has resulted in no more deadlocks.. also the addition of per thread locking has removed segfaults as a result of COW in which two tasks fault the same COW page and try to modify it. +00192 Revision 1.6 2004/07/24 23:04:44 reddawg +00193 Changes... mark let me know if you fault at pid 185 when you type stress 00194 -00195 Revision 1.4 2004/07/24 17:47:28 reddawg -00196 vmm_pageFault: deadlock resolved thanks to a propper solution suggested by geist +00195 Revision 1.5 2004/07/24 20:00:51 reddawg +00196 Lots of changes to the vmm subsystem.... Page faults have been adjust to now be blocking on a per thread basis not system wide. This has resulted in no more deadlocks.. also the addition of per thread locking has removed segfaults as a result of COW in which two tasks fault the same COW page and try to modify it. 00197 -00198 Revision 1.3 2004/07/19 02:05:26 reddawg -00199 vmmPageFault: had a potential memory leak here for one page it was still using sysID on certain COW scenarios +00198 Revision 1.4 2004/07/24 17:47:28 reddawg +00199 vmm_pageFault: deadlock resolved thanks to a propper solution suggested by geist 00200 -00201 Revision 1.2 2004/06/10 22:23:56 reddawg -00202 Volatiles +00201 Revision 1.3 2004/07/19 02:05:26 reddawg +00202 vmmPageFault: had a potential memory leak here for one page it was still using sysID on certain COW scenarios 00203 -00204 Revision 1.1.1.1 2004/04/15 12:06:52 reddawg -00205 UbixOS v1.0 +00204 Revision 1.2 2004/06/10 22:23:56 reddawg +00205 Volatiles 00206 -00207 Revision 1.4 2004/04/13 16:36:34 reddawg -00208 Changed our copyright, it is all now under a BSD-Style license +00207 Revision 1.1.1.1 2004/04/15 12:06:52 reddawg +00208 UbixOS v1.0 00209 -00210 END -00211 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00210 Revision 1.4 2004/04/13 16:36:34 reddawg +00211 Changed our copyright, it is all now under a BSD-Style license +00212 +00213 END +00214 ***/ +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pagefault_8c.html b/doc/html/pagefault_8c.html index fc3f1b2..5c649a2 100644 --- a/doc/html/pagefault_8c.html +++ b/doc/html/pagefault_8c.html @@ -85,7 +85,7 @@

    Definition at line 53 of file pagefault.c.

    -References _current, adjustCowCounter(), endTask(), taskStruct::id, kpanic(), kprintf(), PAGE_COW, PAGE_DEFAULT, pageEntries, pageFaultSpinLock, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, vmm_getPhysicalAddr(), vmmFindFreePage(), vmmGetFreeVirtualPage(), vmmUnmapPage(), x1, and x1000. +References _current, adjustCowCounter(), endTask(), taskStruct::id, kpanic(), kprintf(), PAGE_COW, PAGE_DEFAULT, pageEntries, pageFaultSpinLock, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, vmm_getPhysicalAddr(), vmmFindFreePage(), vmmGetFreeVirtualPage(), vmmUnmapPage(), x1, and x1000.


    Variable Documentation

    @@ -108,7 +108,7 @@ Referenced by vmm_pageFault().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/paging_8c-source.html b/doc/html/paging_8c-source.html index 3550b70..8a2cfa1 100644 --- a/doc/html/paging_8c-source.html +++ b/doc/html/paging_8c-source.html @@ -596,7 +596,7 @@ 00564 END 00565 ***/ 00566 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/paging_8c.html b/doc/html/paging_8c.html index 6baae6f..939ac2f 100644 --- a/doc/html/paging_8c.html +++ b/doc/html/paging_8c.html @@ -105,7 +105,7 @@

    Definition at line 453 of file paging.c.

    -References _current, mmap_args::addr, mmap_args::fd, taskStruct::id, kprintf(), mmap_args::len, thread::td_retval, VM_TASK, vmmGetFreeVirtualPage(), and x1000. +References _current, mmap_args::addr, mmap_args::fd, taskStruct::id, kprintf(), mmap_args::len, thread::td_retval, VM_TASK, vmmGetFreeVirtualPage(), and x1000.

    @@ -171,7 +171,7 @@

    Definition at line 477 of file paging.c.

    -References _current, btoc, ctob, taskStruct::id, K_PANIC, obreak_args::nsize, PAGE_DEFAULT, round_page, thread::vm_daddr, thread::vm_dsize, vmm_remapPage(), and vmmFindFreePage(). +References _current, btoc, ctob, taskStruct::id, K_PANIC, obreak_args::nsize, PAGE_DEFAULT, round_page, thread::vm_daddr, thread::vm_dsize, vmm_remapPage(), and vmmFindFreePage().

    @@ -221,7 +221,7 @@

    Definition at line 401 of file paging.c.

    -References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), sysID, tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), and x1000. +References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), sysID, tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), and x1000.

    Referenced by getEmptyDesc(). @@ -246,7 +246,7 @@

    Definition at line 59 of file paging.c.

    -References _vmm_pageFault, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kprintf(), memset(), numPages, pageEntries, sysID, vmm_remapPage(), vmmFindFreePage(), vmmMemoryMap, vmmMemoryMapAddr, x1, and x1000. +References _vmm_pageFault, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kprintf(), memset(), numPages, pageEntries, sysID, vmm_remapPage(), vmmFindFreePage(), vmmMemoryMap, vmmMemoryMapAddr, x1, and x1000.

    Referenced by vmm_init(). @@ -287,7 +287,7 @@

    Definition at line 160 of file paging.c.

    -References _current, freePage(), taskStruct::id, K_PANIC, KERNEL_PAGE_DEFAULT, kprintf(), PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, pageEntries, parentPageDirAddr, rmpSpinLock, spinLock(), spinUnlock(), tablesBaseAddress, vmmFindFreePage(), and x1000. +References _current, freePage(), taskStruct::id, K_PANIC, KERNEL_PAGE_DEFAULT, kprintf(), PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, pageEntries, parentPageDirAddr, rmpSpinLock, spinLock(), spinUnlock(), tablesBaseAddress, vmmFindFreePage(), and x1000.

    Referenced by execFile(), kmod_load(), ldEnable(), obreak(), sysExec(), vmm_getFreeMallocPage(), vmm_pagingInit(), vmmGetFreeKernelPage(), vmmGetFreePage(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). @@ -348,7 +348,7 @@

    Definition at line 253 of file paging.c.

    -References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), and vmmFindFreePage(). +References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), and vmmFindFreePage().

    Referenced by vmmCopyVirtualSpace(). @@ -389,7 +389,7 @@

    Definition at line 332 of file paging.c.

    -References _current, tssStruct::cr3, K_PANIC, KERNEL_PAGE_DEFAULT, taskStruct::oInfo, schedFindTask(), tablesBaseAddress, taskStruct::tss, vmm_remapPage(), vmmUnmapPage(), osInfo::vmStart, and x1000. +References _current, tssStruct::cr3, K_PANIC, KERNEL_PAGE_DEFAULT, taskStruct::oInfo, schedFindTask(), tablesBaseAddress, taskStruct::tss, vmm_remapPage(), vmmUnmapPage(), osInfo::vmStart, and x1000.


    Variable Documentation

    @@ -450,7 +450,7 @@ Referenced by vmm_remapPage().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/paging_8h-source.html b/doc/html/paging_8h-source.html index da1e41b..8b8a0fe 100644 --- a/doc/html/paging_8h-source.html +++ b/doc/html/paging_8h-source.html @@ -125,7 +125,7 @@ 00093 END 00094 ***/ 00095 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/paging_8h.html b/doc/html/paging_8h.html index eb02354..d99e493 100644 --- a/doc/html/paging_8h.html +++ b/doc/html/paging_8h.html @@ -211,7 +211,7 @@

    Definition at line 46 of file paging.h.

    -Referenced by vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage(). +Referenced by vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage().

    @@ -395,7 +395,7 @@

    Definition at line 42 of file paging.h.

    -Referenced by vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmClearVirtualPage(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage(). +Referenced by vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmClearVirtualPage(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage().

    @@ -448,7 +448,7 @@

    Definition at line 44 of file paging.h.

    -Referenced by vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage(). +Referenced by vmm_cleanVirtualSpace(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), and vmmGetFreeVirtualPage().

    @@ -491,7 +491,7 @@

    Definition at line 43 of file paging.h.

    -Referenced by vmm_cleanVirtualSpace(), vmm_getFreeMallocPage(), vmm_getPhysicalAddr(), vmm_pageFault(), vmm_remapPage(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), vmmGetFreeVirtualPage(), vmmMapFromTask(), vmmUnmapPage(), and vmmUnmapPages(). +Referenced by vmm_cleanVirtualSpace(), vmm_getFreeMallocPage(), vmm_getPhysicalAddr(), vmm_pageFault(), vmm_remapPage(), vmm_setPageAttributes(), vmmCopyVirtualSpace(), vmmCreateVirtualSpace(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), vmmGetFreeVirtualPage(), vmmMapFromTask(), vmmUnmapPage(), and vmmUnmapPages().

    @@ -534,7 +534,7 @@

    Definition at line 38 of file paging.h.

    -Referenced by mmap(), sysGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by mmap(), sysGetFreePage(), and vmmGetFreeVirtualPage().

    @@ -553,7 +553,7 @@

    Definition at line 37 of file paging.h.

    -Referenced by sysGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by sysGetFreePage(), and vmmGetFreeVirtualPage().


    Function Documentation

    @@ -606,7 +606,7 @@

    Definition at line 453 of file paging.c.

    -References _current, mmap_args::addr, mmap_args::fd, taskStruct::id, kprintf(), mmap_args::len, thread::td_retval, VM_TASK, vmmGetFreeVirtualPage(), and x1000. +References _current, mmap_args::addr, mmap_args::fd, taskStruct::id, kprintf(), mmap_args::len, thread::td_retval, VM_TASK, vmmGetFreeVirtualPage(), and x1000.

    @@ -672,7 +672,7 @@

    Definition at line 477 of file paging.c.

    -References _current, btoc, ctob, taskStruct::id, K_PANIC, obreak_args::nsize, PAGE_DEFAULT, round_page, thread::vm_daddr, thread::vm_dsize, vmm_remapPage(), and vmmFindFreePage(). +References _current, btoc, ctob, taskStruct::id, K_PANIC, obreak_args::nsize, PAGE_DEFAULT, round_page, thread::vm_daddr, thread::vm_dsize, vmm_remapPage(), and vmmFindFreePage().

    @@ -696,7 +696,7 @@

    Definition at line 401 of file paging.c.

    -References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), sysID, tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), and x1000. +References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), sysID, tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), and x1000.

    Referenced by getEmptyDesc(). @@ -763,7 +763,7 @@

    Definition at line 53 of file pagefault.c.

    -References _current, adjustCowCounter(), endTask(), taskStruct::id, kpanic(), kprintf(), PAGE_COW, PAGE_DEFAULT, pageEntries, pageFaultSpinLock, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, vmm_getPhysicalAddr(), vmmFindFreePage(), vmmGetFreeVirtualPage(), vmmUnmapPage(), x1, and x1000. +References _current, adjustCowCounter(), endTask(), taskStruct::id, kpanic(), kprintf(), PAGE_COW, PAGE_DEFAULT, pageEntries, pageFaultSpinLock, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, vmm_getPhysicalAddr(), vmmFindFreePage(), vmmGetFreeVirtualPage(), vmmUnmapPage(), x1, and x1000.

    @@ -786,7 +786,7 @@

    Definition at line 59 of file paging.c.

    -References _vmm_pageFault, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kprintf(), memset(), numPages, pageEntries, sysID, vmm_remapPage(), vmmFindFreePage(), vmmMemoryMap, vmmMemoryMapAddr, x1, and x1000. +References _vmm_pageFault, K_PANIC, KERNEL_PAGE_DEFAULT, kernelPageDirectory, kprintf(), memset(), numPages, pageEntries, sysID, vmm_remapPage(), vmmFindFreePage(), vmmMemoryMap, vmmMemoryMapAddr, x1, and x1000.

    Referenced by vmm_init(). @@ -827,7 +827,7 @@

    Definition at line 160 of file paging.c.

    -References _current, freePage(), taskStruct::id, K_PANIC, KERNEL_PAGE_DEFAULT, kprintf(), PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, pageEntries, parentPageDirAddr, rmpSpinLock, spinLock(), spinUnlock(), tablesBaseAddress, vmmFindFreePage(), and x1000. +References _current, freePage(), taskStruct::id, K_PANIC, KERNEL_PAGE_DEFAULT, kprintf(), PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, PAGE_STACK, pageEntries, parentPageDirAddr, rmpSpinLock, spinLock(), spinUnlock(), tablesBaseAddress, vmmFindFreePage(), and x1000.

    Referenced by execFile(), kmod_load(), ldEnable(), obreak(), sysExec(), vmm_getFreeMallocPage(), vmm_pagingInit(), vmmGetFreeKernelPage(), vmmGetFreePage(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). @@ -914,7 +914,7 @@

    Definition at line 53 of file copyvirtualspace.c.

    -References adjustCowCounter(), cvsSpinLock, kpanic(), memset(), PAGE_COW, PAGE_DEFAULT, PAGE_STACK, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, vmm_getPhysicalAddr(), vmmGetFreeKernelPage(), vmmUnmapPage(), x1, and x1000. +References adjustCowCounter(), cvsSpinLock, kpanic(), memset(), PAGE_COW, PAGE_DEFAULT, PAGE_STACK, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, vmm_getPhysicalAddr(), vmmGetFreeKernelPage(), vmmUnmapPage(), x1, and x1000.

    Referenced by fork_copyProcess(). @@ -975,7 +975,7 @@

    Definition at line 253 of file paging.c.

    -References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), and vmmFindFreePage(). +References fkpSpinLock, K_PANIC, KERNEL_PAGE_DEFAULT, spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), and vmmFindFreePage().

    Referenced by vmmCopyVirtualSpace(). @@ -1001,7 +1001,7 @@

    Definition at line 48 of file getfreepage.c.

    -References KERNEL_PAGE_DEFAULT, kpanic(), spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), vmmGFPlock, and x1000. +References KERNEL_PAGE_DEFAULT, kpanic(), spinLock(), spinUnlock(), tablesBaseAddress, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), vmmGFPlock, and x1000.

    Referenced by vmmCreateVirtualSpace(). @@ -1042,9 +1042,9 @@

    Definition at line 47 of file getfreevirtualpage.c.

    -References _current, btoc, ctob, fvpSpinLock, taskStruct::id, K_PANIC, kpanic(), kprintf(), taskStruct::oInfo, PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, VM_TASK, VM_THRD, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), osInfo::vmStart, x1, and x1000. +References _current, btoc, ctob, fvpSpinLock, taskStruct::id, K_PANIC, kpanic(), kprintf(), taskStruct::oInfo, PAGE_COW, PAGE_DEFAULT, PAGE_PRESENT, pageEntries, parentPageDirAddr, spinLock(), spinUnlock(), tablesBaseAddress, taskStruct::td, thread::vm_daddr, thread::vm_dsize, VM_TASK, VM_THRD, vmm_remapPage(), vmmClearVirtualPage(), vmmFindFreePage(), osInfo::vmStart, x1, and x1000.

    -Referenced by mmap(), sysGetFreePage(), and vmm_pageFault(). +Referenced by mmap(), sysGetFreePage(), and vmm_pageFault().

    @@ -1083,7 +1083,7 @@

    Definition at line 332 of file paging.c.

    -References _current, tssStruct::cr3, K_PANIC, KERNEL_PAGE_DEFAULT, taskStruct::oInfo, schedFindTask(), tablesBaseAddress, taskStruct::tss, vmm_remapPage(), vmmUnmapPage(), osInfo::vmStart, and x1000. +References _current, tssStruct::cr3, K_PANIC, KERNEL_PAGE_DEFAULT, taskStruct::oInfo, schedFindTask(), tablesBaseAddress, taskStruct::tss, vmm_remapPage(), vmmUnmapPage(), osInfo::vmStart, and x1000.

    @@ -1174,7 +1174,7 @@ Referenced by _int8(), execFile(), execThread(), idt_init(), and vmm_pagingInit().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pbuf_8h-source.html b/doc/html/pbuf_8h-source.html index 6ffb4c7..abe0be9 100644 --- a/doc/html/pbuf_8h-source.html +++ b/doc/html/pbuf_8h-source.html @@ -182,7 +182,7 @@ 00150 struct pbuf *pbuf_dechain(struct pbuf *p); 00151 00152 #endif /* __LWIP_PBUF_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pbuf_8h.html b/doc/html/pbuf_8h.html index 04411ea..f2b7ff2 100644 --- a/doc/html/pbuf_8h.html +++ b/doc/html/pbuf_8h.html @@ -460,7 +460,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pci_8c-source.html b/doc/html/pci_8c-source.html index d6b5503..d9d4187 100644 --- a/doc/html/pci_8c-source.html +++ b/doc/html/pci_8c-source.html @@ -266,7 +266,7 @@ 00234 00235 00236 bool pciProbe(int bus, int dev, int func,struct pciConfig *cfg) { -00237 uInt32 *word = (uInt32 *) cfg; +00237 uInt32 *word = (uInt32 *) cfg; 00238 uInt32 v; 00239 int i; 00240 for(i=0;i<4;i++) { @@ -371,7 +371,7 @@ 00339 00340 END 00341 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pci_8c.html b/doc/html/pci_8c.html index f89a6d9..30aac42 100644 --- a/doc/html/pci_8c.html +++ b/doc/html/pci_8c.html @@ -297,7 +297,7 @@

    Definition at line 39 of file pci.c.

    -Referenced by __sysctl(), def_ctls(), initHardDisk(), lookup(), lwip_bind(), lwip_connect(), main(), pci_init(), and UbixFS::vfs_mkdir(). +Referenced by def_ctls(), initHardDisk(), lookup(), lwip_bind(), lwip_connect(), main(), pci_init(), and UbixFS::vfs_mkdir().

    @@ -334,7 +334,7 @@ Definition at line 37 of file pci.c.

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pci_8h-source.html b/doc/html/pci_8h-source.html index 64924ef..b18ea3c 100644 --- a/doc/html/pci_8h-source.html +++ b/doc/html/pci_8h-source.html @@ -137,7 +137,7 @@ 00105 00106 END 00107 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pci_8h.html b/doc/html/pci_8h.html index d61b0a9..9698015 100644 --- a/doc/html/pci_8h.html +++ b/doc/html/pci_8h.html @@ -263,7 +263,7 @@ Referenced by pciProbe().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/perf_8h-source.html b/doc/html/perf_8h-source.html index 376d2da..e1b1293 100644 --- a/doc/html/perf_8h-source.html +++ b/doc/html/perf_8h-source.html @@ -96,7 +96,7 @@ 00064 void perf_init(char *fname); 00065 00066 #endif /* __ARCH_PERF_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/perf_8h.html b/doc/html/perf_8h.html index fc114f7..359d5d8 100644 --- a/doc/html/perf_8h.html +++ b/doc/html/perf_8h.html @@ -193,7 +193,7 @@

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pipe_8c-source.html b/doc/html/pipe_8c-source.html index 2d15e78..782fc76 100644 --- a/doc/html/pipe_8c-source.html +++ b/doc/html/pipe_8c-source.html @@ -67,24 +67,23 @@ 00035 #include <lib/kprintf.h> 00036 #include <assert.h> 00037 -00038 int pipe(struct thread *td, struct pipe_args *uap) { -00039 struct file *rf, *wf; -00040 int fd = 0x0; -00041 kprintf("PIPE"); -00042 falloc(td,&rf,&fd); -00043 rf->f_flag = FREAD | FWRITE; -00044 td->td_retval[0] = fd; -00045 falloc(td,&wf,&fd); -00046 wf->f_flag = FREAD | FWRITE; -00047 td->td_retval[1] = fd; -00048 return(0x0); -00049 } -00050 -00051 /*** -00052 END -00053 ***/ -00054 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00041 int pipe(struct thread *td, struct pipe_args *uap) { +00042 struct file *rf, *wf; +00043 int fd = 0x0; +00044 falloc(td,&rf,&fd); +00045 rf->f_flag = FREAD | FWRITE; +00046 td->td_retval[0] = fd; +00047 falloc(td,&wf,&fd); +00048 wf->f_flag = FREAD | FWRITE; +00049 td->td_retval[1] = fd; +00050 return(0x0); +00051 } +00052 +00053 /*** +00054 END +00055 ***/ +00056 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pipe_8c.html b/doc/html/pipe_8c.html index cece4d9..b6cafb5 100644 --- a/doc/html/pipe_8c.html +++ b/doc/html/pipe_8c.html @@ -74,14 +74,14 @@

    - +HACK

    -Definition at line 38 of file pipe.c. +Definition at line 41 of file pipe.c.

    -References file::f_flag, falloc(), FREAD, FWRITE, kprintf(), and thread::td_retval. +References file::f_flag, falloc(), FREAD, FWRITE, and thread::td_retval.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pipe_8h-source.html b/doc/html/pipe_8h-source.html index 8adb677..eebe558 100644 --- a/doc/html/pipe_8h-source.html +++ b/doc/html/pipe_8h-source.html @@ -73,7 +73,7 @@ 00041 END 00042 ***/ 00043 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pipe_8h.html b/doc/html/pipe_8h.html index b37bdcc..e771acf 100644 --- a/doc/html/pipe_8h.html +++ b/doc/html/pipe_8h.html @@ -51,13 +51,13 @@
    - + - + @@ -69,12 +69,12 @@

    - +HACK

    -Definition at line 38 of file pipe.c. +Definition at line 41 of file pipe.c.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pit_8c-source.html b/doc/html/pit_8c-source.html index a2ce4c5..6455cd1 100644 --- a/doc/html/pit_8c-source.html +++ b/doc/html/pit_8c-source.html @@ -138,7 +138,7 @@ 00106 END 00107 ***/ 00108 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pit_8c.html b/doc/html/pit_8c.html index 81a05e7..53909f7 100644 --- a/doc/html/pit_8c.html +++ b/doc/html/pit_8c.html @@ -67,7 +67,7 @@ References kprintf(), outportByte(), outportByteP(), and PIT_TIMER.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pit_8h-source.html b/doc/html/pit_8h-source.html index 5b2d0cb..44cd84f 100644 --- a/doc/html/pit_8h-source.html +++ b/doc/html/pit_8h-source.html @@ -98,7 +98,7 @@ 00066 END 00067 ***/ 00068 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/pit_8h.html b/doc/html/pit_8h.html index a73402c..a5745d1 100644 --- a/doc/html/pit_8h.html +++ b/doc/html/pit_8h.html @@ -87,7 +87,7 @@ References kprintf(), outportByte(), outportByteP(), and PIT_TIMER.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ramdrive_8cpp-source.html b/doc/html/ramdrive_8cpp-source.html index ed9b42f..76dabcf 100644 --- a/doc/html/ramdrive_8cpp-source.html +++ b/doc/html/ramdrive_8cpp-source.html @@ -209,7 +209,7 @@ 00177 END 00178 ***/ 00179 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ramdrive_8cpp.html b/doc/html/ramdrive_8cpp.html index d15d3c8..6d84783 100644 --- a/doc/html/ramdrive_8cpp.html +++ b/doc/html/ramdrive_8cpp.html @@ -172,7 +172,7 @@

    Definition at line 43 of file ramdrive.cpp.

    -References assert, memcpy(), and ram_data. +References assert, memcpy(), and ram_data.

    Referenced by dev_ramDrive(). @@ -219,7 +219,7 @@

    Definition at line 54 of file ramdrive.cpp.

    -References assert, memcpy(), and ram_data. +References assert, memcpy(), and ram_data.

    Referenced by dev_ramDrive(). @@ -244,7 +244,7 @@ Referenced by dev_ramDestroy(), dev_ramDrive(), ramDrive_read(), and ramDrive_write().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ramdrive_8h-source.html b/doc/html/ramdrive_8h-source.html index 9af78ef..4097992 100644 --- a/doc/html/ramdrive_8h-source.html +++ b/doc/html/ramdrive_8h-source.html @@ -92,7 +92,7 @@ 00060 END 00061 ***/ 00062 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ramdrive_8h.html b/doc/html/ramdrive_8h.html index 34fdcfb..c5cd618 100644 --- a/doc/html/ramdrive_8h.html +++ b/doc/html/ramdrive_8h.html @@ -94,7 +94,7 @@ Referenced by main().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/rs232_8c-source.html b/doc/html/rs232_8c-source.html index a0b0a01..a4d3a88 100644 --- a/doc/html/rs232_8c-source.html +++ b/doc/html/rs232_8c-source.html @@ -82,7 +82,7 @@ 00050 END 00051 ***/ 00052 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/rs232_8c.html b/doc/html/rs232_8c.html index 2699177..c0f64c2 100644 --- a/doc/html/rs232_8c.html +++ b/doc/html/rs232_8c.html @@ -62,7 +62,7 @@ Definition at line 30 of file rs232.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sched_8c-source.html b/doc/html/sched_8c-source.html index 98752c9..204d998 100644 --- a/doc/html/sched_8c-source.html +++ b/doc/html/sched_8c-source.html @@ -63,267 +63,266 @@ 00031 #include <ubixos/kpanic.h> 00032 #include <ubixos/spinlock.h> 00033 #include <ubixos/endtask.h> -00034 #include <ubixos/vitals.h> -00035 #include <vfs/mount.h> -00036 #include <lib/kmalloc.h> -00037 #include <lib/kprintf.h> -00038 #include <vmm/vmm.h> -00039 #include <sys/gdt.h> -00040 #include <sys/idt.h> -00041 #include <sys/kern_descrip.h> -00042 #include <isa/8259.h> -00043 #include <string.h> -00044 #include <assert.h> -00045 -00046 #include <ubixos/spinlock.h> -00047 -00048 static kTask_t *taskList = 0x0; -00049 static kTask_t *delList = 0x0; -00050 static uInt32 nextID = -1; -00051 -00052 kTask_t *_current = 0x0; -00053 kTask_t *_usedMath = 0x0; -00054 -00055 static spinLock_t schedulerSpinLock = SPIN_LOCK_INITIALIZER; -00056 -00057 /************************************************************************ -00058 -00059 Function: int sched_init() -00060 -00061 Description: This function is used to enable the kernel scheduler -00062 -00063 Notes: -00064 -00065 02/20/2004 - Approved for quality -00066 -00067 ************************************************************************/ +00034 #include <vfs/mount.h> +00035 #include <lib/kmalloc.h> +00036 #include <lib/kprintf.h> +00037 #include <vmm/vmm.h> +00038 #include <sys/gdt.h> +00039 #include <sys/idt.h> +00040 #include <sys/kern_descrip.h> +00041 #include <isa/8259.h> +00042 #include <string.h> +00043 #include <assert.h> +00044 +00045 #include <ubixos/spinlock.h> +00046 +00047 static kTask_t *taskList = 0x0; +00048 static kTask_t *delList = 0x0; +00049 static uInt32 nextID = -1; +00050 +00051 kTask_t *_current = 0x0; +00052 kTask_t *_usedMath = 0x0; +00053 +00054 static spinLock_t schedulerSpinLock = SPIN_LOCK_INITIALIZER; +00055 +00056 /************************************************************************ +00057 +00058 Function: int sched_init() +00059 +00060 Description: This function is used to enable the kernel scheduler +00061 +00062 Notes: +00063 +00064 02/20/2004 - Approved for quality +00065 +00066 ************************************************************************/ +00067 00068 -00069 -00070 int sched_init() { -00071 taskList = (kTask_t *)kmalloc(sizeof(kTask_t)); -00072 if(taskList == 0x0) -00073 kpanic("Unable to create task list"); -00074 -00075 taskList->id = nextID++; -00076 -00077 /* Print out information on scheduler */ -00078 kprintf("sched0 - Address: [0x%X]\n", taskList); -00079 -00080 /* Return so we know everything went well */ -00081 return(0x0); -00082 } +00069 int sched_init() { +00070 taskList = (kTask_t *)kmalloc(sizeof(kTask_t)); +00071 if(taskList == 0x0) +00072 kpanic("Unable to create task list"); +00073 +00074 taskList->id = nextID++; +00075 +00076 /* Print out information on scheduler */ +00077 kprintf("sched0 - Address: [0x%X]\n", taskList); +00078 +00079 /* Return so we know everything went well */ +00080 return(0x0); +00081 } +00082 00083 -00084 -00085 void sched(){ -00086 uInt32 memAddr = 0x0; -00087 kTask_t *tmpTask = 0x0; -00088 kTask_t *delTask = 0x0; -00089 -00090 if (!spinTryLock(&schedulerSpinLock)) -00091 return; -00092 -00093 tmpTask = _current->next; -00094 //outportByte(0xE9,_current->id + '0'); -00095 schedStart: -00096 -00097 /* Yield the next task from the current prio queue */ -00098 for (;tmpTask != 0x0; tmpTask = tmpTask->next) { -00099 if (tmpTask->state > 0x0) { -00100 _current = tmpTask; -00101 if (_current->state == FORK) -00102 _current->state = READY; -00103 break; -00104 } -00105 else if (tmpTask->state == DEAD) -00106 { -00107 delTask = tmpTask; -00108 tmpTask = tmpTask->next; -00109 sched_deleteTask(delTask->id); -00110 sched_addDelTask(delTask); -00111 goto schedStart; -00112 } -00113 } -00114 -00115 /* Finished all the tasks, restarting the list */ -00116 if (0x0 == tmpTask) { -00117 tmpTask = taskList; -00118 goto schedStart; -00119 } +00084 void sched(){ +00085 uInt32 memAddr = 0x0; +00086 kTask_t *tmpTask = 0x0; +00087 kTask_t *delTask = 0x0; +00088 +00089 if (!spinTryLock(&schedulerSpinLock)) +00090 return; +00091 +00092 tmpTask = _current->next; +00093 //outportByte(0xE9,_current->id + '0'); +00094 schedStart: +00095 +00096 /* Yield the next task from the current prio queue */ +00097 for (;tmpTask != 0x0; tmpTask = tmpTask->next) { +00098 if (tmpTask->state > 0x0) { +00099 _current = tmpTask; +00100 if (_current->state == FORK) +00101 _current->state = READY; +00102 break; +00103 } +00104 else if (tmpTask->state == DEAD) +00105 { +00106 delTask = tmpTask; +00107 tmpTask = tmpTask->next; +00108 sched_deleteTask(delTask->id); +00109 sched_addDelTask(delTask); +00110 goto schedStart; +00111 } +00112 } +00113 +00114 /* Finished all the tasks, restarting the list */ +00115 if (0x0 == tmpTask) { +00116 tmpTask = taskList; +00117 goto schedStart; +00118 } +00119 00120 -00121 -00122 if (_current->state > 0x0) { -00123 if (_current->oInfo.v86Task == 0x1) -00124 irqDisable(0x0); -00125 asm("cli"); -00126 memAddr = (uInt32)&(_current->tss); -00127 ubixGDT[4].descriptor.baseLow = (memAddr & 0xFFFF); -00128 ubixGDT[4].descriptor.baseMed = ((memAddr >> 16) & 0xFF); -00129 ubixGDT[4].descriptor.baseHigh = (memAddr >> 24); -00130 ubixGDT[4].descriptor.access = '\x89'; -00131 spinUnlock(&schedulerSpinLock); -00132 asm("sti"); -00133 asm("ljmp $0x20,$0\n"); -00134 } -00135 else -00136 { -00137 spinUnlock(&schedulerSpinLock); -00138 } -00139 -00140 return; -00141 } +00121 if (_current->state > 0x0) { +00122 if (_current->oInfo.v86Task == 0x1) +00123 irqDisable(0x0); +00124 asm("cli"); +00125 memAddr = (uInt32)&(_current->tss); +00126 ubixGDT[4].descriptor.baseLow = (memAddr & 0xFFFF); +00127 ubixGDT[4].descriptor.baseMed = ((memAddr >> 16) & 0xFF); +00128 ubixGDT[4].descriptor.baseHigh = (memAddr >> 24); +00129 ubixGDT[4].descriptor.access = '\x89'; +00130 spinUnlock(&schedulerSpinLock); +00131 asm("sti"); +00132 asm("ljmp $0x20,$0\n"); +00133 } +00134 else +00135 { +00136 spinUnlock(&schedulerSpinLock); +00137 } +00138 +00139 return; +00140 } +00141 00142 -00143 -00144 kTask_t *schedNewTask() { -00145 int i = 0; -00146 kTask_t *tmpTask = (kTask_t *)kmalloc(sizeof(kTask_t)); -00147 struct file *fp = 0x0; -00148 if (tmpTask == 0x0) -00149 kpanic("Error: schedNewTask() - kmalloc failed trying to initialize a new task struct\n"); -00150 -00151 memset(tmpTask,0x0,sizeof(kTask_t)); -00152 /* Filling in tasks attrs */ -00153 tmpTask->usedMath = 0x0; -00154 tmpTask->state = NEW; -00155 -00156 /* HACK */ -00157 for (i=0;i<3;i++) { -00158 fp = kmalloc(sizeof(struct file)); -00159 tmpTask->td.o_files[i] = fp; -00160 fp->f_flag = 0x4; -00161 } -00162 -00163 spinLock(&schedulerSpinLock); -00164 tmpTask->id = nextID++; -00165 tmpTask->next = taskList; -00166 tmpTask->prev = 0x0; -00167 taskList->prev = tmpTask; -00168 taskList = tmpTask; -00169 -00170 spinUnlock(&schedulerSpinLock); -00171 -00172 return(tmpTask); -00173 } +00143 kTask_t *schedNewTask() { +00144 int i = 0; +00145 kTask_t *tmpTask = (kTask_t *)kmalloc(sizeof(kTask_t)); +00146 struct file *fp = 0x0; +00147 if (tmpTask == 0x0) +00148 kpanic("Error: schedNewTask() - kmalloc failed trying to initialize a new task struct\n"); +00149 +00150 memset(tmpTask,0x0,sizeof(kTask_t)); +00151 /* Filling in tasks attrs */ +00152 tmpTask->usedMath = 0x0; +00153 tmpTask->state = NEW; +00154 +00155 /* HACK */ +00156 for (i=0;i<3;i++) { +00157 fp = kmalloc(sizeof(struct file)); +00158 tmpTask->td.o_files[i] = fp; +00159 fp->f_flag = 0x4; +00160 } +00161 +00162 spinLock(&schedulerSpinLock); +00163 tmpTask->id = nextID++; +00164 tmpTask->next = taskList; +00165 tmpTask->prev = 0x0; +00166 taskList->prev = tmpTask; +00167 taskList = tmpTask; +00168 +00169 spinUnlock(&schedulerSpinLock); +00170 +00171 return(tmpTask); +00172 } +00173 00174 -00175 -00176 int sched_deleteTask(pidType id) { -00177 kTask_t *tmpTask = 0x0; -00178 -00179 /* Checking each task from the prio queue */ -00180 for (tmpTask = taskList; tmpTask != 0x0; tmpTask = tmpTask->next) { -00181 if (tmpTask->id == id) { -00182 if (tmpTask->prev != 0x0) -00183 tmpTask->prev->next = tmpTask->next; -00184 if (tmpTask->next != 0x0) -00185 tmpTask->next->prev = tmpTask->prev; -00186 if (taskList == tmpTask) -00187 taskList = tmpTask->next; -00188 -00189 return(0x0); -00190 } -00191 } -00192 return(0x1); -00193 } -00194 -00195 int sched_addDelTask(kTask_t *tmpTask) { -00196 tmpTask->next = delList; -00197 tmpTask->prev = 0x0; -00198 if (delList != 0x0) -00199 delList->prev = tmpTask; -00200 delList = tmpTask; -00201 return(0x0); -00202 } -00203 -00204 kTask_t *sched_getDelTask() { -00205 kTask_t *tmpTask = 0x0; -00206 -00207 if (delList == 0x0) -00208 return(0x0); -00209 -00210 tmpTask = delList; -00211 delList = delList->next; -00212 return(tmpTask); -00213 } +00175 int sched_deleteTask(pidType id) { +00176 kTask_t *tmpTask = 0x0; +00177 +00178 /* Checking each task from the prio queue */ +00179 for (tmpTask = taskList; tmpTask != 0x0; tmpTask = tmpTask->next) { +00180 if (tmpTask->id == id) { +00181 if (tmpTask->prev != 0x0) +00182 tmpTask->prev->next = tmpTask->next; +00183 if (tmpTask->next != 0x0) +00184 tmpTask->next->prev = tmpTask->prev; +00185 if (taskList == tmpTask) +00186 taskList = tmpTask->next; +00187 +00188 return(0x0); +00189 } +00190 } +00191 return(0x1); +00192 } +00193 +00194 int sched_addDelTask(kTask_t *tmpTask) { +00195 tmpTask->next = delList; +00196 tmpTask->prev = 0x0; +00197 if (delList != 0x0) +00198 delList->prev = tmpTask; +00199 delList = tmpTask; +00200 return(0x0); +00201 } +00202 +00203 kTask_t *sched_getDelTask() { +00204 kTask_t *tmpTask = 0x0; +00205 +00206 if (delList == 0x0) +00207 return(0x0); +00208 +00209 tmpTask = delList; +00210 delList = delList->next; +00211 return(tmpTask); +00212 } +00213 00214 -00215 -00216 kTask_t * -00217 schedFindTask(uInt32 id) -00218 { -00219 kTask_t *tmpTask = 0x0; -00220 -00221 for (tmpTask = taskList; tmpTask; tmpTask = tmpTask->next) { -00222 if (tmpTask->id == id) -00223 return(tmpTask); -00224 } -00225 -00226 return(0x0); -00227 } +00215 kTask_t * +00216 schedFindTask(uInt32 id) +00217 { +00218 kTask_t *tmpTask = 0x0; +00219 +00220 for (tmpTask = taskList; tmpTask; tmpTask = tmpTask->next) { +00221 if (tmpTask->id == id) +00222 return(tmpTask); +00223 } +00224 +00225 return(0x0); +00226 } +00227 00228 -00229 -00230 /************************************************************************ -00231 -00232 Function: void schedEndTask() -00233 -00234 Description: This function will end a task -00235 -00236 Notes: -00237 -00238 02/20/2004 - Approved for quality -00239 -00240 ************************************************************************/ -00241 void -00242 schedEndTask(pidType pid) { -00243 endTask(_current->id); -00244 sched_yield(); -00245 } -00246 -00247 /************************************************************************ -00248 -00249 Function: int schedEndTask() -00250 -00251 Description: This function will yield a task -00252 -00253 Notes: -00254 -00255 02/20/2004 - Approved for quality -00256 -00257 ************************************************************************/ -00258 -00259 void -00260 sched_yield() { -00261 sched(); -00262 } -00263 -00264 /* -00265 asm( -00266 ".globl sched_yield \n" -00267 "sched_yield: \n" -00268 " cli \n" -00269 " call sched \n" -00270 ); -00271 */ -00272 -00273 /************************************************************************ -00274 -00275 Function: int sched_setStatus(pidType pid,tState state) -00276 -00277 Description: Change the tasks status -00278 -00279 Notes: -00280 -00281 ************************************************************************/ -00282 int sched_setStatus(pidType pid,tState state) { -00283 kTask_t *tmpTask = schedFindTask(pid); -00284 if (tmpTask == 0x0) -00285 return(0x1); -00286 tmpTask->state = state; -00287 return(0x0); -00288 } -00289 -00290 /*** -00291 END -00292 ***/ -00293 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00229 /************************************************************************ +00230 +00231 Function: void schedEndTask() +00232 +00233 Description: This function will end a task +00234 +00235 Notes: +00236 +00237 02/20/2004 - Approved for quality +00238 +00239 ************************************************************************/ +00240 void +00241 schedEndTask(pidType pid) { +00242 endTask(_current->id); +00243 sched_yield(); +00244 } +00245 +00246 /************************************************************************ +00247 +00248 Function: int schedEndTask() +00249 +00250 Description: This function will yield a task +00251 +00252 Notes: +00253 +00254 02/20/2004 - Approved for quality +00255 +00256 ************************************************************************/ +00257 +00258 void +00259 sched_yield() { +00260 sched(); +00261 } +00262 +00263 /* +00264 asm( +00265 ".globl sched_yield \n" +00266 "sched_yield: \n" +00267 " cli \n" +00268 " call sched \n" +00269 ); +00270 */ +00271 +00272 /************************************************************************ +00273 +00274 Function: int sched_setStatus(pidType pid,tState state) +00275 +00276 Description: Change the tasks status +00277 +00278 Notes: +00279 +00280 ************************************************************************/ +00281 int sched_setStatus(pidType pid,tState state) { +00282 kTask_t *tmpTask = schedFindTask(pid); +00283 if (tmpTask == 0x0) +00284 return(0x1); +00285 tmpTask->state = state; +00286 return(0x0); +00287 } +00288 +00289 /*** +00290 END +00291 ***/ +00292 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sched_8c.html b/doc/html/sched_8c.html index 4973b3f..d8dc216 100644 --- a/doc/html/sched_8c.html +++ b/doc/html/sched_8c.html @@ -36,7 +36,6 @@ #include <ubixos/kpanic.h>
    #include <ubixos/spinlock.h>
    #include <ubixos/endtask.h>
    -#include <ubixos/vitals.h>
    #include <vfs/mount.h>
    #include <lib/kmalloc.h>
    #include <lib/kprintf.h>
    @@ -105,11 +104,11 @@

    -Definition at line 85 of file sched.c. +Definition at line 84 of file sched.c.

    -References _current, DEAD, FORK, taskStruct::id, taskStruct::next, READY, sched_addDelTask(), sched_deleteTask(), schedulerSpinLock, spinTryLock(), and taskStruct::state. +References _current, DEAD, FORK, taskStruct::id, taskStruct::next, READY, sched_addDelTask(), sched_deleteTask(), schedulerSpinLock, spinTryLock(), and taskStruct::state.

    -Referenced by sched_yield(). +Referenced by sched_yield().

    @@ -131,11 +130,11 @@

    -Definition at line 195 of file sched.c. +Definition at line 194 of file sched.c.

    -References delList, taskStruct::next, and taskStruct::prev. +References delList, taskStruct::next, and taskStruct::prev.

    -Referenced by sched(). +Referenced by sched().

    @@ -157,11 +156,11 @@

    -Definition at line 176 of file sched.c. +Definition at line 175 of file sched.c.

    -References taskStruct::id, taskStruct::next, taskStruct::prev, and taskList. +References taskStruct::id, taskStruct::next, taskStruct::prev, and taskList.

    -Referenced by sched(). +Referenced by sched().

    @@ -182,9 +181,9 @@

    -Definition at line 204 of file sched.c. +Definition at line 203 of file sched.c.

    -References delList, and taskStruct::next. +References delList, and taskStruct::next.

    Referenced by systemTask(). @@ -207,9 +206,9 @@

    -Definition at line 70 of file sched.c. +Definition at line 69 of file sched.c.

    -References taskStruct::id, kmalloc(), kpanic(), kprintf(), nextID, and taskList. +References taskStruct::id, kmalloc(), kpanic(), kprintf(), nextID, and taskList.

    @@ -240,9 +239,9 @@

    -Definition at line 282 of file sched.c. +Definition at line 281 of file sched.c.

    -References schedFindTask(), taskStruct::state, and x1. +References schedFindTask(), taskStruct::state, and x1.

    Referenced by endTask(), execFile(), and execThread(). @@ -265,11 +264,11 @@

    -Definition at line 260 of file sched.c. +Definition at line 259 of file sched.c.

    -References sched(). +References sched().

    -Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), endTask(), fork_copyProcess(), schedEndTask(), spinLock(), sysFgetc(), sysSchedYield(), systemTask(), ubthread_cond_timedwait(), and ubthread_cond_wait(). +Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), endTask(), fork_copyProcess(), schedEndTask(), spinLock(), sysFgetc(), sysSchedYield(), systemTask(), ubthread_cond_timedwait(), and ubthread_cond_wait().

    @@ -291,9 +290,9 @@

    -Definition at line 242 of file sched.c. +Definition at line 241 of file sched.c.

    -References _current, endTask(), taskStruct::id, and sched_yield(). +References _current, endTask(), taskStruct::id, and sched_yield().

    @@ -315,11 +314,11 @@

    -Definition at line 217 of file sched.c. +Definition at line 216 of file sched.c.

    -References taskStruct::id, taskStruct::next, and taskList. +References taskStruct::id, taskStruct::next, and taskList.

    -Referenced by sched_setStatus(), sysCheckPid(), systemTask(), and vmmMapFromTask(). +Referenced by sched_setStatus(), sysCheckPid(), systemTask(), and vmmMapFromTask().

    @@ -340,9 +339,9 @@

    -Definition at line 144 of file sched.c. +Definition at line 143 of file sched.c.

    -References file::f_flag, taskStruct::id, kmalloc(), kpanic(), memset(), NEW, taskStruct::next, nextID, thread::o_files, taskStruct::prev, schedulerSpinLock, spinLock(), spinUnlock(), taskStruct::state, taskList, taskStruct::td, and taskStruct::usedMath. +References file::f_flag, taskStruct::id, kmalloc(), kpanic(), memset(), NEW, taskStruct::next, nextID, thread::o_files, taskStruct::prev, schedulerSpinLock, spinLock(), spinUnlock(), taskStruct::state, taskList, taskStruct::td, and taskStruct::usedMath.

    Referenced by biosCall(), execFile(), and execThread(). @@ -362,9 +361,9 @@

    -Definition at line 52 of file sched.c. +Definition at line 51 of file sched.c.

    -Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), biosCall(), endTask(), execFile(), fork_copyProcess(), fstat(), getgid(), getpid(), getuid(), intNull(), kern_sysctl(), kmod_load(), ldEnable(), mathStateRestore(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), schedEndTask(), syscall(), sysChDir(), sysExec(), sysExit(), sysFgetc(), sysFwrite(), sysGetCwd(), sysGetFreePage(), sysGetGid(), sysGetpid(), sysGetUid(), sysMkDir(), sysPasswd(), sysSetGid(), sysSetUid(), ubthread_mutex_lock(), ubthread_mutex_unlock(), ubthread_self(), vmm_pageFault(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). +Referenced by __sysctl(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), biosCall(), endTask(), execFile(), fork_copyProcess(), fstat(), getgid(), getpid(), getuid(), intNull(), kmod_load(), ldEnable(), mathStateRestore(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), schedEndTask(), syscall(), sysChDir(), sysExec(), sysExit(), sysFgetc(), sysFwrite(), sysGetCwd(), sysGetFreePage(), sysGetGid(), sysGetpid(), sysGetUid(), sysMkDir(), sysPasswd(), sysSetGid(), sysSetUid(), ubthread_mutex_lock(), ubthread_mutex_unlock(), ubthread_self(), vmm_pageFault(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask().

    @@ -381,7 +380,7 @@

    -Definition at line 53 of file sched.c. +Definition at line 52 of file sched.c.

    Referenced by mathStateRestore(). @@ -400,9 +399,9 @@

    -Definition at line 49 of file sched.c. +Definition at line 48 of file sched.c.

    -Referenced by sched_addDelTask(), and sched_getDelTask(). +Referenced by sched_addDelTask(), and sched_getDelTask().

    @@ -419,9 +418,9 @@

    -Definition at line 50 of file sched.c. +Definition at line 49 of file sched.c.

    -Referenced by sched_init(), and schedNewTask(). +Referenced by sched_init(), and schedNewTask().

    @@ -438,9 +437,9 @@

    -Definition at line 55 of file sched.c. +Definition at line 54 of file sched.c.

    -Referenced by sched(), and schedNewTask(). +Referenced by sched(), and schedNewTask().

    @@ -457,12 +456,12 @@

    -Definition at line 48 of file sched.c. +Definition at line 47 of file sched.c.

    -Referenced by sched_deleteTask(), sched_init(), schedFindTask(), and schedNewTask(). +Referenced by sched_deleteTask(), sched_init(), schedFindTask(), and schedNewTask().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sched_8h-source.html b/doc/html/sched_8h-source.html index 8d125f6..b43d59d 100644 --- a/doc/html/sched_8h-source.html +++ b/doc/html/sched_8h-source.html @@ -207,7 +207,7 @@ 00175 END 00176 ***/ 00177 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sched_8h.html b/doc/html/sched_8h.html index 0aa1aa9..a2b7696 100644 --- a/doc/html/sched_8h.html +++ b/doc/html/sched_8h.html @@ -164,11 +164,11 @@

    -Definition at line 85 of file sched.c. +Definition at line 84 of file sched.c.

    -References _current, DEAD, FORK, taskStruct::id, taskStruct::next, READY, sched_addDelTask(), sched_deleteTask(), schedulerSpinLock, spinTryLock(), and taskStruct::state. +References _current, DEAD, FORK, taskStruct::id, taskStruct::next, READY, sched_addDelTask(), sched_deleteTask(), schedulerSpinLock, spinTryLock(), and taskStruct::state.

    -Referenced by sched_yield(). +Referenced by sched_yield().

    @@ -190,11 +190,11 @@

    -Definition at line 195 of file sched.c. +Definition at line 194 of file sched.c.

    -References delList, taskStruct::next, and taskStruct::prev. +References delList, taskStruct::next, and taskStruct::prev.

    -Referenced by sched(). +Referenced by sched().

    @@ -216,11 +216,11 @@

    -Definition at line 176 of file sched.c. +Definition at line 175 of file sched.c.

    -References taskStruct::id, taskStruct::next, taskStruct::prev, and taskList. +References taskStruct::id, taskStruct::next, taskStruct::prev, and taskList.

    -Referenced by sched(). +Referenced by sched().

    @@ -241,9 +241,9 @@

    -Definition at line 204 of file sched.c. +Definition at line 203 of file sched.c.

    -References delList, and taskStruct::next. +References delList, and taskStruct::next.

    Referenced by systemTask(). @@ -266,9 +266,9 @@

    -Definition at line 70 of file sched.c. +Definition at line 69 of file sched.c.

    -References taskStruct::id, kmalloc(), kpanic(), kprintf(), nextID, and taskList. +References taskStruct::id, kmalloc(), kpanic(), kprintf(), nextID, and taskList.

    @@ -299,9 +299,9 @@

    -Definition at line 282 of file sched.c. +Definition at line 281 of file sched.c.

    -References schedFindTask(), taskStruct::state, and x1. +References schedFindTask(), taskStruct::state, and x1.

    Referenced by endTask(), execFile(), and execThread(). @@ -324,11 +324,11 @@

    -Definition at line 260 of file sched.c. +Definition at line 259 of file sched.c.

    -References sched(). +References sched().

    -Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), endTask(), fork_copyProcess(), schedEndTask(), spinLock(), sysFgetc(), sysSchedYield(), systemTask(), ubthread_cond_timedwait(), and ubthread_cond_wait(). +Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int2(), _int3(), _int4(), _int5(), _int6(), _int9(), endTask(), fork_copyProcess(), schedEndTask(), spinLock(), sysFgetc(), sysSchedYield(), systemTask(), ubthread_cond_timedwait(), and ubthread_cond_wait().

    @@ -350,9 +350,9 @@

    -Definition at line 242 of file sched.c. +Definition at line 241 of file sched.c.

    -References _current, endTask(), taskStruct::id, and sched_yield(). +References _current, endTask(), taskStruct::id, and sched_yield().

    @@ -374,11 +374,11 @@

    -Definition at line 217 of file sched.c. +Definition at line 216 of file sched.c.

    -References taskStruct::id, taskStruct::next, and taskList. +References taskStruct::id, taskStruct::next, and taskList.

    -Referenced by sched_setStatus(), sysCheckPid(), systemTask(), and vmmMapFromTask(). +Referenced by sched_setStatus(), sysCheckPid(), systemTask(), and vmmMapFromTask().

    @@ -399,9 +399,9 @@

    -Definition at line 144 of file sched.c. +Definition at line 143 of file sched.c.

    -References file::f_flag, taskStruct::id, kmalloc(), kpanic(), memset(), NEW, taskStruct::next, nextID, thread::o_files, taskStruct::prev, schedulerSpinLock, spinLock(), spinUnlock(), taskStruct::state, taskList, taskStruct::td, and taskStruct::usedMath. +References file::f_flag, taskStruct::id, kmalloc(), kpanic(), memset(), NEW, taskStruct::next, nextID, thread::o_files, taskStruct::prev, schedulerSpinLock, spinLock(), spinUnlock(), taskStruct::state, taskList, taskStruct::td, and taskStruct::usedMath.

    Referenced by biosCall(), execFile(), and execThread(). @@ -421,9 +421,9 @@

    -Definition at line 52 of file sched.c. +Definition at line 51 of file sched.c.

    -Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), biosCall(), endTask(), execFile(), fork_copyProcess(), fstat(), getgid(), getpid(), getuid(), intNull(), kern_sysctl(), kmod_load(), ldEnable(), mathStateRestore(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), schedEndTask(), syscall(), sysChDir(), sysExec(), sysExit(), sysFgetc(), sysFwrite(), sysGetCwd(), sysGetFreePage(), sysGetGid(), sysGetpid(), sysGetUid(), sysMkDir(), sysPasswd(), sysSetGid(), sysSetUid(), ubthread_mutex_lock(), ubthread_mutex_unlock(), ubthread_self(), vmm_pageFault(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). +Referenced by __sysctl(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), biosCall(), endTask(), execFile(), fork_copyProcess(), fstat(), getgid(), getpid(), getuid(), intNull(), kmod_load(), ldEnable(), mathStateRestore(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), schedEndTask(), syscall(), sysChDir(), sysExec(), sysExit(), sysFgetc(), sysFwrite(), sysGetCwd(), sysGetFreePage(), sysGetGid(), sysGetpid(), sysGetUid(), sysMkDir(), sysPasswd(), sysSetGid(), sysSetUid(), ubthread_mutex_lock(), ubthread_mutex_unlock(), ubthread_self(), vmm_pageFault(), vmm_remapPage(), vmmGetFreeVirtualPage(), and vmmMapFromTask().

    @@ -440,12 +440,12 @@

    -Definition at line 53 of file sched.c. +Definition at line 52 of file sched.c.

    Referenced by mathStateRestore().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/schedyield_8S-source.html b/doc/html/schedyield_8S-source.html index 1dd435a..fe416b6 100644 --- a/doc/html/schedyield_8S-source.html +++ b/doc/html/schedyield_8S-source.html @@ -82,7 +82,7 @@ 00050 /*** 00051 END 00052 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/schedyield_8S.html b/doc/html/schedyield_8S.html index 7d7adef..8f6c338 100644 --- a/doc/html/schedyield_8S.html +++ b/doc/html/schedyield_8S.html @@ -59,7 +59,7 @@ Definition at line 41 of file schedyield.S.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sde_8h-source.html b/doc/html/sde_8h-source.html index 5842eed..21efdf8 100644 --- a/doc/html/sde_8h-source.html +++ b/doc/html/sde_8h-source.html @@ -85,7 +85,7 @@ 00053 00054 #endif 00055 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sde_8h.html b/doc/html/sde_8h.html index c7c8681..2934790 100644 --- a/doc/html/sde_8h.html +++ b/doc/html/sde_8h.html @@ -192,7 +192,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/search.idx b/doc/html/search.idx new file mode 100644 index 0000000..ba0e983 --- /dev/null +++ b/doc/html/search.idx Binary files differ diff --git a/doc/html/search.php b/doc/html/search.php new file mode 100644 index 0000000..63eb764 --- /dev/null +++ b/doc/html/search.php @@ -0,0 +1,383 @@ + + +Search + + + + +
    int pipe ( struct thread, td,
    struct pipe_args  uap 
    + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
    \n \n

  • \n \n\n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

    ".search_results()."

    ".matches_text(0)."
    ".matches_text($numDocs); + echo "\n"; + echo "
    $num.".$doc["name"]."
    ".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
    \n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
    \n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
    \n"; + fclose($file); +} + +main(); + + +?> +
    Generated on Tue Dec 5 09:28:14 2006 for UbixOS V2 by  + +doxygen 1.4.7
    + + diff --git a/doc/html/sem_8c-source.html b/doc/html/sem_8c-source.html index 5335d25..ff2b3c3 100644 --- a/doc/html/sem_8c-source.html +++ b/doc/html/sem_8c-source.html @@ -65,7 +65,7 @@ 00033 END 00034 ***/ 00035 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sem_8c.html b/doc/html/sem_8c.html index d9be258..e9fa0df 100644 --- a/doc/html/sem_8c.html +++ b/doc/html/sem_8c.html @@ -38,7 +38,7 @@ Go to the source code of this file.
    -
    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sem_8h-source.html b/doc/html/sem_8h-source.html index 25d3364..b38b4c7 100644 --- a/doc/html/sem_8h-source.html +++ b/doc/html/sem_8h-source.html @@ -81,7 +81,7 @@ 00049 END 00050 ***/ 00051 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sem_8h.html b/doc/html/sem_8h.html index 07e17ab..5e9411a 100644 --- a/doc/html/sem_8h.html +++ b/doc/html/sem_8h.html @@ -37,7 +37,7 @@ Go to the source code of this file.
    -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/setpageattributes_8c-source.html b/doc/html/setpageattributes_8c-source.html index f045501..150e480 100644 --- a/doc/html/setpageattributes_8c-source.html +++ b/doc/html/setpageattributes_8c-source.html @@ -131,7 +131,7 @@ 00099 END 00100 ***/ 00101 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/setpageattributes_8c.html b/doc/html/setpageattributes_8c.html index a1bb533..dd5a74e 100644 --- a/doc/html/setpageattributes_8c.html +++ b/doc/html/setpageattributes_8c.html @@ -78,7 +78,7 @@ Referenced by execFile(), and sysExec().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/shell_8c-source.html b/doc/html/shell_8c-source.html index 5b3ca3e..f476ab1 100644 --- a/doc/html/shell_8c-source.html +++ b/doc/html/shell_8c-source.html @@ -151,7 +151,7 @@ 00119 END 00120 ***/ 00121 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/shell_8c.html b/doc/html/shell_8c.html index 9577b60..cb34367 100644 --- a/doc/html/shell_8c.html +++ b/doc/html/shell_8c.html @@ -233,7 +233,7 @@

    Definition at line 58 of file shell.c.

    -References NETCONN_NOCOPY, netconn_write(), and strlen(). +References NETCONN_NOCOPY, netconn_write(), and strlen().

    Referenced by prompt(), and shell_main(). @@ -311,7 +311,7 @@

    Definition at line 94 of file shell.c.

    -References buffer, kmalloc(), kprintf(), netconn_accept(), netconn_bind(), netconn_listen(), netconn_new(), NETCONN_TCP, NULL, and shell_main(). +References buffer, kmalloc(), kprintf(), netconn_accept(), netconn_bind(), netconn_listen(), netconn_new(), NETCONN_TCP, NULL, and shell_main().

    Referenced by shell_init(). @@ -336,7 +336,7 @@ Referenced by readUbixFS(), shell_main(), shell_thread(), sys_write(), and udpecho_thread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/shell_8h-source.html b/doc/html/shell_8h-source.html index 2472f84..51ccac1 100644 --- a/doc/html/shell_8h-source.html +++ b/doc/html/shell_8h-source.html @@ -70,7 +70,7 @@ 00038 void shell_init(void); 00039 00040 #endif /* __SHELL_H__ */ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/shell_8h.html b/doc/html/shell_8h.html index 6c304e7..5b15457 100644 --- a/doc/html/shell_8h.html +++ b/doc/html/shell_8h.html @@ -67,7 +67,7 @@ Referenced by netMainThread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/signal_8h-source.html b/doc/html/signal_8h-source.html index 4b34412..76de77c 100644 --- a/doc/html/signal_8h-source.html +++ b/doc/html/signal_8h-source.html @@ -30,19 +30,60 @@ -

    signal.h

    Go to the documentation of this file.
    00001 #define _SIG_WORDS      4
    -00002 #define _SIG_MAXSIG     128
    -00003 #define _SIG_IDX(sig)   ((sig) - 1)
    -00004 #define _SIG_WORD(sig)  (_SIG_IDX(sig) >> 5)
    -00005 #define _SIG_BIT(sig)   (1 << (_SIG_IDX(sig) & 31))
    -00006 #define _SIG_VALID(sig) ((sig) <= _SIG_MAXSIG && (sig) > 0)
    -00007 
    -00008 typedef struct __sigset {
    -00009         __uint32_t __bits[_SIG_WORDS];
    -00010   } __sigset_t;
    -00011 
    -00012 typedef __sigset_t sigset_t;
    -

    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +

    signal.h

    Go to the documentation of this file.
    00001 /*****************************************************************************************
    +00002  Copyright (c) 2002-2004 The UbixOS Project
    +00003  All rights reserved.
    +00004 
    +00005  Redistribution and use in source and binary forms, with or without modification, are
    +00006  permitted provided that the following conditions are met:
    +00007 
    +00008  Redistributions of source code must retain the above copyright notice, this list of
    +00009  conditions, the following disclaimer and the list of authors.  Redistributions in binary
    +00010  form must reproduce the above copyright notice, this list of conditions, the following
    +00011  disclaimer and the list of authors in the documentation and/or other materials provided
    +00012  with the distribution. Neither the name of the UbixOS Project nor the names of its
    +00013  contributors may be used to endorse or promote products derived from this software
    +00014  without specific prior written permission.
    +00015 
    +00016  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
    +00017  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    +00018  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
    +00019  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +00020  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
    +00021  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    +00022  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
    +00023  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    +00024  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +00025 
    +00026  $Id$
    +00027 
    +00028 *****************************************************************************************/
    +00029 
    +00030 #ifndef _SIGNAL_H
    +00031 #define _SIGNALL_H
    +00032 
    +00033 #include <ubixos/types.h>
    +00034 
    +00035 #define _SIG_WORDS      4
    +00036 #define _SIG_MAXSIG     128
    +00037 #define _SIG_IDX(sig)   ((sig) - 1)
    +00038 #define _SIG_WORD(sig)  (_SIG_IDX(sig) >> 5)
    +00039 #define _SIG_BIT(sig)   (1 << (_SIG_IDX(sig) & 31))
    +00040 #define _SIG_VALID(sig) ((sig) <= _SIG_MAXSIG && (sig) > 0)
    +00041 
    +00042 typedef struct __sigset {
    +00043         __uint32_t __bits[_SIG_WORDS];
    +00044   } __sigset_t;
    +00045 
    +00046 typedef __sigset_t sigset_t;
    +00047 
    +00048 #endif
    +00049 
    +00050 /***
    +00051  END
    +00052  ***/
    +00053 
    +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/signal_8h.html b/doc/html/signal_8h.html index 5545b19..d698b4a 100644 --- a/doc/html/signal_8h.html +++ b/doc/html/signal_8h.html @@ -32,6 +32,7 @@ src » sys » include » sys

    signal.h File Reference

    +#include <ubixos/types.h>

    Go to the source code of this file. @@ -52,6 +53,8 @@ + + @@ -78,7 +81,7 @@

    -Definition at line 5 of file signal.h. +Definition at line 39 of file signal.h.

    @@ -100,7 +103,7 @@

    -Definition at line 3 of file signal.h. +Definition at line 37 of file signal.h.

    @@ -117,7 +120,7 @@

    -Definition at line 2 of file signal.h. +Definition at line 36 of file signal.h.

    @@ -139,7 +142,7 @@

    -Definition at line 6 of file signal.h. +Definition at line 40 of file signal.h.

    @@ -161,7 +164,7 @@

    -Definition at line 4 of file signal.h. +Definition at line 38 of file signal.h.

    @@ -178,7 +181,24 @@

    -Definition at line 1 of file signal.h. +Definition at line 35 of file signal.h. + +

    + +

    +
    +
    #define _SIG_WORDS   4
    #define _SIGNALL_H

    Typedefs

    typedef __sigset __sigset_t
    + + + +
    #define _SIGNALL_H
    + +

    + +

    + +

    +Definition at line 31 of file signal.h.


    Typedef Documentation

    @@ -211,10 +231,10 @@

    -Definition at line 12 of file signal.h. +Definition at line 46 of file signal.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/smp_8c-source.html b/doc/html/smp_8c-source.html index d983d58..1c621e5 100644 --- a/doc/html/smp_8c-source.html +++ b/doc/html/smp_8c-source.html @@ -321,7 +321,7 @@ 00289 END 00290 ***/ 00291 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/smp_8c.html b/doc/html/smp_8c.html index ed75c30..3b3cdc6 100644 --- a/doc/html/smp_8c.html +++ b/doc/html/smp_8c.html @@ -162,7 +162,7 @@

    Definition at line 234 of file smp.c.

    -References ap_trampoline_end(), ap_trampoline_start, apicRead(), apicWrite(), kprintf(), and memcpy(). +References ap_trampoline_end(), ap_trampoline_start, apicRead(), apicWrite(), kprintf(), and memcpy().

    Referenced by smpInit(). @@ -741,7 +741,7 @@ Referenced by cpu0_thread(), cpu1_thread(), cpu2_thread(), and cpu3_thread().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/smp_8h-source.html b/doc/html/smp_8h-source.html index 9e8bd32..2a48acb 100644 --- a/doc/html/smp_8h-source.html +++ b/doc/html/smp_8h-source.html @@ -103,7 +103,7 @@ 00071 00072 END 00073 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/smp_8h.html b/doc/html/smp_8h.html index 0a614f5..1e3ce0c 100644 --- a/doc/html/smp_8h.html +++ b/doc/html/smp_8h.html @@ -77,7 +77,7 @@

    Definition at line 234 of file smp.c.

    -References ap_trampoline_end(), ap_trampoline_start, apicRead(), apicWrite(), kprintf(), and memcpy(). +References ap_trampoline_end(), ap_trampoline_start, apicRead(), apicWrite(), kprintf(), and memcpy().

    Referenced by smpInit(). @@ -233,7 +233,7 @@ References apicMagic(), cpuidDetect(), cpuInfo(), GDT_fixer(), initSpinLock, spinLock(), and spinUnlock().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sockets_8c-source.html b/doc/html/sockets_8c-source.html index b754f07..81b3fc3 100644 --- a/doc/html/sockets_8c-source.html +++ b/doc/html/sockets_8c-source.html @@ -476,7 +476,7 @@ 00444 return size; 00445 } 00446 /*-----------------------------------------------------------------------------------*/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sockets_8c.html b/doc/html/sockets_8c.html index 99f9abd..5ba30a5 100644 --- a/doc/html/sockets_8c.html +++ b/doc/html/sockets_8c.html @@ -673,7 +673,7 @@ Referenced by alloc_socket(), and get_socket().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sockets_8h-source.html b/doc/html/sockets_8h-source.html index 207a246..2f7916b 100644 --- a/doc/html/sockets_8h-source.html +++ b/doc/html/sockets_8h-source.html @@ -134,7 +134,7 @@ 00102 00103 #endif /* __LWIP_SOCKETS_H__ */ 00104 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sockets_8h.html b/doc/html/sockets_8h.html index f3ec75e..f3cbcdf 100644 --- a/doc/html/sockets_8h.html +++ b/doc/html/sockets_8h.html @@ -730,7 +730,7 @@ References lwip_socket::conn, DEBUGF, ERR_ARG, ERR_OK, get_socket(), lwip_send(), NETCONN_COPY, NETCONN_TCP, netconn_type(), NETCONN_UDP, netconn_write(), NULL, and SOCKETS_DEBUG.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/spinlock_8c-source.html b/doc/html/spinlock_8c-source.html index 4a85e06..36f111f 100644 --- a/doc/html/spinlock_8c-source.html +++ b/doc/html/spinlock_8c-source.html @@ -108,7 +108,7 @@ 00076 END 00077 ***/ 00078 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/spinlock_8c.html b/doc/html/spinlock_8c.html index 5fd927d..d6e30bb 100644 --- a/doc/html/spinlock_8c.html +++ b/doc/html/spinlock_8c.html @@ -74,9 +74,9 @@

    Definition at line 56 of file spinlock.c.

    -References sched_yield(), and spinTryLock(). +References sched_yield(), and spinTryLock().

    -Referenced by __sysctl(), adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    @@ -172,7 +172,7 @@

    Definition at line 48 of file spinlock.c.

    -Referenced by keyboardHandler(), sched(), spinLock(), and spinLock_scheduler(). +Referenced by keyboardHandler(), sched(), spinLock(), and spinLock_scheduler().

    @@ -196,10 +196,10 @@

    Definition at line 37 of file spinlock.c.

    -Referenced by __sysctl(), adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), keyboardHandler(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), keyboardHandler(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/spinlock_8h-source.html b/doc/html/spinlock_8h-source.html index 1cfb0eb..0709b8c 100644 --- a/doc/html/spinlock_8h-source.html +++ b/doc/html/spinlock_8h-source.html @@ -85,7 +85,7 @@ 00053 END 00054 ***/ 00055 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/spinlock_8h.html b/doc/html/spinlock_8h.html index 7037155..667fdaf 100644 --- a/doc/html/spinlock_8h.html +++ b/doc/html/spinlock_8h.html @@ -120,9 +120,9 @@

    Definition at line 56 of file spinlock.c.

    -References sched_yield(), and spinTryLock(). +References sched_yield(), and spinTryLock().

    -Referenced by __sysctl(), adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    @@ -218,7 +218,7 @@

    Definition at line 48 of file spinlock.c.

    -Referenced by keyboardHandler(), sched(), spinLock(), and spinLock_scheduler(). +Referenced by keyboardHandler(), sched(), spinLock(), and spinLock_scheduler().

    @@ -242,7 +242,7 @@

    Definition at line 37 of file spinlock.c.

    -Referenced by __sysctl(), adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), keyboardHandler(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage(). +Referenced by adjustCowCounter(), cpuInfo(), current_thread(), devfs_makeNode(), devfs_open(), device_add(), device_find(), device_remove(), fclose(), fdcRead(), fopen(), freePage(), getEmptyDesc(), kernel_function(), keyboardHandler(), kfree(), kmalloc(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), mpi_spam(), ne2kAllocBuffer(), schedNewTask(), smpInit(), sys_thread_new(), tty_print(), ubixfs_cacheAdd(), ubixfs_cacheFind(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_remapPage(), vmmCopyVirtualSpace(), vmmFindFreePage(), vmmFreeProcessPages(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().


    Variable Documentation

    @@ -261,11 +261,9 @@

    Definition at line 39 of file syscall_new.c. -

    -Referenced by __sysctl().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sqrt_8c-source.html b/doc/html/sqrt_8c-source.html index 5bb3e9b..12e6d8b 100644 --- a/doc/html/sqrt_8c-source.html +++ b/doc/html/sqrt_8c-source.html @@ -86,7 +86,7 @@ 00054 END 00055 ***/ 00056 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sqrt_8c.html b/doc/html/sqrt_8c.html index 5e0ae2d..0aa75c5 100644 --- a/doc/html/sqrt_8c.html +++ b/doc/html/sqrt_8c.html @@ -63,7 +63,7 @@ Definition at line 30 of file sqrt.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/start_8S-source.html b/doc/html/start_8S-source.html index d435a2e..b0f167b 100644 --- a/doc/html/start_8S-source.html +++ b/doc/html/start_8S-source.html @@ -105,7 +105,7 @@ 00073 /*** 00074 END 00075 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/start_8S.html b/doc/html/start_8S.html index 6ceadaf..8c955f2 100644 --- a/doc/html/start_8S.html +++ b/doc/html/start_8S.html @@ -537,10 +537,10 @@

    Definition at line 51 of file start.S.

    -Referenced by biosCall(), kmain(), and ubthread_create(). +Referenced by biosCall(), kmain(), and ubthread_create().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/static_8c-source.html b/doc/html/static_8c-source.html index 030109e..6b2e0be 100644 --- a/doc/html/static_8c-source.html +++ b/doc/html/static_8c-source.html @@ -80,7 +80,7 @@ 00048 /*** 00049 END 00050 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/static_8c.html b/doc/html/static_8c.html index 4973a9a..b8b9d80 100644 --- a/doc/html/static_8c.html +++ b/doc/html/static_8c.html @@ -64,7 +64,7 @@ Definition at line 32 of file static.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/static_8h-source.html b/doc/html/static_8h-source.html index bc7eec0..3b7192d 100644 --- a/doc/html/static_8h-source.html +++ b/doc/html/static_8h-source.html @@ -36,7 +36,7 @@ 00004 int static_constructors(void); 00005 00006 #endif -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/static_8h.html b/doc/html/static_8h.html index be2f01f..bc66aa7 100644 --- a/doc/html/static_8h.html +++ b/doc/html/static_8h.html @@ -63,7 +63,7 @@ Definition at line 32 of file static.c.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/stats_8h-source.html b/doc/html/stats_8h-source.html index fdb7069..bc75fcf 100644 --- a/doc/html/stats_8h-source.html +++ b/doc/html/stats_8h-source.html @@ -142,7 +142,7 @@ 00110 00111 00112 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/stats_8h.html b/doc/html/stats_8h.html index 7805238..2c23dde 100644 --- a/doc/html/stats_8h.html +++ b/doc/html/stats_8h.html @@ -64,7 +64,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/stdarg_8h-source.html b/doc/html/stdarg_8h-source.html index 6d68b4e..2fc6258 100644 --- a/doc/html/stdarg_8h-source.html +++ b/doc/html/stdarg_8h-source.html @@ -96,7 +96,7 @@ 00064 00065 END 00066 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/stdarg_8h.html b/doc/html/stdarg_8h.html index ac7fe0d..22e04e3 100644 --- a/doc/html/stdarg_8h.html +++ b/doc/html/stdarg_8h.html @@ -190,12 +190,12 @@

    Definition at line 139 of file vsprintf.c.

    -References is_digit, LEFT, number(), PLUS, SIGN, skip_atoi(), SMALL, SPACE, SPECIAL, strlen(), vaArg, and ZEROPAD. +References is_digit, LEFT, number(), PLUS, SIGN, skip_atoi(), SMALL, SPACE, SPECIAL, strlen(), vaArg, and ZEROPAD.

    Referenced by kpanic(), kprintf(), and sprintf().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/string_8c-source.html b/doc/html/string_8c-source.html index 291b349..da911d5 100644 --- a/doc/html/string_8c-source.html +++ b/doc/html/string_8c-source.html @@ -99,130 +99,137 @@ 00067 00068 00069 -00070 void *memcpy(const void *dst, const void * src, size_t length) { -00071 size_t x = length >> 2; -00072 size_t y = length & 0xf; +00070 void *memcpyold(const void *dst, const void * src, size_t length) { +00071 //size_t x = length >> 2; +00072 //size_t y = length;// & 0xf; 00073 size_t i; -00074 -00075 for (i = 0; i < x; i++) { -00076 ((unsigned long *)dst)[i] = ((unsigned long *)src)[i]; -00077 } -00078 -00079 for (i = 0; i < y; i++) { -00080 ((char *) dst)[length-y+i] = ((char *) src)[length-y+i]; -00081 } -00082 -00083 return((void *)dst); -00084 } -00085 +00074 /* +00075 for (i = 0; i < x; i++) { +00076 ((unsigned long *)dst)[i] = ((unsigned long *)src)[i]; +00077 } +00078 */ +00079 /* +00080 for (i = 0; i < y; i++) { +00081 ((char *) dst)[length-y+i] = ((char *) src)[length-y+i]; +00082 } +00083 */ +00084 for (i = 0x0;i < length;i++) +00085 ((char *)dst)[i] = ((char *)src)[i]; 00086 -00087 int strlen(const char * string) { -00088 int i = 0; +00087 return((void *)dst); +00088 } 00089 -00090 while (1) { -00091 if (string[i] == '\0') -00092 return i; -00093 i++; -00094 } -00095 return 0; -00096 } -00097 -00098 int memcmp(const void * dst, const void * src, size_t length) -00099 { -00100 size_t x = length >> 2; -00101 size_t y = length & 0xf; -00102 size_t i; -00103 -00104 for (i = 0; i < x; i++) -00105 { -00106 if (((unsigned long *)dst)[i] > ((unsigned long *)src)[i]) -00107 return 1; -00108 if (((unsigned long *)dst)[i] < ((unsigned long *)src)[i]) -00109 return -1; -00110 } -00111 -00112 for (i = 0; i < y; i++) -00113 { -00114 if (((char *) dst)[length-y+i] > ((char *) src)[length-y+i]) -00115 return 1; -00116 if (((char *) dst)[length-y+i] < ((char *) src)[length-y+i]) -00117 return -1; -00118 } -00119 -00120 return 0; -00121 } -00122 -00123 void strncpy(char * dest, const char * src, size_t size) -00124 { -00125 if (size == 0) -00126 return; -00127 do -00128 { -00129 *dest = *src; -00130 dest++; src++; -00131 size--; -00132 } -00133 while(('\0' != *(src-1)) && (size)); -00134 } -00135 -00136 char *strstr(const char *s,char *find) { -00137 char c, sc; -00138 size_t len; +00090 +00091 int strlen(const char * string) { +00092 int i = 0; +00093 +00094 while (1) { +00095 if (string[i] == '\0') +00096 return i; +00097 i++; +00098 } +00099 return 0; +00100 } +00101 +00102 int memcmp(const void * dst, const void * src, size_t length) +00103 { +00104 size_t x = length >> 2; +00105 size_t y = length & 0xf; +00106 size_t i; +00107 +00108 for (i = 0; i < x; i++) +00109 { +00110 if (((unsigned long *)dst)[i] > ((unsigned long *)src)[i]) +00111 return 1; +00112 if (((unsigned long *)dst)[i] < ((unsigned long *)src)[i]) +00113 return -1; +00114 } +00115 +00116 for (i = 0; i < y; i++) +00117 { +00118 if (((char *) dst)[length-y+i] > ((char *) src)[length-y+i]) +00119 return 1; +00120 if (((char *) dst)[length-y+i] < ((char *) src)[length-y+i]) +00121 return -1; +00122 } +00123 +00124 return 0; +00125 } +00126 +00127 void strncpy(char * dest, const char * src, size_t size) +00128 { +00129 if (size == 0) +00130 return; +00131 do +00132 { +00133 *dest = *src; +00134 dest++; src++; +00135 size--; +00136 } +00137 while(('\0' != *(src-1)) && (size)); +00138 } 00139 -00140 if ((c = *find++) != 0) { -00141 len = strlen(find); -00142 do { -00143 do { -00144 if ((sc = *s++) == 0) -00145 return (NULL); -00146 } while (sc != c); -00147 } while (strncmp(s, find, len) != 0); -00148 s--; -00149 } -00150 return ((char *)s); -00151 } -00152 -00153 -00154 /*** -00155 $Log$ -00156 Revision 1.1.1.1 2006/06/01 12:46:16 reddawg -00157 ubix2 -00158 -00159 Revision 1.2 2005/10/12 00:13:37 reddawg -00160 Removed -00161 -00162 Revision 1.1.1.1 2005/09/26 17:24:13 reddawg -00163 no message -00164 -00165 Revision 1.6 2004/07/28 15:05:43 reddawg -00166 Major: -00167 Pages now have strict security enforcement. -00168 Many null dereferences have been resolved. -00169 When apps loaded permissions set for pages rw and ro -00170 -00171 Revision 1.5 2004/07/20 18:42:41 flameshadow -00172 add: strcpy() -00173 chg: modified dirCache.c to use strcpy() -00174 -00175 Revision 1.4 2004/07/05 23:06:32 reddawg -00176 Fixens +00140 char *strstr(const char *s,char *find) { +00141 char c, sc; +00142 size_t len; +00143 +00144 if ((c = *find++) != 0) { +00145 len = strlen(find); +00146 do { +00147 do { +00148 if ((sc = *s++) == 0) +00149 return (NULL); +00150 } while (sc != c); +00151 } while (strncmp(s, find, len) != 0); +00152 s--; +00153 } +00154 return ((char *)s); +00155 } +00156 +00157 +00158 /*** +00159 $Log$ +00160 Revision 1.2 2006/12/05 14:10:21 reddawg +00161 Workign Distro +00162 +00163 Revision 1.1.1.1 2006/06/01 12:46:16 reddawg +00164 ubix2 +00165 +00166 Revision 1.2 2005/10/12 00:13:37 reddawg +00167 Removed +00168 +00169 Revision 1.1.1.1 2005/09/26 17:24:13 reddawg +00170 no message +00171 +00172 Revision 1.6 2004/07/28 15:05:43 reddawg +00173 Major: +00174 Pages now have strict security enforcement. +00175 Many null dereferences have been resolved. +00176 When apps loaded permissions set for pages rw and ro 00177 -00178 Revision 1.3 2004/06/28 23:12:58 reddawg -00179 file format now container:/path/to/file -00180 -00181 Revision 1.2 2004/05/19 14:40:58 reddawg -00182 Cleaned up some warning from leaving out typedefs -00183 -00184 Revision 1.1.1.1 2004/04/15 12:07:11 reddawg -00185 UbixOS v1.0 -00186 -00187 Revision 1.5 2004/04/13 16:36:33 reddawg -00188 Changed our copyright, it is all now under a BSD-Style license -00189 -00190 END -00191 ***/ -00192 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00178 Revision 1.5 2004/07/20 18:42:41 flameshadow +00179 add: strcpy() +00180 chg: modified dirCache.c to use strcpy() +00181 +00182 Revision 1.4 2004/07/05 23:06:32 reddawg +00183 Fixens +00184 +00185 Revision 1.3 2004/06/28 23:12:58 reddawg +00186 file format now container:/path/to/file +00187 +00188 Revision 1.2 2004/05/19 14:40:58 reddawg +00189 Cleaned up some warning from leaving out typedefs +00190 +00191 Revision 1.1.1.1 2004/04/15 12:07:11 reddawg +00192 UbixOS v1.0 +00193 +00194 Revision 1.5 2004/04/13 16:36:33 reddawg +00195 Changed our copyright, it is all now under a BSD-Style license +00196 +00197 END +00198 ***/ +00199 +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/string_8c.html b/doc/html/string_8c.html index bc5d997..44ef7f9 100644 --- a/doc/html/string_8c.html +++ b/doc/html/string_8c.html @@ -40,7 +40,7 @@

    Functions

    int memcmp (const void *dst, const void *src, size_t length) -void * memcpy (const void *dst, const void *src, size_t length) +void * memcpyold (const void *dst, const void *src, size_t length) int strcmp (const char *str1, const char *str2) @@ -90,15 +90,15 @@

    -Definition at line 98 of file string.c. +Definition at line 102 of file string.c.

    - +

    - + @@ -213,7 +213,7 @@

    -Definition at line 87 of file string.c. +Definition at line 91 of file string.c.

    @@ -287,7 +287,7 @@

    -Definition at line 123 of file string.c. +Definition at line 127 of file string.c.

    Referenced by bTree::bTree(), bTree::Insert(), bTree::insertNode(), UbixFS::mknod(), bTree::splitNode(), and UbixFS::vfs_mkdir(). @@ -320,14 +320,14 @@

    -Definition at line 136 of file string.c. +Definition at line 140 of file string.c.

    -References NULL, strlen(), and strncmp(). +References NULL, strlen(), and strncmp().

    Referenced by fopen(), sysChDir(), and sysMkDir().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/string_8h-source.html b/doc/html/string_8h-source.html index ed30bee..9719c04 100644 --- a/doc/html/string_8h-source.html +++ b/doc/html/string_8h-source.html @@ -113,7 +113,7 @@ 00081 00082 END 00083 ***/ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/string_8h.html b/doc/html/string_8h.html index 9352c7b..fd9ef03 100644 --- a/doc/html/string_8h.html +++ b/doc/html/string_8h.html @@ -123,7 +123,7 @@

    Definition at line 37 of file memset.c.

    -References VAL, WIDEVAL, wmask, and wsize. +References VAL, WIDEVAL, wmask, and wsize.

    @@ -215,7 +215,7 @@

    -Definition at line 87 of file string.c. +Definition at line 91 of file string.c.

    @@ -259,7 +259,7 @@ Referenced by inet_aton().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/strtok_8c-source.html b/doc/html/strtok_8c-source.html index 3184a19..a0c84b5 100644 --- a/doc/html/strtok_8c-source.html +++ b/doc/html/strtok_8c-source.html @@ -132,7 +132,7 @@ 00100 ***/ 00101 00102 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/strtok_8c.html b/doc/html/strtok_8c.html index a0965f8..ea3e091 100644 --- a/doc/html/strtok_8c.html +++ b/doc/html/strtok_8c.html @@ -121,7 +121,7 @@ Referenced by strtok().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/strtol_8c-source.html b/doc/html/strtol_8c-source.html index ca554a7..5c0cbe0 100644 --- a/doc/html/strtol_8c-source.html +++ b/doc/html/strtol_8c-source.html @@ -133,7 +133,7 @@ 00101 *endptr = (char *)(any ? s - 1 : nptr); 00102 return (acc); 00103 } -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/strtol_8c.html b/doc/html/strtol_8c.html index 6f58eec..30766f9 100644 --- a/doc/html/strtol_8c.html +++ b/doc/html/strtol_8c.html @@ -127,7 +127,7 @@ Referenced by inet_aton().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structDrvGeom.html b/doc/html/structDrvGeom.html index 31a1aa9..5149605 100644 --- a/doc/html/structDrvGeom.html +++ b/doc/html/structDrvGeom.html @@ -105,7 +105,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/isa/fdc.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structTMode__Rec.html b/doc/html/structTMode__Rec.html index 9c903f3..12e2fab 100644 --- a/doc/html/structTMode__Rec.html +++ b/doc/html/structTMode__Rec.html @@ -770,7 +770,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structTVESA__Rec.html b/doc/html/structTVESA__Rec.html index f9bd0cf..b0391c7 100644 --- a/doc/html/structTVESA__Rec.html +++ b/doc/html/structTVESA__Rec.html @@ -308,7 +308,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/struct__UbixUser.html b/doc/html/struct__UbixUser.html index b11b146..f2fd605 100644 --- a/doc/html/struct__UbixUser.html +++ b/doc/html/struct__UbixUser.html @@ -35,7 +35,7 @@

    -Definition at line 89 of file syscall.c.

    void* memcpy void* memcpyold ( const void *  dst,
    +Definition at line 90 of file syscall.c.
    @@ -66,9 +66,9 @@

    -Definition at line 94 of file syscall.c. +Definition at line 95 of file syscall.c.

    -Referenced by sysAuth(). +Referenced by sysAuth().

    @@ -85,7 +85,7 @@

    -Definition at line 95 of file syscall.c. +Definition at line 96 of file syscall.c.

    @@ -102,9 +102,9 @@

    -Definition at line 92 of file syscall.c. +Definition at line 93 of file syscall.c.

    -Referenced by sysAuth(). +Referenced by sysAuth().

    @@ -121,7 +121,7 @@

    -Definition at line 96 of file syscall.c. +Definition at line 97 of file syscall.c.

    @@ -138,9 +138,9 @@

    -Definition at line 93 of file syscall.c. +Definition at line 94 of file syscall.c.

    -Referenced by sysAuth(). +Referenced by sysAuth().

    @@ -157,14 +157,14 @@

    -Definition at line 91 of file syscall.c. +Definition at line 92 of file syscall.c.

    -Referenced by sysAuth(). +Referenced by sysAuth().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/struct____sigset.html b/doc/html/struct____sigset.html index f8dcf95..8da0451 100644 --- a/doc/html/struct____sigset.html +++ b/doc/html/struct____sigset.html @@ -37,7 +37,7 @@

    -Definition at line 8 of file signal.h.


    Data Fields

    int gid
    +Definition at line 42 of file signal.h.
    @@ -58,12 +58,12 @@

    -Definition at line 9 of file signal.h. +Definition at line 43 of file signal.h.


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/struct____timespec.html b/doc/html/struct____timespec.html index 68bbefb..87f82c1 100644 --- a/doc/html/struct____timespec.html +++ b/doc/html/struct____timespec.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/struct__item__t.html b/doc/html/struct__item__t.html index fc16315..fe23534 100644 --- a/doc/html/struct__item__t.html +++ b/doc/html/struct__item__t.html @@ -103,7 +103,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/struct__list__t.html b/doc/html/struct__list__t.html index 5fdc49f..283c988 100644 --- a/doc/html/struct__list__t.html +++ b/doc/html/struct__list__t.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structapi__msg.html b/doc/html/structapi__msg.html index f28889c..b4fa0de 100644 --- a/doc/html/structapi__msg.html +++ b/doc/html/structapi__msg.html @@ -86,7 +86,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structapi__msg__msg.html b/doc/html/structapi__msg__msg.html index 32a6c84..87cd70d 100644 --- a/doc/html/structapi__msg__msg.html +++ b/doc/html/structapi__msg__msg.html @@ -286,7 +286,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structarp__entry.html b/doc/html/structarp__entry.html index 537b86b..55bbfba 100644 --- a/doc/html/structarp__entry.html +++ b/doc/html/structarp__entry.html @@ -105,7 +105,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structarp__hdr.html b/doc/html/structarp__hdr.html index b1ea7ac..af1d53b 100644 --- a/doc/html/structarp__hdr.html +++ b/doc/html/structarp__hdr.html @@ -240,7 +240,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structarpcom.html b/doc/html/structarpcom.html index cbd56e0..0653111 100644 --- a/doc/html/structarpcom.html +++ b/doc/html/structarpcom.html @@ -103,7 +103,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbNode.html b/doc/html/structbNode.html index c5bed12..fded84d 100644 --- a/doc/html/structbNode.html +++ b/doc/html/structbNode.html @@ -308,7 +308,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbTreeHeader.html b/doc/html/structbTreeHeader.html index d97f47f..870d58f 100644 --- a/doc/html/structbTreeHeader.html +++ b/doc/html/structbTreeHeader.html @@ -168,7 +168,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structblockAllocationTableEntry.html b/doc/html/structblockAllocationTableEntry.html index a56ab36..4a6f238 100644 --- a/doc/html/structblockAllocationTableEntry.html +++ b/doc/html/structblockAllocationTableEntry.html @@ -66,7 +66,7 @@

    Definition at line 96 of file ubixfs.h.

    -Referenced by freeBlocks(), and getFreeBlocks(). +Referenced by freeBlocks(), and getFreeBlocks().

    @@ -85,7 +85,7 @@

    Definition at line 98 of file ubixfs.h.

    -Referenced by freeBlocks(), getFreeBlocks(), ubixfs_loadData(), writeFileByte(), and writeUbixFS(). +Referenced by freeBlocks(), getFreeBlocks(), ubixfs_loadData(), writeFileByte(), and writeUbixFS().

    @@ -126,7 +126,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structblockRun.html b/doc/html/structblockRun.html index 6719931..6b050d6 100644 --- a/doc/html/structblockRun.html +++ b/doc/html/structblockRun.html @@ -110,7 +110,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbootSect.html b/doc/html/structbootSect.html index 94a5afa..572c18b 100644 --- a/doc/html/structbootSect.html +++ b/doc/html/structbootSect.html @@ -272,7 +272,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbsd__disklabel.html b/doc/html/structbsd__disklabel.html index 149d12e..85a8620 100644 --- a/doc/html/structbsd__disklabel.html +++ b/doc/html/structbsd__disklabel.html @@ -600,7 +600,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/hd.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbsd__disklabel_1_1partition.html b/doc/html/structbsd__disklabel_1_1partition.html index b66f8ca..ddb1b0c 100644 --- a/doc/html/structbsd__disklabel_1_1partition.html +++ b/doc/html/structbsd__disklabel_1_1partition.html @@ -166,7 +166,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/hd.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structbuf.html b/doc/html/structbuf.html index 386c7b9..15ff9c2 100644 --- a/doc/html/structbuf.html +++ b/doc/html/structbuf.html @@ -42,7 +42,7 @@

    Data Fields

    __uint32_t __bits [_SIG_WORDS]

    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/buf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structcacheNode.html b/doc/html/structcacheNode.html index a356063..f5cc68f 100644 --- a/doc/html/structcacheNode.html +++ b/doc/html/structcacheNode.html @@ -317,7 +317,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structclose__args.html b/doc/html/structclose__args.html index 611962b..44f6453 100644 --- a/doc/html/structclose__args.html +++ b/doc/html/structclose__args.html @@ -103,7 +103,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structconfadd.html b/doc/html/structconfadd.html index 0f995f0..42456b8 100644 --- a/doc/html/structconfadd.html +++ b/doc/html/structconfadd.html @@ -162,7 +162,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/pci.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structcpuinfo__t.html b/doc/html/structcpuinfo__t.html index d3481e1..6931787 100644 --- a/doc/html/structcpuinfo__t.html +++ b/doc/html/structcpuinfo__t.html @@ -233,7 +233,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/smp.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structcsum.html b/doc/html/structcsum.html index 4c79b0d..d83063f 100644 --- a/doc/html/structcsum.html +++ b/doc/html/structcsum.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structcsum__total.html b/doc/html/structcsum__total.html index 6497d20..58d048f 100644 --- a/doc/html/structcsum__total.html +++ b/doc/html/structcsum__total.html @@ -158,7 +158,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdataStream.html b/doc/html/structdataStream.html index c709452..5d8994e 100644 --- a/doc/html/structdataStream.html +++ b/doc/html/structdataStream.html @@ -198,7 +198,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevMethodType.html b/doc/html/structdevMethodType.html index e630fd2..74c802e 100644 --- a/doc/html/structdevMethodType.html +++ b/doc/html/structdevMethodType.html @@ -42,7 +42,7 @@
    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevfs__devices.html b/doc/html/structdevfs__devices.html index a7dd696..18028d4 100644 --- a/doc/html/structdevfs__devices.html +++ b/doc/html/structdevfs__devices.html @@ -170,7 +170,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevfs__info.html b/doc/html/structdevfs__info.html index b44220e..860100b 100644 --- a/doc/html/structdevfs__info.html +++ b/doc/html/structdevfs__info.html @@ -65,7 +65,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevice.html b/doc/html/structdevice.html index b06d20a..a23f186 100644 --- a/doc/html/structdevice.html +++ b/doc/html/structdevice.html @@ -143,7 +143,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevice__interface.html b/doc/html/structdevice__interface.html index 3dcbb2d..182c42a 100644 --- a/doc/html/structdevice__interface.html +++ b/doc/html/structdevice__interface.html @@ -82,7 +82,7 @@

    Definition at line 52 of file device.h.

    -Referenced by devfs_read(), devfs_write(), initHardDisk(), syncBat(), ubixfs_initialize(), and ubixFSUnlink(). +Referenced by devfs_read(), devfs_write(), initHardDisk(), syncBat(), ubixfs_initialize(), and ubixFSUnlink().

    @@ -275,12 +275,12 @@

    -Referenced by devfs_write(), fdc_init(), initHardDisk(), syncBat(), and ubixFSUnlink(). +Referenced by devfs_write(), fdc_init(), initHardDisk(), syncBat(), and ubixFSUnlink().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevice__node.html b/doc/html/structdevice__node.html index 99f1c28..ab730bb 100644 --- a/doc/html/structdevice__node.html +++ b/doc/html/structdevice__node.html @@ -95,7 +95,7 @@

    Definition at line 38 of file device.h.

    -Referenced by devfs_open(), devfs_read(), devfs_write(), device_add(), device_find(), syncBat(), ubixfs_initialize(), and ubixFSUnlink(). +Referenced by devfs_open(), devfs_read(), devfs_write(), device_add(), device_find(), syncBat(), ubixfs_initialize(), and ubixFSUnlink().

    @@ -244,7 +244,7 @@


    The documentation for this struct was generated from the following files: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevice__resource.html b/doc/html/structdevice__resource.html index eeb393e..7311c55 100644 --- a/doc/html/structdevice__resource.html +++ b/doc/html/structdevice__resource.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following files: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdevice__t.html b/doc/html/structdevice__t.html index 8f21387..3d6fb7d 100644 --- a/doc/html/structdevice__t.html +++ b/doc/html/structdevice__t.html @@ -245,7 +245,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdirectoryEntry.html b/doc/html/structdirectoryEntry.html index 6856a10..241bf5b 100644 --- a/doc/html/structdirectoryEntry.html +++ b/doc/html/structdirectoryEntry.html @@ -225,7 +225,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdirectoryList.html b/doc/html/structdirectoryList.html index 0fd6709..81d4dc1 100644 --- a/doc/html/structdirectoryList.html +++ b/doc/html/structdirectoryList.html @@ -147,7 +147,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdirent.html b/doc/html/structdirent.html index 61e0352..1185040 100644 --- a/doc/html/structdirent.html +++ b/doc/html/structdirent.html @@ -147,7 +147,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdiskSuperBlock.html b/doc/html/structdiskSuperBlock.html index 56cb616..f56f0d5 100644 --- a/doc/html/structdiskSuperBlock.html +++ b/doc/html/structdiskSuperBlock.html @@ -550,7 +550,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdmadat.html b/doc/html/structdmadat.html index 6edca36..98fc68e 100644 --- a/doc/html/structdmadat.html +++ b/doc/html/structdmadat.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdos__partition.html b/doc/html/structdos__partition.html index 76e4883..a3a6015 100644 --- a/doc/html/structdos__partition.html +++ b/doc/html/structdos__partition.html @@ -236,7 +236,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/hd.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdp__rcvhdr.html b/doc/html/structdp__rcvhdr.html index 592fa33..776690c 100644 --- a/doc/html/structdp__rcvhdr.html +++ b/doc/html/structdp__rcvhdr.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdriveInfo.html b/doc/html/structdriveInfo.html index 96e90af..d5613c9 100644 --- a/doc/html/structdriveInfo.html +++ b/doc/html/structdriveInfo.html @@ -292,7 +292,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/hd.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structdriverType.html b/doc/html/structdriverType.html index 2134478..0e34044 100644 --- a/doc/html/structdriverType.html +++ b/doc/html/structdriverType.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structei__device.html b/doc/html/structei__device.html index 2b33e7f..13c1d90 100644 --- a/doc/html/structei__device.html +++ b/doc/html/structei__device.html @@ -196,7 +196,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfDynSym.html b/doc/html/structelfDynSym.html index da68f8c..28c2b8f 100644 --- a/doc/html/structelfDynSym.html +++ b/doc/html/structelfDynSym.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfDynamic.html b/doc/html/structelfDynamic.html index d449909..c1ca214 100644 --- a/doc/html/structelfDynamic.html +++ b/doc/html/structelfDynamic.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfHeader.html b/doc/html/structelfHeader.html index 96feb6e..0fef611 100644 --- a/doc/html/structelfHeader.html +++ b/doc/html/structelfHeader.html @@ -326,7 +326,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfPltInfo.html b/doc/html/structelfPltInfo.html index 4545759..6c83157 100644 --- a/doc/html/structelfPltInfo.html +++ b/doc/html/structelfPltInfo.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfProgramHeader.html b/doc/html/structelfProgramHeader.html index 36973d8..155d45c 100644 --- a/doc/html/structelfProgramHeader.html +++ b/doc/html/structelfProgramHeader.html @@ -200,7 +200,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structelfSectionHeader.html b/doc/html/structelfSectionHeader.html index 7f156b8..ab489c0 100644 --- a/doc/html/structelfSectionHeader.html +++ b/doc/html/structelfSectionHeader.html @@ -236,7 +236,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/elf.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structeth__addr.html b/doc/html/structeth__addr.html index d3dcfca..fce2c78 100644 --- a/doc/html/structeth__addr.html +++ b/doc/html/structeth__addr.html @@ -66,7 +66,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/netif/arp.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structeth__hdr.html b/doc/html/structeth__hdr.html index e7769bc..20f5628 100644 --- a/doc/html/structeth__hdr.html +++ b/doc/html/structeth__hdr.html @@ -110,7 +110,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/netif/arp.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structethernetif.html b/doc/html/structethernetif.html index 48c599b..4f41ac3 100644 --- a/doc/html/structethernetif.html +++ b/doc/html/structethernetif.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structethip__hdr.html b/doc/html/structethip__hdr.html index 46a61c4..8341bbc 100644 --- a/doc/html/structethip__hdr.html +++ b/doc/html/structethip__hdr.html @@ -86,7 +86,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfcntl__args.html b/doc/html/structfcntl__args.html index ff04eea..91a24f4 100644 --- a/doc/html/structfcntl__args.html +++ b/doc/html/structfcntl__args.html @@ -221,7 +221,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfile.html b/doc/html/structfile.html index 8e7e722..58ccdf0 100644 --- a/doc/html/structfile.html +++ b/doc/html/structfile.html @@ -60,12 +60,12 @@

    Definition at line 92 of file kern_descrip.h.

    -Referenced by fcntl(), pipe(), and schedNewTask(). +Referenced by fcntl(), pipe(), and schedNewTask().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfileDescriptor.html b/doc/html/structfileDescriptor.html index 68580e8..77978f9 100644 --- a/doc/html/structfileDescriptor.html +++ b/doc/html/structfileDescriptor.html @@ -149,7 +149,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfileDescriptorStruct.html b/doc/html/structfileDescriptorStruct.html index 871dbb0..446de14 100644 --- a/doc/html/structfileDescriptorStruct.html +++ b/doc/html/structfileDescriptorStruct.html @@ -56,7 +56,7 @@ uInt16 mode -vfs_mountPoint_tmp +vfs_mountPointmp fileDescriptorStructnext @@ -212,12 +212,12 @@ Definition at line 51 of file file.h.

    - +


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfileSystem.html b/doc/html/structfileSystem.html index 71125e0..95ee775 100644 --- a/doc/html/structfileSystem.html +++ b/doc/html/structfileSystem.html @@ -247,7 +247,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/vfs/vfs.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfs.html b/doc/html/structfs.html index 72069f8..941274d 100644 --- a/doc/html/structfs.html +++ b/doc/html/structfs.html @@ -1739,7 +1739,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structfstat__args.html b/doc/html/structfstat__args.html index 4cee621..43db491 100644 --- a/doc/html/structfstat__args.html +++ b/doc/html/structfstat__args.html @@ -162,7 +162,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgdtDescriptor.html b/doc/html/structgdtDescriptor.html index 339789e..ca779aa 100644 --- a/doc/html/structgdtDescriptor.html +++ b/doc/html/structgdtDescriptor.html @@ -177,7 +177,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/gdt.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgdtGate.html b/doc/html/structgdtGate.html index 43cf002..e340d4d 100644 --- a/doc/html/structgdtGate.html +++ b/doc/html/structgdtGate.html @@ -128,7 +128,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/gdt.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgdt__descr.html b/doc/html/structgdt__descr.html index 15ccb05..6c2a305 100644 --- a/doc/html/structgdt__descr.html +++ b/doc/html/structgdt__descr.html @@ -87,7 +87,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgetdtablesize__args.html b/doc/html/structgetdtablesize__args.html index e3ce0c5..786bbda 100644 --- a/doc/html/structgetdtablesize__args.html +++ b/doc/html/structgetdtablesize__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgetgid__args.html b/doc/html/structgetgid__args.html index 26ebec1..2bae536 100644 --- a/doc/html/structgetgid__args.html +++ b/doc/html/structgetgid__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgetpid__args.html b/doc/html/structgetpid__args.html index ad9fd7e..21d1c68 100644 --- a/doc/html/structgetpid__args.html +++ b/doc/html/structgetpid__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgettimeofday__args.html b/doc/html/structgettimeofday__args.html index a29c2b8..204a294 100644 --- a/doc/html/structgettimeofday__args.html +++ b/doc/html/structgettimeofday__args.html @@ -158,7 +158,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structgetuid__args.html b/doc/html/structgetuid__args.html index 97210b1..9a0a195 100644 --- a/doc/html/structgetuid__args.html +++ b/doc/html/structgetuid__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structhostRingEntry.html b/doc/html/structhostRingEntry.html index 821834f..734beda 100644 --- a/doc/html/structhostRingEntry.html +++ b/doc/html/structhostRingEntry.html @@ -101,7 +101,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structi386__frame.html b/doc/html/structi386__frame.html index d778b8e..546ac28 100644 --- a/doc/html/structi386__frame.html +++ b/doc/html/structi386__frame.html @@ -386,7 +386,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/tss.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structi387Struct.html b/doc/html/structi387Struct.html index 4060e46..0f3b611 100644 --- a/doc/html/structi387Struct.html +++ b/doc/html/structi387Struct.html @@ -196,7 +196,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/tss.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structicmp__dur__hdr.html b/doc/html/structicmp__dur__hdr.html index c455c1e..611c976 100644 --- a/doc/html/structicmp__dur__hdr.html +++ b/doc/html/structicmp__dur__hdr.html @@ -188,7 +188,7 @@


    The documentation for this struct was generated from the following files:
    • src/sys/include/net/ipv4/icmp.h
    • src/sys/include/net/ipv6/icmp.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structicmp__echo__hdr.html b/doc/html/structicmp__echo__hdr.html index c22fcc9..d16bd61 100644 --- a/doc/html/structicmp__echo__hdr.html +++ b/doc/html/structicmp__echo__hdr.html @@ -229,7 +229,7 @@


    The documentation for this struct was generated from the following files:
    • src/sys/include/net/ipv4/icmp.h
    • src/sys/include/net/ipv6/icmp.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structicmp__te__hdr.html b/doc/html/structicmp__te__hdr.html index 5f2ad95..ee06e3e 100644 --- a/doc/html/structicmp__te__hdr.html +++ b/doc/html/structicmp__te__hdr.html @@ -188,7 +188,7 @@


    The documentation for this struct was generated from the following files:
    • src/sys/include/net/ipv4/icmp.h
    • src/sys/include/net/ipv6/icmp.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structin__addr.html b/doc/html/structin__addr.html index a647bfb..663822a 100644 --- a/doc/html/structin__addr.html +++ b/doc/html/structin__addr.html @@ -65,7 +65,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structinitBlock.html b/doc/html/structinitBlock.html index 6080323..990a270 100644 --- a/doc/html/structinitBlock.html +++ b/doc/html/structinitBlock.html @@ -177,7 +177,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structioctl__args.html b/doc/html/structioctl__args.html index b3296b6..84b406f 100644 --- a/doc/html/structioctl__args.html +++ b/doc/html/structioctl__args.html @@ -215,7 +215,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structip__addr.html b/doc/html/structip__addr.html index 2f2f29d..0009d25 100644 --- a/doc/html/structip__addr.html +++ b/doc/html/structip__addr.html @@ -89,7 +89,7 @@


    The documentation for this struct was generated from the following files: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structip__hdr.html b/doc/html/structip__hdr.html index 9298400..5edafa3 100644 --- a/doc/html/structip__hdr.html +++ b/doc/html/structip__hdr.html @@ -393,7 +393,7 @@


    The documentation for this struct was generated from the following files:
    • src/sys/include/net/ipv4/ip.h
    • src/sys/include/net/ipv6/ip.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structissetugid__args.html b/doc/html/structissetugid__args.html index 839d0c6..f60da31 100644 --- a/doc/html/structissetugid__args.html +++ b/doc/html/structissetugid__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structkmod__struct.html b/doc/html/structkmod__struct.html index 03c5dfa..1b03349 100644 --- a/doc/html/structkmod__struct.html +++ b/doc/html/structkmod__struct.html @@ -158,7 +158,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/kmod.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structlncInfo.html b/doc/html/structlncInfo.html index 2ce9bb7..3d05ebf 100644 --- a/doc/html/structlncInfo.html +++ b/doc/html/structlncInfo.html @@ -250,7 +250,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structlwip__socket.html b/doc/html/structlwip__socket.html index 8bcc71a..c541e91 100644 --- a/doc/html/structlwip__socket.html +++ b/doc/html/structlwip__socket.html @@ -105,7 +105,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:12 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmMap.html b/doc/html/structmMap.html index 70280cd..1b98e0d 100644 --- a/doc/html/structmMap.html +++ b/doc/html/structmMap.html @@ -68,7 +68,7 @@

    Definition at line 46 of file vmm.h.

    -Referenced by adjustCowCounter(), freePage(), and vmmFreeProcessPages(). +Referenced by adjustCowCounter(), freePage(), and vmmFreeProcessPages().

    @@ -87,7 +87,7 @@

    Definition at line 42 of file vmm.h.

    -Referenced by vmmMemMapInit(). +Referenced by vmmMemMapInit().

    @@ -106,7 +106,7 @@

    Definition at line 45 of file vmm.h.

    -Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -142,12 +142,12 @@

    Definition at line 43 of file vmm.h.

    -Referenced by adjustCowCounter(), freePage(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), and vmmMemMapInit().


    The documentation for this struct was generated from the following file:
    • src/sys/include/vmm/vmm.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmds.html b/doc/html/structmds.html index 2009466..13ab9cd 100644 --- a/doc/html/structmds.html +++ b/doc/html/structmds.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmemDescriptor.html b/doc/html/structmemDescriptor.html index 91d7d9a..bbfe4c2 100644 --- a/doc/html/structmemDescriptor.html +++ b/doc/html/structmemDescriptor.html @@ -66,7 +66,7 @@

    Definition at line 46 of file kmalloc.h.

    -Referenced by kfree(), kmalloc(), and mergeMemBlocks(). +Referenced by kfree(), kmalloc(), and mergeMemBlocks().

    @@ -85,7 +85,7 @@

    Definition at line 47 of file kmalloc.h.

    -Referenced by insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks(). +Referenced by insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks().

    @@ -104,7 +104,7 @@

    Definition at line 45 of file kmalloc.h.

    -Referenced by getEmptyDesc(), insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks(). +Referenced by getEmptyDesc(), insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks().

    @@ -123,12 +123,12 @@

    Definition at line 44 of file kmalloc.h.

    -Referenced by getEmptyDesc(), insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks(). +Referenced by getEmptyDesc(), insertFreeDesc(), kfree(), kmalloc(), and mergeMemBlocks().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmmap__args.html b/doc/html/structmmap__args.html index fbef30f..94f4070 100644 --- a/doc/html/structmmap__args.html +++ b/doc/html/structmmap__args.html @@ -449,7 +449,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmpi__mbox.html b/doc/html/structmpi__mbox.html index cd1822a..4b15103 100644 --- a/doc/html/structmpi__mbox.html +++ b/doc/html/structmpi__mbox.html @@ -160,7 +160,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/mpi/mpi.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmpi__message.html b/doc/html/structmpi__message.html index 69cb579..6673d7a 100644 --- a/doc/html/structmpi__message.html +++ b/doc/html/structmpi__message.html @@ -128,7 +128,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/mpi/mpi.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structmunmap__args.html b/doc/html/structmunmap__args.html index 04a2471..86c8371 100644 --- a/doc/html/structmunmap__args.html +++ b/doc/html/structmunmap__args.html @@ -158,7 +158,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnet.html b/doc/html/structnet.html index 632446c..ab7bbf9 100644 --- a/doc/html/structnet.html +++ b/doc/html/structnet.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnetbuf.html b/doc/html/structnetbuf.html index b9d0a2c..f8c1441 100644 --- a/doc/html/structnetbuf.html +++ b/doc/html/structnetbuf.html @@ -149,7 +149,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/api.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnetconn.html b/doc/html/structnetconn.html index 1e30ac5..d582f1b 100644 --- a/doc/html/structnetconn.html +++ b/doc/html/structnetconn.html @@ -254,7 +254,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/api.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnetif.html b/doc/html/structnetif.html index 94c006d..bf5a6d6 100644 --- a/doc/html/structnetif.html +++ b/doc/html/structnetif.html @@ -265,7 +265,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnicBuffer.html b/doc/html/structnicBuffer.html index 7616b47..477bd0b 100644 --- a/doc/html/structnicBuffer.html +++ b/doc/html/structnicBuffer.html @@ -107,7 +107,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structnicInfo.html b/doc/html/structnicInfo.html index 5d9b6fa..f366a82 100644 --- a/doc/html/structnicInfo.html +++ b/doc/html/structnicInfo.html @@ -147,7 +147,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/lnc.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structobreak__args.html b/doc/html/structobreak__args.html index 1b1d9cf..bd31868 100644 --- a/doc/html/structobreak__args.html +++ b/doc/html/structobreak__args.html @@ -103,7 +103,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structogModeInfo.html b/doc/html/structogModeInfo.html index 5e29fc8..913debd 100644 --- a/doc/html/structogModeInfo.html +++ b/doc/html/structogModeInfo.html @@ -770,7 +770,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structogVESAInfo.html b/doc/html/structogVESAInfo.html index 27a30d9..439edbb 100644 --- a/doc/html/structogVESAInfo.html +++ b/doc/html/structogVESAInfo.html @@ -308,7 +308,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structosInfo.html b/doc/html/structosInfo.html index 807ae23..d7c4c69 100644 --- a/doc/html/structosInfo.html +++ b/doc/html/structosInfo.html @@ -91,7 +91,7 @@

    Definition at line 51 of file sched.h.

    -Referenced by fork_copyProcess(), sysChDir(), sysGetCwd(), and sysMkDir(). +Referenced by fork_copyProcess(), sysChDir(), sysGetCwd(), and sysMkDir().

    @@ -206,7 +206,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structpartitionInformation.html b/doc/html/structpartitionInformation.html index 23462f6..932281b 100644 --- a/doc/html/structpartitionInformation.html +++ b/doc/html/structpartitionInformation.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structpbuf.html b/doc/html/structpbuf.html index 54327d9..b3dde97 100644 --- a/doc/html/structpbuf.html +++ b/doc/html/structpbuf.html @@ -166,7 +166,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structpciConfig.html b/doc/html/structpciConfig.html index 4791868..7f1dc0f 100644 --- a/doc/html/structpciConfig.html +++ b/doc/html/structpciConfig.html @@ -462,7 +462,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/pci/pci.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structpipe__args.html b/doc/html/structpipe__args.html index ed88606..1fe1119 100644 --- a/doc/html/structpipe__args.html +++ b/doc/html/structpipe__args.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structreadlink__args.html b/doc/html/structreadlink__args.html index f73f6ee..9f7a9e0 100644 --- a/doc/html/structreadlink__args.html +++ b/doc/html/structreadlink__args.html @@ -127,7 +127,7 @@

    Definition at line 83 of file sysproto.h.

    -Referenced by readlink(). +Referenced by readlink().

    @@ -180,7 +180,7 @@

    Definition at line 81 of file sysproto.h.

    -Referenced by readlink(). +Referenced by readlink().

    @@ -219,7 +219,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsdeWindows.html b/doc/html/structsdeWindows.html index ba82fc2..88947e0 100644 --- a/doc/html/structsdeWindows.html +++ b/doc/html/structsdeWindows.html @@ -139,7 +139,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sde/sde.h
    -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsigaction__args.html b/doc/html/structsigaction__args.html index f43c8b6..93ec668 100644 --- a/doc/html/structsigaction__args.html +++ b/doc/html/structsigaction__args.html @@ -215,7 +215,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsigprocmask__args.html b/doc/html/structsigprocmask__args.html index ad0fe28..f7745ba 100644 --- a/doc/html/structsigprocmask__args.html +++ b/doc/html/structsigprocmask__args.html @@ -215,7 +215,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:13 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsockaddr.html b/doc/html/structsockaddr.html index 19f8041..3396b4c 100644 --- a/doc/html/structsockaddr.html +++ b/doc/html/structsockaddr.html @@ -101,7 +101,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsockaddr__in.html b/doc/html/structsockaddr__in.html index 70991a6..da0d39f 100644 --- a/doc/html/structsockaddr__in.html +++ b/doc/html/structsockaddr__in.html @@ -139,7 +139,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structstat.html b/doc/html/structstat.html index c3985eb..6dd3455 100644 --- a/doc/html/structstat.html +++ b/doc/html/structstat.html @@ -466,7 +466,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__mbox.html b/doc/html/structsys__mbox.html index c3c4aed..b848131 100644 --- a/doc/html/structsys__mbox.html +++ b/doc/html/structsys__mbox.html @@ -147,7 +147,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__mbox__msg.html b/doc/html/structsys__mbox__msg.html index dc51a47..2787142 100644 --- a/doc/html/structsys__mbox__msg.html +++ b/doc/html/structsys__mbox__msg.html @@ -80,7 +80,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__sem.html b/doc/html/structsys__sem.html index 13f2d11..2d78015 100644 --- a/doc/html/structsys__sem.html +++ b/doc/html/structsys__sem.html @@ -105,7 +105,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__thread.html b/doc/html/structsys__thread.html index 60444d0..d9c2cb2 100644 --- a/doc/html/structsys__thread.html +++ b/doc/html/structsys__thread.html @@ -105,7 +105,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__timeout.html b/doc/html/structsys__timeout.html index b8ce13f..810d6a7 100644 --- a/doc/html/structsys__timeout.html +++ b/doc/html/structsys__timeout.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/sys.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsys__timeouts.html b/doc/html/structsys__timeouts.html index 09d9679..1fb6d95 100644 --- a/doc/html/structsys__timeouts.html +++ b/doc/html/structsys__timeouts.html @@ -65,7 +65,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/sys.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsysctl__args.html b/doc/html/structsysctl__args.html index c3a8943..e1bbc8b 100644 --- a/doc/html/structsysctl__args.html +++ b/doc/html/structsysctl__args.html @@ -94,7 +94,7 @@

    Definition at line 56 of file sysproto.h.

    -Referenced by __sysctl(). +Referenced by __sysctl().

    @@ -147,7 +147,7 @@

    Definition at line 57 of file sysproto.h.

    -Referenced by __sysctl(). +Referenced by __sysctl().

    @@ -199,8 +199,6 @@

    Definition at line 60 of file sysproto.h. -

    -Referenced by __sysctl().

    @@ -253,7 +251,7 @@

    Definition at line 61 of file sysproto.h.

    -Referenced by __sysctl(). +Referenced by __sysctl().

    @@ -306,7 +304,7 @@

    Definition at line 58 of file sysproto.h.

    -Referenced by __sysctl(). +Referenced by __sysctl().

    @@ -359,7 +357,7 @@

    Definition at line 59 of file sysproto.h.

    -Referenced by __sysctl(). +Referenced by __sysctl().

    @@ -398,7 +396,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structsysctl__entry.html b/doc/html/structsysctl__entry.html index 8dd934f..64da437 100644 --- a/doc/html/structsysctl__entry.html +++ b/doc/html/structsysctl__entry.html @@ -37,7 +37,7 @@

    -Definition at line 55 of file kern_sysctl.h. +Definition at line 57 of file kern_sysctl.h.
    @@ -70,9 +70,9 @@

    -Definition at line 58 of file kern_sysctl.h. +Definition at line 60 of file kern_sysctl.h.

    -Referenced by sysctl_add(), sysctl_find(), and sysctl_init(). +Referenced by sysctl_add(), sysctl_find(), and sysctl_init().

    @@ -89,9 +89,9 @@

    -Definition at line 60 of file kern_sysctl.h. +Definition at line 62 of file kern_sysctl.h.

    -Referenced by sysctl_add(), sysctl_find(), and sysctl_init(). +Referenced by sysctl_add(), sysctl_find(), and sysctl_init().

    @@ -108,9 +108,9 @@

    -Definition at line 59 of file kern_sysctl.h. +Definition at line 61 of file kern_sysctl.h.

    -Referenced by sysctl_add(), and sysctl_init(). +Referenced by sysctl_add(), and sysctl_init().

    @@ -127,9 +127,9 @@

    -Definition at line 57 of file kern_sysctl.h. +Definition at line 59 of file kern_sysctl.h.

    -Referenced by sysctl_add(), sysctl_find(), and sysctl_init(). +Referenced by sysctl_add(), sysctl_find(), and sysctl_init().

    @@ -146,9 +146,9 @@

    -Definition at line 56 of file kern_sysctl.h. +Definition at line 58 of file kern_sysctl.h.

    -Referenced by sysctl_add(), and sysctl_init(). +Referenced by sysctl_add(), and sysctl_init().

    @@ -165,9 +165,9 @@

    -Definition at line 62 of file kern_sysctl.h. +Definition at line 64 of file kern_sysctl.h.

    -Referenced by kern_sysctl(), and sysctl_add(). +Referenced by __sysctl(), and sysctl_add().

    @@ -184,14 +184,14 @@

    -Definition at line 61 of file kern_sysctl.h. +Definition at line 63 of file kern_sysctl.h.

    -Referenced by kern_sysctl(), and sysctl_add(). +Referenced by __sysctl(), and sysctl_add().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtaskStruct.html b/doc/html/structtaskStruct.html index 2b867e5..9debcec 100644 --- a/doc/html/structtaskStruct.html +++ b/doc/html/structtaskStruct.html @@ -84,7 +84,7 @@

    Definition at line 63 of file sched.h.

    -Referenced by execFile(), fork_copyProcess(), getgid(), sysGetGid(), and sysSetGid(). +Referenced by execFile(), fork_copyProcess(), getgid(), sysGetGid(), and sysSetGid().

    @@ -122,7 +122,7 @@

    Definition at line 55 of file sched.h.

    -Referenced by _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), endTask(), execFile(), execThread(), fork_copyProcess(), getpid(), intNull(), kern_sysctl(), kmod_load(), ldEnable(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), sched_deleteTask(), sched_init(), schedEndTask(), schedFindTask(), schedNewTask(), sysExec(), sysExit(), sysGetFreePage(), sysGetpid(), systemTask(), ubthread_mutex_lock(), ubthread_mutex_unlock(), vmm_pageFault(), vmm_remapPage(), and vmmGetFreeVirtualPage(). +Referenced by __sysctl(), _int0(), _int1(), _int10(), _int11(), _int12(), _int13(), _int2(), _int3(), _int4(), _int5(), _int6(), _int8(), _int9(), endTask(), execFile(), execThread(), fork_copyProcess(), getpid(), intNull(), kmod_load(), ldEnable(), mmap(), mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), netMainThread(), obreak(), sched(), sched_deleteTask(), sched_init(), schedEndTask(), schedFindTask(), schedNewTask(), sysExec(), sysExit(), sysGetFreePage(), sysGetpid(), systemTask(), ubthread_mutex_lock(), ubthread_mutex_unlock(), vmm_pageFault(), vmm_remapPage(), and vmmGetFreeVirtualPage().

    @@ -160,7 +160,7 @@

    Definition at line 57 of file sched.h.

    -Referenced by sched(), sched_addDelTask(), sched_deleteTask(), sched_getDelTask(), schedFindTask(), and schedNewTask(). +Referenced by sched(), sched_addDelTask(), sched_deleteTask(), sched_getDelTask(), schedFindTask(), and schedNewTask().

    @@ -179,7 +179,7 @@

    Definition at line 60 of file sched.h.

    -Referenced by _int13(), biosCall(), execFile(), execThread(), fork_copyProcess(), sysChDir(), sysExec(), sysGetCwd(), sysMkDir(), vmmGetFreeVirtualPage(), and vmmMapFromTask(). +Referenced by _int13(), biosCall(), execFile(), execThread(), fork_copyProcess(), sysChDir(), sysExec(), sysGetCwd(), sysMkDir(), vmmGetFreeVirtualPage(), and vmmMapFromTask().

    @@ -198,7 +198,7 @@

    Definition at line 56 of file sched.h.

    -Referenced by sched_addDelTask(), sched_deleteTask(), and schedNewTask(). +Referenced by sched_addDelTask(), sched_deleteTask(), and schedNewTask().

    @@ -217,7 +217,7 @@

    Definition at line 62 of file sched.h.

    -Referenced by _int13(), biosCall(), fork_copyProcess(), sched(), sched_setStatus(), schedNewTask(), and sysCheckPid(). +Referenced by _int13(), biosCall(), fork_copyProcess(), sched(), sched_setStatus(), schedNewTask(), and sysCheckPid().

    @@ -236,7 +236,7 @@

    Definition at line 67 of file sched.h.

    -Referenced by execFile(), fstat(), getgid(), getpid(), getuid(), readlink(), schedNewTask(), syscall(), sysExec(), vmm_pageFault(), and vmmGetFreeVirtualPage(). +Referenced by execFile(), fstat(), getgid(), getpid(), getuid(), readlink(), schedNewTask(), syscall(), sysExec(), vmm_pageFault(), and vmmGetFreeVirtualPage().

    @@ -293,7 +293,7 @@

    Definition at line 64 of file sched.h.

    -Referenced by execFile(), fork_copyProcess(), getuid(), sysGetUid(), sysPasswd(), and sysSetUid(). +Referenced by execFile(), fork_copyProcess(), getuid(), sysGetUid(), sysPasswd(), and sysSetUid().

    @@ -312,12 +312,12 @@

    Definition at line 65 of file sched.h.

    -Referenced by mathStateRestore(), and schedNewTask(). +Referenced by mathStateRestore(), and schedNewTask().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtcp__hdr.html b/doc/html/structtcp__hdr.html index 175d113..471f091 100644 --- a/doc/html/structtcp__hdr.html +++ b/doc/html/structtcp__hdr.html @@ -220,7 +220,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/tcp.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:09 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtcp__pcb.html b/doc/html/structtcp__pcb.html index aca60e0..43e0faa 100644 --- a/doc/html/structtcp__pcb.html +++ b/doc/html/structtcp__pcb.html @@ -861,7 +861,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/tcp.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtcp__pcb__listen.html b/doc/html/structtcp__pcb__listen.html index 2c3e11f..0684b20 100644 --- a/doc/html/structtcp__pcb__listen.html +++ b/doc/html/structtcp__pcb__listen.html @@ -156,7 +156,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/tcp.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtcp__seg.html b/doc/html/structtcp__seg.html index f826c61..1bf45dc 100644 --- a/doc/html/structtcp__seg.html +++ b/doc/html/structtcp__seg.html @@ -139,7 +139,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/tcp.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtcpip__msg.html b/doc/html/structtcpip__msg.html index 1ee7742..9c36b50 100644 --- a/doc/html/structtcpip__msg.html +++ b/doc/html/structtcpip__msg.html @@ -185,7 +185,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structthread.html b/doc/html/structthread.html index d41fbf6..093cda0 100644 --- a/doc/html/structthread.html +++ b/doc/html/structthread.html @@ -66,7 +66,7 @@

    Definition at line 37 of file thread.h.

    -Referenced by close(), falloc(), fcntl(), fstat(), and schedNewTask(). +Referenced by close(), falloc(), fcntl(), fstat(), and schedNewTask().

    @@ -85,7 +85,7 @@

    Definition at line 36 of file thread.h.

    -Referenced by close(), fcntl(), getdtablesize(), getgid(), getpid(), getuid(), ioctl(), kern_sysctl(), mmap(), pipe(), readlink(), and syscall(). +Referenced by __sysctl(), close(), fcntl(), getdtablesize(), getgid(), getpid(), getuid(), ioctl(), mmap(), pipe(), readlink(), and syscall().

    @@ -128,7 +128,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structthread__start__param.html b/doc/html/structthread__start__param.html index 409eb6e..3b3a0d3 100644 --- a/doc/html/structthread__start__param.html +++ b/doc/html/structthread__start__param.html @@ -97,7 +97,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtimeStruct.html b/doc/html/structtimeStruct.html index 7e3e8ac..733052e 100644 --- a/doc/html/structtimeStruct.html +++ b/doc/html/structtimeStruct.html @@ -170,7 +170,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/time.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtimespec.html b/doc/html/structtimespec.html index b01bbe6..65fe269 100644 --- a/doc/html/structtimespec.html +++ b/doc/html/structtimespec.html @@ -86,7 +86,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/time.h
    -
    Generated on Sun Dec 3 02:38:14 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtimeval.html b/doc/html/structtimeval.html index 52b4d4d..4d325b0 100644 --- a/doc/html/structtimeval.html +++ b/doc/html/structtimeval.html @@ -86,7 +86,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/time.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtimezone.html b/doc/html/structtimezone.html index 09ecfe4..b87cf80 100644 --- a/doc/html/structtimezone.html +++ b/doc/html/structtimezone.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/time.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtms.html b/doc/html/structtms.html index 6986c74..aa4ee5f 100644 --- a/doc/html/structtms.html +++ b/doc/html/structtms.html @@ -120,7 +120,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtrapframe.html b/doc/html/structtrapframe.html index 55a4d07..015efea 100644 --- a/doc/html/structtrapframe.html +++ b/doc/html/structtrapframe.html @@ -398,7 +398,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtssStruct.html b/doc/html/structtssStruct.html index a5456d6..6dc89bc 100644 --- a/doc/html/structtssStruct.html +++ b/doc/html/structtssStruct.html @@ -839,7 +839,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/sys/tss.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structtty__termNode.html b/doc/html/structtty__termNode.html index 6a98b15..51a5243 100644 --- a/doc/html/structtty__termNode.html +++ b/doc/html/structtty__termNode.html @@ -93,7 +93,7 @@

    Definition at line 44 of file tty.h.

    -Referenced by getch(), and keyboardHandler(). +Referenced by getch(), and keyboardHandler().

    @@ -112,7 +112,7 @@

    Definition at line 45 of file tty.h.

    -Referenced by getch(), and keyboardHandler(). +Referenced by getch(), and keyboardHandler().

    @@ -212,7 +212,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ubixos/tty.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubixDiskLabel.html b/doc/html/structubixDiskLabel.html index ae2ea62..810b848 100644 --- a/doc/html/structubixDiskLabel.html +++ b/doc/html/structubixDiskLabel.html @@ -141,12 +141,12 @@

    -Referenced by syncBat(), ubixfs_initialize(), and ubixFSUnlink(). +Referenced by syncBat(), ubixfs_initialize(), and ubixFSUnlink().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubixDiskLabel_1_1ubixPartitions.html b/doc/html/structubixDiskLabel_1_1ubixPartitions.html index bf6b01d..7a22153 100644 --- a/doc/html/structubixDiskLabel_1_1ubixPartitions.html +++ b/doc/html/structubixDiskLabel_1_1ubixPartitions.html @@ -162,7 +162,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubixFSInfo.html b/doc/html/structubixFSInfo.html index 4df86cf..e040bd1 100644 --- a/doc/html/structubixFSInfo.html +++ b/doc/html/structubixFSInfo.html @@ -66,7 +66,7 @@

    Definition at line 133 of file ubixfs.h.

    -Referenced by getFreeBlocks(), and ubixfs_initialize(). +Referenced by getFreeBlocks(), and ubixfs_initialize().

    @@ -85,7 +85,7 @@

    Definition at line 131 of file ubixfs.h.

    -Referenced by freeBlocks(), getFreeBlocks(), syncBat(), ubixfs_initialize(), ubixfs_loadData(), ubixFSmkDir(), ubixFSUnlink(), writeFileByte(), and writeUbixFS(). +Referenced by freeBlocks(), getFreeBlocks(), syncBat(), ubixfs_initialize(), ubixfs_loadData(), ubixFSmkDir(), ubixFSUnlink(), writeFileByte(), and writeUbixFS().

    @@ -128,7 +128,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubixfsInode.html b/doc/html/structubixfsInode.html index 3d5fb62..aa99905 100644 --- a/doc/html/structubixfsInode.html +++ b/doc/html/structubixfsInode.html @@ -418,7 +418,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread.html b/doc/html/structubthread.html index b8eebdf..97866e0 100644 --- a/doc/html/structubthread.html +++ b/doc/html/structubthread.html @@ -63,7 +63,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread__cond.html b/doc/html/structubthread__cond.html index d372855..2db6d68 100644 --- a/doc/html/structubthread__cond.html +++ b/doc/html/structubthread__cond.html @@ -62,7 +62,7 @@

    Definition at line 51 of file ubthread.h.

    -Referenced by ubthread_cond_init(). +Referenced by ubthread_cond_init().

    @@ -81,12 +81,12 @@

    Definition at line 52 of file ubthread.h.

    -Referenced by ubthread_cond_init(), ubthread_cond_signal(), ubthread_cond_timedwait(), and ubthread_cond_wait(). +Referenced by ubthread_cond_init(), ubthread_cond_signal(), ubthread_cond_timedwait(), and ubthread_cond_wait().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread__cond__list.html b/doc/html/structubthread__cond__list.html index 0d4966d..2c4ed91 100644 --- a/doc/html/structubthread__cond__list.html +++ b/doc/html/structubthread__cond__list.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread__list.html b/doc/html/structubthread__list.html index 2ed7c69..480d0dd 100644 --- a/doc/html/structubthread__list.html +++ b/doc/html/structubthread__list.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread__mutex.html b/doc/html/structubthread__mutex.html index 5d4631b..d66ffd2 100644 --- a/doc/html/structubthread__mutex.html +++ b/doc/html/structubthread__mutex.html @@ -64,7 +64,7 @@

    Definition at line 56 of file ubthread.h.

    -Referenced by ubthread_mutex_init(). +Referenced by ubthread_mutex_init().

    @@ -83,7 +83,7 @@

    Definition at line 57 of file ubthread.h.

    -Referenced by ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_init(), ubthread_mutex_lock(), and ubthread_mutex_unlock(). +Referenced by ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_init(), ubthread_mutex_lock(), and ubthread_mutex_unlock().

    @@ -102,12 +102,12 @@

    Definition at line 58 of file ubthread.h.

    -Referenced by ubthread_mutex_lock(), and ubthread_mutex_unlock(). +Referenced by ubthread_mutex_lock(), and ubthread_mutex_unlock().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structubthread__mutex__list.html b/doc/html/structubthread__mutex__list.html index 719cd38..4d54b47 100644 --- a/doc/html/structubthread__mutex__list.html +++ b/doc/html/structubthread__mutex__list.html @@ -82,7 +82,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structudp__hdr.html b/doc/html/structudp__hdr.html index dcbf7d1..598fd72 100644 --- a/doc/html/structudp__hdr.html +++ b/doc/html/structudp__hdr.html @@ -132,7 +132,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/udp.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structudp__pcb.html b/doc/html/structudp__pcb.html index 4a3de9b..9a0e8ad 100644 --- a/doc/html/structudp__pcb.html +++ b/doc/html/structudp__pcb.html @@ -202,7 +202,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/net/udp.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structufs1__dinode.html b/doc/html/structufs1__dinode.html index 1fbb040..51b2492 100644 --- a/doc/html/structufs1__dinode.html +++ b/doc/html/structufs1__dinode.html @@ -405,7 +405,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structufs2__dinode.html b/doc/html/structufs2__dinode.html index 035758e..55febe0 100644 --- a/doc/html/structufs2__dinode.html +++ b/doc/html/structufs2__dinode.html @@ -487,7 +487,7 @@


    The documentation for this struct was generated from the following file:
    • src/sys/include/ufs/ufs.h
    -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structuserFileDescriptorStruct.html b/doc/html/structuserFileDescriptorStruct.html index 577d201..3ef6c4d 100644 --- a/doc/html/structuserFileDescriptorStruct.html +++ b/doc/html/structuserFileDescriptorStruct.html @@ -86,7 +86,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structvfs__mountPoint.html b/doc/html/structvfs__mountPoint.html index 0d0c594..360aa4d 100644 --- a/doc/html/structvfs__mountPoint.html +++ b/doc/html/structvfs__mountPoint.html @@ -37,7 +37,7 @@

    -Definition at line 35 of file mount.h.


    Data Fields

    sysctl_entrychildren
    +Definition at line 36 of file mount.h.
    @@ -74,9 +74,9 @@

    -Definition at line 39 of file mount.h. +Definition at line 40 of file mount.h.

    -Referenced by syncBat(), ubixfs_initialize(), ubixFSUnlink(), and vfs_mount(). +Referenced by syncBat(), ubixfs_initialize(), ubixFSUnlink(), and vfs_mount().

    @@ -93,9 +93,9 @@

    -Definition at line 40 of file mount.h. +Definition at line 41 of file mount.h.

    -Referenced by syncBat(), ubixfs_initialize(), and ubixFSUnlink(). +Referenced by syncBat(), ubixfs_initialize(), and ubixFSUnlink().

    @@ -112,7 +112,7 @@

    -Definition at line 38 of file mount.h. +Definition at line 39 of file mount.h.

    Referenced by unlink(), and vfs_mount(). @@ -131,9 +131,9 @@

    -Definition at line 41 of file mount.h. +Definition at line 42 of file mount.h.

    -Referenced by devfs_initialize(), devfs_makeNode(), syncBat(), ubixfs_initialize(), and ubixFSUnlink(). +Referenced by devfs_initialize(), devfs_makeNode(), syncBat(), ubixfs_initialize(), and ubixFSUnlink().

    @@ -150,9 +150,9 @@

    -Definition at line 43 of file mount.h. +Definition at line 44 of file mount.h.

    -Referenced by vfs_findMount(), and vfs_mount(). +Referenced by unlink(), vfs_findMount(), and vfs_mount().

    @@ -169,7 +169,7 @@

    -Definition at line 37 of file mount.h. +Definition at line 38 of file mount.h.

    Referenced by vfs_addMount(), and vfs_findMount(). @@ -188,9 +188,9 @@

    -Definition at line 42 of file mount.h. +Definition at line 43 of file mount.h.

    -Referenced by syncBat(), ubixfs_initialize(), ubixFSUnlink(), and vfs_mount(). +Referenced by syncBat(), ubixfs_initialize(), ubixFSUnlink(), and vfs_mount().

    @@ -207,7 +207,7 @@

    -Definition at line 44 of file mount.h. +Definition at line 45 of file mount.h.

    Referenced by vfs_mount(). @@ -226,14 +226,14 @@

    -Definition at line 36 of file mount.h. +Definition at line 37 of file mount.h.

    Referenced by vfs_addMount().


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structvitalsStruct.html b/doc/html/structvitalsStruct.html index 4163dda..c5f0d5e 100644 --- a/doc/html/structvitalsStruct.html +++ b/doc/html/structvitalsStruct.html @@ -48,7 +48,7 @@
    - + @@ -141,15 +141,15 @@

    Definition at line 44 of file vitals.h.

    -Referenced by adjustCowCounter(), freePage(), keyboardHandler(), kmain(), systemTask(), vmmFindFreePage(), and vmmFreeProcessPages(). +Referenced by adjustCowCounter(), freePage(), kmain(), vmmFindFreePage(), and vmmFreeProcessPages().

    - +


    Data Fields

    device_nodedevice
    uInt32 freePages
    vfs_mountPoint_tmountPoints
    vfs_mountPointmountPoints
    uInt32 openFiles
    - +
    vfs_mountPoint_t* vitalsStruct::mountPoints struct vfs_mountPoint* vitalsStruct::mountPoints
    @@ -270,7 +270,7 @@

    Definition at line 40 of file vitals.h.

    -Referenced by sysGetUptime(), and systemTask(). +Referenced by sysGetUptime(), and systemTask().

    @@ -289,7 +289,7 @@

    Definition at line 41 of file vitals.h.

    -Referenced by sysGetTime(), systemTask(), and ubthread_cond_timedwait(). +Referenced by sysGetTime(), systemTask(), and ubthread_cond_timedwait().

    @@ -308,12 +308,12 @@

    Definition at line 47 of file vitals.h.

    -Referenced by sysGetTime(), and time_init(). +Referenced by sysGetTime(), and time_init().


    The documentation for this struct was generated from the following file: -
    Generated on Fri Dec 1 14:04:32 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/structwrite__args.html b/doc/html/structwrite__args.html index 985e6dc..dd55678 100644 --- a/doc/html/structwrite__args.html +++ b/doc/html/structwrite__args.html @@ -221,7 +221,7 @@


    The documentation for this struct was generated from the following file: -
    Generated on Sun Dec 3 02:38:16 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys_8h-source.html b/doc/html/sys_8h-source.html index c33a688..f3f0df6 100644 --- a/doc/html/sys_8h-source.html +++ b/doc/html/sys_8h-source.html @@ -124,7 +124,7 @@ 00092 unsigned long sys_now(void); 00093 00094 #endif /* __LWIP_SYS_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys_8h.html b/doc/html/sys_8h.html index 021b8ff..50588f2 100644 --- a/doc/html/sys_8h.html +++ b/doc/html/sys_8h.html @@ -289,7 +289,7 @@

    Definition at line 204 of file sys_arch.c.

    -References sys_mbox::first, kmalloc(), sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::mutex, and sys_sem_new_(). +References sys_mbox::first, kmalloc(), sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::mutex, and sys_sem_new_().

    Referenced by accept_function(), do_listen(), netconn_bind(), netconn_connect(), netconn_listen(), netconn_new(), and tcpip_init(). @@ -467,7 +467,7 @@

    Definition at line 172 of file sys_arch.c.

    -References kmalloc(), kpanic(), kprintf(), netThreadSpinlock, sys_thread::next, sys_timeouts::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::timeouts, sys_thread::ubthread, and ubthread_create(). +References kmalloc(), kpanic(), kprintf(), netThreadSpinlock, sys_thread::next, sys_timeouts::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::timeouts, sys_thread::ubthread, and ubthread_create().

    Referenced by bot_init(), low_level_init(), net_init(), shell_init(), tcpip_init(), and udpecho_init(). @@ -509,7 +509,7 @@ Referenced by arp_timer(), ethernetif_init(), tcpip_tcp_timer(), and tcpip_thread().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__arch_8c-source.html b/doc/html/sys__arch_8c-source.html index 5a264d7..7c7d1a0 100644 --- a/doc/html/sys__arch_8c-source.html +++ b/doc/html/sys__arch_8c-source.html @@ -447,7 +447,7 @@ 00415 /*** 00416 END 00417 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__arch_8c.html b/doc/html/sys__arch_8c.html index 3cb16e3..ac423bc 100644 --- a/doc/html/sys__arch_8c.html +++ b/doc/html/sys__arch_8c.html @@ -186,7 +186,7 @@

    Definition at line 311 of file sys_arch.c.

    -References ETIMEDOUT, gettimeofday(), mutex, timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, ubthread_cond_timedwait(), and ubthread_cond_wait(). +References ETIMEDOUT, gettimeofday(), mutex, timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, ubthread_cond_timedwait(), and ubthread_cond_wait().

    Referenced by sys_arch_sem_wait(). @@ -212,7 +212,7 @@

    Definition at line 135 of file sys_arch.c.

    -References netThreadSpinlock, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::ubthread, and ubthread_self(). +References netThreadSpinlock, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::ubthread, and ubthread_self().

    Referenced by sys_arch_timeouts(). @@ -286,7 +286,7 @@

    Definition at line 351 of file sys_arch.c.

    -References sys_sem::c, sys_sem::cond, cond_wait(), sys_sem::mutex, ubthread_mutex_lock(), and ubthread_mutex_unlock(). +References sys_sem::c, sys_sem::cond, cond_wait(), sys_sem::mutex, ubthread_mutex_lock(), and ubthread_mutex_unlock().

    @@ -360,7 +360,7 @@

    Definition at line 215 of file sys_arch.c.

    -References kfree(), sys_mbox::mail, mbox, sys_mbox::mutex, NULL, SYS_MBOX_NULL, sys_sem_free_(), and sys_sem_wait(). +References kfree(), sys_mbox::mail, mbox, sys_mbox::mutex, NULL, SYS_MBOX_NULL, sys_sem_free_(), and sys_sem_wait().

    @@ -384,7 +384,7 @@

    Definition at line 204 of file sys_arch.c.

    -References sys_mbox::first, kmalloc(), sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::mutex, and sys_sem_new_(). +References sys_mbox::first, kmalloc(), sys_mbox::last, sys_mbox::mail, mbox, sys_mbox::mutex, and sys_sem_new_().

    Referenced by accept_function(), do_listen(), netconn_bind(), netconn_connect(), netconn_listen(), netconn_new(), and tcpip_init(). @@ -467,7 +467,7 @@

    Definition at line 385 of file sys_arch.c.

    -References sys_sem::cond, kfree(), sys_sem::mutex, ubthread_cond_destroy(), and ubthread_mutex_destroy(). +References sys_sem::cond, kfree(), sys_sem::mutex, ubthread_cond_destroy(), and ubthread_mutex_destroy().

    Referenced by sys_mbox_free(), and sys_sem_free(). @@ -519,7 +519,7 @@

    Definition at line 299 of file sys_arch.c.

    -References sys_sem::c, sys_sem::cond, kmalloc(), sys_sem::mutex, NULL, ubthread_cond_init(), and ubthread_mutex_init(). +References sys_sem::c, sys_sem::cond, kmalloc(), sys_sem::mutex, NULL, ubthread_cond_init(), and ubthread_mutex_init().

    Referenced by sys_mbox_new(), and sys_sem_new(). @@ -545,7 +545,7 @@

    Definition at line 370 of file sys_arch.c.

    -References sys_sem::c, sys_sem::cond, sys_sem::mutex, ubthread_cond_signal(), ubthread_mutex_lock(), and ubthread_mutex_unlock(). +References sys_sem::c, sys_sem::cond, sys_sem::mutex, ubthread_cond_signal(), ubthread_mutex_lock(), and ubthread_mutex_unlock().

    @@ -578,7 +578,7 @@

    Definition at line 172 of file sys_arch.c.

    -References kmalloc(), kpanic(), kprintf(), netThreadSpinlock, sys_timeouts::next, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::timeouts, sys_thread::ubthread, and ubthread_create(). +References kmalloc(), kpanic(), kprintf(), netThreadSpinlock, sys_timeouts::next, sys_thread::next, NULL, spinLock(), spinUnlock(), threads, sys_thread::timeouts, sys_thread::ubthread, and ubthread_create().

    Referenced by bot_init(), low_level_init(), net_init(), shell_init(), tcpip_init(), and udpecho_init(). @@ -664,7 +664,7 @@ Referenced by current_thread(), and sys_thread_new().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__arch_8h-source.html b/doc/html/sys__arch_8h-source.html index 02b58e0..526ccfc 100644 --- a/doc/html/sys__arch_8h-source.html +++ b/doc/html/sys__arch_8h-source.html @@ -81,7 +81,7 @@ 00049 00050 #endif /* __ARCH_SYS_ARCH_H__ */ 00051 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__arch_8h.html b/doc/html/sys__arch_8h.html index b90e3af..6514a60 100644 --- a/doc/html/sys__arch_8h.html +++ b/doc/html/sys__arch_8h.html @@ -140,7 +140,7 @@ Definition at line 48 of file sys_arch.h.

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__call_8S-source.html b/doc/html/sys__call_8S-source.html index 89e6488..9cc1925 100644 --- a/doc/html/sys__call_8S-source.html +++ b/doc/html/sys__call_8S-source.html @@ -85,7 +85,7 @@ 00053 END 00054 ***/ 00055 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__call_8S.html b/doc/html/sys__call_8S.html index 326bad6..40266e4 100644 --- a/doc/html/sys__call_8S.html +++ b/doc/html/sys__call_8S.html @@ -60,7 +60,7 @@ Referenced by idt_init().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__call__new_8S-source.html b/doc/html/sys__call__new_8S-source.html index d319795..791c463 100644 --- a/doc/html/sys__call__new_8S-source.html +++ b/doc/html/sys__call__new_8S-source.html @@ -98,7 +98,7 @@ 00066 END 00067 ***/ 00068 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sys__call__new_8S.html b/doc/html/sys__call__new_8S.html index a7b3dbe..cf97063 100644 --- a/doc/html/sys__call__new_8S.html +++ b/doc/html/sys__call__new_8S.html @@ -219,7 +219,7 @@ Definition at line 37 of file sys_call_new.S.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall_8c-source.html b/doc/html/syscall_8c-source.html index 0138142..f38d2ef 100644 --- a/doc/html/syscall_8c-source.html +++ b/doc/html/syscall_8c-source.html @@ -65,8 +65,8 @@ 00033 #include <ubixos/types.h> 00034 #include <ubixos/exec.h> 00035 #include <ubixos/elf.h> -00036 #include <ubixos/vitals.h> -00037 #include <ubixos/endtask.h> +00036 #include <ubixos/endtask.h> +00037 #include <ubixos/time.h> 00038 #include <sys/video.h> 00039 #include <sys/trap.h> 00040 #include <vfs/file.h> @@ -74,221 +74,222 @@ 00042 #include <lib/string.h> 00043 #include <lib/kprintf.h> 00044 #include <lib/kmalloc.h> -00045 /* #include <sde/sde.h> */ -00046 #include <mpi/mpi.h> -00047 #include <vmm/vmm.h> -00048 -00049 long fuword(const void *base); -00050 -00051 void sdeTestThread(); -00052 -00053 asm( -00054 ".globl _sysCallNew \n" -00055 "_sysCallNew: \n" -00056 " pusha \n" -00057 " push %ss \n" -00058 " push %ds \n" -00059 " push %es \n" -00060 " push %fs \n" -00061 " push %gs \n" -00062 " cmpl totalCalls,%eax \n" -00063 " jae invalidSysCallNew \n" -00064 " mov %esp,%ebx \n" -00065 " add $12,%ebx \n" -00066 " push (%ebx) \n" -00067 " call *systemCalls(,%eax,4) \n" -00068 " add $4,%esp \n" -00069 " jmp doneNew \n" -00070 "invalidSysCallNew: \n" -00071 " call InvalidSystemCall \n" -00072 "doneNew: \n" -00073 " pop %gs \n" -00074 " pop %fs \n" -00075 " pop %es \n" -00076 " pop %ds \n" -00077 " pop %ss \n" -00078 " popa \n" -00079 " iret \n" -00080 ); -00081 -00082 void InvalidSystemCall() -00083 { -00084 kprintf("attempt was made to an invalid system call\n"); -00085 return; -00086 } -00087 -00088 typedef struct _UbixUser UbixUser; -00089 struct _UbixUser -00090 { -00091 char *username; -00092 char *password; -00093 int uid; -00094 int gid; -00095 char *home; -00096 char *shell; -00097 }; -00098 -00099 void sysAuth(UbixUser *uu) -00100 { -00101 kprintf("authenticating user %s\n", uu->username); -00102 if(uu->username == "root" && uu->password == "user") -00103 { -00104 uu->uid = 0; -00105 uu->gid = 0; -00106 } -00107 uu->uid = -1; -00108 uu->gid = -1; -00109 return; -00110 } -00111 -00112 void sysPasswd(char *passwd) -00113 { -00114 kprintf("changing user password for user %d\n", _current->uid); -00115 return; -00116 } -00117 -00118 void sysAddModule() -00119 { -00120 return; -00121 } -00122 -00123 void sysRmModule() -00124 { -00125 return; -00126 } -00127 -00128 void sysGetpid(int *pid) -00129 { -00130 if (pid) -00131 *pid = _current->id; -00132 return; -00133 } -00134 -00135 void sysGetUid(int *uid) { -00136 if (uid) -00137 *uid = _current->uid; -00138 return; -00139 } -00140 -00141 void sysGetGid(int *gid) { -00142 if (gid) -00143 *gid = _current->gid; -00144 return; -00145 } -00146 -00147 void sysSetUid(int uid,int *status) { -00148 if (_current->uid == 0x0) { -00149 _current->uid = uid; -00150 if (status) -00151 *status = 0x0; -00152 } -00153 else { -00154 if (status) -00155 *status = 1; -00156 } -00157 return; -00158 } -00159 -00160 void sysSetGid(int gid,int *status) { -00161 if (_current->gid == 0x0) { -00162 _current->gid = gid; -00163 if (status) -00164 *status = 0x0; -00165 } -00166 else { -00167 if (status) -00168 *status = 1; -00169 } -00170 return; -00171 } -00172 -00173 void sysExit(int status) -00174 { -00175 endTask(_current->id); -00176 } -00177 -00178 void sysCheckPid(int pid,int *ptr) -00179 { -00180 kTask_t *tmpTask = schedFindTask(pid); -00181 if ((tmpTask != 0x0) && (ptr != 0x0)) -00182 *ptr = tmpTask->state; -00183 else -00184 *ptr = 0x0; -00185 return; -00186 } -00187 -00188 /************************************************************************ -00189 -00190 Function: void sysGetFreePage(); -00191 Description: Allocs A Page To The Users VM Space -00192 Notes: -00193 -00194 ************************************************************************/ -00195 void sysGetFreePage(long *ptr,int count,int type) { -00196 if (ptr) { -00197 if (type == 2) -00198 *ptr = (long) vmmGetFreeVirtualPage(_current->id,count,VM_THRD); -00199 else -00200 *ptr = (long) vmmGetFreeVirtualPage(_current->id,count,VM_TASK); -00201 } -00202 return; -00203 } -00204 -00205 void sysGetDrives(uInt32 *ptr) -00206 { -00207 if (ptr) -00208 *ptr = 0x0;//(uInt32)devices; -00209 return; -00210 } -00211 -00212 void sysGetUptime(uInt32 *ptr) -00213 { -00214 if (ptr) -00215 *ptr = systemVitals->sysTicks; -00216 return; -00217 } -00218 -00219 void sysGetTime(uInt32 *ptr) -00220 { -00221 if (ptr) -00222 *ptr = systemVitals->sysUptime + systemVitals->timeStart; -00223 return; -00224 } -00225 +00045 #include <ubixos/vitals.h> +00046 /* #include <sde/sde.h> */ +00047 #include <mpi/mpi.h> +00048 #include <vmm/vmm.h> +00049 +00050 long fuword(const void *base); +00051 +00052 void sdeTestThread(); +00053 +00054 asm( +00055 ".globl _sysCallNew \n" +00056 "_sysCallNew: \n" +00057 " pusha \n" +00058 " push %ss \n" +00059 " push %ds \n" +00060 " push %es \n" +00061 " push %fs \n" +00062 " push %gs \n" +00063 " cmpl totalCalls,%eax \n" +00064 " jae invalidSysCallNew \n" +00065 " mov %esp,%ebx \n" +00066 " add $12,%ebx \n" +00067 " push (%ebx) \n" +00068 " call *systemCalls(,%eax,4) \n" +00069 " add $4,%esp \n" +00070 " jmp doneNew \n" +00071 "invalidSysCallNew: \n" +00072 " call InvalidSystemCall \n" +00073 "doneNew: \n" +00074 " pop %gs \n" +00075 " pop %fs \n" +00076 " pop %es \n" +00077 " pop %ds \n" +00078 " pop %ss \n" +00079 " popa \n" +00080 " iret \n" +00081 ); +00082 +00083 void InvalidSystemCall() +00084 { +00085 kprintf("attempt was made to an invalid system call\n"); +00086 return; +00087 } +00088 +00089 typedef struct _UbixUser UbixUser; +00090 struct _UbixUser +00091 { +00092 char *username; +00093 char *password; +00094 int uid; +00095 int gid; +00096 char *home; +00097 char *shell; +00098 }; +00099 +00100 void sysAuth(UbixUser *uu) +00101 { +00102 kprintf("authenticating user %s\n", uu->username); +00103 if(uu->username == "root" && uu->password == "user") +00104 { +00105 uu->uid = 0; +00106 uu->gid = 0; +00107 } +00108 uu->uid = -1; +00109 uu->gid = -1; +00110 return; +00111 } +00112 +00113 void sysPasswd(char *passwd) +00114 { +00115 kprintf("changing user password for user %d\n", _current->uid); +00116 return; +00117 } +00118 +00119 void sysAddModule() +00120 { +00121 return; +00122 } +00123 +00124 void sysRmModule() +00125 { +00126 return; +00127 } +00128 +00129 void sysGetpid(int *pid) +00130 { +00131 if (pid) +00132 *pid = _current->id; +00133 return; +00134 } +00135 +00136 void sysGetUid(int *uid) { +00137 if (uid) +00138 *uid = _current->uid; +00139 return; +00140 } +00141 +00142 void sysGetGid(int *gid) { +00143 if (gid) +00144 *gid = _current->gid; +00145 return; +00146 } +00147 +00148 void sysSetUid(int uid,int *status) { +00149 if (_current->uid == 0x0) { +00150 _current->uid = uid; +00151 if (status) +00152 *status = 0x0; +00153 } +00154 else { +00155 if (status) +00156 *status = 1; +00157 } +00158 return; +00159 } +00160 +00161 void sysSetGid(int gid,int *status) { +00162 if (_current->gid == 0x0) { +00163 _current->gid = gid; +00164 if (status) +00165 *status = 0x0; +00166 } +00167 else { +00168 if (status) +00169 *status = 1; +00170 } +00171 return; +00172 } +00173 +00174 void sysExit(int status) +00175 { +00176 endTask(_current->id); +00177 } +00178 +00179 void sysCheckPid(int pid,int *ptr) +00180 { +00181 kTask_t *tmpTask = schedFindTask(pid); +00182 if ((tmpTask != 0x0) && (ptr != 0x0)) +00183 *ptr = tmpTask->state; +00184 else +00185 *ptr = 0x0; +00186 return; +00187 } +00188 +00189 /************************************************************************ +00190 +00191 Function: void sysGetFreePage(); +00192 Description: Allocs A Page To The Users VM Space +00193 Notes: +00194 +00195 ************************************************************************/ +00196 void sysGetFreePage(long *ptr,int count,int type) { +00197 if (ptr) { +00198 if (type == 2) +00199 *ptr = (long) vmmGetFreeVirtualPage(_current->id,count,VM_THRD); +00200 else +00201 *ptr = (long) vmmGetFreeVirtualPage(_current->id,count,VM_TASK); +00202 } +00203 return; +00204 } +00205 +00206 void sysGetDrives(uInt32 *ptr) +00207 { +00208 if (ptr) +00209 *ptr = 0x0;//(uInt32)devices; +00210 return; +00211 } +00212 +00213 void sysGetUptime(uInt32 *ptr) +00214 { +00215 if (ptr) +00216 *ptr = systemVitals->sysTicks; +00217 return; +00218 } +00219 +00220 void sysGetTime(uInt32 *ptr) +00221 { +00222 if (ptr) +00223 *ptr = systemVitals->sysUptime + systemVitals->timeStart; +00224 return; +00225 } 00226 -00227 void sysGetCwd(char *data,int len) -00228 { -00229 if (data) -00230 sprintf(data,"%s", _current->oInfo.cwd); -00231 return; -00232 } -00233 -00234 void sysSchedYield() { -00235 sched_yield(); -00236 } -00237 -00238 void sysStartSDE() { -00239 int i = 0x0; -00240 for (i=0;i<1400;i++) { -00241 asm("hlt"); -00242 } -00243 //execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); -00244 for (i=0;i<1400;i++) { -00245 asm("hlt"); -00246 } -00247 return; -00248 } -00249 -00250 void invalidCall(int sys_call) { -00251 kprintf("Invalid System Call #[%i]\n",sys_call); -00252 return; -00253 } -00254 -00255 /*** -00256 END -00257 ***/ -00258 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00227 +00228 void sysGetCwd(char *data,int len) +00229 { +00230 if (data) +00231 sprintf(data,"%s", _current->oInfo.cwd); +00232 return; +00233 } +00234 +00235 void sysSchedYield() { +00236 sched_yield(); +00237 } +00238 +00239 void sysStartSDE() { +00240 int i = 0x0; +00241 for (i=0;i<1400;i++) { +00242 asm("hlt"); +00243 } +00244 //execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); +00245 for (i=0;i<1400;i++) { +00246 asm("hlt"); +00247 } +00248 return; +00249 } +00250 +00251 void invalidCall(int sys_call) { +00252 kprintf("Invalid System Call #[%i]\n",sys_call); +00253 return; +00254 } +00255 +00256 /*** +00257 END +00258 ***/ +00259 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall_8c.html b/doc/html/syscall_8c.html index 3886f0e..4ef4494 100644 --- a/doc/html/syscall_8c.html +++ b/doc/html/syscall_8c.html @@ -38,8 +38,8 @@ #include <ubixos/types.h>
    #include <ubixos/exec.h>
    #include <ubixos/elf.h>
    -#include <ubixos/vitals.h>
    #include <ubixos/endtask.h>
    +#include <ubixos/time.h>
    #include <sys/video.h>
    #include <sys/trap.h>
    #include <vfs/file.h>
    @@ -47,6 +47,7 @@ #include <lib/string.h>
    #include <lib/kprintf.h>
    #include <lib/kmalloc.h>
    +#include <ubixos/vitals.h>
    #include <mpi/mpi.h>
    #include <vmm/vmm.h>
    @@ -122,7 +123,7 @@

    -Definition at line 88 of file syscall.c. +Definition at line 89 of file syscall.c.


    Function Documentation

    @@ -212,7 +213,7 @@

    -Definition at line 250 of file syscall.c. +Definition at line 251 of file syscall.c.

    References kprintf(). @@ -235,7 +236,7 @@

    -Definition at line 82 of file syscall.c. +Definition at line 83 of file syscall.c.

    References kprintf(). @@ -277,7 +278,7 @@

    -Definition at line 118 of file syscall.c. +Definition at line 119 of file syscall.c.

    @@ -299,9 +300,9 @@

    -Definition at line 99 of file syscall.c. +Definition at line 100 of file syscall.c.

    -References _UbixUser::gid, kprintf(), _UbixUser::password, _UbixUser::uid, and _UbixUser::username. +References _UbixUser::gid, kprintf(), _UbixUser::password, _UbixUser::uid, and _UbixUser::username.

    @@ -332,9 +333,9 @@

    -Definition at line 178 of file syscall.c. +Definition at line 179 of file syscall.c.

    -References schedFindTask(), and taskStruct::state. +References schedFindTask(), and taskStruct::state.

    @@ -356,9 +357,9 @@

    -Definition at line 173 of file syscall.c. +Definition at line 174 of file syscall.c.

    -References _current, endTask(), and taskStruct::id. +References _current, endTask(), and taskStruct::id.

    @@ -389,9 +390,9 @@

    -Definition at line 227 of file syscall.c. +Definition at line 228 of file syscall.c.

    -References _current, osInfo::cwd, taskStruct::oInfo, and sprintf(). +References _current, osInfo::cwd, taskStruct::oInfo, and sprintf().

    @@ -413,7 +414,7 @@

    -Definition at line 205 of file syscall.c. +Definition at line 206 of file syscall.c.

    @@ -450,9 +451,9 @@

    -Definition at line 195 of file syscall.c. +Definition at line 196 of file syscall.c.

    -References _current, taskStruct::id, VM_TASK, VM_THRD, and vmmGetFreeVirtualPage(). +References _current, taskStruct::id, VM_TASK, VM_THRD, and vmmGetFreeVirtualPage().

    @@ -474,9 +475,9 @@

    -Definition at line 141 of file syscall.c. +Definition at line 142 of file syscall.c.

    -References _current, and taskStruct::gid. +References _current, and taskStruct::gid.

    @@ -498,9 +499,9 @@

    -Definition at line 128 of file syscall.c. +Definition at line 129 of file syscall.c.

    -References _current, and taskStruct::id. +References _current, and taskStruct::id.

    @@ -522,9 +523,9 @@

    -Definition at line 219 of file syscall.c. +Definition at line 220 of file syscall.c.

    -References systemVitals. +References systemVitals, vitalsStruct::sysUptime, and vitalsStruct::timeStart.

    @@ -546,9 +547,9 @@

    -Definition at line 135 of file syscall.c. +Definition at line 136 of file syscall.c.

    -References _current, and taskStruct::uid. +References _current, and taskStruct::uid.

    @@ -570,9 +571,9 @@

    -Definition at line 212 of file syscall.c. +Definition at line 213 of file syscall.c.

    -References systemVitals. +References systemVitals, and vitalsStruct::sysTicks.

    @@ -594,9 +595,9 @@

    -Definition at line 112 of file syscall.c. +Definition at line 113 of file syscall.c.

    -References _current, kprintf(), and taskStruct::uid. +References _current, kprintf(), and taskStruct::uid.

    @@ -617,7 +618,7 @@

    -Definition at line 123 of file syscall.c. +Definition at line 124 of file syscall.c.

    @@ -638,9 +639,9 @@

    -Definition at line 234 of file syscall.c. +Definition at line 235 of file syscall.c.

    -References sched_yield(). +References sched_yield().

    @@ -671,9 +672,9 @@

    -Definition at line 160 of file syscall.c. +Definition at line 161 of file syscall.c.

    -References _current, and taskStruct::gid. +References _current, and taskStruct::gid.

    @@ -704,9 +705,9 @@

    -Definition at line 147 of file syscall.c. +Definition at line 148 of file syscall.c.

    -References _current, and taskStruct::uid. +References _current, and taskStruct::uid.

    @@ -727,10 +728,10 @@

    -Definition at line 238 of file syscall.c. +Definition at line 239 of file syscall.c.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall_8h-source.html b/doc/html/syscall_8h-source.html index fffc5e7..d00f0da 100644 --- a/doc/html/syscall_8h-source.html +++ b/doc/html/syscall_8h-source.html @@ -93,7 +93,7 @@ 00061 00062 END 00063 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall_8h.html b/doc/html/syscall_8h.html index 5a105e6..2b5ab88 100644 --- a/doc/html/syscall_8h.html +++ b/doc/html/syscall_8h.html @@ -103,7 +103,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall__new_8c-source.html b/doc/html/syscall__new_8c-source.html index 72c1368..82878a4 100644 --- a/doc/html/syscall__new_8c-source.html +++ b/doc/html/syscall__new_8c-source.html @@ -124,7 +124,7 @@ 00092 END 00093 ***/ 00094 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscall__new_8c.html b/doc/html/syscall__new_8c.html index 6c1474c..55721a6 100644 --- a/doc/html/syscall__new_8c.html +++ b/doc/html/syscall__new_8c.html @@ -73,7 +73,7 @@

    Definition at line 41 of file syscall_new.c.

    -References _current, EJUSTRETURN, ERESTART, kprintf(), memcpy(), PSL_C, systemCalls_new, taskStruct::td, thread::td_retval, trapframe::tf_eax, trapframe::tf_edx, trapframe::tf_eflags, trapframe::tf_eip, trapframe::tf_err, trapframe::tf_esp, and totalCalls_new. +References _current, EJUSTRETURN, ERESTART, kprintf(), memcpy(), PSL_C, systemCalls_new, taskStruct::td, thread::td_retval, trapframe::tf_eax, trapframe::tf_edx, trapframe::tf_eflags, trapframe::tf_eip, trapframe::tf_err, trapframe::tf_esp, and totalCalls_new.


    Variable Documentation

    @@ -92,11 +92,9 @@

    Definition at line 39 of file syscall_new.c. -

    -Referenced by __sysctl().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscalls_8h-source.html b/doc/html/syscalls_8h-source.html index a3fc1a2..76fac77 100644 --- a/doc/html/syscalls_8h-source.html +++ b/doc/html/syscalls_8h-source.html @@ -198,7 +198,7 @@ 00166 00167 END 00168 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscalls_8h.html b/doc/html/syscalls_8h.html index 6d43e7b..c56f52b 100644 --- a/doc/html/syscalls_8h.html +++ b/doc/html/syscalls_8h.html @@ -157,7 +157,7 @@

    -Definition at line 118 of file syscall.c. +Definition at line 119 of file syscall.c.

    @@ -712,7 +712,7 @@

    -Definition at line 123 of file syscall.c. +Definition at line 124 of file syscall.c.

    @@ -733,9 +733,9 @@

    -Definition at line 234 of file syscall.c. +Definition at line 235 of file syscall.c.

    -References sched_yield(). +References sched_yield().

    @@ -813,7 +813,7 @@

    -Definition at line 238 of file syscall.c. +Definition at line 239 of file syscall.c.

    @@ -870,7 +870,7 @@ Definition at line 135 of file syscalls.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscalls__new_8h-source.html b/doc/html/syscalls__new_8h-source.html index 5c5869c..1d4e844 100644 --- a/doc/html/syscalls__new_8h-source.html +++ b/doc/html/syscalls__new_8h-source.html @@ -557,7 +557,7 @@ 00525 END 00526 ***/ 00527 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/syscalls__new_8h.html b/doc/html/syscalls__new_8h.html index 8ce821c..ce974ec 100644 --- a/doc/html/syscalls__new_8h.html +++ b/doc/html/syscalls__new_8h.html @@ -608,7 +608,7 @@ Referenced by syscall().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sysproto_8h-source.html b/doc/html/sysproto_8h-source.html index d79d2e5..65a4623 100644 --- a/doc/html/sysproto_8h-source.html +++ b/doc/html/sysproto_8h-source.html @@ -181,7 +181,7 @@ 00149 END 00150 ***/ 00151 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/sysproto_8h.html b/doc/html/sysproto_8h.html index 796b059..ceb129f 100644 --- a/doc/html/sysproto_8h.html +++ b/doc/html/sysproto_8h.html @@ -174,7 +174,7 @@ Definition at line 35 of file sysproto.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/system_8c-source.html b/doc/html/system_8c-source.html index cab5048..aad5201 100644 --- a/doc/html/system_8c-source.html +++ b/doc/html/system_8c-source.html @@ -289,7 +289,7 @@ 00257 /*** 00258 END 00259 ***/ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/system_8c.html b/doc/html/system_8c.html index 1542b20..92f75d1 100644 --- a/doc/html/system_8c.html +++ b/doc/html/system_8c.html @@ -81,7 +81,7 @@

    Definition at line 69 of file system.c.

    -References _current, taskStruct::id, kmalloc(), mbox, mboxList, mpi_findMbox(), mpiSpinLock, mpi_mbox::prev, spinLock(), spinUnlock(), and sprintf(). +References _current, taskStruct::id, kmalloc(), mbox, mboxList, mpi_findMbox(), mpiSpinLock, mpi_mbox::prev, spinLock(), spinUnlock(), and sprintf().

    Referenced by sysMpiCreateMbox(), systemTask(), and ubixfs_thread(). @@ -107,7 +107,7 @@

    Definition at line 234 of file system.c.

    -References _current, taskStruct::id, kfree(), mbox, mboxList, mpiSpinLock, spinLock(), spinUnlock(), and strcmp(). +References _current, taskStruct::id, kfree(), mbox, mboxList, mpiSpinLock, spinLock(), spinUnlock(), and strcmp().

    Referenced by sysMpiDestroyMbox(). @@ -142,7 +142,7 @@

    Definition at line 189 of file system.c.

    -References _current, mpi_message::data, mpi_message::header, taskStruct::id, kfree(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::pid, spinLock(), and spinUnlock(). +References _current, mpi_message::data, mpi_message::header, taskStruct::id, kfree(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::pid, spinLock(), and spinUnlock().

    Referenced by sysMpiFetchMessage(), systemTask(), and ubixfs_thread(). @@ -209,7 +209,7 @@

    Definition at line 143 of file system.c.

    -References _current, mpi_message::data, mpi_message::header, taskStruct::id, kmalloc(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::next, mpi_message::pid, spinLock(), spinUnlock(), and x1. +References _current, mpi_message::data, mpi_message::header, taskStruct::id, kmalloc(), mbox, memcpy(), MESSAGE_LENGTH, mpi_findMbox(), mpiSpinLock, mpi_message::next, mpi_message::pid, spinLock(), spinUnlock(), and x1.

    Referenced by sysMpiPostMessage(). @@ -244,7 +244,7 @@

    Definition at line 108 of file system.c.

    -References mpi_message::data, mpi_message::header, kmalloc(), mbox, mboxList, memcpy(), MESSAGE_LENGTH, mpiSpinLock, mpi_message::next, spinLock(), and spinUnlock(). +References mpi_message::data, mpi_message::header, kmalloc(), mbox, mboxList, memcpy(), MESSAGE_LENGTH, mpiSpinLock, mpi_message::next, spinLock(), and spinUnlock().

    Referenced by sysMpiSpam(). @@ -288,7 +288,7 @@ Referenced by mpi_createMbox(), mpi_destroyMbox(), mpi_fetchMessage(), mpi_postMessage(), and mpi_spam().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/systemtask_8c-source.html b/doc/html/systemtask_8c-source.html index fdeec5a..1bde124 100644 --- a/doc/html/systemtask_8c-source.html +++ b/doc/html/systemtask_8c-source.html @@ -61,10 +61,10 @@ 00029 00030 #include <ubixos/systemtask.h> 00031 #include <ubixos/kpanic.h> -00032 #include <ubixos/vitals.h> -00033 #include <ubixos/exec.h> -00034 #include <ubixos/tty.h> -00035 #include <ubixos/sched.h> +00032 #include <ubixos/exec.h> +00033 #include <ubixos/tty.h> +00034 #include <ubixos/sched.h> +00035 #include <ubixos/vitals.h> 00036 #include <lib/kmalloc.h> 00037 #include <lib/kprintf.h> 00038 #include <lib/bioscall.h> @@ -99,8 +99,8 @@ 00067 break; 00068 case 1000: 00069 kprintf("Restarting the system in 5 seconds\n"); -00070 counter = systemVitals->sysUptime + 5; -00071 while (systemVitals->sysUptime < counter) { +00070 counter = systemVitals->sysUptime + 5; +00071 while (systemVitals->sysUptime < counter) { 00072 sched_yield(); 00073 } 00074 kprintf("Rebooting NOW!!!\n"); @@ -116,7 +116,7 @@ 00084 //execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); 00085 } 00086 else if (!strcmp(myMsg.data,"freePage")) { -00087 kprintf("Free Page: %i\n",systemVitals->freePages); +00087 kprintf("kkk Free Pages"); 00088 } 00089 else if (!strcmp(myMsg.data,"sdeStop")) { 00090 printOff = 0x0; @@ -142,7 +142,7 @@ 00110 vmmFreeProcessPages(tmpTask->id); 00111 kfree(tmpTask); 00112 } -00113 videoBuffer[0] = systemVitals->sysTicks; +00113 videoBuffer[0] = systemVitals->sysTicks; 00114 sched_yield(); 00115 } 00116 @@ -153,7 +153,7 @@ 00121 END 00122 ***/ 00123 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/systemtask_8c.html b/doc/html/systemtask_8c.html index a100ea5..a57928c 100644 --- a/doc/html/systemtask_8c.html +++ b/doc/html/systemtask_8c.html @@ -34,10 +34,10 @@

    #include <ubixos/systemtask.h>
    #include <ubixos/kpanic.h>
    -#include <ubixos/vitals.h>
    #include <ubixos/exec.h>
    #include <ubixos/tty.h>
    #include <ubixos/sched.h>
    +#include <ubixos/vitals.h>
    #include <lib/kmalloc.h>
    #include <lib/kprintf.h>
    #include <lib/bioscall.h>
    @@ -78,7 +78,7 @@

    Definition at line 48 of file systemtask.c.

    -References biosCall(), mpi_message::data, fclose(), mpi_message::header, taskStruct::id, taskStruct::imageFd, inportByte(), kfree(), kpanic(), kprintf(), mpi_createMbox(), mpi_fetchMessage(), outportByte(), mpi_message::pid, printOff, sched_getDelTask(), sched_yield(), schedFindTask(), strcmp(), systemVitals, taskStruct::term, tty_find(), videoBuffer, vmmFreeProcessPages(), and x10. +References biosCall(), mpi_message::data, fclose(), mpi_message::header, taskStruct::id, taskStruct::imageFd, inportByte(), kfree(), kpanic(), kprintf(), mpi_createMbox(), mpi_fetchMessage(), outportByte(), mpi_message::pid, printOff, sched_getDelTask(), sched_yield(), schedFindTask(), strcmp(), systemVitals, vitalsStruct::sysTicks, vitalsStruct::sysUptime, taskStruct::term, tty_find(), videoBuffer, vmmFreeProcessPages(), and x10.

    Referenced by kmain(). @@ -103,7 +103,7 @@ Referenced by backSpace(), clearScreen(), kprint(), and systemTask().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/systemtask_8h-source.html b/doc/html/systemtask_8h-source.html index 3ced054..f7ad36c 100644 --- a/doc/html/systemtask_8h-source.html +++ b/doc/html/systemtask_8h-source.html @@ -91,7 +91,7 @@ 00059 00060 END 00061 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/systemtask_8h.html b/doc/html/systemtask_8h.html index 5a038a6..0586610 100644 --- a/doc/html/systemtask_8h.html +++ b/doc/html/systemtask_8h.html @@ -62,12 +62,12 @@

    Definition at line 48 of file systemtask.c.

    -References biosCall(), mpi_message::data, fclose(), mpi_message::header, taskStruct::id, taskStruct::imageFd, inportByte(), kfree(), kpanic(), kprintf(), mpi_createMbox(), mpi_fetchMessage(), outportByte(), mpi_message::pid, printOff, sched_getDelTask(), sched_yield(), schedFindTask(), strcmp(), systemVitals, taskStruct::term, tty_find(), videoBuffer, vmmFreeProcessPages(), and x10. +References biosCall(), mpi_message::data, fclose(), mpi_message::header, taskStruct::id, taskStruct::imageFd, inportByte(), kfree(), kpanic(), kprintf(), mpi_createMbox(), mpi_fetchMessage(), outportByte(), mpi_message::pid, printOff, sched_getDelTask(), sched_yield(), schedFindTask(), strcmp(), systemVitals, vitalsStruct::sysTicks, vitalsStruct::sysUptime, taskStruct::term, tty_find(), videoBuffer, vmmFreeProcessPages(), and x10.

    Referenced by kmain().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tab_b.gif b/doc/html/tab_b.gif new file mode 100644 index 0000000..0d62348 --- /dev/null +++ b/doc/html/tab_b.gif Binary files differ diff --git a/doc/html/tab_l.gif b/doc/html/tab_l.gif new file mode 100644 index 0000000..9b1e633 --- /dev/null +++ b/doc/html/tab_l.gif Binary files differ diff --git a/doc/html/tab_r.gif b/doc/html/tab_r.gif new file mode 100644 index 0000000..ce9dd9f --- /dev/null +++ b/doc/html/tab_r.gif Binary files differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css new file mode 100644 index 0000000..a61552a --- /dev/null +++ b/doc/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/doc/html/tcp_8h-source.html b/doc/html/tcp_8h-source.html index c08316c..bb1929a 100644 --- a/doc/html/tcp_8h-source.html +++ b/doc/html/tcp_8h-source.html @@ -431,7 +431,7 @@ 00399 00400 00401 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcp_8h.html b/doc/html/tcp_8h.html index 18f3150..280e576 100644 --- a/doc/html/tcp_8h.html +++ b/doc/html/tcp_8h.html @@ -1966,7 +1966,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpdump_8c-source.html b/doc/html/tcpdump_8c-source.html index 6798cfa..81e6301 100644 --- a/doc/html/tcpdump_8c-source.html +++ b/doc/html/tcpdump_8c-source.html @@ -206,7 +206,7 @@ 00174 END 00175 ***/ 00176 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpdump_8c.html b/doc/html/tcpdump_8c.html index abe1b4b..87b1b41 100644 --- a/doc/html/tcpdump_8c.html +++ b/doc/html/tcpdump_8c.html @@ -123,7 +123,7 @@ Referenced by tcpdump(), and tcpdump_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpdump_8h-source.html b/doc/html/tcpdump_8h-source.html index ce64f8a..7365792 100644 --- a/doc/html/tcpdump_8h-source.html +++ b/doc/html/tcpdump_8h-source.html @@ -73,7 +73,7 @@ 00041 void tcpdump(struct pbuf *p); 00042 00043 #endif /* __NETIF_TCPDUMP_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpdump_8h.html b/doc/html/tcpdump_8h.html index c4697c5..c931894 100644 --- a/doc/html/tcpdump_8h.html +++ b/doc/html/tcpdump_8h.html @@ -94,7 +94,7 @@ References file, fopen(), kpanic(), and NULL.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpip_8c-source.html b/doc/html/tcpip_8c-source.html index 8e6f5c5..6ba521e 100644 --- a/doc/html/tcpip_8c-source.html +++ b/doc/html/tcpip_8c-source.html @@ -175,7 +175,7 @@ 00143 00144 00145 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpip_8c.html b/doc/html/tcpip_8c.html index 570a9be..a70772c 100644 --- a/doc/html/tcpip_8c.html +++ b/doc/html/tcpip_8c.html @@ -273,7 +273,7 @@ Referenced by tcpip_init(), and tcpip_thread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpip_8h-source.html b/doc/html/tcpip_8h-source.html index c08e918..6774bce 100644 --- a/doc/html/tcpip_8h-source.html +++ b/doc/html/tcpip_8h-source.html @@ -93,7 +93,7 @@ 00061 00062 00063 #endif /* __LWIP_TCPIP_H__ */ -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tcpip_8h.html b/doc/html/tcpip_8h.html index e3542ad..60d0778 100644 --- a/doc/html/tcpip_8h.html +++ b/doc/html/tcpip_8h.html @@ -177,7 +177,7 @@ Referenced by netMainThread().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/thread_8c-source.html b/doc/html/thread_8c-source.html index 84d299f..b4f165f 100644 --- a/doc/html/thread_8c-source.html +++ b/doc/html/thread_8c-source.html @@ -68,7 +68,7 @@ 00036 int mounts; 00037 } ubixFS_Info; 00038 -00039 void ubixfs_thread(vfs_mountPoint_t *mp) { +00039 void ubixfs_thread(struct vfs_mountPoint *mp) { 00040 mpi_message_t myMsg; 00041 00042 ubixFS_Info.mounts = 0; @@ -92,29 +92,32 @@ 00060 00061 /*** 00062 $Log$ -00063 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg -00064 ubix2 +00063 Revision 1.2 2006/12/05 14:10:21 reddawg +00064 Workign Distro 00065 -00066 Revision 1.2 2005/10/12 00:13:37 reddawg -00067 Removed +00066 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg +00067 ubix2 00068 -00069 Revision 1.1.1.1 2005/09/26 17:24:41 reddawg -00070 no message +00069 Revision 1.2 2005/10/12 00:13:37 reddawg +00070 Removed 00071 -00072 Revision 1.3 2004/08/14 11:23:02 reddawg -00073 Changes +00072 Revision 1.1.1.1 2005/09/26 17:24:41 reddawg +00073 no message 00074 -00075 Revision 1.2 2004/07/23 09:10:06 reddawg -00076 ubixfs: cleaned up some functions played with the caching a bit -00077 vfs: renamed a bunch of functions -00078 cleaned up a few misc bugs -00079 -00080 Revision 1.1 2004/06/28 18:12:44 reddawg -00081 We need these files +00075 Revision 1.3 2004/08/14 11:23:02 reddawg +00076 Changes +00077 +00078 Revision 1.2 2004/07/23 09:10:06 reddawg +00079 ubixfs: cleaned up some functions played with the caching a bit +00080 vfs: renamed a bunch of functions +00081 cleaned up a few misc bugs 00082 -00083 END -00084 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00083 Revision 1.1 2004/06/28 18:12:44 reddawg +00084 We need these files +00085 +00086 END +00087 ***/ +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/thread_8c.html b/doc/html/thread_8c.html index 6b01a01..b112a21 100644 --- a/doc/html/thread_8c.html +++ b/doc/html/thread_8c.html @@ -41,7 +41,7 @@ Go to the source code of this file. - + @@ -52,14 +52,14 @@

    Functions

    void ubixfs_thread (vfs_mountPoint_t *mp)
    void ubixfs_thread (struct vfs_mountPoint *mp)

    Variables

    struct {

    Function Documentation

    - +
    - + @@ -111,7 +111,7 @@ Referenced by ubixfs_thread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/thread_8h-source.html b/doc/html/thread_8h-source.html index 069d319..2bd4ecb 100644 --- a/doc/html/thread_8h-source.html +++ b/doc/html/thread_8h-source.html @@ -66,7 +66,7 @@ 00034 00035 struct thread { 00036 int td_retval[2]; -00037 uInt32 o_files[64]; +00037 uInt32 o_files[64]; 00038 char * vm_daddr; 00039 int32_t vm_dsize; 00040 }; @@ -77,7 +77,7 @@ 00045 END 00046 ***/ 00047 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/thread_8h.html b/doc/html/thread_8h.html index af3696e..4119816 100644 --- a/doc/html/thread_8h.html +++ b/doc/html/thread_8h.html @@ -41,7 +41,7 @@
    void ubixfs_thread (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    struct  thread
    -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/time_8c-source.html b/doc/html/time_8c-source.html index 37b9854..c5a568e 100644 --- a/doc/html/time_8c-source.html +++ b/doc/html/time_8c-source.html @@ -61,7 +61,7 @@ 00029 00030 #include <ubixos/types.h> 00031 #include <ubixos/time.h> -00032 #include <ubixos/vitals.h> +00032 #include <ubixos/vitals.h> 00033 #include <lib/kprintf.h> 00034 #include <assert.h> 00035 @@ -112,7 +112,7 @@ 00080 BCD_TO_BIN(time.year); 00081 00082 /* Set up our start time in seconds */ -00083 systemVitals->timeStart = timeMake(&time); +00083 systemVitals->timeStart = timeMake(&time); 00084 00085 kprintf("%i/%i/%i %i:%i.%i\n",time.mon,time.day,time.year,time.hour,time.min,time.sec); 00086 @@ -150,7 +150,7 @@ 00118 END 00119 ***/ 00120 -

    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/time_8c.html b/doc/html/time_8c.html index 60b50aa..99563ef 100644 --- a/doc/html/time_8c.html +++ b/doc/html/time_8c.html @@ -34,7 +34,7 @@

    #include <ubixos/types.h>
    #include <ubixos/time.h>
    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>
    #include <lib/kprintf.h>
    #include <assert.h>
    @@ -110,7 +110,7 @@

    Definition at line 56 of file time.c.

    -References BCD_TO_BIN, timeStruct::day, timeStruct::hour, kprintf(), timeStruct::min, timeStruct::mon, timeStruct::sec, systemVitals, timeCmosRead(), timeMake(), and timeStruct::year. +References BCD_TO_BIN, timeStruct::day, timeStruct::hour, kprintf(), timeStruct::min, timeStruct::mon, timeStruct::sec, systemVitals, timeCmosRead(), timeMake(), vitalsStruct::timeStart, and timeStruct::year.

    @@ -199,7 +199,7 @@ Referenced by timeMake().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/time_8h-source.html b/doc/html/time_8h-source.html index ce34533..47eb131 100644 --- a/doc/html/time_8h-source.html +++ b/doc/html/time_8h-source.html @@ -138,7 +138,7 @@ 00106 00107 END 00108 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/time_8h.html b/doc/html/time_8h.html index ceadb26..9d798f0 100644 --- a/doc/html/time_8h.html +++ b/doc/html/time_8h.html @@ -263,7 +263,7 @@

    Definition at line 56 of file time.c.

    -References BCD_TO_BIN, timeStruct::day, timeStruct::hour, kprintf(), timeStruct::min, timeStruct::mon, timeStruct::sec, systemVitals, timeCmosRead(), timeMake(), and timeStruct::year. +References BCD_TO_BIN, timeStruct::day, timeStruct::hour, kprintf(), timeStruct::min, timeStruct::mon, timeStruct::sec, systemVitals, timeCmosRead(), timeMake(), vitalsStruct::timeStart, and timeStruct::year.

    @@ -292,7 +292,7 @@ Referenced by time_init().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/timer_8S-source.html b/doc/html/timer_8S-source.html index 5be1f33..6405142 100644 --- a/doc/html/timer_8S-source.html +++ b/doc/html/timer_8S-source.html @@ -67,7 +67,7 @@ 00035 mov $0x20,%dx /* The Following Sends Our EOI To The MPIC */ 00036 mov $0x20,%ax 00037 outb %al,%dx -00038 movl systemVitals,%ecx /* Put Location Of System Vitals Into ECX */ +00038 movl systemVitals,%ecx /* Put Location Of System Vitals Into ECX */ 00039 incl 4(%ecx) /* Increment sysTicks our 1000ms counter */ 00040 movl 4(%ecx),%eax /* Increment our sysUptime by 1S if 1000MS */ 00041 movl $200,%ebx /* Have Passed */ @@ -92,7 +92,7 @@ 00060 END 00061 ***/ 00062 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/timer_8S.html b/doc/html/timer_8S.html index fa17557..6bc3aad 100644 --- a/doc/html/timer_8S.html +++ b/doc/html/timer_8S.html @@ -170,8 +170,6 @@

    Definition at line 35 of file timer.S. -

    -Referenced by adjustCowCounter(), fclose(), fopen(), freePage(), keyboardHandler(), kmain(), ogPrintf(), sysGetTime(), sysGetUptime(), systemTask(), time_init(), ubthread_cond_timedwait(), vfs_addMount(), vfs_findMount(), vfs_init(), vfsFindFS(), vfsRegisterFS(), vitals_init(), vmmFindFreePage(), and vmmFreeProcessPages().

    @@ -210,7 +208,7 @@ Definition at line 35 of file timer.S.

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/times_8h-source.html b/doc/html/times_8h-source.html index 3ca6e86..c986e6d 100644 --- a/doc/html/times_8h-source.html +++ b/doc/html/times_8h-source.html @@ -96,7 +96,7 @@ 00064 00065 END 00066 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/times_8h.html b/doc/html/times_8h.html index 6d8f715..8b0dbc5 100644 --- a/doc/html/times_8h.html +++ b/doc/html/times_8h.html @@ -63,7 +63,7 @@ Definition at line 37 of file times.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/trap_8h-source.html b/doc/html/trap_8h-source.html index e5ed390..f721fa4 100644 --- a/doc/html/trap_8h-source.html +++ b/doc/html/trap_8h-source.html @@ -92,7 +92,7 @@ 00060 END 00061 ***/ 00062 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/trap_8h.html b/doc/html/trap_8h.html index 8083682..01917d3 100644 --- a/doc/html/trap_8h.html +++ b/doc/html/trap_8h.html @@ -40,7 +40,7 @@ struct  trapframe -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tree.html b/doc/html/tree.html index 4bc3aa0..c75af90 100644 --- a/doc/html/tree.html +++ b/doc/html/tree.html @@ -229,6 +229,7 @@

    |o*userFileDescriptorStruct

    |o*vfs_abstract

    |o*vfs_mountPoint

    +

    |o*vitalsStruct

    |\*write_args

    o+Class Hierarchy

    @@ -401,6 +402,7 @@

    ||\*UbixFS

    |o*vfs_mountPoint

    +

    |o*vitalsStruct

    |\*write_args

    o*Data Fields

    @@ -411,7 +413,6 @@

    o+File List

    |o*src/sys/Makefile.inc

    -

    |o*src/sys/compile/null.c

    |o*src/sys/devfs/devfs.c

    |o*src/sys/include/assert.h

    |o*src/sys/include/math.h

    @@ -521,6 +522,7 @@

    |o*src/sys/include/ubixos/tty.h

    |o*src/sys/include/ubixos/types.h

    |o*src/sys/include/ubixos/ubthread.h

    +

    |o*src/sys/include/ubixos/vitals.h

    |o*src/sys/include/ufs/ffs.h

    |o*src/sys/include/ufs/ufs.h

    |o*src/sys/include/vfs/file.h

    @@ -569,10 +571,12 @@

    |o*src/sys/kmods/kmod.c

    |o*src/sys/lib/assert.c

    |o*src/sys/lib/atan.c

    +

    |o*src/sys/lib/bcopy.c

    |o*src/sys/lib/divdi3.c

    |o*src/sys/lib/kmalloc.c

    |o*src/sys/lib/kprintf.c

    |o*src/sys/lib/libcpp.cc

    +

    |o*src/sys/lib/memcpy.c

    |o*src/sys/lib/memset.c

    |o*src/sys/lib/net.c

    |o*src/sys/lib/ogprintf.cc

    @@ -650,22 +654,18 @@

    | \+sys

    -

    |  o+compile

    +

    |  o+devfs

    -

    |  |\*null.c

    -
    -

    |  o+devfs

    - -

    |  o+include

    -
    -

    |  |o+devfs

    -
    +

    |  o+include

    +
    +

    |  |o+devfs

    + -

    |  |o+isa

    -
    +

    |  |o+isa

    +

    |  ||o*8259.h

    |  ||o*atkbd.h

    |  ||o*fdc.h

    @@ -673,8 +673,8 @@

    |  ||o*ne2k.h

    |  ||\*pit.h

    -

    |  |o+lib

    -
    +

    |  |o+lib

    + -

    |  |o+mpi

    -
    +

    |  |o+mpi

    + -

    |  |o+net

    -
    -

    |  ||o+arch

    -
    +

    |  |o+net

    +
    +

    |  ||o+arch

    +

    |  |||o*cc.h

    |  |||o*cpu.h

    |  |||o*init.h

    @@ -697,15 +697,15 @@

    |  |||o*perf.h

    |  |||\*sys_arch.h

    -

    |  ||o+ipv4

    -
    +

    |  ||o+ipv4

    + -

    |  ||o+ipv6

    -
    +

    |  ||o+ipv6

    +

    |  |||o*icmp.h

    |  |||o*inet.h

    |  |||o*ip.h

    @@ -732,30 +732,30 @@

    |  ||o*tcpip.h

    |  ||\*udp.h

    -

    |  |o+netif

    -
    +

    |  |o+netif

    + -

    |  |o+objgfx

    -
    +

    |  |o+objgfx

    + -

    |  |o+pci

    -
    +

    |  |o+pci

    + -

    |  |o+sde

    -
    +

    |  |o+sde

    + -

    |  |o+sys

    -
    +

    |  |o+sys

    +

    |  ||o*_types.h

    |  ||o*buf.h

    |  ||o*cdefs.h

    @@ -778,13 +778,13 @@

    |  ||o*tss.h

    |  ||\*video.h

    -

    |  |o+ubixfs

    -
    +

    |  |o+ubixfs

    + -

    |  |o+ubixos

    -
    +

    |  |o+ubixos

    + -

    |  |o+ufs

    -
    +

    |  |o+ufs

    + -

    |  |o+vfs

    -
    +

    |  |o+vfs

    + -

    |  |o+vmm

    -
    +

    |  |o+vmm

    + @@ -830,14 +831,14 @@

    |  |o*stdarg.h

    |  |\*string.h

    -

    |  o+init

    -
    +

    |  o+init

    + -

    |  o+isa

    -
    +

    |  o+isa

    +

    |  |o*8259.c

    |  |o*atkbd.c

    |  |o*fdc.c

    @@ -846,8 +847,8 @@

    |  |o*pit.c

    |  |\*rs232.c

    -

    |  o+kernel

    -
    +

    |  o+kernel

    +

    |  |o*ap-boot.S

    |  |o*bioscall.c

    |  |o*elf.c

    @@ -877,18 +878,20 @@

    |  |o*ubthread.c

    |  |\*vitals.c

    -

    |  o+kmods

    -
    +

    |  o+kmods

    + -

    |  o+lib

    -
    +

    |  o+lib

    + -

    |  o+mpi

    -
    +

    |  o+mpi

    + -

    |  o+net

    -
    -

    |  |o+api

    -
    +

    |  o+net

    +
    +

    |  |o+api

    + -

    |  |o+net

    -
    +

    |  |o+net

    +

    |  ||o*bot.c

    |  ||o*init.c

    |  ||o*shell.c

    @@ -923,38 +926,38 @@

    |  ||o*udpecho.c

    |  ||\*udpecho.h

    -

    |  |\+netif

    - -

    |  o+pci

    -
    +

    |  o+pci

    + -

    |  o+sys

    -
    +

    |  o+sys

    + -

    |  o+ubixfs

    -
    +

    |  o+ubixfs

    + -

    |  o+ubixfsv2

    -
    +

    |  o+ubixfsv2

    +

    |  |o*btree.cpp

    |  |o*btree.h

    |  |o*btreeheader.h

    @@ -970,19 +973,19 @@

    |  |o*vfs.cpp

    |  |\*vfs.h

    -

    |  o+ufs

    -
    +

    |  o+ufs

    + -

    |  o+vfs

    -
    +

    |  o+vfs

    + -

    |  o+vmm

    -
    +

    |  o+vmm

    +

    |  |o*copyvirtualspace.c

    |  |o*createvirtualspace.c

    |  |o*getfreepage.c

    diff --git a/doc/html/tss_8h-source.html b/doc/html/tss_8h-source.html index 49e3792..ae16e07 100644 --- a/doc/html/tss_8h-source.html +++ b/doc/html/tss_8h-source.html @@ -170,7 +170,7 @@ 00138 00139 END 00140 ***/ -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tss_8h.html b/doc/html/tss_8h.html index 75e9de3..fc22507 100644 --- a/doc/html/tss_8h.html +++ b/doc/html/tss_8h.html @@ -45,7 +45,7 @@ struct  tssStruct -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tty_8c-source.html b/doc/html/tty_8c-source.html index 123fc1e..4fb42a8 100644 --- a/doc/html/tty_8c-source.html +++ b/doc/html/tty_8c-source.html @@ -206,7 +206,7 @@ 00174 /*** 00175 END 00176 ***/ -

    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tty_8c.html b/doc/html/tty_8c.html index 0c92981..c02cc01 100644 --- a/doc/html/tty_8c.html +++ b/doc/html/tty_8c.html @@ -82,9 +82,9 @@

    Definition at line 87 of file tty.c.

    -References kpanic(), memcpy(), outportByte(), terms, tty_termNode::tty_buffer, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y. +References kpanic(), memcpy(), outportByte(), terms, tty_termNode::tty_buffer, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y.

    -Referenced by keyboardHandler(). +Referenced by keyboardHandler().

    @@ -133,7 +133,7 @@

    Definition at line 42 of file tty.c.

    -References inportByte(), kmalloc(), kpanic(), kprintf(), outportByte(), terms, tty_termNode::tty_buffer, tty_termNode::tty_colour, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y. +References inportByte(), kmalloc(), kpanic(), kprintf(), outportByte(), terms, tty_termNode::tty_buffer, tty_termNode::tty_colour, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y.

    @@ -207,7 +207,7 @@

    Definition at line 39 of file tty.c.

    -Referenced by backSpace(), getch(), keyboardHandler(), kpanic(), kprint(), sysFgetc(), tty_change(), tty_init(), and tty_print(). +Referenced by backSpace(), getch(), keyboardHandler(), kpanic(), kprint(), sysFgetc(), tty_change(), tty_init(), and tty_print().

    @@ -229,7 +229,7 @@ Referenced by tty_print().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tty_8h-source.html b/doc/html/tty_8h-source.html index f2e28e9..f246855 100644 --- a/doc/html/tty_8h-source.html +++ b/doc/html/tty_8h-source.html @@ -122,7 +122,7 @@ 00090 END 00091 ***/ 00092 -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/tty_8h.html b/doc/html/tty_8h.html index c98f13b..b7b3cd9 100644 --- a/doc/html/tty_8h.html +++ b/doc/html/tty_8h.html @@ -117,9 +117,9 @@

    Definition at line 87 of file tty.c.

    -References kpanic(), memcpy(), outportByte(), terms, tty_termNode::tty_buffer, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y. +References kpanic(), memcpy(), outportByte(), terms, tty_termNode::tty_buffer, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y.

    -Referenced by keyboardHandler(). +Referenced by keyboardHandler().

    @@ -168,7 +168,7 @@

    Definition at line 42 of file tty.c.

    -References inportByte(), kmalloc(), kpanic(), kprintf(), outportByte(), terms, tty_termNode::tty_buffer, tty_termNode::tty_colour, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y. +References inportByte(), kmalloc(), kpanic(), kprintf(), outportByte(), terms, tty_termNode::tty_buffer, tty_termNode::tty_colour, tty_foreground, TTY_MAX_TERMS, tty_termNode::tty_pointer, tty_termNode::tty_x, and tty_termNode::tty_y.

    @@ -223,10 +223,10 @@

    Definition at line 39 of file tty.c.

    -Referenced by backSpace(), getch(), keyboardHandler(), kpanic(), kprint(), sysFgetc(), tty_change(), tty_init(), and tty_print(). +Referenced by backSpace(), getch(), keyboardHandler(), kpanic(), kprint(), sysFgetc(), tty_change(), tty_init(), and tty_print().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfs_8c-source.html b/doc/html/ubixfs_8c-source.html index 403c830..e4e6bea 100644 --- a/doc/html/ubixfs_8c-source.html +++ b/doc/html/ubixfs_8c-source.html @@ -338,7 +338,7 @@ 00306 return(size); 00307 } 00308 -00309 void ubixFSUnlink(char *path,vfs_mountPoint_t *mp) { +00309 void ubixFSUnlink(char *path,struct vfs_mountPoint *mp) { 00310 int x=0; 00311 struct directoryEntry *dirEntry = (struct directoryEntry *)kmalloc(0x1000); 00312 struct ubixFSInfo *fsInfo = mp->fsInfo; @@ -405,7 +405,7 @@ 00373 Notes: 00374 00375 *****************************************************************************************/ -00376 int ubixfs_initialize(vfs_mountPoint_t *mp) { +00376 int ubixfs_initialize(struct vfs_mountPoint *mp) { 00377 struct ubixFSInfo *fsInfo = 0x0; 00378 00379 assert(mp); @@ -494,7 +494,7 @@ 00462 (void *)readUbixFS, /* vfsRead */ 00463 (void *)writeUbixFS, /* vfsWrite */ 00464 (void *)openFileUbixFS, /* vfsOpenFile */ -00465 (void *)ubixFSUnlink, /* vfsUnlink */ +00465 (void *)ubixFSUnlink, /* vfsUnlink */ 00466 (void *)ubixFSmkDir, /* vfsMakeDir */ 00467 NULL, /* vfsRemDir */ 00468 NULL, /* vfsSync */ @@ -513,164 +513,167 @@ 00481 00482 /*** 00483 $Log$ -00484 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg -00485 ubix2 +00484 Revision 1.2 2006/12/05 14:10:21 reddawg +00485 Workign Distro 00486 -00487 Revision 1.2 2005/10/12 00:13:37 reddawg -00488 Removed +00487 Revision 1.1.1.1 2006/06/01 12:46:17 reddawg +00488 ubix2 00489 -00490 Revision 1.1.1.1 2005/09/26 17:24:42 reddawg -00491 no message +00490 Revision 1.2 2005/10/12 00:13:37 reddawg +00491 Removed 00492 -00493 Revision 1.44 2004/08/26 22:51:19 reddawg -00494 TCA touched me :( i think he likes men.... +00493 Revision 1.1.1.1 2005/09/26 17:24:42 reddawg +00494 no message 00495 -00496 -00497 sched.h: kTask_t added parentPid -00498 endtask.c: fixed term back to parentPid -00499 exec.c: cleaned warnings -00500 fork.c: fixed term to childPid -00501 sched.c: clean up for dead tasks -00502 systemtask.c: clean up dead tasks -00503 kmalloc.c: cleaned up warnings -00504 udp.c: cleaned up warnings -00505 bot.c: cleaned up warnings -00506 shell.c: cleaned up warnings -00507 tcpdump.c: took a dump -00508 hd.c: cleaned up warnings -00509 ubixfs.c: stopped prning debug info -00510 -00511 Revision 1.43 2004/08/14 11:23:02 reddawg -00512 Changes +00496 Revision 1.44 2004/08/26 22:51:19 reddawg +00497 TCA touched me :( i think he likes men.... +00498 +00499 +00500 sched.h: kTask_t added parentPid +00501 endtask.c: fixed term back to parentPid +00502 exec.c: cleaned warnings +00503 fork.c: fixed term to childPid +00504 sched.c: clean up for dead tasks +00505 systemtask.c: clean up dead tasks +00506 kmalloc.c: cleaned up warnings +00507 udp.c: cleaned up warnings +00508 bot.c: cleaned up warnings +00509 shell.c: cleaned up warnings +00510 tcpdump.c: took a dump +00511 hd.c: cleaned up warnings +00512 ubixfs.c: stopped prning debug info 00513 -00514 Revision 1.42 2004/08/09 12:58:05 reddawg -00515 let me know when you got the surce +00514 Revision 1.43 2004/08/14 11:23:02 reddawg +00515 Changes 00516 -00517 Revision 1.41 2004/08/01 17:58:39 flameshadow -00518 chg: fixed string allocation bug in ubixfs_cacheNew() +00517 Revision 1.42 2004/08/09 12:58:05 reddawg +00518 let me know when you got the surce 00519 -00520 Revision 1.40 2004/07/28 17:07:29 flameshadow -00521 chg: re-added moving cached nodes to the front of the list when found -00522 add: added an assert() in ubixfs.c -00523 -00524 Revision 1.39 2004/07/27 19:24:31 flameshadow -00525 chg: reduced the number of debugging statements in the kernel. +00520 Revision 1.41 2004/08/01 17:58:39 flameshadow +00521 chg: fixed string allocation bug in ubixfs_cacheNew() +00522 +00523 Revision 1.40 2004/07/28 17:07:29 flameshadow +00524 chg: re-added moving cached nodes to the front of the list when found +00525 add: added an assert() in ubixfs.c 00526 -00527 Revision 1.38 2004/07/27 12:02:01 reddawg -00528 chg: fixed marks bug readFile did a lookup which is why it looked like it was loopping so much +00527 Revision 1.39 2004/07/27 19:24:31 flameshadow +00528 chg: reduced the number of debugging statements in the kernel. 00529 -00530 Revision 1.37 2004/07/27 09:05:43 flameshadow -00531 chg: fixed file not found bug. Still can't find looping issue +00530 Revision 1.38 2004/07/27 12:02:01 reddawg +00531 chg: fixed marks bug readFile did a lookup which is why it looked like it was loopping so much 00532 -00533 Revision 1.36 2004/07/27 04:05:20 flameshadow -00534 chg: kinda fixed it. Added bunches of debug info +00533 Revision 1.37 2004/07/27 09:05:43 flameshadow +00534 chg: fixed file not found bug. Still can't find looping issue 00535 -00536 Revision 1.35 2004/07/26 19:15:49 reddawg -00537 test code, fixes and the like +00536 Revision 1.36 2004/07/27 04:05:20 flameshadow +00537 chg: kinda fixed it. Added bunches of debug info 00538 -00539 Revision 1.34 2004/07/24 23:04:44 reddawg -00540 Changes... mark let me know if you fault at pid 185 when you type stress +00539 Revision 1.35 2004/07/26 19:15:49 reddawg +00540 test code, fixes and the like 00541 -00542 Revision 1.33 2004/07/23 09:10:06 reddawg -00543 ubixfs: cleaned up some functions played with the caching a bit -00544 vfs: renamed a bunch of functions -00545 cleaned up a few misc bugs -00546 -00547 Revision 1.32 2004/07/22 23:01:51 reddawg -00548 Ok checking in before I sleep +00542 Revision 1.34 2004/07/24 23:04:44 reddawg +00543 Changes... mark let me know if you fault at pid 185 when you type stress +00544 +00545 Revision 1.33 2004/07/23 09:10:06 reddawg +00546 ubixfs: cleaned up some functions played with the caching a bit +00547 vfs: renamed a bunch of functions +00548 cleaned up a few misc bugs 00549 -00550 Revision 1.31 2004/07/22 22:37:03 reddawg -00551 Caching is working now the FS is extremely fast but needs to be optimized to do 32bit copies over 8bit +00550 Revision 1.32 2004/07/22 23:01:51 reddawg +00551 Ok checking in before I sleep 00552 -00553 Revision 1.30 2004/07/22 19:01:59 flameshadow -00554 chg: more directory and file caching +00553 Revision 1.31 2004/07/22 22:37:03 reddawg +00554 Caching is working now the FS is extremely fast but needs to be optimized to do 32bit copies over 8bit 00555 -00556 Revision 1.29 2004/07/22 16:34:32 flameshadow -00557 add: file and dir caching kinda work +00556 Revision 1.30 2004/07/22 19:01:59 flameshadow +00557 chg: more directory and file caching 00558 -00559 Revision 1.28 2004/07/21 22:07:18 flameshadow -00560 chg: renamed caching functions (again) +00559 Revision 1.29 2004/07/22 16:34:32 flameshadow +00560 add: file and dir caching kinda work 00561 -00562 Revision 1.27 2004/07/21 21:08:05 flameshadow -00563 add: added provisions for file caching +00562 Revision 1.28 2004/07/21 22:07:18 flameshadow +00563 chg: renamed caching functions (again) 00564 -00565 Revision 1.26 2004/07/20 23:21:31 flameshadow -00566 syncing +00565 Revision 1.27 2004/07/21 21:08:05 flameshadow +00566 add: added provisions for file caching 00567 -00568 Revision 1.25 2004/07/20 21:39:53 reddawg -00569 ubixfs: does propper caching now problem was you did not seek realSector however the os starts but I am getting a segfault could be from anything haven't looked into it right quick +00568 Revision 1.26 2004/07/20 23:21:31 flameshadow +00569 syncing 00570 -00571 Revision 1.24 2004/07/20 21:38:08 flameshadow -00572 try now +00571 Revision 1.25 2004/07/20 21:39:53 reddawg +00572 ubixfs: does propper caching now problem was you did not seek realSector however the os starts but I am getting a segfault could be from anything haven't looked into it right quick 00573 -00574 -00575 Revision 1.23 2004/07/20 21:35:09 reddawg -00576 Let me commit before we start to overlap +00574 Revision 1.24 2004/07/20 21:38:08 flameshadow +00575 try now +00576 00577 -00578 Revision 1.22 2004/07/20 21:28:16 flameshadow -00579 oops +00578 Revision 1.23 2004/07/20 21:35:09 reddawg +00579 Let me commit before we start to overlap 00580 -00581 Revision 1.20 2004/07/20 19:36:49 reddawg -00582 UBU Tags +00581 Revision 1.22 2004/07/20 21:28:16 flameshadow +00582 oops 00583 -00584 Revision 1.19 2004/07/20 18:09:37 flameshadow -00585 add: directory caching related stuff +00584 Revision 1.20 2004/07/20 19:36:49 reddawg +00585 UBU Tags 00586 -00587 Revision 1.18 2004/07/17 03:21:34 flameshadow -00588 chg: cleaned up code; added assert() statements +00587 Revision 1.19 2004/07/20 18:09:37 flameshadow +00588 add: directory caching related stuff 00589 -00590 Revision 1.15 2004/07/14 12:21:49 reddawg -00591 ubixfs: enableUbixFs to ubixfs_init -00592 Changed Startup Routines -00593 -00594 Revision 1.14 2004/06/28 23:12:58 reddawg -00595 file format now container:/path/to/file +00590 Revision 1.18 2004/07/17 03:21:34 flameshadow +00591 chg: cleaned up code; added assert() statements +00592 +00593 Revision 1.15 2004/07/14 12:21:49 reddawg +00594 ubixfs: enableUbixFs to ubixfs_init +00595 Changed Startup Routines 00596 -00597 Revision 1.13 2004/06/28 18:12:44 reddawg -00598 We need these files +00597 Revision 1.14 2004/06/28 23:12:58 reddawg +00598 file format now container:/path/to/file 00599 -00600 Revision 1.12 2004/06/28 11:57:58 reddawg -00601 Fixing Up Filesystem +00600 Revision 1.13 2004/06/28 18:12:44 reddawg +00601 We need these files 00602 -00603 Revision 1.10 2004/06/04 13:20:22 reddawg -00604 ubixFSmkDir(): played with it a bit to see if it still worked +00603 Revision 1.12 2004/06/28 11:57:58 reddawg +00604 Fixing Up Filesystem 00605 -00606 Revision 1.9 2004/06/04 10:19:42 reddawg -00607 notes: we compile again, thank g-d anyways i was about to cry +00606 Revision 1.10 2004/06/04 13:20:22 reddawg +00607 ubixFSmkDir(): played with it a bit to see if it still worked 00608 -00609 Revision 1.8 2004/06/01 00:04:53 reddawg -00610 Try now mark +00609 Revision 1.9 2004/06/04 10:19:42 reddawg +00610 notes: we compile again, thank g-d anyways i was about to cry 00611 -00612 Revision 1.7 2004/05/19 15:20:06 reddawg -00613 Fixed reference problems due to changes in drive subsystem +00612 Revision 1.8 2004/06/01 00:04:53 reddawg +00613 Try now mark 00614 -00615 Revision 1.6 2004/05/19 04:07:43 reddawg -00616 kmalloc(size,pid) no more it is no kmalloc(size); the way it should of been +00615 Revision 1.7 2004/05/19 15:20:06 reddawg +00616 Fixed reference problems due to changes in drive subsystem 00617 -00618 Revision 1.5 2004/04/29 15:45:19 reddawg -00619 Fixed some bugs so now the automade images will work correctly +00618 Revision 1.6 2004/05/19 04:07:43 reddawg +00619 kmalloc(size,pid) no more it is no kmalloc(size); the way it should of been 00620 -00621 Revision 1.4 2004/04/28 21:10:40 reddawg -00622 Lots Of changes to make it work with existing os +00621 Revision 1.5 2004/04/29 15:45:19 reddawg +00622 Fixed some bugs so now the automade images will work correctly 00623 -00624 Revision 1.3 2004/04/28 13:33:09 reddawg -00625 Overhaul to ubixfs and boot loader and MBR to work well with our schema -00626 now BAT and dir and file entries are all offset 64Sectors from the start of the partition -00627 -00628 Revision 1.2 2004/04/28 02:22:55 reddawg -00629 This is a fiarly large commit but we are starting to use new driver model -00630 all around -00631 -00632 Revision 1.1.1.1 2004/04/15 12:07:08 reddawg -00633 UbixOS v1.0 +00624 Revision 1.4 2004/04/28 21:10:40 reddawg +00625 Lots Of changes to make it work with existing os +00626 +00627 Revision 1.3 2004/04/28 13:33:09 reddawg +00628 Overhaul to ubixfs and boot loader and MBR to work well with our schema +00629 now BAT and dir and file entries are all offset 64Sectors from the start of the partition +00630 +00631 Revision 1.2 2004/04/28 02:22:55 reddawg +00632 This is a fiarly large commit but we are starting to use new driver model +00633 all around 00634 -00635 Revision 1.31 2004/04/13 16:36:34 reddawg -00636 Changed our copyright, it is all now under a BSD-Style license +00635 Revision 1.1.1.1 2004/04/15 12:07:08 reddawg +00636 UbixOS v1.0 00637 -00638 END -00639 ***/ -00640 -

    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00638 Revision 1.31 2004/04/13 16:36:34 reddawg +00639 Changed our copyright, it is all now under a BSD-Style license +00640 +00641 END +00642 ***/ +00643 +

    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfs_8c.html b/doc/html/ubixfs_8c.html index 8ac4091..a53121e 100644 --- a/doc/html/ubixfs_8c.html +++ b/doc/html/ubixfs_8c.html @@ -54,11 +54,11 @@ int ubixfs_init () -int ubixfs_initialize (vfs_mountPoint_t *mp) +int ubixfs_initialize (struct vfs_mountPoint *mp) static int ubixfs_loadData (fileDescriptor *fd, char *data, uInt32 size, uInt32 batIndex) -void ubixFSUnlink (char *path, vfs_mountPoint_t *mp) +void ubixFSUnlink (char *path, struct vfs_mountPoint *mp) int writeFileByte (int ch, fileDescriptor *fd, long offset) @@ -96,7 +96,7 @@

    Definition at line 46 of file ubixfs.c.

    -References assert, ubixFSInfo::dirCache, fileRead, fileWrite, cacheNode::info, kmalloc(), kprintf(), NULL, cacheNode::permissions, cacheNode::present, fileDescriptor::size, cacheNode::size, cacheNode::startCluster, UBIXFS_ALIGN, ubixfs_cacheFind(), ubixfs_loadData(), and x1. +References assert, ubixFSInfo::dirCache, fileRead, fileWrite, cacheNode::info, kmalloc(), kprintf(), NULL, cacheNode::permissions, cacheNode::present, fileDescriptor::size, cacheNode::size, cacheNode::startCluster, UBIXFS_ALIGN, ubixfs_cacheFind(), ubixfs_loadData(), and x1.

    Referenced by ubixfs_init().

    @@ -171,14 +171,14 @@ References kpanic(), NULL, openFileUbixFS(), readUbixFS(), ubixfs_initialize(), ubixFSmkDir(), ubixFSUnlink(), vfsRegisterFS(), writeUbixFS(), and x1.

    - +

    - + @@ -192,7 +192,7 @@

    Definition at line 376 of file ubixfs.c.

    -References assert, cacheNode::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, ubixFSInfo::dirCache, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, cacheNode::info, device_interface::info, kmalloc(), kprintf(), ubixDiskLabel::magicNum, ubixDiskLabel::magicNum2, vfs_mountPoint::partition, ubixDiskLabel::partitions, ubixDiskLabel::ubixPartitions::pBatSize, cacheNode::permissions, cacheNode::present, device_interface::read, ubixFSInfo::rootDir, cacheNode::size, cacheNode::startCluster, UBIXDISKMAGIC, ubixfs_cacheNew(), and x1. +References assert, cacheNode::attributes, ubixFSInfo::batEntries, ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, ubixFSInfo::dirCache, vfs_mountPoint::diskLabel, vfs_mountPoint::fsInfo, cacheNode::info, device_interface::info, kmalloc(), kprintf(), ubixDiskLabel::magicNum, ubixDiskLabel::magicNum2, vfs_mountPoint::partition, ubixDiskLabel::partitions, ubixDiskLabel::ubixPartitions::pBatSize, cacheNode::permissions, cacheNode::present, device_interface::read, ubixFSInfo::rootDir, cacheNode::size, cacheNode::startCluster, UBIXDISKMAGIC, ubixfs_cacheNew(), and x1.

    @@ -242,7 +242,7 @@ Referenced by openFileUbixFS().

    - +

    int ubixfs_initialize (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    @@ -255,7 +255,7 @@ - + @@ -272,7 +272,7 @@

    Definition at line 309 of file ubixfs.c.

    -References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, directoryEntry::fileName, vfs_mountPoint::fsInfo, device_interface::info, kmalloc(), kprintf(), vfs_mountPoint::partition, ubixDiskLabel::partitions, device_interface::read, ubixFSInfo::rootDir, strcmp(), typeDeleted, device_interface::write, and x1000. +References ubixFSInfo::blockAllocationTable, vfs_mountPoint::device, device_node::devInfo, vfs_mountPoint::diskLabel, directoryEntry::fileName, vfs_mountPoint::fsInfo, device_interface::info, kmalloc(), kprintf(), vfs_mountPoint::partition, ubixDiskLabel::partitions, device_interface::read, ubixFSInfo::rootDir, strcmp(), typeDeleted, device_interface::write, and x1000.

    Referenced by ubixfs_init(). @@ -358,12 +358,12 @@

    Definition at line 232 of file ubixfs.c.

    -References assert, ubixFSInfo::blockAllocationTable, blockSize, EOBC, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), blockAllocationTableEntry::nextBlock, NULL, blockAllocationTableEntry::realSector, directoryEntry::size, fileDescriptor::size, directoryEntry::startCluster, strcmp(), and x1000. +References assert, ubixFSInfo::blockAllocationTable, blockSize, EOBC, directoryEntry::fileName, getFreeBlocks(), kfree(), kmalloc(), blockAllocationTableEntry::nextBlock, NULL, blockAllocationTableEntry::realSector, directoryEntry::size, fileDescriptor::size, directoryEntry::startCluster, strcmp(), and x1000.

    Referenced by addDirEntry(), and ubixfs_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfs_8cpp-source.html b/doc/html/ubixfs_8cpp-source.html index a77f9aa..6afac5d 100644 --- a/doc/html/ubixfs_8cpp-source.html +++ b/doc/html/ubixfs_8cpp-source.html @@ -1019,7 +1019,7 @@ 00987 delete [] freeBlockList; 00988 return; 00989 } -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfs_8cpp.html b/doc/html/ubixfs_8cpp.html index 3e6769e..dfce358 100644 --- a/doc/html/ubixfs_8cpp.html +++ b/doc/html/ubixfs_8cpp.html @@ -45,7 +45,7 @@ Go to the source code of this file.
    vfs_mountPoint_tstruct vfs_mountPoint mp 
    -
    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2device_8h-source.html b/doc/html/ubixfsv2_2device_8h-source.html index f84508f..0c08f3c 100644 --- a/doc/html/ubixfsv2_2device_8h-source.html +++ b/doc/html/ubixfsv2_2device_8h-source.html @@ -174,7 +174,7 @@ 00142 END 00143 ***/ 00144 -

    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2device_8h.html b/doc/html/ubixfsv2_2device_8h.html index 13d2315..e3af1fc 100644 --- a/doc/html/ubixfsv2_2device_8h.html +++ b/doc/html/ubixfsv2_2device_8h.html @@ -46,7 +46,7 @@ struct  device_t -
    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2file_8h-source.html b/doc/html/ubixfsv2_2file_8h-source.html index ac31733..d04358a 100644 --- a/doc/html/ubixfsv2_2file_8h-source.html +++ b/doc/html/ubixfsv2_2file_8h-source.html @@ -44,7 +44,7 @@ 00012 } fileDescriptor; 00013 00014 #endif /* !FILE_H */ -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2file_8h.html b/doc/html/ubixfsv2_2file_8h.html index 9c77131..0e87fa3 100644 --- a/doc/html/ubixfsv2_2file_8h.html +++ b/doc/html/ubixfsv2_2file_8h.html @@ -41,7 +41,7 @@ struct  fileDescriptor -
    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2types_8h-source.html b/doc/html/ubixfsv2_2types_8h-source.html index b599bf1..e702d70 100644 --- a/doc/html/ubixfsv2_2types_8h-source.html +++ b/doc/html/ubixfsv2_2types_8h-source.html @@ -41,7 +41,7 @@ 00009 typedef signed long long int64; 00010 00011 #endif /* !TYPES_H */ -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2types_8h.html b/doc/html/ubixfsv2_2types_8h.html index c296b98..9650c3f 100644 --- a/doc/html/ubixfsv2_2types_8h.html +++ b/doc/html/ubixfsv2_2types_8h.html @@ -153,7 +153,7 @@ Definition at line 5 of file types.h.

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2ubixfs_8h-source.html b/doc/html/ubixfsv2_2ubixfs_8h-source.html index 33fc202..ea0a328 100644 --- a/doc/html/ubixfsv2_2ubixfs_8h-source.html +++ b/doc/html/ubixfsv2_2ubixfs_8h-source.html @@ -193,7 +193,7 @@ 00161 }; // UbixFS 00162 00163 #endif // !UBIXFS_H -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2ubixfs_8h.html b/doc/html/ubixfsv2_2ubixfs_8h.html index ad5c8c1..34018fc 100644 --- a/doc/html/ubixfsv2_2ubixfs_8h.html +++ b/doc/html/ubixfsv2_2ubixfs_8h.html @@ -415,7 +415,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2vfs_8h-source.html b/doc/html/ubixfsv2_2vfs_8h-source.html index f469d09..41f4c22 100644 --- a/doc/html/ubixfsv2_2vfs_8h-source.html +++ b/doc/html/ubixfsv2_2vfs_8h-source.html @@ -55,7 +55,7 @@ 00023 }; // DiskFS 00024 00025 #endif // !VFS_H -

    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixfsv2_2vfs_8h.html b/doc/html/ubixfsv2_2vfs_8h.html index f787564..348a78b 100644 --- a/doc/html/ubixfsv2_2vfs_8h.html +++ b/doc/html/ubixfsv2_2vfs_8h.html @@ -44,7 +44,7 @@ class  FileSystemAbstract -
    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixos_2init_8h-source.html b/doc/html/ubixos_2init_8h-source.html index 6bdbc43..dbabf88 100644 --- a/doc/html/ubixos_2init_8h-source.html +++ b/doc/html/ubixos_2init_8h-source.html @@ -63,25 +63,25 @@ 00031 #define _INIT_H 00032 00033 #include <vmm/vmm.h> -00034 #include <ubixos/vitals.h> -00035 #include <vfs/vfs.h> -00036 #include <isa/8259.h> -00037 #include <sys/idt.h> -00038 #include <ubixos/sched.h> -00039 #include <isa/pit.h> -00040 #include <isa/atkbd.h> -00041 #include <ubixos/time.h> -00042 #include <net/net.h> -00043 #include <isa/ne2k.h> -00044 #include <devfs/devfs.h> -00045 #include <pci/pci.h> -00046 #include <ubixfs/ubixfs.h> -00047 #include <isa/fdc.h> -00048 #include <ubixos/tty.h> -00049 #include <ufs/ufs.h> -00050 #include <ubixos/static.h> -00051 #include <pci/hd.h> -00052 #include <sys/kern_sysctl.h> +00034 #include <vfs/vfs.h> +00035 #include <isa/8259.h> +00036 #include <sys/idt.h> +00037 #include <ubixos/sched.h> +00038 #include <isa/pit.h> +00039 #include <isa/atkbd.h> +00040 #include <ubixos/time.h> +00041 #include <net/net.h> +00042 #include <isa/ne2k.h> +00043 #include <devfs/devfs.h> +00044 #include <pci/pci.h> +00045 #include <ubixfs/ubixfs.h> +00046 #include <isa/fdc.h> +00047 #include <ubixos/tty.h> +00048 #include <ufs/ufs.h> +00049 #include <ubixos/static.h> +00050 #include <pci/hd.h> +00051 #include <sys/kern_sysctl.h> +00052 #include <ubixos/vitals.h> 00053 00054 typedef int (*intFunctionPTR)(void); 00055 @@ -90,8 +90,8 @@ 00058 static_constructors, 00059 i8259_init, 00060 idt_init, -00061 //vitals_init, -00062 sysctl_init, +00061 vitals_init, +00062 sysctl_init, 00063 vfs_init, 00064 sched_init, 00065 pit_init, @@ -101,7 +101,7 @@ 00069 //ne2k_init, 00070 devfs_init, 00071 //pci_init, -00072 ubixfs_init, +00072 //ubixfs_init, 00073 //fdc_init, 00074 tty_init, 00075 ufs_init, @@ -115,7 +115,7 @@ 00083 /*** 00084 END 00085 ***/ -

    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:03 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubixos_2init_8h.html b/doc/html/ubixos_2init_8h.html index 71760a7..2ace7d0 100644 --- a/doc/html/ubixos_2init_8h.html +++ b/doc/html/ubixos_2init_8h.html @@ -33,7 +33,6 @@

    init.h File Reference

    #include <vmm/vmm.h>
    -#include <ubixos/vitals.h>
    #include <vfs/vfs.h>
    #include <isa/8259.h>
    #include <sys/idt.h>
    @@ -52,6 +51,7 @@ #include <ubixos/static.h>
    #include <pci/hd.h>
    #include <sys/kern_sysctl.h>
    +#include <ubixos/vitals.h>

    Go to the source code of this file. @@ -101,8 +101,8 @@ static_constructors, i8259_init, idt_init, - - sysctl_init, + vitals_init, + sysctl_init, vfs_init, sched_init, pit_init, @@ -112,7 +112,7 @@ devfs_init, - ubixfs_init, + tty_init, ufs_init, @@ -144,7 +144,7 @@ Referenced by kmain().

    -


    Generated on Sun Dec 3 02:38:06 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubthread_8c-source.html b/doc/html/ubthread_8c-source.html index 4fd01ab..f33eb35 100644 --- a/doc/html/ubthread_8c-source.html +++ b/doc/html/ubthread_8c-source.html @@ -62,110 +62,109 @@ 00030 /* All these must be converted to be done atomically */ 00031 00032 #include <ubixos/ubthread.h> -00033 #include <ubixos/vitals.h> -00034 #include <ubixos/exec.h> -00035 #include <ubixos/sched.h> -00036 #include <ubixos/vitals.h> -00037 #include <ubixos/time.h> -00038 #include <ubixos/spinlock.h> -00039 #include <lib/kmalloc.h> -00040 #include <lib/kprintf.h> -00041 -00042 struct ubthread_cond_list *conds = 0x0; -00043 struct ubthread_mutex_list *mutex = 0x0; -00044 -00045 kTask_t *ubthread_self() { -00046 return(_current); -00047 } -00048 -00049 int ubthread_cond_init(ubthread_cond_t *cond,const uInt32 attr) { -00050 ubthread_cond_t ubcond = kmalloc(sizeof(struct ubthread_cond)); -00051 ubcond->id = (int)cond; -00052 ubcond->locked = UNLOCKED; -00053 *cond = ubcond; -00054 return(0x0); -00055 } -00056 -00057 int ubthread_mutex_init(ubthread_mutex_t *mutex,const uInt32 attr) { -00058 ubthread_mutex_t ubmutex = kmalloc(sizeof(struct ubthread_mutex)); -00059 ubmutex->id = (int)mutex; -00060 ubmutex->locked = UNLOCKED; -00061 *mutex = ubmutex; -00062 return(0x0); -00063 } -00064 -00065 int ubthread_cond_destroy(ubthread_cond_t *cond) { -00066 kfree(*cond); -00067 *cond = 0x0; -00068 return(0x0); -00069 } -00070 -00071 int ubthread_mutex_destroy(ubthread_mutex_t *mutex) { -00072 kfree(*mutex); -00073 *mutex = 0x0; -00074 return(0x0); -00075 } -00076 -00077 int ubthread_create(kTask_t **thread,const uInt32 *attr,void (* tproc)(void), void *arg) { -00078 *thread = (void *)execThread(tproc,(int)(kmalloc(0x2000)+0x2000),arg); -00079 return(0x0); -00080 } -00081 -00082 int ubthread_mutex_lock(ubthread_mutex_t *mutex) { -00083 ubthread_mutex_t ubmutex = *mutex; -00084 if (ubmutex->locked == LOCKED) { -00085 kprintf("Mutex Already Lock By %x Trying To Be Relocked By %x\n",ubmutex->pid,_current->id); -00086 while (ubmutex->locked == LOCKED); -00087 } -00088 ubmutex->locked = LOCKED; -00089 ubmutex->pid = _current->id; -00090 return(0x0); -00091 } -00092 -00093 int ubthread_mutex_unlock(ubthread_mutex_t *mutex) { -00094 ubthread_mutex_t ubmutex = *mutex; -00095 if (ubmutex->pid == _current->id) { -00096 ubmutex->locked = UNLOCKED; -00097 return(0x0); -00098 } -00099 else { -00100 //kprintf("Trying To Unlock Mutex From No Locking Thread\n"); -00101 ubmutex->locked = UNLOCKED; -00102 return(-1); -00103 } -00104 } -00105 -00106 int ubthread_cond_timedwait(ubthread_cond_t *cond, ubthread_mutex_t *mutex, const struct timespec *abstime) { -00107 ubthread_cond_t ubcond = *cond; -00108 ubthread_mutex_t ubmutex = *mutex; -00109 uInt32 enterTime = systemVitals->sysUptime+20; -00110 while (enterTime > systemVitals->sysUptime) { -00111 if (ubcond->locked == UNLOCKED) break; -00112 sched_yield(); -00113 } -00114 ubmutex->locked = UNLOCKED; -00115 return(0x0); -00116 } -00117 -00118 int ubthread_cond_wait(ubthread_cond_t *cond, ubthread_mutex_t *mutex) { -00119 ubthread_cond_t ubcond = *cond; -00120 ubthread_mutex_t ubmutex = *mutex; -00121 while (ubcond->locked == LOCKED) sched_yield(); -00122 ubmutex->locked = UNLOCKED; -00123 return(0x0); -00124 } -00125 -00126 int ubthread_cond_signal(ubthread_cond_t *cond) { -00127 ubthread_cond_t ubcond = *cond; -00128 ubcond->locked = UNLOCKED; -00129 return(0x0); -00130 } -00131 -00132 /*** -00133 END -00134 ***/ -00135 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00033 #include <ubixos/exec.h> +00034 #include <ubixos/sched.h> +00035 #include <ubixos/time.h> +00036 #include <ubixos/spinlock.h> +00037 #include <ubixos/vitals.h> +00038 #include <lib/kmalloc.h> +00039 #include <lib/kprintf.h> +00040 +00041 struct ubthread_cond_list *conds = 0x0; +00042 struct ubthread_mutex_list *mutex = 0x0; +00043 +00044 kTask_t *ubthread_self() { +00045 return(_current); +00046 } +00047 +00048 int ubthread_cond_init(ubthread_cond_t *cond,const uInt32 attr) { +00049 ubthread_cond_t ubcond = kmalloc(sizeof(struct ubthread_cond)); +00050 ubcond->id = (int)cond; +00051 ubcond->locked = UNLOCKED; +00052 *cond = ubcond; +00053 return(0x0); +00054 } +00055 +00056 int ubthread_mutex_init(ubthread_mutex_t *mutex,const uInt32 attr) { +00057 ubthread_mutex_t ubmutex = kmalloc(sizeof(struct ubthread_mutex)); +00058 ubmutex->id = (int)mutex; +00059 ubmutex->locked = UNLOCKED; +00060 *mutex = ubmutex; +00061 return(0x0); +00062 } +00063 +00064 int ubthread_cond_destroy(ubthread_cond_t *cond) { +00065 kfree(*cond); +00066 *cond = 0x0; +00067 return(0x0); +00068 } +00069 +00070 int ubthread_mutex_destroy(ubthread_mutex_t *mutex) { +00071 kfree(*mutex); +00072 *mutex = 0x0; +00073 return(0x0); +00074 } +00075 +00076 int ubthread_create(kTask_t **thread,const uInt32 *attr,void (* tproc)(void), void *arg) { +00077 *thread = (void *)execThread(tproc,(int)(kmalloc(0x2000)+0x2000),arg); +00078 return(0x0); +00079 } +00080 +00081 int ubthread_mutex_lock(ubthread_mutex_t *mutex) { +00082 ubthread_mutex_t ubmutex = *mutex; +00083 if (ubmutex->locked == LOCKED) { +00084 kprintf("Mutex Already Lock By %x Trying To Be Relocked By %x\n",ubmutex->pid,_current->id); +00085 while (ubmutex->locked == LOCKED); +00086 } +00087 ubmutex->locked = LOCKED; +00088 ubmutex->pid = _current->id; +00089 return(0x0); +00090 } +00091 +00092 int ubthread_mutex_unlock(ubthread_mutex_t *mutex) { +00093 ubthread_mutex_t ubmutex = *mutex; +00094 if (ubmutex->pid == _current->id) { +00095 ubmutex->locked = UNLOCKED; +00096 return(0x0); +00097 } +00098 else { +00099 //kprintf("Trying To Unlock Mutex From No Locking Thread\n"); +00100 ubmutex->locked = UNLOCKED; +00101 return(-1); +00102 } +00103 } +00104 +00105 int ubthread_cond_timedwait(ubthread_cond_t *cond, ubthread_mutex_t *mutex, const struct timespec *abstime) { +00106 ubthread_cond_t ubcond = *cond; +00107 ubthread_mutex_t ubmutex = *mutex; +00108 uInt32 enterTime = systemVitals->sysUptime+20; +00109 while (enterTime > systemVitals->sysUptime) { +00110 if (ubcond->locked == UNLOCKED) break; +00111 sched_yield(); +00112 } +00113 ubmutex->locked = UNLOCKED; +00114 return(0x0); +00115 } +00116 +00117 int ubthread_cond_wait(ubthread_cond_t *cond, ubthread_mutex_t *mutex) { +00118 ubthread_cond_t ubcond = *cond; +00119 ubthread_mutex_t ubmutex = *mutex; +00120 while (ubcond->locked == LOCKED) sched_yield(); +00121 ubmutex->locked = UNLOCKED; +00122 return(0x0); +00123 } +00124 +00125 int ubthread_cond_signal(ubthread_cond_t *cond) { +00126 ubthread_cond_t ubcond = *cond; +00127 ubcond->locked = UNLOCKED; +00128 return(0x0); +00129 } +00130 +00131 /*** +00132 END +00133 ***/ +00134 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubthread_8c.html b/doc/html/ubthread_8c.html index 99ec5a3..021e541 100644 --- a/doc/html/ubthread_8c.html +++ b/doc/html/ubthread_8c.html @@ -33,11 +33,11 @@

    ubthread.c File Reference

    #include <ubixos/ubthread.h>
    -#include <ubixos/vitals.h>
    #include <ubixos/exec.h>
    #include <ubixos/sched.h>
    #include <ubixos/time.h>
    #include <ubixos/spinlock.h>
    +#include <ubixos/vitals.h>
    #include <lib/kmalloc.h>
    #include <lib/kprintf.h>
    @@ -93,9 +93,9 @@

    -Definition at line 65 of file ubthread.c. +Definition at line 64 of file ubthread.c.

    -References kfree(). +References kfree().

    Referenced by sys_sem_free_(). @@ -128,9 +128,9 @@

    -Definition at line 49 of file ubthread.c. +Definition at line 48 of file ubthread.c.

    -References ubthread_cond::id, kmalloc(), ubthread_cond::locked, and UNLOCKED. +References ubthread_cond::id, kmalloc(), ubthread_cond::locked, and UNLOCKED.

    Referenced by sys_sem_new_(). @@ -154,7 +154,7 @@

    -Definition at line 126 of file ubthread.c. +Definition at line 125 of file ubthread.c.

    References ubthread_cond::locked, and UNLOCKED.

    @@ -195,9 +195,9 @@

    -Definition at line 106 of file ubthread.c. +Definition at line 105 of file ubthread.c.

    -References ubthread_mutex::locked, ubthread_cond::locked, mutex, sched_yield(), systemVitals, and UNLOCKED. +References ubthread_mutex::locked, ubthread_cond::locked, mutex, sched_yield(), systemVitals, vitalsStruct::sysUptime, and UNLOCKED.

    Referenced by cond_wait(). @@ -230,9 +230,9 @@

    -Definition at line 118 of file ubthread.c. +Definition at line 117 of file ubthread.c.

    -References ubthread_mutex::locked, LOCKED, ubthread_cond::locked, mutex, sched_yield(), and UNLOCKED. +References ubthread_mutex::locked, LOCKED, ubthread_cond::locked, mutex, sched_yield(), and UNLOCKED.

    Referenced by cond_wait(). @@ -277,9 +277,9 @@

    -Definition at line 77 of file ubthread.c. +Definition at line 76 of file ubthread.c.

    -References execThread(), kmalloc(), and x2000. +References execThread(), kmalloc(), and x2000.

    Referenced by sys_thread_new(). @@ -303,9 +303,9 @@

    -Definition at line 71 of file ubthread.c. +Definition at line 70 of file ubthread.c.

    -References kfree(), and mutex. +References kfree(), and mutex.

    Referenced by sys_sem_free_(). @@ -338,9 +338,9 @@

    -Definition at line 57 of file ubthread.c. +Definition at line 56 of file ubthread.c.

    -References ubthread_mutex::id, kmalloc(), ubthread_mutex::locked, mutex, and UNLOCKED. +References ubthread_mutex::id, kmalloc(), ubthread_mutex::locked, mutex, and UNLOCKED.

    Referenced by sys_sem_new_(). @@ -364,9 +364,9 @@

    -Definition at line 82 of file ubthread.c. +Definition at line 81 of file ubthread.c.

    -References _current, taskStruct::id, kprintf(), LOCKED, ubthread_mutex::locked, mutex, and ubthread_mutex::pid. +References _current, taskStruct::id, kprintf(), LOCKED, ubthread_mutex::locked, mutex, and ubthread_mutex::pid.

    Referenced by sys_arch_sem_wait(), and sys_sem_signal(). @@ -390,9 +390,9 @@

    -Definition at line 93 of file ubthread.c. +Definition at line 92 of file ubthread.c.

    -References _current, taskStruct::id, ubthread_mutex::locked, mutex, ubthread_mutex::pid, and UNLOCKED. +References _current, taskStruct::id, ubthread_mutex::locked, mutex, ubthread_mutex::pid, and UNLOCKED.

    Referenced by sys_arch_sem_wait(), and sys_sem_signal(). @@ -415,9 +415,9 @@

    -Definition at line 45 of file ubthread.c. +Definition at line 44 of file ubthread.c.

    -References _current. +References _current.

    Referenced by current_thread(). @@ -437,7 +437,7 @@

    -Definition at line 42 of file ubthread.c. +Definition at line 41 of file ubthread.c.

    @@ -454,12 +454,12 @@

    -Definition at line 43 of file ubthread.c. +Definition at line 42 of file ubthread.c.

    -Referenced by cond_wait(), ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_destroy(), ubthread_mutex_init(), ubthread_mutex_lock(), and ubthread_mutex_unlock(). +Referenced by cond_wait(), ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_destroy(), ubthread_mutex_init(), ubthread_mutex_lock(), and ubthread_mutex_unlock().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubthread_8h-source.html b/doc/html/ubthread_8h-source.html index 2fa5f7e..f449cce 100644 --- a/doc/html/ubthread_8h-source.html +++ b/doc/html/ubthread_8h-source.html @@ -140,7 +140,7 @@ 00108 00109 END 00110 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ubthread_8h.html b/doc/html/ubthread_8h.html index 2913b12..9496018 100644 --- a/doc/html/ubthread_8h.html +++ b/doc/html/ubthread_8h.html @@ -126,7 +126,7 @@

    Definition at line 39 of file ubthread.h.

    -Referenced by ubthread_cond_wait(), and ubthread_mutex_lock(). +Referenced by ubthread_cond_wait(), and ubthread_mutex_lock().

    @@ -145,7 +145,7 @@

    Definition at line 40 of file ubthread.h.

    -Referenced by ubthread_cond_init(), ubthread_cond_signal(), ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_init(), and ubthread_mutex_unlock(). +Referenced by ubthread_cond_init(), ubthread_cond_signal(), ubthread_cond_timedwait(), ubthread_cond_wait(), ubthread_mutex_init(), and ubthread_mutex_unlock().


    Typedef Documentation

    @@ -220,9 +220,9 @@

    -Definition at line 65 of file ubthread.c. +Definition at line 64 of file ubthread.c.

    -References kfree(). +References kfree().

    Referenced by sys_sem_free_(). @@ -255,9 +255,9 @@

    -Definition at line 49 of file ubthread.c. +Definition at line 48 of file ubthread.c.

    -References ubthread_cond::id, kmalloc(), ubthread_cond::locked, and UNLOCKED. +References ubthread_cond::id, kmalloc(), ubthread_cond::locked, and UNLOCKED.

    Referenced by sys_sem_new_(). @@ -281,7 +281,7 @@

    -Definition at line 126 of file ubthread.c. +Definition at line 125 of file ubthread.c.

    References ubthread_cond::locked, and UNLOCKED.

    @@ -322,9 +322,9 @@

    -Definition at line 106 of file ubthread.c. +Definition at line 105 of file ubthread.c.

    -References ubthread_cond::locked, ubthread_mutex::locked, mutex, sched_yield(), systemVitals, and UNLOCKED. +References ubthread_cond::locked, ubthread_mutex::locked, mutex, sched_yield(), systemVitals, vitalsStruct::sysUptime, and UNLOCKED.

    Referenced by cond_wait(). @@ -357,9 +357,9 @@

    -Definition at line 118 of file ubthread.c. +Definition at line 117 of file ubthread.c.

    -References ubthread_cond::locked, LOCKED, ubthread_mutex::locked, mutex, sched_yield(), and UNLOCKED. +References ubthread_cond::locked, LOCKED, ubthread_mutex::locked, mutex, sched_yield(), and UNLOCKED.

    Referenced by cond_wait(). @@ -404,9 +404,9 @@

    -Definition at line 77 of file ubthread.c. +Definition at line 76 of file ubthread.c.

    -References execThread(), kmalloc(), and x2000. +References execThread(), kmalloc(), and x2000.

    Referenced by sys_thread_new(). @@ -430,9 +430,9 @@

    -Definition at line 71 of file ubthread.c. +Definition at line 70 of file ubthread.c.

    -References kfree(), and mutex. +References kfree(), and mutex.

    Referenced by sys_sem_free_(). @@ -465,9 +465,9 @@

    -Definition at line 57 of file ubthread.c. +Definition at line 56 of file ubthread.c.

    -References ubthread_mutex::id, kmalloc(), ubthread_mutex::locked, mutex, and UNLOCKED. +References ubthread_mutex::id, kmalloc(), ubthread_mutex::locked, mutex, and UNLOCKED.

    Referenced by sys_sem_new_(). @@ -491,9 +491,9 @@

    -Definition at line 82 of file ubthread.c. +Definition at line 81 of file ubthread.c.

    -References _current, taskStruct::id, kprintf(), ubthread_mutex::locked, LOCKED, mutex, and ubthread_mutex::pid. +References _current, taskStruct::id, kprintf(), ubthread_mutex::locked, LOCKED, mutex, and ubthread_mutex::pid.

    Referenced by sys_arch_sem_wait(), and sys_sem_signal(). @@ -517,9 +517,9 @@

    -Definition at line 93 of file ubthread.c. +Definition at line 92 of file ubthread.c.

    -References _current, taskStruct::id, ubthread_mutex::locked, mutex, ubthread_mutex::pid, and UNLOCKED. +References _current, taskStruct::id, ubthread_mutex::locked, mutex, ubthread_mutex::pid, and UNLOCKED.

    Referenced by sys_arch_sem_wait(), and sys_sem_signal(). @@ -542,14 +542,14 @@

    -Definition at line 45 of file ubthread.c. +Definition at line 44 of file ubthread.c.

    -References _current. +References _current.

    Referenced by current_thread().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udp_8h-source.html b/doc/html/udp_8h-source.html index 415a9a9..d2c4733 100644 --- a/doc/html/udp_8h-source.html +++ b/doc/html/udp_8h-source.html @@ -132,7 +132,7 @@ 00100 #endif /* __LWIP_UDP_H__ */ 00101 00102 -
    Generated on Sun Dec 3 02:38:02 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udp_8h.html b/doc/html/udp_8h.html index 7c053bb..a01e745 100644 --- a/doc/html/udp_8h.html +++ b/doc/html/udp_8h.html @@ -468,7 +468,7 @@

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udpecho_8c-source.html b/doc/html/udpecho_8c-source.html index a3417f3..0ce4b5e 100644 --- a/doc/html/udpecho_8c-source.html +++ b/doc/html/udpecho_8c-source.html @@ -111,7 +111,7 @@ 00079 { 00080 sys_thread_new(udpecho_thread, NULL); 00081 } -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udpecho_8c.html b/doc/html/udpecho_8c.html index 9434b9d..f995309 100644 --- a/doc/html/udpecho_8c.html +++ b/doc/html/udpecho_8c.html @@ -97,7 +97,7 @@ Referenced by udpecho_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udpecho_8h-source.html b/doc/html/udpecho_8h-source.html index fb06e26..4bbf78e 100644 --- a/doc/html/udpecho_8h-source.html +++ b/doc/html/udpecho_8h-source.html @@ -70,7 +70,7 @@ 00038 void udpecho_init(void); 00039 00040 #endif /* __UDPECHO_H__ */ -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/udpecho_8h.html b/doc/html/udpecho_8h.html index 7242167..40ae5cf 100644 --- a/doc/html/udpecho_8h.html +++ b/doc/html/udpecho_8h.html @@ -65,7 +65,7 @@ References NULL, sys_thread_new(), and udpecho_thread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ufs_8c-source.html b/doc/html/ufs_8c-source.html index 2ed4592..6a5e16d 100644 --- a/doc/html/ufs_8c-source.html +++ b/doc/html/ufs_8c-source.html @@ -332,7 +332,7 @@ 00300 Notes: 00301 00302 *****************************************************************************************/ -00303 int ufs_initialize(vfs_mountPoint_t *mp) { +00303 int ufs_initialize(struct vfs_mountPoint *mp) { 00304 /* Return */ 00305 return(0x1); 00306 } @@ -366,7 +366,7 @@ 00334 END 00335 ***/ 00336 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ufs_8c.html b/doc/html/ufs_8c.html index ff8b175..4c323cb 100644 --- a/doc/html/ufs_8c.html +++ b/doc/html/ufs_8c.html @@ -75,7 +75,7 @@
    - + @@ -442,7 +442,7 @@

    Definition at line 77 of file ufs.c.

    -References blkoff, DBPERVBLK, DEV_BSHIFT, DEV_BSIZE, ufs2_dinode::di_db, ufs2_dinode::di_ib, ufs2_dinode::di_size, DIP, dskread(), fs::fs_magic, FS_UFS1_MAGIC, FS_UFS2_MAGIC, fsbtodb, INDIRPERVBLK, INO_TO_VBA, INO_TO_VBO, IPERVBLK, kprintf(), lblkno, MAXBSIZE, memcpy(), NDADDR, NINDIR, fileDescriptor::offset, sblksize, sblock_try, fileDescriptor::size, VBLKMASK, VBLKSHIFT, and VBLKSIZE. +References blkoff, DBPERVBLK, DEV_BSHIFT, DEV_BSIZE, ufs2_dinode::di_db, ufs2_dinode::di_ib, ufs2_dinode::di_size, DIP, dskread(), fs::fs_magic, FS_UFS1_MAGIC, FS_UFS2_MAGIC, fsbtodb, INDIRPERVBLK, INO_TO_VBA, INO_TO_VBO, IPERVBLK, kprintf(), lblkno, MAXBSIZE, memcpy(), NDADDR, NINDIR, fileDescriptor::offset, sblksize, sblock_try, fileDescriptor::size, VBLKMASK, VBLKSHIFT, and VBLKSIZE.

    Referenced by fsfind(), ufs_openFile(), and ufs_readFile(). @@ -477,7 +477,7 @@

    Definition at line 229 of file ufs.c.

    -References DT_DIR, DT_REG, fsfind(), kprintf(), MAXNAMLEN, memcpy(), name, and ROOTINO. +References DT_DIR, DT_REG, fsfind(), kprintf(), MAXNAMLEN, memcpy(), name, and ROOTINO.

    Referenced by ufs_openFile(). @@ -505,14 +505,14 @@ References kpanic(), NULL, ufs_initialize(), ufs_openFile(), ufs_readFile(), ufs_writeFile(), vfsRegisterFS(), and x1.

    - +

    int ufs_init ()
    int ufs_initialize (vfs_mountPoint_t *mp)
    int ufs_initialize (struct vfs_mountPoint *mp)
    static int ufs_openFile (const char *file, fileDescriptor *fd)
    - + @@ -559,7 +559,7 @@

    Definition at line 265 of file ufs.c.

    -References fsread(), kmalloc(), lookup(), fileDescriptor::offset, and x1. +References fsread(), kmalloc(), lookup(), fileDescriptor::offset, and x1.

    Referenced by ufs_init(). @@ -678,7 +678,7 @@ Referenced by fsread().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ufs_8h-source.html b/doc/html/ufs_8h-source.html index 5ce42e0..d4424aa 100644 --- a/doc/html/ufs_8h-source.html +++ b/doc/html/ufs_8h-source.html @@ -323,7 +323,7 @@ 00291 00292 00293 int ufs_init(); -00294 int ufs_initialize(); +00294 int ufs_initialize(); 00295 00296 #endif 00297 @@ -331,7 +331,7 @@ 00299 END 00300 ***/ 00301 -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/ufs_8h.html b/doc/html/ufs_8h.html index 4675856..4093bf4 100644 --- a/doc/html/ufs_8h.html +++ b/doc/html/ufs_8h.html @@ -1095,7 +1095,7 @@ Referenced by ufs_init().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/uniondescriptorTableUnion.html b/doc/html/uniondescriptorTableUnion.html index f77f1b2..63aef05 100644 --- a/doc/html/uniondescriptorTableUnion.html +++ b/doc/html/uniondescriptorTableUnion.html @@ -103,7 +103,7 @@


    The documentation for this union was generated from the following file:
    • src/sys/include/sys/gdt.h
    -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/unionetheraddr.html b/doc/html/unionetheraddr.html index 4f9f58c..94305b9 100644 --- a/doc/html/unionetheraddr.html +++ b/doc/html/unionetheraddr.html @@ -82,7 +82,7 @@


    The documentation for this union was generated from the following file: -
    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/unionuPtr.html b/doc/html/unionuPtr.html index 56aa24a..56c1b0f 100644 --- a/doc/html/unionuPtr.html +++ b/doc/html/unionuPtr.html @@ -158,7 +158,7 @@


    The documentation for this union was generated from the following file: -
    Generated on Sun Dec 3 02:38:15 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:10 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/unmappage_8c-source.html b/doc/html/unmappage_8c-source.html index 8c05908..2d18390 100644 --- a/doc/html/unmappage_8c-source.html +++ b/doc/html/unmappage_8c-source.html @@ -173,7 +173,7 @@ 00141 00142 END 00143 ***/ -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/unmappage_8c.html b/doc/html/unmappage_8c.html index ecbac9d..4ef1470 100644 --- a/doc/html/unmappage_8c.html +++ b/doc/html/unmappage_8c.html @@ -112,7 +112,7 @@ References tablesBaseAddress.

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vfs_8c-source.html b/doc/html/vfs_8c-source.html index 0595073..bcf8e12 100644 --- a/doc/html/vfs_8c-source.html +++ b/doc/html/vfs_8c-source.html @@ -60,7 +60,7 @@ 00028 *****************************************************************************************/ 00029 00030 #include <vfs/vfs.h> -00031 #include <ubixos/vitals.h> +00031 #include <ubixos/vitals.h> 00032 #include <lib/kmalloc.h> 00033 #include <lib/kprintf.h> 00034 #include <lib/string.h> @@ -78,20 +78,20 @@ 00046 ************************************************************************/ 00047 int vfs_init() { 00048 /* Set up default fileSystems list */ -00049 systemVitals->fileSystems = 0x0; +00049 systemVitals->fileSystems = 0x0; 00050 00051 /* Print information */ -00052 kprintf("vfs0: loaded at address: [0x%X]\n",systemVitals->fileSystems); +00052 kprintf("vfs0: loaded at address: [0x%X]\n",systemVitals->fileSystems); 00053 00054 /* Return so we know things went well */ 00055 return(0x0); 00056 } 00057 -00058 struct fileSystem *vfsFindFS(int vfsType) { +00058 struct fileSystem *vfsFindFS(int vfsType) { 00059 struct fileSystem *tmp = 0x0; 00060 00061 /* Search For File System */ -00062 for (tmp=systemVitals->fileSystems;tmp;tmp=tmp->next) { +00062 for (tmp=systemVitals->fileSystems;tmp;tmp=tmp->next) { 00063 /* If Found Return File System */ 00064 if (tmp->vfsType == vfsType) { 00065 return(tmp); @@ -116,7 +116,7 @@ 00084 */ 00085 struct fileSystem *tmpFs = 0x0; 00086 -00087 if (vfsFindFS(newFS.vfsType) != 0x0) { +00087 if (vfsFindFS(newFS.vfsType) != 0x0) { 00088 kprintf("FS Is already Registered\n"); 00089 return(0x1); 00090 } @@ -146,16 +146,16 @@ 00114 /* new method: */ 00115 00116 memcpy(tmpFs, &newFS, sizeof(struct fileSystem)); -00117 if (!systemVitals->fileSystems) { +00117 if (!systemVitals->fileSystems) { 00118 tmpFs->prev = 0x0; 00119 tmpFs->next = 0x0; -00120 systemVitals->fileSystems = tmpFs; +00120 systemVitals->fileSystems = tmpFs; 00121 } 00122 else { 00123 tmpFs->prev = 0x0; -00124 tmpFs->next = systemVitals->fileSystems; -00125 systemVitals->fileSystems->prev = tmpFs; -00126 systemVitals->fileSystems = tmpFs; +00124 tmpFs->next = systemVitals->fileSystems; +00125 systemVitals->fileSystems->prev = tmpFs; +00126 systemVitals->fileSystems = tmpFs; 00127 } 00128 00129 return(0x0); @@ -165,7 +165,7 @@ 00133 END 00134 ***/ 00135 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vfs_8c.html b/doc/html/vfs_8c.html index d495ecd..5c13b91 100644 --- a/doc/html/vfs_8c.html +++ b/doc/html/vfs_8c.html @@ -33,7 +33,7 @@

    vfs.c File Reference

    #include <vfs/vfs.h>
    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>
    #include <lib/kmalloc.h>
    #include <lib/kprintf.h>
    #include <lib/string.h>
    @@ -70,7 +70,7 @@

    Definition at line 47 of file vfs.c.

    -References kprintf(), and systemVitals. +References vitalsStruct::fileSystems, kprintf(), and systemVitals.

    @@ -94,7 +94,7 @@

    Definition at line 58 of file vfs.c.

    -References fileSystem::next, systemVitals, and fileSystem::vfsType. +References vitalsStruct::fileSystems, fileSystem::next, systemVitals, and fileSystem::vfsType.

    Referenced by vfs_mount(), and vfsRegisterFS(). @@ -120,12 +120,12 @@

    Definition at line 73 of file vfs.c.

    -References kmalloc(), kprintf(), memcpy(), fileSystem::next, NULL, fileSystem::prev, systemVitals, vfsFindFS(), fileSystem::vfsType, and x1. +References vitalsStruct::fileSystems, kmalloc(), kprintf(), memcpy(), fileSystem::next, NULL, fileSystem::prev, systemVitals, vfsFindFS(), fileSystem::vfsType, and x1.

    Referenced by devfs_init(), ubixfs_init(), and ufs_init().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vfs_8cpp-source.html b/doc/html/vfs_8cpp-source.html index 1907780..ab7ab75 100644 --- a/doc/html/vfs_8cpp-source.html +++ b/doc/html/vfs_8cpp-source.html @@ -52,7 +52,7 @@ 00020 fread(data, size, 1, diskFile); 00021 return 0; 00022 } // DiskFS::read -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vfs_8cpp.html b/doc/html/vfs_8cpp.html index 89b83cc..9cd8372 100644 --- a/doc/html/vfs_8cpp.html +++ b/doc/html/vfs_8cpp.html @@ -39,7 +39,7 @@ Go to the source code of this file.
    int ufs_initialize (vfs_mountPoint_tstruct vfs_mountPoint mp  ) 
    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/video_8c-source.html b/doc/html/video_8c-source.html index 25288a3..ca3893f 100644 --- a/doc/html/video_8c-source.html +++ b/doc/html/video_8c-source.html @@ -160,7 +160,7 @@ 00128 /*** 00129 END 00130 ***/ -

    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +

    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/video_8c.html b/doc/html/video_8c.html index 07675a8..067db4e 100644 --- a/doc/html/video_8c.html +++ b/doc/html/video_8c.html @@ -77,7 +77,7 @@

    References inportByte(), outportByte(), printColor, tty_foreground, tty_termNode::tty_x, tty_termNode::tty_y, and videoBuffer.

    -Referenced by keyboardHandler(). +Referenced by keyboardHandler().

    @@ -168,7 +168,7 @@ Definition at line 36 of file video.c.

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/video_8h-source.html b/doc/html/video_8h-source.html index 8331a80..7515869 100644 --- a/doc/html/video_8h-source.html +++ b/doc/html/video_8h-source.html @@ -91,7 +91,7 @@ 00059 00060 END 00061 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/video_8h.html b/doc/html/video_8h.html index dc931c9..f4aadd1 100644 --- a/doc/html/video_8h.html +++ b/doc/html/video_8h.html @@ -94,7 +94,7 @@

    References inportByte(), outportByte(), printColor, tty_foreground, tty_termNode::tty_x, tty_termNode::tty_y, and videoBuffer.

    -Referenced by keyboardHandler(). +Referenced by keyboardHandler().

    @@ -168,7 +168,7 @@ Referenced by backSpace(), and kprint().

    -


    Generated on Sun Dec 3 02:38:07 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vitals_8c-source.html b/doc/html/vitals_8c-source.html index 423deea..349088a 100644 --- a/doc/html/vitals_8c-source.html +++ b/doc/html/vitals_8c-source.html @@ -59,13 +59,13 @@ 00027 00028 *****************************************************************************************/ 00029 -00030 #include <ubixos/vitals.h> +00030 #include <ubixos/vitals.h> 00031 #include <ubixos/kpanic.h> 00032 #include <lib/kprintf.h> 00033 #include <lib/kmalloc.h> 00034 #include <string.h> 00035 -00036 vitalsNode *systemVitals = 0x0; +00036 vitalsNode *systemVitals = 0x0; 00037 00038 /************************************************************************ 00039 @@ -77,36 +77,34 @@ 00045 02/20/2004 - Approved Its Quality 00046 00047 ************************************************************************/ -00048 int vitals_init() { +00048 int vitals_init() { 00049 /* Initialize Memory For The System Vitals Node */ -00050 kprintf("A"); -00051 systemVitals = (vitalsNode *) kmalloc(sizeof(vitalsNode)); -00052 kprintf("B"); -00053 -00054 /* If malloc Failed Then Error */ -00055 if (systemVitals == 0x0) -00056 { -00057 kpanic("Error: kmalloc Failed In initVitals\n"); -00058 } -00059 -00060 /* Set all default values */ -00061 memset(systemVitals,0x0,sizeof(vitalsNode)); -00062 -00063 systemVitals->quantum = 8; -00064 systemVitals->dQuantum = 8; -00065 -00066 /* Print Out Info For Vitals: */ -00067 kprintf("vitals0 - Address: [0x%X]\n",systemVitals); -00068 -00069 /* Return so kernel knows that there is no problem */ -00070 return(0x0); -00071 } -00072 -00073 /*** -00074 END -00075 ***/ -00076 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +00050 systemVitals = (vitalsNode *) kmalloc(sizeof(vitalsNode)); +00051 +00052 /* If malloc Failed Then Error */ +00053 if (systemVitals == 0x0) +00054 { +00055 kpanic("Error: kmalloc Failed In initVitals\n"); +00056 } +00057 +00058 /* Set all default values */ +00059 memset(systemVitals,0x0,sizeof(vitalsNode)); +00060 +00061 systemVitals->quantum = 8; +00062 systemVitals->dQuantum = 8; +00063 +00064 /* Print Out Info For Vitals: */ +00065 kprintf("vitals0 - Address: [0x%X]\n",systemVitals); +00066 +00067 /* Return so kernel knows that there is no problem */ +00068 return(0x0); +00069 } +00070 +00071 /*** +00072 END +00073 ***/ +00074 +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vitals_8c.html b/doc/html/vitals_8c.html index ab7424d..3a86683 100644 --- a/doc/html/vitals_8c.html +++ b/doc/html/vitals_8c.html @@ -32,7 +32,7 @@ src » sys » kernel

    vitals.c File Reference

    -#include <ubixos/vitals.h>
    +#include <ubixos/vitals.h>
    #include <ubixos/kpanic.h>
    #include <lib/kprintf.h>
    #include <lib/kmalloc.h>
    @@ -45,7 +45,7 @@ int vitals_init ()

    Variables

    -vitalsNode * systemVitals = 0x0 +vitalsNodesystemVitals = 0x0

    Function Documentation

    @@ -69,7 +69,7 @@

    Definition at line 48 of file vitals.c.

    -References kmalloc(), kpanic(), kprintf(), memset(), and systemVitals. +References vitalsStruct::dQuantum, kmalloc(), kpanic(), kprintf(), memset(), vitalsStruct::quantum, and systemVitals.


    Variable Documentation

    @@ -78,7 +78,7 @@
    - +
    vitalsNode* systemVitals = 0x0 vitalsNode* systemVitals = 0x0
    @@ -88,9 +88,11 @@

    Definition at line 36 of file vitals.c. +

    +Referenced by adjustCowCounter(), fclose(), fopen(), freePage(), kmain(), ogPrintf(), sysGetTime(), sysGetUptime(), systemTask(), time_init(), ubthread_cond_timedwait(), vfs_addMount(), vfs_findMount(), vfs_init(), vfsFindFS(), vfsRegisterFS(), vitals_init(), vmmFindFreePage(), and vmmFreeProcessPages().

    -


    Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vitals_8h-source.html b/doc/html/vitals_8h-source.html index 72abc43..17ea122 100644 --- a/doc/html/vitals_8h-source.html +++ b/doc/html/vitals_8h-source.html @@ -68,19 +68,19 @@ 00036 #include <vfs/vfs.h> 00037 00038 typedef struct vitalsStruct { -00039 uInt32 openFiles; -00040 uInt32 sysTicks; -00041 uInt32 sysUptime; -00042 uInt32 quantum; -00043 uInt32 dQuantum; -00044 uInt32 freePages; -00045 struct fileSystem *fileSystems; -00046 vfs_mountPoint_t *mountPoints; -00047 uInt32 timeStart; -00048 void *screen; -00049 void *font; -00050 char *packet; -00051 uInt32 packetLength; +00039 uInt32 openFiles; +00040 uInt32 sysTicks; +00041 uInt32 sysUptime; +00042 uInt32 quantum; +00043 uInt32 dQuantum; +00044 uInt32 freePages; +00045 struct fileSystem *fileSystems; +00046 struct vfs_mountPoint *mountPoints; +00047 uInt32 timeStart; +00048 void *screen; +00049 void *font; +00050 char *packet; +00051 uInt32 packetLength; 00052 } vitalsNode; 00053 00054 extern vitalsNode *systemVitals; @@ -91,36 +91,39 @@ 00059 00060 /*** 00061 $Log$ -00062 Revision 1.1.1.1 2006/06/01 12:46:14 reddawg -00063 ubix2 +00062 Revision 1.2 2006/12/05 14:10:21 reddawg +00063 Workign Distro 00064 -00065 Revision 1.2 2005/10/12 00:13:37 reddawg -00066 Removed +00065 Revision 1.1.1.1 2006/06/01 12:46:14 reddawg +00066 ubix2 00067 -00068 Revision 1.1.1.1 2005/09/26 17:23:57 reddawg -00069 no message +00068 Revision 1.2 2005/10/12 00:13:37 reddawg +00069 Removed 00070 -00071 Revision 1.6 2004/07/23 09:10:06 reddawg -00072 ubixfs: cleaned up some functions played with the caching a bit -00073 vfs: renamed a bunch of functions -00074 cleaned up a few misc bugs -00075 -00076 Revision 1.5 2004/07/09 13:03:50 reddawg -00077 vitals: named vitalsInit to vitals_init -00078 Adjusted Startup Routines -00079 -00080 Revision 1.4 2004/06/18 13:01:47 solar -00081 Added nice and timeSlice members to the kTask_t type +00071 Revision 1.1.1.1 2005/09/26 17:23:57 reddawg +00072 no message +00073 +00074 Revision 1.6 2004/07/23 09:10:06 reddawg +00075 ubixfs: cleaned up some functions played with the caching a bit +00076 vfs: renamed a bunch of functions +00077 cleaned up a few misc bugs +00078 +00079 Revision 1.5 2004/07/09 13:03:50 reddawg +00080 vitals: named vitalsInit to vitals_init +00081 Adjusted Startup Routines 00082 -00083 Revision 1.3 2004/06/16 12:04:18 reddawg -00084 systemVitals->quantum = (1000/msPerQuantum) -00085 The timer int now will call scheduler at the rate of the defined quantum -00086 -00087 Revision 1.2 2004/05/21 15:20:00 reddawg -00088 Cleaned up -00089 END -00090 ***/ -
    Generated on Fri Dec 1 14:04:27 2006 for UbixOS V2 by  +00083 Revision 1.4 2004/06/18 13:01:47 solar +00084 Added nice and timeSlice members to the kTask_t type +00085 +00086 Revision 1.3 2004/06/16 12:04:18 reddawg +00087 systemVitals->quantum = (1000/msPerQuantum) +00088 The timer int now will call scheduler at the rate of the defined quantum +00089 +00090 Revision 1.2 2004/05/21 15:20:00 reddawg +00091 Cleaned up +00092 END +00093 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vitals_8h.html b/doc/html/vitals_8h.html index 70d67fc..ffa7570 100644 --- a/doc/html/vitals_8h.html +++ b/doc/html/vitals_8h.html @@ -90,7 +90,7 @@

    Definition at line 48 of file vitals.c.

    -References vitalsStruct::dQuantum, kmalloc(), kpanic(), kprintf(), memset(), vitalsStruct::quantum, and systemVitals. +References vitalsStruct::dQuantum, kmalloc(), kpanic(), kprintf(), memset(), vitalsStruct::quantum, and systemVitals.


    Variable Documentation

    @@ -110,10 +110,10 @@

    Definition at line 35 of file timer.S.

    -Referenced by adjustCowCounter(), fclose(), fopen(), freePage(), keyboardHandler(), kmain(), ogPrintf(), sysGetTime(), sysGetUptime(), systemTask(), time_init(), ubthread_cond_timedwait(), vfs_addMount(), vfs_findMount(), vfs_init(), vfsFindFS(), vfsRegisterFS(), vitals_init(), vmmFindFreePage(), and vmmFreeProcessPages(). +Referenced by adjustCowCounter(), fclose(), fopen(), freePage(), kmain(), ogPrintf(), sysGetTime(), sysGetUptime(), systemTask(), time_init(), ubthread_cond_timedwait(), vfs_addMount(), vfs_findMount(), vfs_init(), vfsFindFS(), vfsRegisterFS(), vitals_init(), vmmFindFreePage(), and vmmFreeProcessPages().

    -


    Generated on Fri Dec 1 14:04:29 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm_8h-source.html b/doc/html/vmm_8h-source.html index cd14635..89e82e2 100644 --- a/doc/html/vmm_8h-source.html +++ b/doc/html/vmm_8h-source.html @@ -93,31 +93,34 @@ 00061 00062 /*** 00063 $Log$ -00064 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg -00065 ubix2 +00064 Revision 1.2 2006/12/05 14:10:21 reddawg +00065 Workign Distro 00066 -00067 Revision 1.2 2005/10/12 00:13:37 reddawg -00068 Removed +00067 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg +00068 ubix2 00069 -00070 Revision 1.1.1.1 2005/09/26 17:23:59 reddawg -00071 no message +00070 Revision 1.2 2005/10/12 00:13:37 reddawg +00071 Removed 00072 -00073 Revision 1.6 2004/07/21 17:39:04 reddawg -00074 removed device +00073 Revision 1.1.1.1 2005/09/26 17:23:59 reddawg +00074 no message 00075 -00076 Revision 1.5 2004/07/19 02:08:28 reddawg -00077 Cleaned out the rest of debuging code also temporarily disabled the ip stack to improve boot time +00076 Revision 1.6 2004/07/21 17:39:04 reddawg +00077 removed device 00078 -00079 Revision 1.4 2004/07/09 12:18:19 reddawg -00080 Updating Initialization Procedures +00079 Revision 1.5 2004/07/19 02:08:28 reddawg +00080 Cleaned out the rest of debuging code also temporarily disabled the ip stack to improve boot time 00081 -00082 Revision 1.3 2004/05/21 15:21:04 reddawg -00083 Cleaned up +00082 Revision 1.4 2004/07/09 12:18:19 reddawg +00083 Updating Initialization Procedures 00084 -00085 -00086 END -00087 ***/ -
    Generated on Sun Dec 3 02:38:03 2006 for UbixOS V2 by  +00085 Revision 1.3 2004/05/21 15:21:04 reddawg +00086 Cleaned up +00087 +00088 +00089 END +00090 ***/ +
    Generated on Tue Dec 5 09:28:04 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm_8h.html b/doc/html/vmm_8h.html index feab3ff..706a026 100644 --- a/doc/html/vmm_8h.html +++ b/doc/html/vmm_8h.html @@ -88,7 +88,7 @@

    Definition at line 36 of file vmm.h.

    -Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -107,7 +107,7 @@

    Definition at line 37 of file vmm.h.

    -Referenced by vmmFindFreePage(), and vmmMemMapInit(). +Referenced by vmmFindFreePage(), and vmmMemMapInit().

    @@ -126,7 +126,7 @@

    Definition at line 38 of file vmm.h.

    -Referenced by adjustCowCounter(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -175,16 +175,13 @@

    -Function: int adjustCowCounter(uInt32 baseAddr,int adjustment);

    -Description: This Adjust The COW Counter For Page At baseAddr It Will Error If The Count Goes Below 0

    -Notes:

    -08/01/02 - I Think If Counter Gets To 0 I Should Free The Page +

    -Definition at line 270 of file vmm_memory.c. +Definition at line 266 of file vmm_memory.c.

    -References assert, mMap::cowCounter, freePages, memAvail, mMap::pid, spinLock(), spinUnlock(), mMap::status, systemVitals, vmmCowSpinLock, vmmID, and vmmMemoryMap. +References assert, mMap::cowCounter, freePages, vitalsStruct::freePages, memAvail, mMap::pid, spinLock(), spinUnlock(), mMap::status, systemVitals, vmmCowSpinLock, vmmID, and vmmMemoryMap.

    -Referenced by freePage(), vmm_pageFault(), vmmCopyVirtualSpace(), and vmmFreeProcessPages(). +Referenced by freePage(), vmm_pageFault(), vmmCopyVirtualSpace(), and vmmFreeProcessPages().

    @@ -203,14 +200,13 @@

    -Function: int countMemory(); Description: This Function Counts The Systems Physical Memory Notes:

    -02/20/2004 - Inspect For Quality And Approved +

    -Definition at line 107 of file vmm_memory.c. +Definition at line 104 of file vmm_memory.c.

    References cr0, inportByte(), and outportByte().

    -Referenced by vmmMemMapInit(). +Referenced by vmmMemMapInit().

    @@ -230,13 +226,11 @@

    @@ -263,7 +257,7 @@

    Definition at line 41 of file vmm_init.c.

    -References K_PANIC, vmm_pagingInit(), and vmmMemMapInit(). +References K_PANIC, vmm_pagingInit(), and vmmMemMapInit().

    @@ -283,12 +277,11 @@

    -Function: uInt32 vmmFindFreePage(pid_t pid);

    -Description: This Returns A Free Physical Page Address Then Marks It Not Available As Well As Setting The PID To The Proccess Allocating This Page Notes: +

    -Definition at line 189 of file vmm_memory.c. +Definition at line 186 of file vmm_memory.c.

    -References freePages, kpanic(), memAvail, memNotavail, numPages, mMap::pid, spinLock(), spinUnlock(), status, sysctl_enabled, sysID, systemVitals, TRUE, vmmMemoryMap, and vmmSpinLock. +References freePages, vitalsStruct::freePages, kpanic(), memAvail, memNotavail, numPages, mMap::pid, spinLock(), spinUnlock(), status, sysID, systemVitals, vmmMemoryMap, and vmmSpinLock.

    Referenced by execFile(), kmod_load(), ldEnable(), obreak(), sysExec(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    @@ -310,14 +303,11 @@

    -Function: void vmmFreeProcessPages(pid_t pid);

    -Description: This Function Will Free Up Memory For The Exiting Process

    -Notes:

    -08/04/02 - Added Checking For COW Pages First +

    -Definition at line 300 of file vmm_memory.c. +Definition at line 296 of file vmm_memory.c.

    -References adjustCowCounter(), mMap::cowCounter, freePages, memAvail, numPages, PAGE_COW, pageEntries, parentPageDirAddr, mMap::pid, spinLock(), spinUnlock(), status, systemVitals, tablesBaseAddress, vmmID, vmmMemoryMap, vmmSpinLock, and x1000. +References adjustCowCounter(), mMap::cowCounter, freePages, vitalsStruct::freePages, memAvail, numPages, PAGE_COW, pageEntries, parentPageDirAddr, mMap::pid, spinLock(), spinUnlock(), status, systemVitals, tablesBaseAddress, vmmID, vmmMemoryMap, vmmSpinLock, and x1000.

    Referenced by systemTask().

    @@ -338,12 +328,11 @@

    -Function: void vmmMemMapInit(); Description: This Function Initializes The Memory Map For the System Notes:

    -02/20/2004 - Made It Report Real And Available Memory +

    -Definition at line 60 of file vmm_memory.c. +Definition at line 57 of file vmm_memory.c.

    -References countMemory(), freePages, kprintf(), memAvail, memNotavail, numPages, mMap::pageAddr, mMap::pid, mMap::status, status, vmmID, vmmMemoryMap, and x1000. +References countMemory(), freePages, kprintf(), memAvail, memNotavail, numPages, mMap::pageAddr, mMap::pid, mMap::status, status, vmmID, vmmMemoryMap, and x1000.

    Referenced by vmm_init().

    @@ -363,9 +352,9 @@

    -Definition at line 47 of file vmm_memory.c. +Definition at line 44 of file vmm_memory.c.

    -Referenced by vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -382,12 +371,12 @@

    -Definition at line 48 of file vmm_memory.c. +Definition at line 45 of file vmm_memory.c.

    -Referenced by adjustCowCounter(), freePage(), kmain(), vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), kmain(), vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    -


    Generated on Sun Dec 3 02:38:08 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:06 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm__init_8c-source.html b/doc/html/vmm__init_8c-source.html index 8fdd4b6..2ab406b 100644 --- a/doc/html/vmm__init_8c-source.html +++ b/doc/html/vmm__init_8c-source.html @@ -76,7 +76,7 @@ 00052 END 00053 ***/ 00054 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm__init_8c.html b/doc/html/vmm__init_8c.html index 2b90de3..7a89004 100644 --- a/doc/html/vmm__init_8c.html +++ b/doc/html/vmm__init_8c.html @@ -65,10 +65,10 @@

    Definition at line 41 of file vmm_init.c.

    -References K_PANIC, vmm_pagingInit(), and vmmMemMapInit(). +References K_PANIC, vmm_pagingInit(), and vmmMemMapInit().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm__memory_8c-source.html b/doc/html/vmm__memory_8c-source.html index 06f4726..922411e 100644 --- a/doc/html/vmm__memory_8c-source.html +++ b/doc/html/vmm__memory_8c-source.html @@ -64,251 +64,389 @@ 00032 #include <ubixos/kpanic.h> 00033 #include <lib/kprintf.h> 00034 #include <lib/kmalloc.h> -00035 #include <sys/kern_sysctl.h> +00035 #include <ubixos/vitals.h> 00036 #include <ubixos/spinlock.h> 00037 #include <assert.h> 00038 -00042 static uInt32 freePages = 0; -00043 static spinLock_t vmmSpinLock = SPIN_LOCK_INITIALIZER; -00044 static spinLock_t vmmCowSpinLock = SPIN_LOCK_INITIALIZER; -00045 +00039 static uInt32 freePages = 0; +00040 static spinLock_t vmmSpinLock = SPIN_LOCK_INITIALIZER; +00041 static spinLock_t vmmCowSpinLock = SPIN_LOCK_INITIALIZER; +00042 +00043 +00044 int numPages = 0x0; +00045 mMap *vmmMemoryMap = (mMap *) 0x101000; 00046 -00047 int numPages = 0x0; -00048 mMap *vmmMemoryMap = (mMap *) 0x101000; -00049 -00050 -00060 int vmmMemMapInit() { -00061 int i = 0x0; -00062 int memStart = 0x0; +00047 +00048 /************************************************************************ +00049 +00050 Function: void vmmMemMapInit(); +00051 Description: This Function Initializes The Memory Map For the System +00052 Notes: +00053 +00054 02/20/2004 - Made It Report Real And Available Memory +00055 +00056 ************************************************************************/ +00057 int vmmMemMapInit() { +00058 int i = 0x0; +00059 int memStart = 0x0; +00060 +00061 /* Count System Memory */ +00062 numPages = countMemory(); 00063 -00064 /* Count System Memory */ -00065 numPages = countMemory(); +00064 /* Set Memory Map To Point To First Physical Page That We Will Use */ +00065 vmmMemoryMap = (mMap *) 0x101000; 00066 -00067 /* Set Memory Map To Point To First Physical Page That We Will Use */ -00068 vmmMemoryMap = (mMap *) 0x101000; -00069 -00070 /* Initialize Map Make All Pages Not Available */ -00071 for (i = 0x0; i < numPages; i++) { -00072 vmmMemoryMap[i].cowCounter = 0x0; -00073 vmmMemoryMap[i].status = memNotavail; -00074 vmmMemoryMap[i].pid = vmmID; -00075 vmmMemoryMap[i].pageAddr = i * 4096; -00076 } -00077 -00078 /* Calculate Start Of Free Memory */ -00079 memStart = (0x101000 / 0x1000); -00080 memStart += (((sizeof(mMap) * numPages) + (sizeof(mMap) - 1)) / 0x1000); -00081 -00082 /* Initialize All Free Pages To Available */ -00083 vmmMemoryMap[(0x100000 / 0x1000)].status = memAvail; -00084 freePages++; -00085 for (i = memStart; i < numPages; i++) { -00086 vmmMemoryMap[i].status = memAvail; -00087 freePages++; -00088 } -00089 -00090 /* Print Out Amount Of Memory */ -00091 kprintf("Real Memory: %iKB\n", numPages * 4); -00092 kprintf("Available Memory: %iKB\n", freePages * 4); -00093 -00094 /* Return */ -00095 return (0); -00096 } -00097 -00107 int countMemory() { -00108 register uInt32 *mem = 0x0; -00109 unsigned long memCount = -1, tempMemory = 0x0; -00110 unsigned short memKb = 0; -00111 unsigned char irq1State, irq2State; -00112 unsigned long cr0 = 0x0; -00113 -00114 /* -00115 * Save The States Of Both IRQ 1 And 2 So We Can Turn Them Off And Restore -00116 * Them Later -00117 */ -00118 irq1State = inportByte(0x21); -00119 irq2State = inportByte(0xA1); -00120 -00121 /* Turn Off IRQ 1 And 2 To Prevent Chances Of Faults While Examining Memory */ -00122 outportByte(0x21, 0xFF); -00123 outportByte(0xA1, 0xFF); -00124 -00125 /* Save The State Of Register CR0 */ -00126 asm volatile ( -00127 "movl %%cr0, %%ebx\n" -00128 : "=a" (cr0) -00129 : -00130 : "ebx" -00131 ); -00132 -00133 asm volatile ("wbinvd"); -00134 asm volatile ( -00135 "movl %%ebx, %%cr0\n" -00136 : -00137 : "a" (cr0 | 0x00000001 | 0x40000000 | 0x20000000) -00138 : "ebx" -00139 ); -00140 -00141 while (memKb < 4096 && memCount != 0) { -00142 memKb++; -00143 if (memCount == -1) -00144 memCount = 0; -00145 memCount += 1024 * 1024; -00146 mem = (uInt32 *)memCount; -00147 tempMemory = *mem; -00148 *mem = 0x55AA55AA; -00149 asm("": : :"memory"); -00150 if (*mem != 0x55AA55AA) { -00151 memCount = 0; -00152 } -00153 else { -00154 *mem = 0xAA55AA55; -00155 asm("": : :"memory"); -00156 if (*mem != 0xAA55AA55) { -00157 memCount = 0; -00158 } -00159 } -00160 asm("": : :"memory"); -00161 *mem = tempMemory; -00162 } -00163 -00164 asm volatile ( -00165 "movl %%ebx, %%cr0\n" -00166 : -00167 : "a" (cr0) -00168 : "ebx" -00169 ); -00170 -00171 /* Restore States For Both IRQ 1 And 2 */ -00172 outportByte(0x21, irq1State); -00173 outportByte(0xA1, irq2State); -00174 -00175 /* Return Amount Of Memory In Pages */ -00176 return ((memKb * 1024 * 1024) / 4096); -00177 } -00178 -00189 uInt32 vmmFindFreePage(pidType pid) { -00190 int i = 0x0; -00191 -00192 /* Lets Look For A Free Page */ -00193 if (pid < sysID) -00194 kpanic("Error: invalid PID %i\n",pid); -00195 -00196 spinLock(&vmmSpinLock); -00197 -00198 for (i = 0; i <= numPages; i++) { -00199 -00200 /* -00201 * If We Found A Free Page Set It To Not Available After That Set Its Own -00202 * And Return The Address -00203 */ -00204 if ((vmmMemoryMap[i].status == memAvail) && (vmmMemoryMap[i].cowCounter == 0)) { -00205 vmmMemoryMap[i].status = memNotavail; -00206 vmmMemoryMap[i].pid = pid; -00207 freePages--; -00208 if (sysctl_enabled == TRUE) { -00209 systemVitals->freePages = freePages; -00210 } -00211 -00212 spinUnlock(&vmmSpinLock); -00213 return (vmmMemoryMap[i].pageAddr); -00214 } -00215 } -00216 -00217 /* If No Free Memory Is Found Return NULL */ -00218 kpanic("Out Of Memory!!!!"); -00219 return (0x0); -00220 } -00221 -00222 -00232 int freePage(uInt32 pageAddr) { -00233 int pageIndex = 0x0; -00234 assert((pageAddr & 0xFFF) == 0x0); -00235 spinLock(&vmmSpinLock); -00236 -00237 /* Find The Page Index To The Memory Map */ -00238 pageIndex = (pageAddr / 4096); -00239 -00240 /* Check If Page COW Is Greater Then 0 If It Is Dec It If Not Free It */ -00241 if (vmmMemoryMap[pageIndex].cowCounter == 0) { -00242 /* Set Page As Avail So It Can Be Used Again */ -00243 vmmMemoryMap[pageIndex].status = memAvail; -00244 vmmMemoryMap[pageIndex].cowCounter = 0x0; -00245 vmmMemoryMap[pageIndex].pid = -2; -00246 freePages++; -00247 systemVitals->freePages = freePages; +00067 /* Initialize Map Make All Pages Not Available */ +00068 for (i = 0x0; i < numPages; i++) { +00069 vmmMemoryMap[i].cowCounter = 0x0; +00070 vmmMemoryMap[i].status = memNotavail; +00071 vmmMemoryMap[i].pid = vmmID; +00072 vmmMemoryMap[i].pageAddr = i * 4096; +00073 } +00074 +00075 /* Calculate Start Of Free Memory */ +00076 memStart = (0x101000 / 0x1000); +00077 memStart += (((sizeof(mMap) * numPages) + (sizeof(mMap) - 1)) / 0x1000); +00078 +00079 /* Initialize All Free Pages To Available */ +00080 vmmMemoryMap[(0x100000 / 0x1000)].status = memAvail; +00081 freePages++; +00082 for (i = memStart; i < numPages; i++) { +00083 vmmMemoryMap[i].status = memAvail; +00084 freePages++; +00085 } +00086 +00087 /* Print Out Amount Of Memory */ +00088 kprintf("Real Memory: %iKB\n", numPages * 4); +00089 kprintf("Available Memory: %iKB\n", freePages * 4); +00090 +00091 /* Return */ +00092 return (0); +00093 } +00094 +00095 /************************************************************************ +00096 +00097 Function: int countMemory(); +00098 Description: This Function Counts The Systems Physical Memory +00099 Notes: +00100 +00101 02/20/2004 - Inspect For Quality And Approved +00102 +00103 ************************************************************************/ +00104 int countMemory() { +00105 register uInt32 *mem = 0x0; +00106 unsigned long memCount = -1, tempMemory = 0x0; +00107 unsigned short memKb = 0; +00108 unsigned char irq1State, irq2State; +00109 unsigned long cr0 = 0x0; +00110 +00111 /* +00112 * Save The States Of Both IRQ 1 And 2 So We Can Turn Them Off And Restore +00113 * Them Later +00114 */ +00115 irq1State = inportByte(0x21); +00116 irq2State = inportByte(0xA1); +00117 +00118 /* Turn Off IRQ 1 And 2 To Prevent Chances Of Faults While Examining Memory */ +00119 outportByte(0x21, 0xFF); +00120 outportByte(0xA1, 0xFF); +00121 +00122 /* Save The State Of Register CR0 */ +00123 asm volatile ( +00124 "movl %%cr0, %%ebx\n" +00125 : "=a" (cr0) +00126 : +00127 : "ebx" +00128 ); +00129 +00130 asm volatile ("wbinvd"); +00131 asm volatile ( +00132 "movl %%ebx, %%cr0\n" +00133 : +00134 : "a" (cr0 | 0x00000001 | 0x40000000 | 0x20000000) +00135 : "ebx" +00136 ); +00137 +00138 while (memKb < 4096 && memCount != 0) { +00139 memKb++; +00140 if (memCount == -1) +00141 memCount = 0; +00142 memCount += 1024 * 1024; +00143 mem = (uInt32 *)memCount; +00144 tempMemory = *mem; +00145 *mem = 0x55AA55AA; +00146 asm("": : :"memory"); +00147 if (*mem != 0x55AA55AA) { +00148 memCount = 0; +00149 } +00150 else { +00151 *mem = 0xAA55AA55; +00152 asm("": : :"memory"); +00153 if (*mem != 0xAA55AA55) { +00154 memCount = 0; +00155 } +00156 } +00157 asm("": : :"memory"); +00158 *mem = tempMemory; +00159 } +00160 +00161 asm volatile ( +00162 "movl %%ebx, %%cr0\n" +00163 : +00164 : "a" (cr0) +00165 : "ebx" +00166 ); +00167 +00168 /* Restore States For Both IRQ 1 And 2 */ +00169 outportByte(0x21, irq1State); +00170 outportByte(0xA1, irq2State); +00171 +00172 /* Return Amount Of Memory In Pages */ +00173 return ((memKb * 1024 * 1024) / 4096); +00174 } +00175 +00176 /************************************************************************ +00177 +00178 Function: uInt32 vmmFindFreePage(pid_t pid); +00179 +00180 Description: This Returns A Free Physical Page Address Then Marks It +00181 Not Available As Well As Setting The PID To The Proccess +00182 Allocating This Page +00183 Notes: +00184 +00185 ************************************************************************/ +00186 uInt32 vmmFindFreePage(pidType pid) { +00187 int i = 0x0; +00188 +00189 /* Lets Look For A Free Page */ +00190 if (pid < sysID) +00191 kpanic("Error: invalid PID %i\n",pid); +00192 +00193 spinLock(&vmmSpinLock); +00194 +00195 for (i = 0; i <= numPages; i++) { +00196 +00197 /* +00198 * If We Found A Free Page Set It To Not Available After That Set Its Own +00199 * And Return The Address +00200 */ +00201 if ((vmmMemoryMap[i].status == memAvail) && (vmmMemoryMap[i].cowCounter == 0)) { +00202 vmmMemoryMap[i].status = memNotavail; +00203 vmmMemoryMap[i].pid = pid; +00204 freePages--; +00205 if (systemVitals) +00206 systemVitals->freePages = freePages; +00207 +00208 spinUnlock(&vmmSpinLock); +00209 return (vmmMemoryMap[i].pageAddr); +00210 } +00211 } +00212 +00213 /* If No Free Memory Is Found Return NULL */ +00214 kpanic("Out Of Memory!!!!"); +00215 return (0x0); +00216 } +00217 +00218 +00219 /************************************************************************ +00220 +00221 Function: int freePage(uInt32 pageAddr); +00222 +00223 Description: This Function Marks The Page As Free +00224 +00225 Notes: +00226 +00227 ************************************************************************/ +00228 int freePage(uInt32 pageAddr) { +00229 int pageIndex = 0x0; +00230 assert((pageAddr & 0xFFF) == 0x0); +00231 spinLock(&vmmSpinLock); +00232 +00233 /* Find The Page Index To The Memory Map */ +00234 pageIndex = (pageAddr / 4096); +00235 +00236 /* Check If Page COW Is Greater Then 0 If It Is Dec It If Not Free It */ +00237 if (vmmMemoryMap[pageIndex].cowCounter == 0) { +00238 /* Set Page As Avail So It Can Be Used Again */ +00239 vmmMemoryMap[pageIndex].status = memAvail; +00240 vmmMemoryMap[pageIndex].cowCounter = 0x0; +00241 vmmMemoryMap[pageIndex].pid = -2; +00242 freePages++; +00243 systemVitals->freePages = freePages; +00244 } +00245 else { +00246 /* Adjust The COW Counter */ +00247 adjustCowCounter(((uInt32) vmmMemoryMap[pageIndex].pageAddr), -1); 00248 } -00249 else { -00250 /* Adjust The COW Counter */ -00251 adjustCowCounter(((uInt32) vmmMemoryMap[pageIndex].pageAddr), -1); -00252 } -00253 spinUnlock(&vmmSpinLock); -00254 /* Return */ -00255 return (0); -00256 } -00257 -00270 int adjustCowCounter(uInt32 baseAddr, int adjustment) { -00271 int vmmMemoryMapIndex = (baseAddr / 4096); -00272 assert((baseAddr & 0xFFF) == 0x0); -00273 spinLock(&vmmCowSpinLock); -00274 /* Adjust COW Counter */ -00275 vmmMemoryMap[vmmMemoryMapIndex].cowCounter += adjustment; -00276 -00277 if (vmmMemoryMap[vmmMemoryMapIndex].cowCounter == 0) { -00278 vmmMemoryMap[vmmMemoryMapIndex].cowCounter = 0x0; -00279 vmmMemoryMap[vmmMemoryMapIndex].pid = vmmID; -00280 vmmMemoryMap[vmmMemoryMapIndex].status = memAvail; -00281 freePages++; -00282 systemVitals->freePages = freePages; -00283 } -00284 spinUnlock(&vmmCowSpinLock); -00285 /* Return */ -00286 return (0); -00287 } -00288 -00300 void vmmFreeProcessPages(pidType pid) { -00301 int i=0,x=0; -00302 uInt32 *tmpPageTable = 0x0; -00303 uInt32 *tmpPageDir = (uInt32 *)parentPageDirAddr; -00304 spinLock(&vmmSpinLock); -00305 /* Check Page Directory For An Avail Page Table */ -00306 for (i=0;i<=0x300;i++) { -00307 if (tmpPageDir[i] != 0) { -00308 /* Set Up Page Table Pointer */ -00309 tmpPageTable = (uInt32 *)(tablesBaseAddress + (i * 0x1000)); -00310 /* Check The Page Table For COW Pages */ -00311 for (x=0;x<pageEntries;x++) { -00312 /* If The Page Is COW Adjust COW Counter */ -00313 if (((uInt32)tmpPageTable[x] & PAGE_COW) == PAGE_COW) { -00314 adjustCowCounter(((uInt32)tmpPageTable[x] & 0xFFFFF000),-1); -00315 } -00316 } -00317 } -00318 } -00319 -00320 /* Loop Through Pages To Find Pages Owned By Process */ -00321 for (i=0;i<numPages;i++) { -00322 if (vmmMemoryMap[i].pid == pid) { -00323 /* Check To See If The cowCounter Is Zero If So We Can Ree It */ -00324 if (vmmMemoryMap[i].cowCounter == 0) { -00325 vmmMemoryMap[i].status = memAvail; -00326 vmmMemoryMap[i].cowCounter = 0x0; -00327 vmmMemoryMap[i].pid = vmmID; -00328 freePages++; -00329 systemVitals->freePages = freePages; -00330 } -00331 } -00332 } -00333 /* Return */ -00334 spinUnlock(&vmmSpinLock); -00335 return; -00336 } -00337 -00338 /*** -00339 END -00340 ***/ -00341 -
    Generated on Sun Dec 3 02:38:05 2006 for UbixOS V2 by  +00249 spinUnlock(&vmmSpinLock); +00250 /* Return */ +00251 return (0); +00252 } +00253 +00254 /************************************************************************ +00255 +00256 Function: int adjustCowCounter(uInt32 baseAddr,int adjustment); +00257 +00258 Description: This Adjust The COW Counter For Page At baseAddr It Will +00259 Error If The Count Goes Below 0 +00260 +00261 Notes: +00262 +00263 08/01/02 - I Think If Counter Gets To 0 I Should Free The Page +00264 +00265 ************************************************************************/ +00266 int adjustCowCounter(uInt32 baseAddr, int adjustment) { +00267 int vmmMemoryMapIndex = (baseAddr / 4096); +00268 assert((baseAddr & 0xFFF) == 0x0); +00269 spinLock(&vmmCowSpinLock); +00270 /* Adjust COW Counter */ +00271 vmmMemoryMap[vmmMemoryMapIndex].cowCounter += adjustment; +00272 +00273 if (vmmMemoryMap[vmmMemoryMapIndex].cowCounter == 0) { +00274 vmmMemoryMap[vmmMemoryMapIndex].cowCounter = 0x0; +00275 vmmMemoryMap[vmmMemoryMapIndex].pid = vmmID; +00276 vmmMemoryMap[vmmMemoryMapIndex].status = memAvail; +00277 freePages++; +00278 systemVitals->freePages = freePages; +00279 } +00280 spinUnlock(&vmmCowSpinLock); +00281 /* Return */ +00282 return (0); +00283 } +00284 +00285 /************************************************************************ +00286 +00287 Function: void vmmFreeProcessPages(pid_t pid); +00288 +00289 Description: This Function Will Free Up Memory For The Exiting Process +00290 +00291 Notes: +00292 +00293 08/04/02 - Added Checking For COW Pages First +00294 +00295 ************************************************************************/ +00296 void vmmFreeProcessPages(pidType pid) { +00297 int i=0,x=0; +00298 uInt32 *tmpPageTable = 0x0; +00299 uInt32 *tmpPageDir = (uInt32 *)parentPageDirAddr; +00300 spinLock(&vmmSpinLock); +00301 /* Check Page Directory For An Avail Page Table */ +00302 for (i=0;i<=0x300;i++) { +00303 if (tmpPageDir[i] != 0) { +00304 /* Set Up Page Table Pointer */ +00305 tmpPageTable = (uInt32 *)(tablesBaseAddress + (i * 0x1000)); +00306 /* Check The Page Table For COW Pages */ +00307 for (x=0;x<pageEntries;x++) { +00308 /* If The Page Is COW Adjust COW Counter */ +00309 if (((uInt32)tmpPageTable[x] & PAGE_COW) == PAGE_COW) { +00310 adjustCowCounter(((uInt32)tmpPageTable[x] & 0xFFFFF000),-1); +00311 } +00312 } +00313 } +00314 } +00315 +00316 /* Loop Through Pages To Find Pages Owned By Process */ +00317 for (i=0;i<numPages;i++) { +00318 if (vmmMemoryMap[i].pid == pid) { +00319 /* Check To See If The cowCounter Is Zero If So We Can Ree It */ +00320 if (vmmMemoryMap[i].cowCounter == 0) { +00321 vmmMemoryMap[i].status = memAvail; +00322 vmmMemoryMap[i].cowCounter = 0x0; +00323 vmmMemoryMap[i].pid = vmmID; +00324 freePages++; +00325 systemVitals->freePages = freePages; +00326 } +00327 } +00328 } +00329 /* Return */ +00330 spinUnlock(&vmmSpinLock); +00331 return; +00332 } +00333 +00334 /*** +00335 $Log$ +00336 Revision 1.1 2006/12/01 18:46:19 reddawg +00337 renaming files +00338 +00339 Revision 1.2 2006/12/01 05:12:35 reddawg +00340 We're almost there... :) +00341 +00342 Revision 1.1.1.1 2006/06/01 12:46:13 reddawg +00343 ubix2 +00344 +00345 Revision 1.5 2006/06/01 12:42:09 reddawg +00346 Getting back to the basics +00347 +00348 Revision 1.4 2006/06/01 04:15:32 reddawg +00349 Woot +00350 +00351 Revision 1.3 2006/06/01 03:58:33 reddawg +00352 wondering about this stuff here +00353 +00354 Revision 1.2 2005/10/12 00:13:38 reddawg +00355 Removed +00356 +00357 Revision 1.1.1.1 2005/09/26 17:24:51 reddawg +00358 no message +00359 +00360 Revision 1.15 2004/09/11 23:39:31 reddawg +00361 ok time for bed +00362 +00363 Revision 1.14 2004/09/11 16:39:19 apwillia +00364 Fix order in adjustCowCounter to prevent potential race condition +00365 +00366 Revision 1.13 2004/08/14 11:23:03 reddawg +00367 Changes +00368 +00369 Revision 1.12 2004/08/01 20:51:33 reddawg +00370 adjustCowCounter: we no longer need to debug unhandled adjustments they are normal situations now +00371 +00372 Revision 1.11 2004/07/28 00:17:05 reddawg +00373 Major: +00374 Disconnected page 0x0 from the system... Unfortunately this broke many things +00375 all of which have been fixed. This was good because nothing deferences NULL +00376 any more. +00377 +00378 Things affected: +00379 malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file +00380 +00381 Revision 1.10 2004/07/26 19:15:49 reddawg +00382 test code, fixes and the like +00383 +00384 Revision 1.9 2004/07/24 23:04:44 reddawg +00385 Changes... mark let me know if you fault at pid 185 when you type stress +00386 +00387 Revision 1.8 2004/07/24 17:47:28 reddawg +00388 vmm_pageFault: deadlock resolved thanks to a propper solution suggested by geist +00389 +00390 Revision 1.7 2004/07/19 02:04:32 reddawg +00391 memory.c: added spinlocks to vmmFindFreePage and vmmFreePage to prevent two tasks from possibly allocating the same page +00392 +00393 Revision 1.6 2004/06/14 12:20:54 reddawg +00394 notes: many bugs repaired and ld works 100% now. +00395 +00396 Revision 1.5 2004/05/21 15:34:23 reddawg +00397 Fixed a couple of typo +00398 +00399 Revision 1.4 2004/05/21 14:50:10 reddawg +00400 Cleaned up +00401 +00402 Revision 1.3 2004/05/19 17:28:28 reddawg +00403 Added the correct endTask Procedure +00404 +00405 Revision 1.2 2004/04/30 14:16:04 reddawg +00406 Fixed all the datatypes to be consistant uInt8,uInt16,uInt32,Int8,Int16,Int32 +00407 +00408 Revision 1.1.1.1 2004/04/15 12:06:52 reddawg +00409 UbixOS v1.0 +00410 +00411 Revision 1.27 2004/04/13 16:36:34 reddawg +00412 Changed our copyright, it is all now under a BSD-Style license +00413 +00414 +00415 END +00416 ***/ +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vmm__memory_8c.html b/doc/html/vmm__memory_8c.html index e7acdbd..4a8f716 100644 --- a/doc/html/vmm__memory_8c.html +++ b/doc/html/vmm__memory_8c.html @@ -37,7 +37,7 @@ #include <ubixos/kpanic.h>
    #include <lib/kprintf.h>
    #include <lib/kmalloc.h>
    -#include <sys/kern_sysctl.h>
    +#include <ubixos/vitals.h>
    #include <ubixos/spinlock.h>
    #include <assert.h>
    @@ -96,16 +96,13 @@

    -Function: int adjustCowCounter(uInt32 baseAddr,int adjustment);

    -Description: This Adjust The COW Counter For Page At baseAddr It Will Error If The Count Goes Below 0

    -Notes:

    -08/01/02 - I Think If Counter Gets To 0 I Should Free The Page +

    -Definition at line 270 of file vmm_memory.c. +Definition at line 266 of file vmm_memory.c.

    -References assert, mMap::cowCounter, freePages, memAvail, mMap::pid, spinLock(), spinUnlock(), mMap::status, systemVitals, vmmCowSpinLock, vmmID, and vmmMemoryMap. +References assert, mMap::cowCounter, vitalsStruct::freePages, freePages, memAvail, mMap::pid, spinLock(), spinUnlock(), mMap::status, systemVitals, vmmCowSpinLock, vmmID, and vmmMemoryMap.

    -Referenced by freePage(), vmm_pageFault(), vmmCopyVirtualSpace(), and vmmFreeProcessPages(). +Referenced by freePage(), vmm_pageFault(), vmmCopyVirtualSpace(), and vmmFreeProcessPages().

    @@ -124,14 +121,13 @@

    -Function: int countMemory(); Description: This Function Counts The Systems Physical Memory Notes:

    -02/20/2004 - Inspect For Quality And Approved +

    -Definition at line 107 of file vmm_memory.c. +Definition at line 104 of file vmm_memory.c.

    References cr0, inportByte(), and outportByte().

    -Referenced by vmmMemMapInit(). +Referenced by vmmMemMapInit().

    @@ -151,13 +147,11 @@

    @@ -179,12 +173,11 @@

    -Function: uInt32 vmmFindFreePage(pid_t pid);

    -Description: This Returns A Free Physical Page Address Then Marks It Not Available As Well As Setting The PID To The Proccess Allocating This Page Notes: +

    -Definition at line 189 of file vmm_memory.c. +Definition at line 186 of file vmm_memory.c.

    -References freePages, kpanic(), memAvail, memNotavail, numPages, mMap::pid, spinLock(), spinUnlock(), status, sysctl_enabled, sysID, systemVitals, TRUE, vmmMemoryMap, and vmmSpinLock. +References vitalsStruct::freePages, freePages, kpanic(), memAvail, memNotavail, numPages, mMap::pid, spinLock(), spinUnlock(), status, sysID, systemVitals, vmmMemoryMap, and vmmSpinLock.

    Referenced by execFile(), kmod_load(), ldEnable(), obreak(), sysExec(), vmm_getFreeMallocPage(), vmm_pageFault(), vmm_pagingInit(), vmm_remapPage(), vmmGetFreeKernelPage(), vmmGetFreePage(), and vmmGetFreeVirtualPage().

    @@ -206,14 +199,11 @@

    -Function: void vmmFreeProcessPages(pid_t pid);

    -Description: This Function Will Free Up Memory For The Exiting Process

    -Notes:

    -08/04/02 - Added Checking For COW Pages First +

    -Definition at line 300 of file vmm_memory.c. +Definition at line 296 of file vmm_memory.c.

    -References adjustCowCounter(), mMap::cowCounter, freePages, memAvail, numPages, PAGE_COW, pageEntries, parentPageDirAddr, mMap::pid, spinLock(), spinUnlock(), status, systemVitals, tablesBaseAddress, vmmID, vmmMemoryMap, vmmSpinLock, and x1000. +References adjustCowCounter(), mMap::cowCounter, vitalsStruct::freePages, freePages, memAvail, numPages, PAGE_COW, pageEntries, parentPageDirAddr, mMap::pid, spinLock(), spinUnlock(), status, systemVitals, tablesBaseAddress, vmmID, vmmMemoryMap, vmmSpinLock, and x1000.

    Referenced by systemTask().

    @@ -234,12 +224,11 @@

    -Function: void vmmMemMapInit(); Description: This Function Initializes The Memory Map For the System Notes:

    -02/20/2004 - Made It Report Real And Available Memory +

    -Definition at line 60 of file vmm_memory.c. +Definition at line 57 of file vmm_memory.c.

    -References countMemory(), freePages, kprintf(), memAvail, memNotavail, numPages, mMap::pageAddr, mMap::pid, status, mMap::status, vmmID, vmmMemoryMap, and x1000. +References countMemory(), freePages, kprintf(), memAvail, memNotavail, numPages, mMap::pageAddr, mMap::pid, status, mMap::status, vmmID, vmmMemoryMap, and x1000.

    Referenced by vmm_init().

    @@ -257,11 +246,11 @@

    -Internal variables +

    -Definition at line 42 of file vmm_memory.c. +Definition at line 39 of file vmm_memory.c.

    -Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -278,9 +267,9 @@

    -Definition at line 47 of file vmm_memory.c. +Definition at line 44 of file vmm_memory.c.

    -Referenced by vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -297,9 +286,9 @@

    -Definition at line 44 of file vmm_memory.c. +Definition at line 41 of file vmm_memory.c.

    -Referenced by adjustCowCounter(). +Referenced by adjustCowCounter().

    @@ -316,9 +305,9 @@

    -Definition at line 48 of file vmm_memory.c. +Definition at line 45 of file vmm_memory.c.

    -Referenced by adjustCowCounter(), freePage(), kmain(), vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit(). +Referenced by adjustCowCounter(), freePage(), kmain(), vmm_pagingInit(), vmmFindFreePage(), vmmFreeProcessPages(), and vmmMemMapInit().

    @@ -335,12 +324,12 @@

    -Definition at line 43 of file vmm_memory.c. +Definition at line 40 of file vmm_memory.c.

    -Referenced by freePage(), vmmFindFreePage(), and vmmFreeProcessPages(). +Referenced by freePage(), vmmFindFreePage(), and vmmFreeProcessPages().

    -


    Generated on Sun Dec 3 02:38:11 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:08 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vsprintf_8c-source.html b/doc/html/vsprintf_8c-source.html index e092cc5..5a148ac 100644 --- a/doc/html/vsprintf_8c-source.html +++ b/doc/html/vsprintf_8c-source.html @@ -315,7 +315,7 @@ 00283 END 00284 ***/ 00285 -
    Generated on Sun Dec 3 02:38:04 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:05 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/html/vsprintf_8c.html b/doc/html/vsprintf_8c.html index 65282da..cf6b922 100644 --- a/doc/html/vsprintf_8c.html +++ b/doc/html/vsprintf_8c.html @@ -376,12 +376,12 @@

    Definition at line 139 of file vsprintf.c.

    -References is_digit, LEFT, number(), PLUS, SIGN, skip_atoi(), SMALL, SPACE, SPECIAL, strlen(), vaArg, and ZEROPAD. +References is_digit, LEFT, number(), PLUS, SIGN, skip_atoi(), SMALL, SPACE, SPECIAL, strlen(), vaArg, and ZEROPAD.

    Referenced by kpanic(), kprintf(), and sprintf().

    -


    Generated on Sun Dec 3 02:38:10 2006 for UbixOS V2 by  +
    Generated on Tue Dec 5 09:28:07 2006 for UbixOS V2 by  doxygen 1.4.7
    diff --git a/doc/xml/8259_8c.xml b/doc/xml/8259_8c.xml new file mode 100644 index 0000000..79d0062 --- /dev/null +++ b/doc/xml/8259_8c.xml @@ -0,0 +1,280 @@ + + + + 8259.c + sys/io.h + isa/8259.h + ubixos/types.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int i8259_init + () + i8259_init + + + + + + + + icw1 + icw4 + kprintf + mImr + mPic + mVec + outportByte + sImr + sPic + sVec + + + void + void irqDisable + (uInt16 irqNo) + irqDisable + + uInt16 + irqNo + + + + + + + + + irqMask + mPic + outportByte + sPic + _int13 + kpanic + ne2kHandler + + + void + void irqEnable + (uInt16 irqNo) + irqEnable + + uInt16 + irqNo + + + + + + + + + irqMask + mPic + outportByte + sPic + _int13 + atkbd_init + fdc_init + kmain + mouseInit + ne2k_init + ne2kHandler + + + + + unsigned int + unsigned int irqMask + + irqMask + 0xFFFF + + + + + + + + irqDisable + irqEnable + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/io.h> +#include<isa/8259.h> +#include<ubixos/types.h> +#include<lib/kprintf.h> + +staticunsignedintirqMask=0xFFFF; + +/************************************************************************ + +Function:int8259_init() + +Description:ThisfunctionwillinitializebothPICsforallofourIRQs + +Notes: + +************************************************************************/ +inti8259_init(){ +outportByte(mPic,icw1);/*InitializeMasterPIC*/ +outportByte(sPic,icw1);/*InitializeSeconaryPIC*/ +outportByte(mPic+1,mVec);/*MasterInterrupVector*/ +outportByte(sPic+1,sVec);/*SecondaryInterruptVector*/ +outportByte(mPic+1,1<<2);/*BitmaskforcascadeonIRQ2*/ +outportByte(sPic+1,2);/*CascadeonIRQ2*/ +outportByte(mPic+1,icw4);/*FinishPrimaryInitialization*/ +outportByte(sPic+1,icw4);/*FinishSeconaryInitialization*/ +outportByte(mImr,0xff);/*MaskAllPrimaryInterrupts*/ +outportByte(sImr,0xff);/*MaskAllSeconaryInterrupts*/ + +/*Printoutthesysteminfoforthis*/ +kprintf("pic0-Port:[0x%X]\n",mPic); +kprintf("pic1-Port:[0x%X]\n",sPic); + +/*Returnsothesystemknowsitwentwell*/ +return(0x0); +} + +/************************************************************************ + +Function:intirqEnable() + +Description:ThisfunctionisusedtoturnonanIRQ + +Notes: + +************************************************************************/ +voidirqEnable(uInt16irqNo){ +irqMask&=~(1<<irqNo); +if(irqNo>=8){ +irqMask&=~(1<<2); +} +outportByte(mPic+1,irqMask&0xFF); +outportByte(sPic+1,(irqMask>>8)&0xFF); +} + +/************************************************************************ + +Function:intirqDisable() + +Description:ThisfunctionisusedtoturnoffanIRQ + +Notes: + +************************************************************************/ +voidirqDisable(uInt16irqNo){ +irqMask|=(1<<irqNo); +if((irqMask&0xFF00)==0xFF00){ +irqMask|=(1<<2); +} +outportByte(mPic+1,irqMask&0xFF); +outportByte(sPic+1,(irqMask>>8)&0xFF); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:59reddawg +nomessage + +Revision1.52004/07/0913:20:08reddawg +Ohyeahduhyoucannotnamefunctionswithnumbers + +Revision1.42004/07/0913:14:29reddawg +8259:changedinit8259to8259_init +AdjustedStartupRoutines + +Revision1.32004/05/2022:51:09reddawg +CleanedUpWarnings + +Revision1.22004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + +END +***/ + + + + + diff --git a/doc/xml/8259_8h.xml b/doc/xml/8259_8h.xml new file mode 100644 index 0000000..fbd5a20 --- /dev/null +++ b/doc/xml/8259_8h.xml @@ -0,0 +1,422 @@ + + + + 8259.h + ubixos/types.h + src/sys/include/ubixos/init.h + src/sys/isa/8259.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/isa/ne2k.c + src/sys/kernel/endtask.c + src/sys/kernel/kpanic.c + src/sys/kernel/sched.c + src/sys/pci/lnc.c + src/sys/sys/idt.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eoi + 0x20 + + + + + + + + mouseHandler + mouseInit + ne2kHandler + + + icw1 + 0x11 + + + + + + + + i8259_init + + + icw4 + 0x01 + + + + + + + + i8259_init + + + mImr + 0x21 + + + + + + + + i8259_init + + + mPic + 0x20 + + + + + + + + i8259_init + irqDisable + irqEnable + mouseHandler + mouseInit + ne2kHandler + + + mVec + 0x68 + + + + + + + + atkbd_init + fdc_init + i8259_init + initLNC + mouseInit + ne2k_init + + + ocw3Irr + 0x0A + + + + + + + + + + ocw3Isr + 0x0B + + + + + + + + + + sImr + 0xA1 + + + + + + + + i8259_init + + + sPic + 0xA0 + + + + + + + + i8259_init + irqDisable + irqEnable + mouseHandler + mouseInit + ne2kHandler + + + sVec + 0x70 + + + + + + + + i8259_init + + + + + int + int i8259_init + () + i8259_init + + + + + + + + icw1 + icw4 + kprintf + mImr + mPic + mVec + outportByte + sImr + sPic + sVec + + + void + void irqDisable + (uInt16 irqNo) + irqDisable + + uInt16 + irqNo + + + + + + + + + irqMask + mPic + outportByte + sPic + _int13 + kpanic + ne2kHandler + + + void + void irqEnable + (uInt16 irqNo) + irqEnable + + uInt16 + irqNo + + + + + + + + + irqMask + mPic + outportByte + sPic + _int13 + atkbd_init + fdc_init + kmain + mouseInit + ne2k_init + ne2kHandler + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_8259_H +#define_8259_H + +#include<ubixos/types.h> + +#definemPic0x20//I/OformasterPIC +#definemImr0x21//I/OformasterIMR +#definesPic0xA0//I/OforslavePIC +#definesImr0xA1//I/OforslaceIMR +#defineeoi0x20//EOIcommand +#defineicw10x11//Cascade,Edgetriggered +#defineicw40x01//8088mode +#definemVec0x68//Vectorformaster +#definesVec0x70//Vectorforslave +#defineocw3Irr0x0A//ReadIRR +#defineocw3Isr0x0B//ReadISR + +inti8259_init(); +voidirqEnable(uInt16irqNo); +voidirqDisable(uInt16irqNo); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:39reddawg +nomessage + +Revision1.42004/07/0913:20:08reddawg +Ohyeahduhyoucannotnamefunctionswithnumbers + +Revision1.32004/07/0913:14:29reddawg +8259:changedinit8259to8259_init +AdjustedStartupRoutines + +Revision1.22004/05/2114:57:16reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/Makefile_8inc.xml b/doc/xml/Makefile_8inc.xml new file mode 100644 index 0000000..03dee90 --- /dev/null +++ b/doc/xml/Makefile_8inc.xml @@ -0,0 +1,19 @@ + + + + Makefile.inc + + + + + +#$Id: +#global'sys'options + +INCLUDES=-I../include +CFLAGS=-Wall-nostdlib-nostdinc-fno-builtin-fno-exceptions-O +KERNEL=ubix.elf + + + + diff --git a/doc/xml/__types_8h.xml b/doc/xml/__types_8h.xml new file mode 100644 index 0000000..da75eea --- /dev/null +++ b/doc/xml/__types_8h.xml @@ -0,0 +1,2243 @@ + + + + _types.h + src/sys/include/ubixos/times.h + src/sys/include/ubixos/types.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + __int64_t + typedef __int64_t __blkcnt_t + + __blkcnt_t + + + + + + + + + + __uint32_t + typedef __uint32_t __blksize_t + + __blksize_t + + + + + + + + + + unsigned long + typedef unsigned long __clock_t + + __clock_t + + + + + + + + + + __uint32_t + typedef __uint32_t __dev_t + + __dev_t + + + + + + + + + + __uint32_t + typedef __uint32_t __fflags_t + + __fflags_t + + + + + + + + + + __uint32_t + typedef __uint32_t __gid_t + + __gid_t + + + + + + + + + + __uint32_t + typedef __uint32_t __ino_t + + __ino_t + + + + + + + + + + short + typedef short __int16_t + + __int16_t + + + + + + + + + + int + typedef int __int32_t + + __int32_t + + + + + + + + + + long long + typedef long long __int64_t + + __int64_t + + + + + + + + + + __signed char + typedef __signed char __int8_t + + __int8_t + + + + + + + + + + __uint16_t + typedef __uint16_t __mode_t + + __mode_t + + + + + + + + + + __uint16_t + typedef __uint16_t __nlink_t + + __nlink_t + + + + + + + + + + __int32_t + typedef __int32_t __ssize_t + + __ssize_t + + + + + + + + + + __int32_t + typedef __int32_t __time_t + + __time_t + + + + + + + + + + __uint32_t + typedef __uint32_t __uid_t + + __uid_t + + + + + + + + + + unsigned short + typedef unsigned short __uint16_t + + __uint16_t + + + + + + + + + + unsigned int + typedef unsigned int __uint32_t + + __uint32_t + + + + + + + + + + unsigned long long + typedef unsigned long long __uint64_t + + __uint64_t + + + + + + + + + + unsigned char + typedef unsigned char __uint8_t + + __uint8_t + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef__TYPES_H +#define__TYPES_H + +//#include<ubixos/types.h> + +typedef__signedchar__int8_t; +typedefunsignedchar__uint8_t; +typedefshort__int16_t; +typedefunsignedshort__uint16_t; +typedefint__int32_t; +typedefunsignedint__uint32_t; +typedeflonglong__int64_t; +typedefunsignedlonglong__uint64_t; + + +typedefunsignedlong__clock_t; +//typedeflong__time_t; +typedef__uint32_t__ino_t; +typedef__int32_t__ssize_t; + +/*stattypes*/ +typedef__uint32_t__dev_t;/*devicenumber*/ +typedef__uint16_t__mode_t; +typedef__uint16_t__nlink_t;/*linkcount*/ +typedef__uint32_t__uid_t; +typedef__uint32_t__gid_t; +typedef__int32_t__time_t; +typedef__int64_t__blkcnt_t;/*fileblockcount*/ +typedef__uint32_t__blksize_t;/*fileblocksize*/ +typedef__uint32_t__fflags_t;/*fileflags*/ + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/ap-boot_8S.xml b/doc/xml/ap-boot_8S.xml new file mode 100644 index 0000000..82b9a53 --- /dev/null +++ b/doc/xml/ap-boot_8S.xml @@ -0,0 +1,715 @@ + + + + ap-boot.S + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi xchgl + (%edi) + xchgl + + % + edi + + + + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb al + + al + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb al + + al + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb al + + al + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb al + + al + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb al + + al + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi ap_spl + + ap_spl + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start ap_trampoline_32 + + ap_trampoline_32 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb dx mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov dx outb dx mov ap_trampoline_epoint + + ap_trampoline_epoint + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl ap_trampoline_start + + ap_trampoline_start + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ap_trampoline_start + + ap_trampoline_start + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl ap_trampoline_start + + ap_trampoline_start + + + + + + + + + + globl ap_trampoline_end text code16 + globl ap_trampoline_end text code16 ap_trampoline_start + + ap_trampoline_start + + + + + + + + + + globl + globl ap_trampoline_start + + ap_trampoline_start + + + + + + + + apicMagic + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw + globl ap_trampoline_end text code16 ax movw ds movw es movw ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw + globl ap_trampoline_end text code16 ax movw ds movw ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw + globl ap_trampoline_end text code16 ax movw ax + + ax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax cmp + + cmp + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl cr0 + + cr0 + + + + + + + + countMemory + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl eax + + eax + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ebx + + ebx + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov ebx + + ebx + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx mov + + mov + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp x08 + + x08 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl x1 + + x1 + + + + + + + + atkbd_init + devfs_init + devfs_open + fclose + getch + getEmptyDesc + getFreeBlocks + initHardDisk + kmain + mpi_postMessage + ne2kGetBuffer + openFileUbixFS + sched_setStatus + ubixfs_init + ubixfs_initialize + ufs_init + ufs_initialize + ufs_openFile + vfs_mount + vfsRegisterFS + vmm_pageFault + vmm_pagingInit + vmmCopyVirtualSpace + vmmGetFreeVirtualPage + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov x10 + + x10 + + + + + + + + pciProbe + systemTask + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add x1000 + + x1000 + + + + + + + + addDirEntry + biosCall + execFile + initLNC + kmod_load + ldEnable + mmap + sysExec + ubixFSUnlink + vmm_cleanVirtualSpace + vmm_getFreeMallocPage + vmm_getPhysicalAddr + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmm_setPageAttributes + vmmCopyVirtualSpace + vmmFreeProcessPages + vmmGetFreePage + vmmGetFreeVirtualPage + vmmMapFromTask + vmmMemMapInit + vmmUnmapPage + writeUbixFS + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov x30 + + x30 + + + + + + + + cpuInfo + execFile + hdWrite + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov x31 + + x31 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov x31 + + x31 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov x33 + + x33 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov dx outb dx eax mov ap_trampoline_spl edi eax mov al mov xe9 + + xe9 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov dx outb dx mov ap_trampoline_stackptr ebx mov esp add ebx mov ap_trampoline_stackptr ap_trampoline_start mov al mov xe9 + + xe9 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov dx outb dx mov ax mov ds mov es mov fs mov gs mov ss mov ap_trampoline_spl edi eax eax eax je ap_spl mov al mov xe9 + + xe9 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov dx outb dx lgdt ap_trampoline_gdt_limit ap_trampoline_start movl eax orl eax movl cr0 code32 byte x66 ljmp ap_trampoline_32 ap_trampoline_start al mov xe9 + + xe9 + + + + + + + + + + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov + globl ap_trampoline_end text code16 ax movw ds movw es movw ss mov al mov xe9 + + xe9 + + + + + + + + c_ap_boot + + + + + + + +/* +*Okay,thisfilecontainsthecodethat'sgoingtobootstraptheAPcpus +*/ + + +.globlap_trampoline_start,ap_trampoline_end +.text +.code16 +ap_trampoline_start: +cli +cld + +movw%cs,%ax//TheCPUknowsitsCSalready,soletsuseitfortheothersegments +movw%ax,%ds +movw%ax,%es +movw%ax,%ss + +//Dosomebochs-specificbullshit +mov$0x31,%al//'1' +mov$0xe9,%dx +outb%al,%dx +//lgdtap_gdt; +lgdtap_trampoline_gdt_limit-ap_trampoline_start +movl%cr0,%eax +orl$0x1,%eax +movl%eax,%cr0//PMODE! + +.code32 +.byte0x66 +ljmp$0x08,$(ap_trampoline_32-ap_trampoline_start)//0x08==KERNEL_CS + +ap_trampoline_32: +mov$0x32,%al//'2' +mov$0xe9,%dx +outb%al,%dx + +mov$0x10,%ax +mov%ax,%ds +mov%ax,%es +mov%ax,%fs +mov%ax,%gs +mov%ax,%ss + +//Spinlock +movap_trampoline_spl-ap_trampoline_start,%edi +ap_spl: +//cmp$1,(%edi) +//jeap_spl + +mov$1,%eax//Valuetobeset +xchgl(%edi),%eax +cmp$0,%eax +jeap_spl +///Spinlock + +mov$0x30,%al//'0' +mov$0xe9,%dx +outb%al,%dx + +movap_trampoline_stackptr-ap_trampoline_start,%ebx +mov%ebx,%esp +add$0x1000,%ebx +mov%ebx,ap_trampoline_stackptr-ap_trampoline_start + +mov$0x31,%al//'1' +mov$0xe9,%dx +outb%al,%dx + +//spinunlock +mov$0,%eax +movap_trampoline_spl-ap_trampoline_start,%edi +xchgl(%edi),%eax +///spinunlock + +mov$0x33,%al//'3' +mov$0xe9,%dx +outb%al,%dx + +movap_trampoline_epoint,%eax +call*%eax +1: +hlt +jmp1b//Haltifweevergetheresomehow + +//Stack..Thissucks,sinceCPUinitializationisn'tserialized +ap_trampoline_stackptr: +.long0x10000//256KB +ap_trampoline_epoint: +.longc_ap_boot + +ap_trampoline_spl: +.long0 +ap_gdt: +.longubixGDT + +//GDT +ap_trampoline_gdt: +.word0 +ap_trampoline_gdt_limit: +.word128//Roomfor32descriptors +ap_trampoline_gdt_base: +.long0x20000//128KB(movethislater) + + +ap_trampoline_end: + + + + diff --git a/doc/xml/api_8h.xml b/doc/xml/api_8h.xml new file mode 100644 index 0000000..8599218 --- /dev/null +++ b/doc/xml/api_8h.xml @@ -0,0 +1,1483 @@ + + + + api.h + net/opt.h + net/pbuf.h + net/sys.h + net/ipv4/ip.h + net/udp.h + net/tcp.h + net/err.h + src/sys/include/net/api_msg.h + src/sys/net/api/api_lib.c + src/sys/net/api/sockets.c + src/sys/net/net/bot.c + src/sys/net/net/shell.c + src/sys/net/net/udpecho.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + netbuf + netconn + + + NETCONN_COPY + 0x01 + + + + + + + + lwip_send + lwip_write + + + NETCONN_NOCOPY + 0x00 + + + + + + + + sendstr + + + + + netconn_state + + NETCONN_NONE + + + + + + + NETCONN_WRITE + + + + + + + NETCONN_ACCEPT + + + + + + + NETCONN_RECV + + + + + + + NETCONN_CONNECT + + + + + + + NETCONN_CLOSE + + + + + + + + + + + + + + + netconn_type + + NETCONN_TCP + + + + + + + NETCONN_UDP + + + + + + + NETCONN_UDPLITE + + + + + + + NETCONN_UDPNOCHKSUM + + + + + + + + + + + + + + + + + void * + void* netbuf_alloc + (struct netbuf *buf, uInt16 size) + netbuf_alloc + + struct netbuf * + buf + + + uInt16 + size + + + + + + + + + NULL + netbuf::p + pbuf::payload + pbuf_alloc + pbuf_free + PBUF_RAM + PBUF_TRANSPORT + netbuf::ptr + + + void + void netbuf_chain + (struct netbuf *head, struct netbuf *tail) + netbuf_chain + + struct netbuf * + head + + + struct netbuf * + tail + + + + + + + + + memp_freep + MEMP_NETBUF + netbuf::p + pbuf_chain + netbuf::ptr + + + void + void netbuf_copy + (struct netbuf *buf, void *dataptr, uInt16 len) + netbuf_copy + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + len + + + + + + + + + netbuf_copy_partial + bot_thread + shell_main + udpecho_thread + + + void + void netbuf_copy_partial + (struct netbuf *buf, void *dataptr, uInt16 len, uInt16 offset) + netbuf_copy_partial + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + len + + + uInt16 + offset + + + + + + + + + pbuf::len + pbuf::next + NULL + netbuf::p + pbuf::payload + lwip_recvfrom + netbuf_copy + + + err_t + err_t netbuf_data + (struct netbuf *buf, void **dataptr, uInt16 *len) + netbuf_data + + struct netbuf * + buf + + + void ** + dataptr + + + uInt16 * + len + + + + + + + + + ERR_BUF + ERR_OK + pbuf::len + NULL + pbuf::payload + netbuf::ptr + + + void + void netbuf_delete + (struct netbuf *buf) + netbuf_delete + + struct netbuf * + buf + + + + + + + + + memp_freep + MEMP_NETBUF + NULL + netbuf::p + pbuf_free + netbuf::ptr + bot_thread + lwip_close + lwip_recvfrom + lwip_send + netconn_delete + shell_main + udpecho_thread + + + void + void netbuf_first + (struct netbuf *buf) + netbuf_first + + struct netbuf * + buf + + + + + + + + + netbuf::p + netbuf::ptr + + + void + void netbuf_free + (struct netbuf *buf) + netbuf_free + + struct netbuf * + buf + + + + + + + + + NULL + netbuf::p + pbuf_free + netbuf::ptr + + + ip_addr * + struct ip_addr* netbuf_fromaddr + (struct netbuf *buf) + netbuf_fromaddr + + struct netbuf * + buf + + + + + + + + + netbuf::fromaddr + lwip_recvfrom + udpecho_thread + + + uInt16 + uInt16 netbuf_fromport + (struct netbuf *buf) + netbuf_fromport + + struct netbuf * + buf + + + + + + + + + netbuf::fromport + lwip_recvfrom + udpecho_thread + + + uInt16 + uInt16 netbuf_len + (struct netbuf *buf) + netbuf_len + + struct netbuf * + buf + + + + + + + + + netbuf::p + pbuf::tot_len + bot_thread + lwip_recvfrom + shell_main + + + netbuf * + struct netbuf* netbuf_new + (void) + netbuf_new + + void + + + + + + + + + memp_mallocp + MEMP_NETBUF + NULL + netbuf::p + netbuf::ptr + lwip_send + + + Int8 + Int8 netbuf_next + (struct netbuf *buf) + netbuf_next + + struct netbuf * + buf + + + + + + + + + pbuf::next + NULL + netbuf::ptr + + + void + void netbuf_ref + (struct netbuf *buf, void *dataptr, uInt16 size) + netbuf_ref + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + size + + + + + + + + + pbuf::len + NULL + netbuf::p + pbuf::payload + pbuf_alloc + pbuf_free + PBUF_ROM + PBUF_TRANSPORT + netbuf::ptr + pbuf::tot_len + lwip_send + + + netconn * + struct netconn* netconn_accept + (struct netconn *conn) + netconn_accept + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + NULL + sys_mbox_fetch + lwip_accept + shell_thread + + + err_t + err_t netconn_addr + (struct netconn *conn, struct ip_addr **addr, uInt16 *port) + netconn_addr + + struct netconn * + conn + + + struct ip_addr ** + addr + + + uInt16 * + port + + + + + + + + + netconn::err + ERR_OK + tcp_pcb::local_ip + udp_pcb::local_port + tcp_pcb::local_port + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + netconn::pcb + netconn::tcp + netconn::type + netconn::udp + + + err_t + err_t netconn_bind + (struct netconn *conn, struct ip_addr *addr, uInt16 port) + netconn_bind + + struct netconn * + conn + + + struct ip_addr * + addr + + + uInt16 + port + + + + + + + + + API_MSG_BIND + api_msg_post + api_msg_msg::bc + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NETCONN_TCP + NULL + netconn::recvmbox + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + netconn::type + lwip_bind + shell_thread + udpecho_thread + + + err_t + err_t netconn_close + (struct netconn *conn) + netconn_close + + struct netconn * + conn + + + + + + + + + API_MSG_CLOSE + api_msg_post + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NETCONN_CLOSE + NETCONN_NONE + NULL + netconn::sem + netconn::state + sys_mbox_fetch + SYS_SEM_NULL + sys_sem_wait + shell_main + + + err_t + err_t netconn_connect + (struct netconn *conn, struct ip_addr *addr, uInt16 port) + netconn_connect + + struct netconn * + conn + + + struct ip_addr * + addr + + + uInt16 + port + + + + + + + + + API_MSG_CONNECT + api_msg_post + api_msg_msg::bc + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + kprintf + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NULL + netconn::recvmbox + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + bot_thread + lwip_connect + lwip_sendto + udpecho_thread + + + err_t + err_t netconn_delete + (struct netconn *conn) + netconn_delete + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + API_MSG_DELCONN + api_msg_post + api_msg_msg::conn + ERR_MEM + ERR_OK + netconn::mbox + MEMP_API_MSG + memp_free + memp_freep + memp_mallocp + MEMP_NETCONN + api_msg::msg + api_msg_msg::msg + netbuf_delete + netconn_delete + NETCONN_TCP + NULL + pbuf_free + netconn::recvmbox + netconn::sem + sys_arch_mbox_fetch + sys_mbox_fetch + sys_mbox_free + SYS_MBOX_NULL + sys_sem_free + SYS_SEM_NULL + netconn::type + lwip_accept + lwip_close + lwip_socket + netconn_delete + + + err_t + err_t netconn_err + (struct netconn *conn) + netconn_err + + struct netconn * + conn + + + + + + + + + netconn::err + + + err_t + err_t netconn_listen + (struct netconn *conn) + netconn_listen + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + API_MSG_LISTEN + api_msg_post + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NULL + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + lwip_listen + shell_thread + + + netconn * + struct netconn* netconn_new + (enum netconn_type type) + netconn_new + + enum netconn_type + type + + + + + + + + + netconn::acceptmbox + netconn::mbox + memp_freep + memp_mallocp + MEMP_NETCONN + NETCONN_NONE + NULL + netconn::pcb + netconn::recvmbox + netconn::sem + netconn::state + sys_mbox_new + SYS_MBOX_NULL + SYS_SEM_NULL + netconn::tcp + netconn::type + bot_thread + lwip_socket + shell_thread + udpecho_thread + + + err_t + err_t netconn_peer + (struct netconn *conn, struct ip_addr **addr, uInt16 *port) + netconn_peer + + struct netconn * + conn + + + struct ip_addr ** + addr + + + uInt16 * + port + + + + + + + + + netconn::err + ERR_OK + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + netconn::pcb + udp_pcb::remote_ip + tcp_pcb::remote_ip + udp_pcb::remote_port + tcp_pcb::remote_port + netconn::tcp + netconn::type + netconn::udp + lwip_accept + lwip_sendto + + + netbuf * + struct netbuf* netconn_recv + (struct netconn *conn) + netconn_recv + + struct netconn * + conn + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_RECV + api_msg_msg::conn + DEBUGF + netconn::err + ERR_CONN + ERR_MEM + ERR_OK + netbuf::fromaddr + netbuf::fromport + api_msg_msg::len + LISTEN + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + MEMP_NETBUF + api_msg::msg + api_msg_msg::msg + NETCONN_TCP + NULL + netbuf::p + netconn::pcb + netbuf::ptr + netconn::recvmbox + tcp_pcb::state + sys_mbox_fetch + sys_mbox_free + SYS_MBOX_NULL + netconn::tcp + pbuf::tot_len + netconn::type + api_msg::type + bot_thread + lwip_recvfrom + shell_main + udpecho_thread + + + err_t + err_t netconn_send + (struct netconn *conn, struct netbuf *buf) + netconn_send + + struct netconn * + conn + + + struct netbuf * + buf + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_SEND + api_msg_msg::conn + DEBUGF + netconn::err + ERR_MEM + ERR_OK + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NULL + netbuf::p + api_msg_msg::p + sys_mbox_fetch + pbuf::tot_len + lwip_send + udpecho_thread + + + enum netconn_type + enum netconn_type netconn_type + (struct netconn *conn) + netconn_type + + struct netconn * + conn + + + + + + + + + netconn::type + lwip_recvfrom + lwip_send + lwip_write + + + err_t + err_t netconn_write + (struct netconn *conn, void *dataptr, uInt16 size, uInt8 copy) + netconn_write + + struct netconn * + conn + + + void * + dataptr + + + uInt16 + size + + + uInt8 + copy + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_WRITE + api_msg_msg::conn + DEBUGF + netconn::err + ERR_MEM + ERR_OK + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg::msg + api_msg_msg::msg + NETCONN_NONE + NETCONN_TCP + NETCONN_WRITE + NULL + netconn::pcb + netconn::sem + netconn::state + sys_mbox_fetch + sys_sem_free + sys_sem_new + SYS_SEM_NULL + sys_sem_wait + netconn::tcp + tcp_sndbuf + netconn::type + api_msg_msg::w + lwip_send + lwip_write + sendstr + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_API_H__ +#define__LWIP_API_H__ + +#include"net/opt.h" +#include"net/pbuf.h" +#include"net/sys.h" + +#include"net/ipv4/ip.h" + +#include"net/udp.h" +#include"net/tcp.h" + +#include"net/err.h" + +#defineNETCONN_NOCOPY0x00 +#defineNETCONN_COPY0x01 + +enumnetconn_type{ +NETCONN_TCP, +NETCONN_UDP, +NETCONN_UDPLITE, +NETCONN_UDPNOCHKSUM +}; + +enumnetconn_state{ +NETCONN_NONE, +NETCONN_WRITE, +NETCONN_ACCEPT, +NETCONN_RECV, +NETCONN_CONNECT, +NETCONN_CLOSE +}; + +structnetbuf{ +structpbuf*p,*ptr; +structip_addr*fromaddr; +uInt16fromport; +err_terr; +}; + +structnetconn{ +enumnetconn_typetype; +enumnetconn_statestate; +union{ +structtcp_pcb*tcp; +structudp_pcb*udp; +}pcb; +err_terr; +sys_mbox_tmbox; +sys_mbox_trecvmbox; +sys_mbox_tacceptmbox; +sys_sem_tsem; +}; + +/*Networkbufferfunctions:*/ +structnetbuf*netbuf_new(void); +voidnetbuf_delete(structnetbuf*buf); +void*netbuf_alloc(structnetbuf*buf,uInt16size); +voidnetbuf_free(structnetbuf*buf); +voidnetbuf_ref(structnetbuf*buf, +void*dataptr,uInt16size); +voidnetbuf_chain(structnetbuf*head, +structnetbuf*tail); + +uInt16netbuf_len(structnetbuf*buf); +err_tnetbuf_data(structnetbuf*buf, +void**dataptr,uInt16*len); +Int8netbuf_next(structnetbuf*buf); +voidnetbuf_first(structnetbuf*buf); + +voidnetbuf_copy(structnetbuf*buf, +void*dataptr,uInt16len); +structip_addr*netbuf_fromaddr(structnetbuf*buf); +uInt16netbuf_fromport(structnetbuf*buf); + +/*Networkconnectionfunctions:*/ +structnetconn*netconn_new(enumnetconn_typetype); +err_tnetconn_delete(structnetconn*conn); +enumnetconn_typenetconn_type(structnetconn*conn); +err_tnetconn_peer(structnetconn*conn, +structip_addr**addr, +uInt16*port); +err_tnetconn_addr(structnetconn*conn, +structip_addr**addr, +uInt16*port); +err_tnetconn_bind(structnetconn*conn, +structip_addr*addr, +uInt16port); +err_tnetconn_connect(structnetconn*conn, +structip_addr*addr, +uInt16port); +err_tnetconn_listen(structnetconn*conn); +structnetconn*netconn_accept(structnetconn*conn); +structnetbuf*netconn_recv(structnetconn*conn); +err_tnetconn_send(structnetconn*conn, +structnetbuf*buf); +err_tnetconn_write(structnetconn*conn, +void*dataptr,uInt16size, +uInt8copy); +err_tnetconn_close(structnetconn*conn); + +err_tnetconn_err(structnetconn*conn); + +voidnetbuf_copy_partial(structnetbuf*buf,void*dataptr,uInt16len,uInt16offset); + +#endif/*__LWIP_API_H__*/ + + + + + + diff --git a/doc/xml/api__lib_8c.xml b/doc/xml/api__lib_8c.xml new file mode 100644 index 0000000..d4ff739 --- /dev/null +++ b/doc/xml/api__lib_8c.xml @@ -0,0 +1,1843 @@ + + + + api_lib.c + ubixos/types.h + net/debug.h + net/api.h + net/api_msg.h + net/memp.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* netbuf_alloc + (struct netbuf *buf, uInt16 size) + netbuf_alloc + + struct netbuf * + buf + + + uInt16 + size + + + + + + + + + NULL + netbuf::p + pbuf::payload + pbuf_alloc + pbuf_free + PBUF_RAM + PBUF_TRANSPORT + netbuf::ptr + + + void + void netbuf_chain + (struct netbuf *head, struct netbuf *tail) + netbuf_chain + + struct netbuf * + head + + + struct netbuf * + tail + + + + + + + + + memp_freep + MEMP_NETBUF + netbuf::p + pbuf_chain + netbuf::ptr + + + void + void netbuf_copy + (struct netbuf *buf, void *dataptr, uInt16 len) + netbuf_copy + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + len + + + + + + + + + netbuf_copy_partial + bot_thread + shell_main + udpecho_thread + + + void + void netbuf_copy_partial + (struct netbuf *buf, void *dataptr, uInt16 len, uInt16 offset) + netbuf_copy_partial + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + len + + + uInt16 + offset + + + + + + + + + pbuf::len + pbuf::next + NULL + netbuf::p + pbuf::payload + lwip_recvfrom + netbuf_copy + + + err_t + err_t netbuf_data + (struct netbuf *buf, void **dataptr, uInt16 *len) + netbuf_data + + struct netbuf * + buf + + + void ** + dataptr + + + uInt16 * + len + + + + + + + + + ERR_BUF + ERR_OK + pbuf::len + NULL + pbuf::payload + netbuf::ptr + + + void + void netbuf_delete + (struct netbuf *buf) + netbuf_delete + + struct netbuf * + buf + + + + + + + + + memp_freep + MEMP_NETBUF + NULL + netbuf::p + pbuf_free + netbuf::ptr + bot_thread + lwip_close + lwip_recvfrom + lwip_send + netconn_delete + shell_main + udpecho_thread + + + void + void netbuf_first + (struct netbuf *buf) + netbuf_first + + struct netbuf * + buf + + + + + + + + + netbuf::p + netbuf::ptr + + + void + void netbuf_free + (struct netbuf *buf) + netbuf_free + + struct netbuf * + buf + + + + + + + + + NULL + netbuf::p + pbuf_free + netbuf::ptr + + + ip_addr * + struct ip_addr* netbuf_fromaddr + (struct netbuf *buf) + netbuf_fromaddr + + struct netbuf * + buf + + + + + + + + + netbuf::fromaddr + lwip_recvfrom + udpecho_thread + + + uInt16 + uInt16 netbuf_fromport + (struct netbuf *buf) + netbuf_fromport + + struct netbuf * + buf + + + + + + + + + netbuf::fromport + lwip_recvfrom + udpecho_thread + + + uInt16 + uInt16 netbuf_len + (struct netbuf *buf) + netbuf_len + + struct netbuf * + buf + + + + + + + + + netbuf::p + pbuf::tot_len + bot_thread + lwip_recvfrom + shell_main + + + netbuf * + struct netbuf* netbuf_new + (void) + netbuf_new + + void + + + + + + + + + memp_mallocp + MEMP_NETBUF + NULL + netbuf::p + netbuf::ptr + lwip_send + + + Int8 + Int8 netbuf_next + (struct netbuf *buf) + netbuf_next + + struct netbuf * + buf + + + + + + + + + pbuf::next + NULL + netbuf::ptr + + + void + void netbuf_ref + (struct netbuf *buf, void *dataptr, uInt16 size) + netbuf_ref + + struct netbuf * + buf + + + void * + dataptr + + + uInt16 + size + + + + + + + + + pbuf::len + NULL + netbuf::p + pbuf::payload + pbuf_alloc + pbuf_free + PBUF_ROM + PBUF_TRANSPORT + netbuf::ptr + pbuf::tot_len + lwip_send + + + netconn * + struct netconn* netconn_accept + (struct netconn *conn) + netconn_accept + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + NULL + sys_mbox_fetch + lwip_accept + shell_thread + + + err_t + err_t netconn_addr + (struct netconn *conn, struct ip_addr **addr, uInt16 *port) + netconn_addr + + struct netconn * + conn + + + struct ip_addr ** + addr + + + uInt16 * + port + + + + + + + + + netconn::err + ERR_OK + tcp_pcb::local_ip + tcp_pcb::local_port + udp_pcb::local_port + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + netconn::pcb + netconn::tcp + netconn::type + netconn::udp + + + err_t + err_t netconn_bind + (struct netconn *conn, struct ip_addr *addr, uInt16 port) + netconn_bind + + struct netconn * + conn + + + struct ip_addr * + addr + + + uInt16 + port + + + + + + + + + API_MSG_BIND + api_msg_post + api_msg_msg::bc + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NETCONN_TCP + NULL + netconn::recvmbox + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + netconn::type + lwip_bind + shell_thread + udpecho_thread + + + err_t + err_t netconn_close + (struct netconn *conn) + netconn_close + + struct netconn * + conn + + + + + + + + + API_MSG_CLOSE + api_msg_post + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NETCONN_CLOSE + NETCONN_NONE + NULL + netconn::sem + netconn::state + sys_mbox_fetch + SYS_SEM_NULL + sys_sem_wait + shell_main + + + err_t + err_t netconn_connect + (struct netconn *conn, struct ip_addr *addr, uInt16 port) + netconn_connect + + struct netconn * + conn + + + struct ip_addr * + addr + + + uInt16 + port + + + + + + + + + API_MSG_CONNECT + api_msg_post + api_msg_msg::bc + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + kprintf + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NULL + netconn::recvmbox + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + bot_thread + lwip_connect + lwip_sendto + udpecho_thread + + + err_t + err_t netconn_delete + (struct netconn *conn) + netconn_delete + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + API_MSG_DELCONN + api_msg_post + api_msg_msg::conn + ERR_MEM + ERR_OK + netconn::mbox + MEMP_API_MSG + memp_free + memp_freep + memp_mallocp + MEMP_NETCONN + api_msg_msg::msg + api_msg::msg + netbuf_delete + netconn_delete + NETCONN_TCP + NULL + pbuf_free + netconn::recvmbox + netconn::sem + sys_arch_mbox_fetch + sys_mbox_fetch + sys_mbox_free + SYS_MBOX_NULL + sys_sem_free + SYS_SEM_NULL + netconn::type + lwip_accept + lwip_close + lwip_socket + netconn_delete + + + err_t + err_t netconn_err + (struct netconn *conn) + netconn_err + + struct netconn * + conn + + + + + + + + + netconn::err + + + err_t + err_t netconn_listen + (struct netconn *conn) + netconn_listen + + struct netconn * + conn + + + + + + + + + netconn::acceptmbox + API_MSG_LISTEN + api_msg_post + api_msg_msg::conn + netconn::err + ERR_MEM + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NULL + sys_mbox_fetch + sys_mbox_new + SYS_MBOX_NULL + lwip_listen + shell_thread + + + netconn * + struct netconn* netconn_new + (enum netconn_type t) + netconn_new + + enum netconn_type + t + + + + + + + + + netconn::acceptmbox + netconn::mbox + memp_freep + memp_mallocp + MEMP_NETCONN + NETCONN_NONE + NULL + netconn::pcb + netconn::recvmbox + netconn::sem + netconn::state + sys_mbox_new + SYS_MBOX_NULL + SYS_SEM_NULL + netconn::tcp + netconn::type + bot_thread + lwip_socket + shell_thread + udpecho_thread + + + err_t + err_t netconn_peer + (struct netconn *conn, struct ip_addr **addr, uInt16 *port) + netconn_peer + + struct netconn * + conn + + + struct ip_addr ** + addr + + + uInt16 * + port + + + + + + + + + netconn::err + ERR_OK + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + netconn::pcb + tcp_pcb::remote_ip + udp_pcb::remote_ip + tcp_pcb::remote_port + udp_pcb::remote_port + netconn::tcp + netconn::type + netconn::udp + lwip_accept + lwip_sendto + + + netbuf * + struct netbuf* netconn_recv + (struct netconn *conn) + netconn_recv + + struct netconn * + conn + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_RECV + api_msg_msg::conn + DEBUGF + netconn::err + ERR_CONN + ERR_MEM + ERR_OK + netbuf::fromaddr + netbuf::fromport + api_msg_msg::len + LISTEN + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + MEMP_NETBUF + api_msg_msg::msg + api_msg::msg + NETCONN_TCP + NULL + netbuf::p + netconn::pcb + netbuf::ptr + netconn::recvmbox + tcp_pcb::state + sys_mbox_fetch + sys_mbox_free + SYS_MBOX_NULL + netconn::tcp + pbuf::tot_len + api_msg::type + netconn::type + bot_thread + lwip_recvfrom + shell_main + udpecho_thread + + + err_t + err_t netconn_send + (struct netconn *conn, struct netbuf *buf) + netconn_send + + struct netconn * + conn + + + struct netbuf * + buf + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_SEND + api_msg_msg::conn + DEBUGF + netconn::err + ERR_MEM + ERR_OK + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NULL + api_msg_msg::p + netbuf::p + sys_mbox_fetch + pbuf::tot_len + lwip_send + udpecho_thread + + + enum netconn_type + enum netconn_type netconn_type + (struct netconn *conn) + netconn_type + + struct netconn * + conn + + + + + + + + + netconn::type + lwip_recvfrom + lwip_send + lwip_write + + + err_t + err_t netconn_write + (struct netconn *conn, void *dataptr, uInt16 size, uInt8 copy) + netconn_write + + struct netconn * + conn + + + void * + dataptr + + + uInt16 + size + + + uInt8 + copy + + + + + + + + + API_LIB_DEBUG + api_msg_post + API_MSG_WRITE + api_msg_msg::conn + DEBUGF + netconn::err + ERR_MEM + ERR_OK + ERR_VAL + netconn::mbox + MEMP_API_MSG + memp_freep + memp_mallocp + api_msg_msg::msg + api_msg::msg + NETCONN_NONE + NETCONN_TCP + NETCONN_WRITE + NULL + netconn::pcb + netconn::sem + netconn::state + sys_mbox_fetch + sys_sem_free + sys_sem_new + SYS_SEM_NULL + sys_sem_wait + netconn::tcp + tcp_sndbuf + netconn::type + api_msg_msg::w + lwip_send + lwip_write + sendstr + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +/*ThisisthepartoftheAPIthatislinkedwith +theapplication*/ + +#include<ubixos/types.h> + +#include"net/debug.h" +#include"net/api.h" +#include"net/api_msg.h" +#include"net/memp.h" + +#include"net/debug.h" + +#include"lib/kprintf.h" +/*-----------------------------------------------------------------------------------*/ +struct +netbuf*netbuf_new(void) +{ +structnetbuf*buf; + +buf=memp_mallocp(MEMP_NETBUF); +if(buf!=NULL){ +buf->p=NULL; +buf->ptr=NULL; +returnbuf; +}else{ +returnNULL; +} +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_delete(structnetbuf*buf) +{ +if(buf!=NULL){ +if(buf->p!=NULL){ +pbuf_free(buf->p); +buf->p=buf->ptr=NULL; +} +memp_freep(MEMP_NETBUF,buf); +} +} +/*-----------------------------------------------------------------------------------*/ +void* +netbuf_alloc(structnetbuf*buf,uInt16size) +{ +/*Deallocateanypreviouslyallocatedmemory.*/ +if(buf->p!=NULL){ +pbuf_free(buf->p); +} +buf->p=pbuf_alloc(PBUF_TRANSPORT,size,PBUF_RAM); +if(buf->p==NULL){ +returnNULL; +} +buf->ptr=buf->p; +returnbuf->p->payload; +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_free(structnetbuf*buf) +{ +if(buf->p!=NULL){ +pbuf_free(buf->p); +} +buf->p=buf->ptr=NULL; +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_ref(structnetbuf*buf,void*dataptr,uInt16size) +{ +if(buf->p!=NULL){ +pbuf_free(buf->p); +} +buf->p=pbuf_alloc(PBUF_TRANSPORT,0,PBUF_ROM); +buf->p->payload=dataptr; +buf->p->len=buf->p->tot_len=size; +buf->ptr=buf->p; +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_chain(structnetbuf*head,structnetbuf*tail) +{ +pbuf_chain(head->p,tail->p); +head->ptr=head->p; +memp_freep(MEMP_NETBUF,tail); +} +/*-----------------------------------------------------------------------------------*/ +uInt16 +netbuf_len(structnetbuf*buf) +{ +returnbuf->p->tot_len; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netbuf_data(structnetbuf*buf,void**dataptr,uInt16*len) +{ +if(buf->ptr==NULL){ +returnERR_BUF; +} +*dataptr=buf->ptr->payload; +*len=buf->ptr->len; +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +Int8 +netbuf_next(structnetbuf*buf) +{ +if(buf->ptr->next==NULL){ +return-1; +} +buf->ptr=buf->ptr->next; +if(buf->ptr->next==NULL){ +return1; +} +return0; +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_first(structnetbuf*buf) +{ +buf->ptr=buf->p; +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_copy_partial(structnetbuf*buf,void*dataptr,uInt16len,uInt16offset) +{ +structpbuf*p; +uInt16i,left; + +left=0; + +if(buf==NULL){ +return; +} + +/*Thisimplementationisbad.Itshouldusebcopy +instead.*/ +for(p=buf->p;left<len&&p!=NULL;p=p->next){ +if(offset!=0&&offset>=p->len){ +offset-=p->len; +}else{ +for(i=offset;i<p->len;++i){ +((char*)dataptr)[left]=((char*)p->payload)[i]; +if(++left>=len){ +return; +} +} +} +} +} +/*-----------------------------------------------------------------------------------*/ +void +netbuf_copy(structnetbuf*buf,void*dataptr,uInt16len) +{ +netbuf_copy_partial(buf,dataptr,len,0); +} +/*-----------------------------------------------------------------------------------*/ +structip_addr* +netbuf_fromaddr(structnetbuf*buf) +{ +returnbuf->fromaddr; +} +/*-----------------------------------------------------------------------------------*/ +uInt16 +netbuf_fromport(structnetbuf*buf) +{ +returnbuf->fromport; +} +/*-----------------------------------------------------------------------------------*/ +struct +netconn*netconn_new(enumnetconn_typet) +{ +structnetconn*conn; + +conn=memp_mallocp(MEMP_NETCONN); +if(conn==NULL){ +returnNULL; +} +conn->type=t; +conn->pcb.tcp=NULL; + +if((conn->mbox=sys_mbox_new())==SYS_MBOX_NULL){ +memp_freep(MEMP_NETCONN,conn); +returnNULL; +} +conn->recvmbox=SYS_MBOX_NULL; +conn->acceptmbox=SYS_MBOX_NULL; +conn->sem=SYS_SEM_NULL; +conn->state=NETCONN_NONE; +returnconn; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_delete(structnetconn*conn) +{ +structapi_msg*msg; +void*mem; + +if(conn==NULL){ +returnERR_OK; +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +returnERR_MEM; +} + +msg->type=API_MSG_DELCONN; +msg->msg.conn=conn; +api_msg_post(msg); +sys_mbox_fetch(conn->mbox,NULL); +memp_freep(MEMP_API_MSG,msg); + +/*Draintherecvmbox.*/ +if(conn->recvmbox!=SYS_MBOX_NULL){ +while(sys_arch_mbox_fetch(conn->recvmbox,&mem,1)!=0){ +if(conn->type==NETCONN_TCP){ +pbuf_free((structpbuf*)mem); +}else{ +netbuf_delete((structnetbuf*)mem); +} +} +sys_mbox_free(conn->recvmbox); +conn->recvmbox=SYS_MBOX_NULL; +} + + +/*Draintheacceptmbox.*/ +if(conn->acceptmbox!=SYS_MBOX_NULL){ +while(sys_arch_mbox_fetch(conn->acceptmbox,&mem,1)!=0){ +netconn_delete((structnetconn*)mem); +} + +sys_mbox_free(conn->acceptmbox); +conn->acceptmbox=SYS_MBOX_NULL; +} + +sys_mbox_free(conn->mbox); +conn->mbox=SYS_MBOX_NULL; +if(conn->sem!=SYS_SEM_NULL){ +sys_sem_free(conn->sem); +} +/*conn->sem=SYS_SEM_NULL;*/ +memp_free(MEMP_NETCONN,conn); +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +enumnetconn_type +netconn_type(structnetconn*conn) +{ +returnconn->type; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_peer(structnetconn*conn,structip_addr**addr, +uInt16*port) +{ +switch(conn->type){ +caseNETCONN_UDPLITE: +caseNETCONN_UDPNOCHKSUM: +caseNETCONN_UDP: +*addr=&(conn->pcb.udp->remote_ip); +*port=conn->pcb.udp->remote_port; +break; +caseNETCONN_TCP: +*addr=&(conn->pcb.tcp->remote_ip); +*port=conn->pcb.tcp->remote_port; +break; +} +return(conn->err=ERR_OK); +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_addr(structnetconn*conn,structip_addr**addr, +uInt16*port) +{ +switch(conn->type){ +caseNETCONN_UDPLITE: +caseNETCONN_UDPNOCHKSUM: +caseNETCONN_UDP: +*addr=&(conn->pcb.udp->local_ip); +*port=conn->pcb.udp->local_port; +break; +caseNETCONN_TCP: +*addr=&(conn->pcb.tcp->local_ip); +*port=conn->pcb.tcp->local_port; +break; +} +return(conn->err=ERR_OK); +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_bind(structnetconn*conn,structip_addr*addr, +uInt16port) +{ +structapi_msg*msg; + +if(conn==NULL){ +returnERR_VAL; +} + +if(conn->type!=NETCONN_TCP&& +conn->recvmbox==SYS_MBOX_NULL){ +if((conn->recvmbox=sys_mbox_new())==SYS_MBOX_NULL){ +returnERR_MEM; +} +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +return(conn->err=ERR_MEM); +} +msg->type=API_MSG_BIND; +msg->msg.conn=conn; +msg->msg.msg.bc.ipaddr=addr; +msg->msg.msg.bc.port=port; +api_msg_post(msg); +sys_mbox_fetch(conn->mbox,NULL); +memp_freep(MEMP_API_MSG,msg); +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_connect(structnetconn*conn,structip_addr*addr, +uInt16port) +{ +structapi_msg*msg; + +if(conn==NULL){ +returnERR_VAL; +} + + +if(conn->recvmbox==SYS_MBOX_NULL){ +if((conn->recvmbox=sys_mbox_new())==SYS_MBOX_NULL){ +returnERR_MEM; +} +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +returnERR_MEM; +} +msg->type=API_MSG_CONNECT; +msg->msg.conn=conn; +msg->msg.msg.bc.ipaddr=addr; +msg->msg.msg.bc.port=port; +kprintf("1"); +api_msg_post(msg); +kprintf("2:[0x%X]",conn->mbox); +sys_mbox_fetch(conn->mbox,NULL); +kprintf("3"); +memp_freep(MEMP_API_MSG,msg); +kprintf("4"); +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_listen(structnetconn*conn) +{ +structapi_msg*msg; + +if(conn==NULL){ +returnERR_VAL; +} + +if(conn->acceptmbox==SYS_MBOX_NULL){ +conn->acceptmbox=sys_mbox_new(); +if(conn->acceptmbox==SYS_MBOX_NULL){ +returnERR_MEM; +} +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +return(conn->err=ERR_MEM); +} +msg->type=API_MSG_LISTEN; +msg->msg.conn=conn; +api_msg_post(msg); +sys_mbox_fetch(conn->mbox,NULL); +memp_freep(MEMP_API_MSG,msg); +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +structnetconn* +netconn_accept(structnetconn*conn) +{ +structnetconn*newconn; + +if(conn==NULL){ +returnNULL; +} + +sys_mbox_fetch(conn->acceptmbox,(void**)&newconn); + +returnnewconn; +} +/*-----------------------------------------------------------------------------------*/ +structnetbuf* +netconn_recv(structnetconn*conn) +{ +structapi_msg*msg; +structnetbuf*buf; +structpbuf*p; + +if(conn==NULL){ +returnNULL; +} + +if(conn->recvmbox==SYS_MBOX_NULL){ +conn->err=ERR_CONN; +returnNULL; +} + +if(conn->err!=ERR_OK){ +returnNULL; +} + +if(conn->type==NETCONN_TCP){ +if(conn->pcb.tcp->state==LISTEN){ +conn->err=ERR_CONN; +returnNULL; +} + + +buf=memp_mallocp(MEMP_NETBUF); + +if(buf==NULL){ +conn->err=ERR_MEM; +returnNULL; +} + +sys_mbox_fetch(conn->recvmbox,(void**)&p); + +/*Ifweareclosed,weindicatethatwenolongerwishtorecieve +databysettingconn->recvmboxtoSYS_MBOX_NULL.*/ +if(p==NULL){ +memp_freep(MEMP_NETBUF,buf); +sys_mbox_free(conn->recvmbox); +conn->recvmbox=SYS_MBOX_NULL; +returnNULL; +} + +buf->p=p; +buf->ptr=p; +buf->fromport=0; +buf->fromaddr=NULL; + +/*Letthestackknowthatwehavetakenthedata.*/ +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +conn->err=ERR_MEM; +returnbuf; +} +msg->type=API_MSG_RECV; +msg->msg.conn=conn; +if(buf!=NULL){ +msg->msg.msg.len=buf->p->tot_len; +}else{ +msg->msg.msg.len=1; +} +api_msg_post(msg); + +sys_mbox_fetch(conn->mbox,NULL); +memp_freep(MEMP_API_MSG,msg); +}else{ +sys_mbox_fetch(conn->recvmbox,(void**)&buf); +} + + + + +DEBUGF(API_LIB_DEBUG,("netconn_recv:received%p(err%d)\n",buf,conn->err)); + + +returnbuf; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_send(structnetconn*conn,structnetbuf*buf) +{ +structapi_msg*msg; + +if(conn==NULL){ +returnERR_VAL; +} + +if(conn->err!=ERR_OK){ +returnconn->err; +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +return(conn->err=ERR_MEM); +} + +DEBUGF(API_LIB_DEBUG,("netconn_send:sending%dbytes\n",buf->p->tot_len)); +msg->type=API_MSG_SEND; +msg->msg.conn=conn; +msg->msg.msg.p=buf->p; +api_msg_post(msg); + +sys_mbox_fetch(conn->mbox,NULL); +memp_freep(MEMP_API_MSG,msg); +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_write(structnetconn*conn,void*dataptr,uInt16size,uInt8copy) +{ +structapi_msg*msg; +uInt16len; + +if(conn==NULL){ +returnERR_VAL; +} + +if(conn->err!=ERR_OK){ +returnconn->err; +} + +if(conn->sem==SYS_SEM_NULL){ +conn->sem=sys_sem_new(0); +if(conn->sem==SYS_SEM_NULL){ +returnERR_MEM; +} +} + +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +return(conn->err=ERR_MEM); +} +msg->type=API_MSG_WRITE; +msg->msg.conn=conn; + + +conn->state=NETCONN_WRITE; +while(conn->err==ERR_OK&&size>0){ +msg->msg.msg.w.dataptr=dataptr; +msg->msg.msg.w.copy=copy; + +if(conn->type==NETCONN_TCP){ +if(tcp_sndbuf(conn->pcb.tcp)==0){ +sys_sem_wait(conn->sem); +if(conn->err!=ERR_OK){ +gotoret; +} +} +if(size>tcp_sndbuf(conn->pcb.tcp)){ +/*Wecannotsendmorethanonesendbuffer'sworthofdataata +time.*/ +len=tcp_sndbuf(conn->pcb.tcp); +}else{ +len=size; +} +}else{ +len=size; +} + +DEBUGF(API_LIB_DEBUG,("netconn_write:writing%dbytes(%d)\n",len,copy)); +msg->msg.msg.w.len=len; +api_msg_post(msg); +sys_mbox_fetch(conn->mbox,NULL); +if(conn->err==ERR_OK){ +dataptr=(void*)((char*)dataptr+len); +size-=len; +}elseif(conn->err==ERR_MEM){ +conn->err=ERR_OK; +sys_sem_wait(conn->sem); +}else{ +gotoret; +} +} +ret: +memp_freep(MEMP_API_MSG,msg); +conn->state=NETCONN_NONE; +if(conn->sem!=SYS_SEM_NULL){ +sys_sem_free(conn->sem); +conn->sem=SYS_SEM_NULL; +} +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_close(structnetconn*conn) +{ +structapi_msg*msg; + +if(conn==NULL){ +returnERR_VAL; +} +if((msg=memp_mallocp(MEMP_API_MSG))==NULL){ +return(conn->err=ERR_MEM); +} + +conn->state=NETCONN_CLOSE; +again: +msg->type=API_MSG_CLOSE; +msg->msg.conn=conn; +api_msg_post(msg); +sys_mbox_fetch(conn->mbox,NULL); +if(conn->err==ERR_MEM&& +conn->sem!=SYS_SEM_NULL){ +sys_sem_wait(conn->sem); +gotoagain; +} +conn->state=NETCONN_NONE; +memp_freep(MEMP_API_MSG,msg); +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ +err_t +netconn_err(structnetconn*conn) +{ +returnconn->err; +} +/*-----------------------------------------------------------------------------------*/ + + + + + + + + diff --git a/doc/xml/api__msg_8c.xml b/doc/xml/api__msg_8c.xml new file mode 100644 index 0000000..6324f37 --- /dev/null +++ b/doc/xml/api__msg_8c.xml @@ -0,0 +1,1538 @@ + + + + api_msg.c + ubixos/types.h + net/debug.h + net/arch.h + net/api_msg.h + net/memp.h + net/sys.h + net/tcpip.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void(*) + typedef void(* ) api_msg_decode(struct api_msg_msg *msg) + (struct api_msg_msg *msg) + api_msg_decode + + + + + + + + + + + + err_t + static err_t accept_function + (void *arg, struct tcp_pcb *newpcb, err_t err) + accept_function + + void * + arg + + + struct tcp_pcb * + newpcb + + + err_t + err + + + + + + + + + netconn::acceptmbox + netconn::err + ERR_MEM + ERR_OK + netconn::mbox + mbox + memp_free + memp_mallocp + MEMP_NETCONN + NETCONN_TCP + NULL + netconn::pcb + netconn::recvmbox + netconn::sem + setup_tcp + tcp_pcb::state + sys_mbox_free + sys_mbox_new + SYS_MBOX_NULL + sys_mbox_post + sys_sem_new + SYS_SEM_NULL + netconn::tcp + netconn::type + do_listen + + + void + void api_msg_input + (struct api_msg *msg) + api_msg_input + + struct api_msg * + msg + + + + + + + + + decode + api_msg_msg::msg + tcpip_thread + + + void + void api_msg_post + (struct api_msg *msg) + api_msg_post + + struct api_msg * + msg + + + + + + + + + api_msg_msg::msg + tcpip_apimsg + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + + + void + static void do_accept + (struct api_msg_msg *msg) + do_accept + + struct api_msg_msg * + msg + + + + + + + + + API_MSG_DEBUG + api_msg_msg::conn + DEBUGF + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + netconn::tcp + netconn::type + + + void + static void do_bind + (struct api_msg_msg *msg) + do_bind + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::bc + api_msg_msg::conn + netconn::err + netconn::mbox + api_msg_msg::msg + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + recv_udp + setup_tcp + sys_mbox_post + netconn::tcp + tcp_bind + tcp_new + netconn::type + netconn::udp + udp_bind + UDP_FLAGS_NOCHKSUM + UDP_FLAGS_UDPLITE + udp_new + udp_recv + udp_setflags + + + void + static void do_close + (struct api_msg_msg *msg) + do_close + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::conn + netconn::err + LISTEN + netconn::mbox + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + tcp_pcb::state + sys_mbox_post + netconn::tcp + tcp_close + netconn::type + + + void + static void do_connect + (struct api_msg_msg *msg) + do_connect + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::bc + api_msg_msg::conn + do_connected + netconn::err + ERR_MEM + netconn::mbox + api_msg_msg::msg + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + recv_udp + setup_tcp + sys_mbox_post + netconn::tcp + tcp_connect + tcp_new + netconn::type + netconn::udp + udp_connect + UDP_FLAGS_NOCHKSUM + UDP_FLAGS_UDPLITE + udp_new + udp_recv + udp_setflags + + + err_t + static err_t do_connected + (void *arg, struct tcp_pcb *pcb, err_t err) + do_connected + + void * + arg + + + struct tcp_pcb * + pcb + + + err_t + err + + + + + + + + + netconn::err + ERR_OK + ERR_VAL + netconn::mbox + NETCONN_TCP + NULL + setup_tcp + sys_mbox_post + netconn::type + do_connect + + + void + static void do_delconn + (struct api_msg_msg *msg) + do_delconn + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::conn + ERR_OK + LISTEN + netconn::mbox + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + udp_pcb::recv_arg + tcp_pcb::state + SYS_MBOX_NULL + sys_mbox_post + netconn::tcp + tcp_abort + tcp_accept + tcp_arg + tcp_close + tcp_err + tcp_poll + tcp_recv + tcp_sent + netconn::type + netconn::udp + udp_remove + + + void + static void do_listen + (struct api_msg_msg *msg) + do_listen + + struct api_msg_msg * + msg + + + + + + + + + accept_function + netconn::acceptmbox + API_MSG_DEBUG + api_msg_msg::conn + DEBUGF + netconn::err + ERR_MEM + netconn::mbox + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + sys_mbox_new + SYS_MBOX_NULL + sys_mbox_post + netconn::tcp + tcp_accept + tcp_arg + tcp_listen + netconn::type + + + void + static void do_newconn + (struct api_msg_msg *msg) + do_newconn + + struct api_msg_msg * + msg + + + + + + + + + + + void + static void do_recv + (struct api_msg_msg *msg) + do_recv + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::conn + api_msg_msg::len + netconn::mbox + api_msg_msg::msg + NETCONN_TCP + NULL + netconn::pcb + sys_mbox_post + netconn::tcp + tcp_recved + netconn::type + + + void + static void do_send + (struct api_msg_msg *msg) + do_send + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::conn + netconn::mbox + api_msg_msg::msg + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + api_msg_msg::p + netconn::pcb + sys_mbox_post + netconn::tcp + netconn::type + netconn::udp + udp_send + + + void + static void do_write + (struct api_msg_msg *msg) + do_write + + struct api_msg_msg * + msg + + + + + + + + + api_msg_msg::conn + netconn::err + ERR_OK + ERR_VAL + netconn::mbox + api_msg_msg::msg + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + NULL + netconn::pcb + sys_mbox_post + netconn::tcp + tcp_output + tcp_write + netconn::type + tcp_pcb::unacked + api_msg_msg::w + + + void + static void err_tcp + (void *arg, err_t err) + err_tcp + + void * + arg + + + err_t + err + + + + + + + + + netconn::acceptmbox + netconn::err + netconn::mbox + NULL + netconn::pcb + netconn::recvmbox + netconn::sem + SYS_MBOX_NULL + sys_mbox_post + SYS_SEM_NULL + sys_sem_signal + netconn::tcp + setup_tcp + + + err_t + static err_t poll_tcp + (void *arg, struct tcp_pcb *pcb) + poll_tcp + + void * + arg + + + struct tcp_pcb * + pcb + + + + + + + + + ERR_OK + NETCONN_CLOSE + NETCONN_WRITE + NULL + netconn::sem + netconn::state + SYS_SEM_NULL + sys_sem_signal + setup_tcp + + + err_t + static err_t recv_tcp + (void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) + recv_tcp + + void * + arg + + + struct tcp_pcb * + pcb + + + struct pbuf * + p + + + err_t + err + + + + + + + + + netconn::err + ERR_OK + ERR_VAL + NULL + pbuf_free + netconn::recvmbox + SYS_MBOX_NULL + sys_mbox_post + setup_tcp + + + void + static void recv_udp + (void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, uInt16 port) + recv_udp + + void * + arg + + + struct udp_pcb * + pcb + + + struct pbuf * + p + + + struct ip_addr * + addr + + + uInt16 + port + + + + + + + + + netbuf::fromaddr + netbuf::fromport + memp_mallocp + MEMP_NETBUF + NULL + netbuf::p + pbuf_free + netbuf::ptr + netconn::recvmbox + SYS_MBOX_NULL + sys_mbox_post + do_bind + do_connect + + + err_t + static err_t sent_tcp + (void *arg, struct tcp_pcb *pcb, uInt16 len) + sent_tcp + + void * + arg + + + struct tcp_pcb * + pcb + + + uInt16 + len + + + + + + + + + ERR_OK + NULL + netconn::sem + SYS_SEM_NULL + sys_sem_signal + setup_tcp + + + void + static void setup_tcp + (struct netconn *conn) + setup_tcp + + struct netconn * + conn + + + + + + + + + err_tcp + netconn::pcb + poll_tcp + recv_tcp + sent_tcp + netconn::tcp + tcp_arg + tcp_err + tcp_poll + tcp_recv + tcp_sent + accept_function + do_bind + do_connect + do_connected + + + + + api_msg_decode + api_msg_decode decode[API_MSG_MAX] + [API_MSG_MAX] + decode + { + do_newconn, + do_delconn, + do_bind, + do_connect, + do_listen, + do_accept, + do_send, + do_recv, + do_write, + do_close + } + + + + + + + + api_msg_input + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<ubixos/types.h> + +#include"net/debug.h" +#include"net/arch.h" +#include"net/api_msg.h" +#include"net/memp.h" +#include"net/sys.h" +#include"net/tcpip.h" + +/*-----------------------------------------------------------------------------------*/ +staticerr_t +recv_tcp(void*arg,structtcp_pcb*pcb,structpbuf*p,err_terr) +{ +structnetconn*conn; + +conn=arg; + +if(conn==NULL){ +pbuf_free(p); +returnERR_VAL; +} + +if(conn->recvmbox!=SYS_MBOX_NULL){ +conn->err=err; +sys_mbox_post(conn->recvmbox,p); +} +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +recv_udp(void*arg,structudp_pcb*pcb,structpbuf*p, +structip_addr*addr,uInt16port) +{ +structnetbuf*buf; +structnetconn*conn; + +conn=arg; + +if(conn==NULL){ +pbuf_free(p); +return; +} + +if(conn->recvmbox!=SYS_MBOX_NULL){ +buf=memp_mallocp(MEMP_NETBUF); +if(buf==NULL){ +pbuf_free(p); +return; +}else{ +buf->p=p; +buf->ptr=p; +buf->fromaddr=addr; +buf->fromport=port; +} + +sys_mbox_post(conn->recvmbox,buf); +} +} +/*-----------------------------------------------------------------------------------*/ +staticerr_t +poll_tcp(void*arg,structtcp_pcb*pcb) +{ +structnetconn*conn; + +conn=arg; +if(conn!=NULL&& +(conn->state==NETCONN_WRITE||conn->state==NETCONN_CLOSE)&& +conn->sem!=SYS_SEM_NULL){ +sys_sem_signal(conn->sem); +} +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +staticerr_t +sent_tcp(void*arg,structtcp_pcb*pcb,uInt16len) +{ +structnetconn*conn; + +conn=arg; +if(conn!=NULL&&conn->sem!=SYS_SEM_NULL){ +sys_sem_signal(conn->sem); +} +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +err_tcp(void*arg,err_terr) +{ +structnetconn*conn; + +conn=arg; + +conn->pcb.tcp=NULL; + + +conn->err=err; +if(conn->recvmbox!=SYS_MBOX_NULL){ +sys_mbox_post(conn->recvmbox,NULL); +} +if(conn->mbox!=SYS_MBOX_NULL){ +sys_mbox_post(conn->mbox,NULL); +} +if(conn->acceptmbox!=SYS_MBOX_NULL){ +sys_mbox_post(conn->acceptmbox,NULL); +} +if(conn->sem!=SYS_SEM_NULL){ +sys_sem_signal(conn->sem); +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +setup_tcp(structnetconn*conn) +{ +structtcp_pcb*pcb; + +pcb=conn->pcb.tcp; +tcp_arg(pcb,conn); +tcp_recv(pcb,recv_tcp); +tcp_sent(pcb,sent_tcp); +tcp_poll(pcb,poll_tcp,4); +tcp_err(pcb,err_tcp); +} +/*-----------------------------------------------------------------------------------*/ +staticerr_t +accept_function(void*arg,structtcp_pcb*newpcb,err_terr) +{ +sys_mbox_t*mbox; +structnetconn*newconn; + +#ifAPI_MSG_DEBUG +#ifTCP_DEBUG +tcp_debug_print_state(newpcb->state); +#endif/*TCP_DEBUG*/ +#endif/*API_MSG_DEBUG*/ +mbox=(sys_mbox_t*)arg; +newconn=memp_mallocp(MEMP_NETCONN); +if(newconn==NULL){ +returnERR_MEM; +} +newconn->type=NETCONN_TCP; +newconn->pcb.tcp=newpcb; +setup_tcp(newconn); +newconn->recvmbox=sys_mbox_new(); +if(newconn->recvmbox==SYS_MBOX_NULL){ +memp_free(MEMP_NETCONN,newconn); +returnERR_MEM; +} +newconn->mbox=sys_mbox_new(); +if(newconn->mbox==SYS_MBOX_NULL){ +sys_mbox_free(newconn->recvmbox); +memp_free(MEMP_NETCONN,newconn); +returnERR_MEM; +} +newconn->sem=sys_sem_new(0); +if(newconn->sem==SYS_SEM_NULL){ +sys_mbox_free(newconn->recvmbox); +sys_mbox_free(newconn->mbox); +memp_free(MEMP_NETCONN,newconn); +returnERR_MEM; +} +newconn->acceptmbox=SYS_MBOX_NULL; +newconn->err=err; +sys_mbox_post(*mbox,newconn); +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_newconn(structapi_msg_msg*msg) +{ +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_delconn(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +msg->conn->pcb.udp->recv_arg=NULL; +udp_remove(msg->conn->pcb.udp); +break; +caseNETCONN_TCP: +tcp_arg(msg->conn->pcb.tcp,NULL); +tcp_sent(msg->conn->pcb.tcp,NULL); +tcp_recv(msg->conn->pcb.tcp,NULL); +tcp_accept(msg->conn->pcb.tcp,NULL); +tcp_poll(msg->conn->pcb.tcp,NULL,0); +tcp_err(msg->conn->pcb.tcp,NULL); +if(msg->conn->pcb.tcp->state==LISTEN){ +tcp_close(msg->conn->pcb.tcp); +}else{ +if(tcp_close(msg->conn->pcb.tcp)!=ERR_OK){ +tcp_abort(msg->conn->pcb.tcp); +} +} +break; +} +} +if(msg->conn->mbox!=SYS_MBOX_NULL){ +sys_mbox_post(msg->conn->mbox,NULL); +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_bind(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp==NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +msg->conn->pcb.udp=udp_new(); +udp_setflags(msg->conn->pcb.udp,UDP_FLAGS_UDPLITE); +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_UDPNOCHKSUM: +msg->conn->pcb.udp=udp_new(); +udp_setflags(msg->conn->pcb.udp,UDP_FLAGS_NOCHKSUM); +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_UDP: +msg->conn->pcb.udp=udp_new(); +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_TCP: +msg->conn->pcb.tcp=tcp_new(); +setup_tcp(msg->conn); +break; +} +} +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +udp_bind(msg->conn->pcb.udp,msg->msg.bc.ipaddr,msg->msg.bc.port); +break; +caseNETCONN_TCP: +msg->conn->err=tcp_bind(msg->conn->pcb.tcp, +msg->msg.bc.ipaddr,msg->msg.bc.port); +break; +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +staticerr_t +do_connected(void*arg,structtcp_pcb*pcb,err_terr) +{ +structnetconn*conn; + +conn=arg; + +if(conn==NULL){ +returnERR_VAL; +} + +conn->err=err; + +if(conn->type==NETCONN_TCP&&err==ERR_OK){ +setup_tcp(conn); +} + +sys_mbox_post(conn->mbox,NULL); +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_connect(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp==NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +msg->conn->pcb.udp=udp_new(); +if(msg->conn->pcb.udp==NULL){ +msg->conn->err=ERR_MEM; +sys_mbox_post(msg->conn->mbox,NULL); +return; +} +udp_setflags(msg->conn->pcb.udp,UDP_FLAGS_UDPLITE); +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_UDPNOCHKSUM: +msg->conn->pcb.udp=udp_new(); +if(msg->conn->pcb.udp==NULL){ +msg->conn->err=ERR_MEM; +sys_mbox_post(msg->conn->mbox,NULL); +return; +} +udp_setflags(msg->conn->pcb.udp,UDP_FLAGS_NOCHKSUM); +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_UDP: +msg->conn->pcb.udp=udp_new(); +if(msg->conn->pcb.udp==NULL){ +msg->conn->err=ERR_MEM; +sys_mbox_post(msg->conn->mbox,NULL); +return; +} +udp_recv(msg->conn->pcb.udp,recv_udp,msg->conn); +break; +caseNETCONN_TCP: +msg->conn->pcb.tcp=tcp_new(); +if(msg->conn->pcb.tcp==NULL){ +msg->conn->err=ERR_MEM; +sys_mbox_post(msg->conn->mbox,NULL); +return; +} +break; +} +} +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +udp_connect(msg->conn->pcb.udp,msg->msg.bc.ipaddr,msg->msg.bc.port); +sys_mbox_post(msg->conn->mbox,NULL); +break; +caseNETCONN_TCP: +/*tcp_arg(msg->conn->pcb.tcp,msg->conn);*/ +setup_tcp(msg->conn); +tcp_connect(msg->conn->pcb.tcp,msg->msg.bc.ipaddr,msg->msg.bc.port, +do_connected); +/*tcp_output(msg->conn->pcb.tcp);*/ +break; +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_listen(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +DEBUGF(API_MSG_DEBUG,("api_msg:listenUDP:cannotlistenforUDP.\n")); +break; +caseNETCONN_TCP: +msg->conn->pcb.tcp=tcp_listen(msg->conn->pcb.tcp); +if(msg->conn->pcb.tcp==NULL){ +msg->conn->err=ERR_MEM; +}else{ +if(msg->conn->acceptmbox==SYS_MBOX_NULL){ +msg->conn->acceptmbox=sys_mbox_new(); +if(msg->conn->acceptmbox==SYS_MBOX_NULL){ +msg->conn->err=ERR_MEM; +break; +} +} +tcp_arg(msg->conn->pcb.tcp,(void*)&(msg->conn->acceptmbox)); +tcp_accept(msg->conn->pcb.tcp,accept_function); +} +break; +} +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_accept(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +DEBUGF(API_MSG_DEBUG,("api_msg:acceptUDP:cannotacceptforUDP.\n")); +break; +caseNETCONN_TCP: +break; +} +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_send(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +udp_send(msg->conn->pcb.udp,msg->msg.p); +break; +caseNETCONN_TCP: +break; +} +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_recv(structapi_msg_msg*msg) +{ +if(msg->conn->pcb.tcp!=NULL){ +if(msg->conn->type==NETCONN_TCP){ +tcp_recved(msg->conn->pcb.tcp,msg->msg.len); +} +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_write(structapi_msg_msg*msg) +{ +err_terr; +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +msg->conn->err=ERR_VAL; +break; +caseNETCONN_TCP: +err=tcp_write(msg->conn->pcb.tcp,msg->msg.w.dataptr, +msg->msg.w.len,msg->msg.w.copy); +/*ThisistheNaglealgorithm:inhibitthesendingofnewTCP +segmentswhennewoutgoingdataarrivesfromtheuserifany +previouslytransmitteddataontheconnectionremains +unacknowledged.*/ +if(err==ERR_OK&&msg->conn->pcb.tcp->unacked==NULL){ +tcp_output(msg->conn->pcb.tcp); +} +msg->conn->err=err; +break; +} +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +do_close(structapi_msg_msg*msg) +{ +err_terr; +if(msg->conn->pcb.tcp!=NULL){ +switch(msg->conn->type){ +caseNETCONN_UDPLITE: +/*FALLTHROUGH*/ +caseNETCONN_UDPNOCHKSUM: +/*FALLTHROUGH*/ +caseNETCONN_UDP: +break; +caseNETCONN_TCP: +if(msg->conn->pcb.tcp->state==LISTEN){ +err=tcp_close(msg->conn->pcb.tcp); +}else{ +err=tcp_close(msg->conn->pcb.tcp); +} +msg->conn->err=err; +break; +} +} +sys_mbox_post(msg->conn->mbox,NULL); +} +/*-----------------------------------------------------------------------------------*/ +typedefvoid(*api_msg_decode)(structapi_msg_msg*msg); +staticapi_msg_decodedecode[API_MSG_MAX]={ +do_newconn, +do_delconn, +do_bind, +do_connect, +do_listen, +do_accept, +do_send, +do_recv, +do_write, +do_close +}; +void +api_msg_input(structapi_msg*msg) +{ +decode[msg->type](&(msg->msg)); +} +/*-----------------------------------------------------------------------------------*/ +void +api_msg_post(structapi_msg*msg) +{ +tcpip_apimsg(msg); +} +/*-----------------------------------------------------------------------------------*/ + + + + + + diff --git a/doc/xml/api__msg_8h.xml b/doc/xml/api__msg_8h.xml new file mode 100644 index 0000000..e3a2074 --- /dev/null +++ b/doc/xml/api__msg_8h.xml @@ -0,0 +1,519 @@ + + + + api_msg.h + net/opt.h + net/pbuf.h + net/sys.h + net/ipv4/ip.h + net/udp.h + net/tcp.h + net/api.h + src/sys/include/net/tcpip.h + src/sys/net/api/api_lib.c + src/sys/net/api/api_msg.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + api_msg + api_msg_msg + + + api_msg_type + + API_MSG_NEWCONN + + + + + + + API_MSG_DELCONN + + + + + + + API_MSG_BIND + + + + + + + API_MSG_CONNECT + + + + + + + API_MSG_LISTEN + + + + + + + API_MSG_ACCEPT + + + + + + + API_MSG_SEND + + + + + + + API_MSG_RECV + + + + + + + API_MSG_WRITE + + + + + + + API_MSG_CLOSE + + + + + + + API_MSG_MAX + + + + + + + + + + + + + + + + + void + void api_msg_input + (struct api_msg *msg) + api_msg_input + + struct api_msg * + msg + + + + + + + + + decode + api_msg_msg::msg + tcpip_thread + + + void + void api_msg_post + (struct api_msg *msg) + api_msg_post + + struct api_msg * + msg + + + + + + + + + api_msg_msg::msg + tcpip_apimsg + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_API_MSG_H__ +#define__LWIP_API_MSG_H__ + +#include"net/opt.h" +#include"net/pbuf.h" +#include"net/sys.h" + +#include"net/ipv4/ip.h" + +#include"net/udp.h" +#include"net/tcp.h" + +#include"net/api.h" + +enumapi_msg_type{ +API_MSG_NEWCONN, +API_MSG_DELCONN, + +API_MSG_BIND, +API_MSG_CONNECT, + +API_MSG_LISTEN, +API_MSG_ACCEPT, + +API_MSG_SEND, +API_MSG_RECV, +API_MSG_WRITE, + +API_MSG_CLOSE, + +API_MSG_MAX +}; + +structapi_msg_msg{ +structnetconn*conn; +enumnetconn_typeconntype; +union{ +structpbuf*p; +struct{ +structip_addr*ipaddr; +uInt16port; +}bc; +struct{ +void*dataptr; +uInt16len; +unsignedcharcopy; +}w; +sys_mbox_tmbox; +uInt16len; +}msg; +}; + +structapi_msg{ +enumapi_msg_typetype; +structapi_msg_msgmsg; +}; + +voidapi_msg_input(structapi_msg*msg); +voidapi_msg_post(structapi_msg*msg); + +#endif/*__LWIP_API_MSG_H__*/ + + + + + diff --git a/doc/xml/arch_8h.xml b/doc/xml/arch_8h.xml new file mode 100644 index 0000000..f59905b --- /dev/null +++ b/doc/xml/arch_8h.xml @@ -0,0 +1,418 @@ + + + + arch.h + arch/cpu.h + arch/cc.h + src/sys/include/net/ipv4/icmp.h + src/sys/include/net/ipv4/inet.h + src/sys/include/net/ipv4/ip.h + src/sys/include/net/ipv4/ip_addr.h + src/sys/include/net/ipv6/inet.h + src/sys/include/net/ipv6/ip_addr.h + src/sys/include/net/mem.h + src/sys/include/net/pbuf.h + src/sys/include/net/udp.h + src/sys/net/api/api_msg.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BIG_ENDIAN + 4321 + + + + + + + + + + LITTLE_ENDIAN + 1234 + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_ARCH_H__ +#define__LWIP_ARCH_H__ + +#ifndefLITTLE_ENDIAN +#defineLITTLE_ENDIAN1234 +#endif + +#ifndefBIG_ENDIAN +#defineBIG_ENDIAN4321 +#endif + +#include"arch/cpu.h" +#include"arch/cc.h" + +#ifndefPACK_STRUCT_BEGIN +#definePACK_STRUCT_BEGIN +#endif/*PACK_STRUCT_BEGIN*/ + +#ifndefPACK_STRUCT_END +#definePACK_STRUCT_END +#endif/*PACK_STRUCT_END*/ + +#ifndefPACK_STRUCT_FIELD +#definePACK_STRUCT_FIELD(x)x +#endif/*PACK_STRUCT_FIELD*/ + +#endif/*__LWIP_ARCH_H__*/ + + + + diff --git a/doc/xml/arp_8c.xml b/doc/xml/arp_8c.xml new file mode 100644 index 0000000..531536e --- /dev/null +++ b/doc/xml/arp_8c.xml @@ -0,0 +1,849 @@ + + + + arp.c + ubixos/types.h + lib/kprintf.h + net/debug.h + net/ipv4/inet.h + netif/arp.h + net/ipv4/ip.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + arp_entry + arp_hdr + ethip_hdr + + + ARP_MAXAGE + 2 + + + + + + + + arp_tmr + + + ARP_REPLY + 2 + + + + + + + + arp_arp_input + + + ARP_REQUEST + 1 + + + + + + + + arp_arp_input + arp_query + + + ARPH_HWLEN + hdr + (NTOHS((hdr)->_hwlen_protolen) >> 8) + + + + + + + + + + ARPH_HWLEN_SET + hdr + len + (hdr)->_hwlen_protolen = HTONS(ARPH_PROTOLEN(hdr) | ((len) << 8)) + + + + + + + + arp_arp_input + arp_query + + + ARPH_PROTOLEN + hdr + (NTOHS((hdr)->_hwlen_protolen) & 0xff) + + + + + + + + + + ARPH_PROTOLEN_SET + hdr + len + (hdr)->_hwlen_protolen = HTONS((len) | (ARPH_HWLEN(hdr) << 8)) + + + + + + + + arp_arp_input + arp_query + + + HWTYPE_ETHERNET + 1 + + + + + + + + arp_arp_input + arp_query + + + + + void + static void add_arp_entry + (struct ip_addr *ipaddr, struct eth_addr *ethaddr) + add_arp_entry + + struct ip_addr * + ipaddr + + + struct eth_addr * + ethaddr + + + + + + + + + arp_table + ARP_TABLE_SIZE + ctime + arp_entry::ctime + arp_entry::ethaddr + ip_addr_cmp + ip_addr_isany + ip_addr_set + arp_entry::ipaddr + arp_arp_input + arp_ip_input + + + pbuf * + struct pbuf* arp_arp_input + (struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p) + arp_arp_input + + struct netif * + netif + + + struct eth_addr * + ethaddr + + + struct pbuf * + p + + + + + + + + + add_arp_entry + ARP_REPLY + ARP_REQUEST + ARPH_HWLEN_SET + ARPH_PROTOLEN_SET + ETHTYPE_ARP + ETHTYPE_IP + htons + HWTYPE_ETHERNET + netif::ip_addr + ip_addr_cmp + ip_addr_set + kprintf + NULL + pbuf::payload + pbuf_free + pbuf::tot_len + ethernetif_input + + + void + void arp_init + (void) + arp_init + + void + + + + + + + + + arp_table + ARP_TABLE_SIZE + IP_ADDR_ANY + ip_addr_set + arp_entry::ipaddr + ethernetif_init + + + void + void arp_ip_input + (struct netif *netif, struct pbuf *p) + arp_ip_input + + struct netif * + netif + + + struct pbuf * + p + + + + + + + + + add_arp_entry + ARP_DEBUG + DEBUGF + netif::ip_addr + ip_addr_maskcmp + netif::netmask + pbuf::payload + ethernetif_input + + + eth_addr * + struct eth_addr* arp_lookup + (struct ip_addr *ipaddr) + arp_lookup + + struct ip_addr * + ipaddr + + + + + + + + + arp_table + ARP_TABLE_SIZE + ip_addr_cmp + NULL + ethernetif_output + + + pbuf * + struct pbuf* arp_query + (struct netif *netif, struct eth_addr *ethaddr, struct ip_addr *ipaddr) + arp_query + + struct netif * + netif + + + struct eth_addr * + ethaddr + + + struct ip_addr * + ipaddr + + + + + + + + + ARP_REQUEST + ARPH_HWLEN_SET + ARPH_PROTOLEN_SET + ETHTYPE_ARP + ETHTYPE_IP + htons + HWTYPE_ETHERNET + netif::ip_addr + ip_addr_set + NULL + pbuf::payload + pbuf_alloc + PBUF_LINK + PBUF_RAM + ethernetif_output + + + void + void arp_tmr + (void) + arp_tmr + + void + + + + + + + + + ARP_DEBUG + ARP_MAXAGE + arp_table + ARP_TABLE_SIZE + ctime + DEBUGF + IP_ADDR_ANY + ip_addr_isany + ip_addr_set + arp_entry::ipaddr + arp_timer + + + + + struct arp_entry + struct arp_entry arp_table[ARP_TABLE_SIZE] + [ARP_TABLE_SIZE] + arp_table + + + + + + + + add_arp_entry + arp_init + arp_lookup + arp_tmr + + + uInt8 + uInt8 ctime + + ctime + + + + + + + + add_arp_entry + arp_tmr + + + PACK_STRUCT_BEGIN struct arp_hdr + PACK_STRUCT_BEGIN struct arp_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +* +*/ + +#include<ubixos/types.h> +#include<lib/kprintf.h> + +#include"net/debug.h" +#include"net/ipv4/inet.h" +#include"netif/arp.h" +#include"net/ipv4/ip.h" + + +#defineARP_MAXAGE2/*120*10seconds=20minutes.*/ + +#defineHWTYPE_ETHERNET1 + +#defineARP_REQUEST1 +#defineARP_REPLY2 + +/*MUSTbecompiledwith"packstructs"orequivalent!*/ +PACK_STRUCT_BEGIN +structarp_hdr{ +PACK_STRUCT_FIELD(structeth_hdrethhdr); +PACK_STRUCT_FIELD(uInt16hwtype); +PACK_STRUCT_FIELD(uInt16proto); +PACK_STRUCT_FIELD(uInt16_hwlen_protolen); +PACK_STRUCT_FIELD(uInt16opcode); +PACK_STRUCT_FIELD(structeth_addrshwaddr); +PACK_STRUCT_FIELD(structip_addrsipaddr); +PACK_STRUCT_FIELD(structeth_addrdhwaddr); +PACK_STRUCT_FIELD(structip_addrdipaddr); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +#defineARPH_HWLEN(hdr)(NTOHS((hdr)->_hwlen_protolen)>>8) +#defineARPH_PROTOLEN(hdr)(NTOHS((hdr)->_hwlen_protolen)&0xff) + + +#defineARPH_HWLEN_SET(hdr,len)(hdr)->_hwlen_protolen=HTONS(ARPH_PROTOLEN(hdr)|((len)<<8)) +#defineARPH_PROTOLEN_SET(hdr,len)(hdr)->_hwlen_protolen=HTONS((len)|(ARPH_HWLEN(hdr)<<8)) + +PACK_STRUCT_BEGIN +structethip_hdr{ +PACK_STRUCT_FIELD(structeth_hdreth); +PACK_STRUCT_FIELD(structip_hdrip); +}; +PACK_STRUCT_END + +structarp_entry{ +structip_addripaddr; +structeth_addrethaddr; +uInt8ctime; +}; + +staticstructarp_entryarp_table[ARP_TABLE_SIZE]; +staticuInt8ctime; + +/*-----------------------------------------------------------------------------------*/ +void +arp_init(void) +{ +uInt8i; + +for(i=0;i<ARP_TABLE_SIZE;++i){ +ip_addr_set(&(arp_table[i].ipaddr), +IP_ADDR_ANY); +} +} +/*-----------------------------------------------------------------------------------*/ +void +arp_tmr(void) +{ +uInt8i; + +++ctime; +for(i=0;i<ARP_TABLE_SIZE;++i){ +if(!ip_addr_isany(&arp_table[i].ipaddr)&& +ctime-arp_table[i].ctime>=ARP_MAXAGE){ +DEBUGF(ARP_DEBUG,("arp_timer:expiredentry%d.\n",i)); +ip_addr_set(&(arp_table[i].ipaddr), +IP_ADDR_ANY); +} +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +add_arp_entry(structip_addr*ipaddr,structeth_addr*ethaddr) +{ +uInt8i,j,k; +uInt8maxtime; + +/*WalkthroughtheARPmappingtableandtrytofindanentryto +update.Ifnoneisfound,theIP->MACaddressmappingis +insertedintheARPtable.*/ +for(i=0;i<ARP_TABLE_SIZE;++i){ + +/*Onlycheckthoseentriesthatareactuallyinuse.*/ +if(!ip_addr_isany(&arp_table[i].ipaddr)){ +/*CheckifthesourceIPaddressoftheincomingpacketmatches +theIPaddressinthisARPtableentry.*/ +if(ip_addr_cmp(ipaddr,&arp_table[i].ipaddr)){ +/*Anoldentryfound,updatethisandreturn.*/ +for(k=0;k<6;++k){ +arp_table[i].ethaddr.addr[k]=ethaddr->addr[k]; +} +arp_table[i].ctime=ctime; +return; +} +} +} + +/*Ifwegethere,noexistingARPtableentrywasfound,sowe +createone.*/ + +/*First,wetrytofindanunusedentryintheARPtable.*/ +for(i=0;i<ARP_TABLE_SIZE;++i){ +if(ip_addr_isany(&arp_table[i].ipaddr)){ +break; +} +} + +/*Ifnounusedentryisfound,wetrytofindtheoldestentryand +throwitaway.*/ +if(i==ARP_TABLE_SIZE){ +maxtime=0; +j=0; +for(i=0;i<ARP_TABLE_SIZE;++i){ +if(ctime-arp_table[i].ctime>maxtime){ +maxtime=ctime-arp_table[i].ctime; +j=i; +} +} +i=j; +} + +/*Now,iistheARPtableentrywhichwewillfillwiththenew +information.*/ +ip_addr_set(&arp_table[i].ipaddr,ipaddr); +for(k=0;k<6;++k){ +arp_table[i].ethaddr.addr[k]=ethaddr->addr[k]; +} +arp_table[i].ctime=ctime; +return; + +} +/*-----------------------------------------------------------------------------------*/ +void +arp_ip_input(structnetif*netif,structpbuf*p) +{ +structethip_hdr*hdr; + +hdr=p->payload; + +/*Onlyinsert/updateanentryifthesourceIPaddressofthe +incomingIPpacketcomesfromahostonthelocalnetwork.*/ +if(!ip_addr_maskcmp(&(hdr->ip.src),&(netif->ip_addr),&(netif->netmask))){ +return; +} +DEBUGF(ARP_DEBUG,("arp_ip_input:updatingARPtable.\n")); +add_arp_entry(&(hdr->ip.src),&(hdr->eth.src)); +} +/*-----------------------------------------------------------------------------------*/ +structpbuf* +arp_arp_input(structnetif*netif,structeth_addr*ethaddr,structpbuf*p) +{ +structarp_hdr*hdr; +uInt8i; + +if(p->tot_len<sizeof(structarp_hdr)){ +kprintf("arp_arp_input:packettooshort(%d/%d)\n",p->tot_len,sizeof(structarp_hdr)); +pbuf_free(p); +returnNULL; +} + +hdr=p->payload; + +switch(htons(hdr->opcode)){ +caseARP_REQUEST: +/*ARPrequest.Ifitaskedforouraddress,wesendouta +reply.*/ +if(ip_addr_cmp(&(hdr->dipaddr),&(netif->ip_addr))){ +hdr->opcode=htons(ARP_REPLY); + +ip_addr_set(&(hdr->dipaddr),&(hdr->sipaddr)); +ip_addr_set(&(hdr->sipaddr),&(netif->ip_addr)); + +for(i=0;i<6;++i){ +hdr->dhwaddr.addr[i]=hdr->shwaddr.addr[i]; +hdr->shwaddr.addr[i]=ethaddr->addr[i]; +hdr->ethhdr.dest.addr[i]=hdr->dhwaddr.addr[i]; +hdr->ethhdr.src.addr[i]=ethaddr->addr[i]; +} + +hdr->hwtype=htons(HWTYPE_ETHERNET); +ARPH_HWLEN_SET(hdr,6); + +hdr->proto=htons(ETHTYPE_IP); +ARPH_PROTOLEN_SET(hdr,sizeof(structip_addr)); + +hdr->ethhdr.type=htons(ETHTYPE_ARP); +returnp; +} +break; +caseARP_REPLY: +/*ARPreply.WeinsertorupdatetheARPtable.*/ +if(ip_addr_cmp(&(hdr->dipaddr),&(netif->ip_addr))){ +add_arp_entry(&(hdr->sipaddr),&(hdr->shwaddr)); +} +break; +default: +kprintf("arp_arp_input:unknowntype%d\n",htons(hdr->opcode)); +break; +} + +pbuf_free(p); +returnNULL; +} +/*-----------------------------------------------------------------------------------*/ +structeth_addr* +arp_lookup(structip_addr*ipaddr) +{ +uInt8i; + +for(i=0;i<ARP_TABLE_SIZE;++i){ +if(ip_addr_cmp(ipaddr,&arp_table[i].ipaddr)){ +return&arp_table[i].ethaddr; +} +} +returnNULL; +} +/*-----------------------------------------------------------------------------------*/ +structpbuf* +arp_query(structnetif*netif,structeth_addr*ethaddr,structip_addr*ipaddr) +{ +structarp_hdr*hdr; +structpbuf*p; +uInt8i; + +p=pbuf_alloc(PBUF_LINK,sizeof(structarp_hdr),PBUF_RAM); +if(p==NULL){ +returnNULL; +} + +hdr=p->payload; + +hdr->opcode=htons(ARP_REQUEST); + +for(i=0;i<6;++i){ +hdr->dhwaddr.addr[i]=0x00; +hdr->shwaddr.addr[i]=ethaddr->addr[i]; +} + +ip_addr_set(&(hdr->dipaddr),ipaddr); +ip_addr_set(&(hdr->sipaddr),&(netif->ip_addr)); + +hdr->hwtype=htons(HWTYPE_ETHERNET); +ARPH_HWLEN_SET(hdr,6); + +hdr->proto=htons(ETHTYPE_IP); +ARPH_PROTOLEN_SET(hdr,sizeof(structip_addr)); + +for(i=0;i<6;++i){ +hdr->ethhdr.dest.addr[i]=0xff; +hdr->ethhdr.src.addr[i]=ethaddr->addr[i]; +} + +hdr->ethhdr.type=htons(ETHTYPE_ARP); +returnp; +} +/*-----------------------------------------------------------------------------------*/ + + + + + + + + diff --git a/doc/xml/arp_8h.xml b/doc/xml/arp_8h.xml new file mode 100644 index 0000000..2dbbef5 --- /dev/null +++ b/doc/xml/arp_8h.xml @@ -0,0 +1,492 @@ + + + + arp.h + net/pbuf.h + net/ipv4/ip_addr.h + net/netif.h + src/sys/net/netif/arp.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eth_addr + eth_hdr + + + ARP_TMR_INTERVAL + 10000 + + + + + + + + arp_timer + ethernetif_init + + + ETHTYPE_ARP + 0x0806 + + + + + + + + arp_arp_input + arp_query + ethernetif_input + + + ETHTYPE_IP + 0x0800 + + + + + + + + arp_arp_input + arp_query + ethernetif_input + ethernetif_output + + + + + pbuf * + struct pbuf* arp_arp_input + (struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p) + arp_arp_input + + struct netif * + netif + + + struct eth_addr * + ethaddr + + + struct pbuf * + p + + + + + + + + + add_arp_entry + ARP_REPLY + ARP_REQUEST + ARPH_HWLEN_SET + ARPH_PROTOLEN_SET + ETHTYPE_ARP + ETHTYPE_IP + htons + HWTYPE_ETHERNET + netif::ip_addr + ip_addr_cmp + ip_addr_set + kprintf + NULL + pbuf::payload + pbuf_free + pbuf::tot_len + ethernetif_input + + + void + void arp_init + (void) + arp_init + + void + + + + + + + + + arp_table + ARP_TABLE_SIZE + IP_ADDR_ANY + ip_addr_set + arp_entry::ipaddr + ethernetif_init + + + void + void arp_ip_input + (struct netif *netif, struct pbuf *p) + arp_ip_input + + struct netif * + netif + + + struct pbuf * + p + + + + + + + + + add_arp_entry + ARP_DEBUG + DEBUGF + netif::ip_addr + ip_addr_maskcmp + netif::netmask + pbuf::payload + ethernetif_input + + + eth_addr * + struct eth_addr* arp_lookup + (struct ip_addr *ipaddr) + arp_lookup + + struct ip_addr * + ipaddr + + + + + + + + + arp_table + ARP_TABLE_SIZE + ip_addr_cmp + NULL + ethernetif_output + + + pbuf * + struct pbuf* arp_query + (struct netif *netif, struct eth_addr *ethaddr, struct ip_addr *ipaddr) + arp_query + + struct netif * + netif + + + struct eth_addr * + ethaddr + + + struct ip_addr * + ipaddr + + + + + + + + + ARP_REQUEST + ARPH_HWLEN_SET + ARPH_PROTOLEN_SET + ETHTYPE_ARP + ETHTYPE_IP + htons + HWTYPE_ETHERNET + netif::ip_addr + ip_addr_set + NULL + pbuf::payload + pbuf_alloc + PBUF_LINK + PBUF_RAM + ethernetif_output + + + void + void arp_tmr + (void) + arp_tmr + + void + + + + + + + + + ARP_DEBUG + ARP_MAXAGE + arp_table + ARP_TABLE_SIZE + ctime + DEBUGF + IP_ADDR_ANY + ip_addr_isany + ip_addr_set + arp_entry::ipaddr + arp_timer + + + + + eth_hdr + struct eth_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + eth_addr + struct eth_addr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.Alladvertisingmaterialsmentioningfeaturesoruseofthissoftware +*mustdisplaythefollowingacknowledgement: +*ThisproductincludessoftwaredevelopedbytheSwedishInstitute +*ofComputerScienceanditscontributors. +*4.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +* +*/ + +#ifndef__NETIF_ARP_H__ +#define__NETIF_ARP_H__ + +#include"net/pbuf.h" +#include"net/ipv4/ip_addr.h" +#include"net/netif.h" + +structeth_addr{ +PACK_STRUCT_FIELD(uInt8addr[6]); +}PACK_STRUCT_STRUCT; + +structeth_hdr{ +PACK_STRUCT_FIELD(structeth_addrdest); +PACK_STRUCT_FIELD(structeth_addrsrc); +PACK_STRUCT_FIELD(uInt16type); +}PACK_STRUCT_STRUCT; + +#defineARP_TMR_INTERVAL10000 + +#defineETHTYPE_ARP0x0806 +#defineETHTYPE_IP0x0800 + +/*InitializesARP.*/ +voidarp_init(void); + +/*Thearp_tmr()functionshouldbecalledeveryARP_TMR_INTERVAL +microseconds(10seconds).Thisfunctionisresponsiblefor +expiringoldentriesintheARPtable.*/ +voidarp_tmr(void); + +/*ShouldbecalledforallincomingpacketsofIPkind.Thefunction +doesnotalterthepacketinanyway,itjustupdatestheARP +table.Afterthisfunctionhasbeencalled,thenormalTCP/IPstack +inputfunctionshouldbecalled.*/ +voidarp_ip_input(structnetif*netif,structpbuf*p); + +/*ShouldbecalledforincomingARPpackets.Thepbufintheargument +isfreedbythisfunction.Ifthefunctionreturnsapbuf(i.e., +returnsnon-NULL),thatpbufconstitutesanARPreplyandshouldbe +sentoutontheEthernet.*/ +structpbuf*arp_arp_input(structnetif*netif,structeth_addr*ethaddr, +structpbuf*p); + +/*arp_loopup()iscalledtodoanIPaddress->Ethernetaddress +translation.IfthefunctionreturnsNULL,thereisnomappingand +thearp_query()functionshouldbecalled.*/ +structeth_addr*arp_lookup(structip_addr*ipaddr); + +/*ConstructsanARPquerypacketforthegivenIPaddress.The +functionreturnsapbufthatcontainsthereplyandthatshouldbe +sentoutontheEthernet.*/ +structpbuf*arp_query(structnetif*netif,structeth_addr*ethaddr, +structip_addr*ipaddr); + +#endif/*__NETIF_ARP_H__*/ + + + + diff --git a/doc/xml/assert_8c.xml b/doc/xml/assert_8c.xml new file mode 100644 index 0000000..1c5fb54 --- /dev/null +++ b/doc/xml/assert_8c.xml @@ -0,0 +1,154 @@ + + + + assert.c + assert.h + lib/kprintf.h + ubixos/kpanic.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void __assert + (const char *func, const char *file, int line, const char *failedexpr) + __assert + + const char * + func + + + const char * + file + + + int + line + + + const char * + failedexpr + + + + + + + + + kpanic + kprintf + NULL + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<assert.h> +#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 +***/ + + + + + diff --git a/doc/xml/assert_8h.xml b/doc/xml/assert_8h.xml new file mode 100644 index 0000000..d6a4c30 --- /dev/null +++ b/doc/xml/assert_8h.xml @@ -0,0 +1,374 @@ + + + + assert.h + src/sys/isa/ne2k.c + src/sys/kernel/bioscall.c + src/sys/kernel/exec.c + src/sys/kernel/fork.c + src/sys/kernel/gen_calls.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/ld.c + src/sys/kernel/pipe.c + src/sys/kernel/sched.c + src/sys/kernel/time.c + src/sys/kmods/kmod.c + src/sys/lib/assert.c + src/sys/lib/kmalloc.c + src/sys/sys/device.c + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/ubixfs.c + src/sys/ubixfsv2/btree.cpp + src/sys/ubixfsv2/ramdrive.cpp + src/sys/ubixfsv2/ubixfs.cpp + src/sys/vfs/file.c + src/sys/vmm/paging.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + __BEGIN_DECLS + + + + + + + + + + __END_DECLS + + + + + + + + + + _assert + e + assert(e) + + + + + + + + + + assert + e + ((e) ? (void)0 : __assert(__func__, __FILE__, \ + __LINE__, #e)) + + + + + + + + adjustCowCounter + biosCall + bTree::bTree + execFile + execThread + fclose + bTree::findLeafNode + fork_copyProcess + fread + freePage + bTree::Info + bTree::Insert + insertFreeDesc + kfree + kmalloc + kmod_load + ldEnable + UbixFS::mknod + NICtoPC + openFileUbixFS + PCtoNIC + ramDrive_read + ramDrive_write + readUbixFS + bTree::Save + bTree::saveNode + bTree::splitNode + sysExec + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + ubixfs_loadData + UbixFS::vfs_format + UbixFS::vfs_init + UbixFS::vfs_mkdir + UbixFS::vfs_read + UbixFS::vfs_write + writeFileByte + writeUbixFS + + + + + __BEGIN_DECLS void + __BEGIN_DECLS void __assert + (const char *, const char *, int, const char *) + __assert + + const char * + + + const char * + + + int + + + const char * + + + + + + + + + kpanic + kprintf + NULL + + + + + + + +/*- +*Copyright(c)1992,1993 +*TheRegentsoftheUniversityofCalifornia.Allrightsreserved. +*(c)UNIXSystemLaboratories,Inc. +*Allorsomeportionsofthisfilearederivedfrommateriallicensed +*totheUniversityofCaliforniabyAmericanTelephoneandTelegraph +*Co.orUnixSystemLaboratories,Inc.andarereproducedhereinwith +*thepermissionofUNIXSystemLaboratories,Inc. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.Alladvertisingmaterialsmentioningfeaturesoruseofthissoftware +*mustdisplaythefollowingacknowledgement: +*ThisproductincludessoftwaredevelopedbytheUniversityof +*California,Berkeleyanditscontributors. +*4.NeitherthenameoftheUniversitynorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEREGENTSANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEREGENTSORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*@(#)assert.h8.2(Berkeley)1/21/94 +*$FreeBSD:src/include/assert.h,v1.42002/03/2317:24:53impExp$ +*/ + +#ifdefined(__cplusplus) +#define__BEGIN_DECLSextern"C"{ +#define__END_DECLS} +#else +#define__BEGIN_DECLS +#define__END_DECLS +#endif + +/* +*UnlikeotherANSIheaderfiles,<assert.h>mayusefullybeincluded +*multipletimes,withandwithoutNDEBUGdefined. +*/ + +#undefassert +#undef_assert + +#ifdefNDEBUG +#defineassert(e)((void)0) +#define_assert(e)((void)0) +#else +#define_assert(e)assert(e) + +#defineassert(e)((e)?(void)0:__assert(__func__,__FILE__,\ +__LINE__,#e)) +#endif/*NDEBUG*/ + +__BEGIN_DECLS +void__assert(constchar*,constchar*,int,constchar*); +__END_DECLS + + + + diff --git a/doc/xml/atan_8c.xml b/doc/xml/atan_8c.xml new file mode 100644 index 0000000..286b4a5 --- /dev/null +++ b/doc/xml/atan_8c.xml @@ -0,0 +1,118 @@ + + + + atan.c + math.h + + + + + + + + + + + + + + + + + + + + + + + + + + + double + double atan + (double x) + atan + + double + x + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<math.h> + +doubleatan(doublex){ +return(x);/*QuickHackToMakeThisWork*/ +} + +/*** +$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.32004/05/1904:07:43reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.22004/05/1903:46:32reddawg +AFewQuickHacksToMakeThingsWork + +Revision1.1.1.12004/04/1512:07:10reddawg +UbixOSv1.0 + +Revision1.22004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/atkbd_8c.xml b/doc/xml/atkbd_8c.xml new file mode 100644 index 0000000..85e4d36 --- /dev/null +++ b/doc/xml/atkbd_8c.xml @@ -0,0 +1,944 @@ + + + + atkbd.c + isa/atkbd.h + isa/8259.h + sys/video.h + sys/idt.h + sys/gdt.h + sys/io.h + lib/kmalloc.h + lib/kprintf.h + ubixos/types.h + ubixos/sched.h + ubixos/endtask.h + ubixos/tty.h + ubixos/spinlock.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl atkbd_isr \n""atkbd_isr: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" call keyboardHandler \n"" mov $0x20,%dx \n"" mov $0x20,%ax \n"" outb %al,%dx \n"" pop %gs \n"" pop %fs \n"" pop %es \n"" pop %ds \n"" pop %ss \n"" popa \n"" iret \n") + asm + + ".globl atkbd_isr \n""atkbd_isr: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" call keyboardHandler \n"" mov $ + 0x20 + + + %dx\n""mov $ + 0x20 + + + %ax\n""outb% + al + + + %dx\n""pop%gs\n""pop%fs\n""pop%es\n""pop%ds\n""pop%ss\n""popa\n""iret\n" + + + + + + + + + + + int + int atkbd_init + () + atkbd_init + + + + + + + + atkbd_isr + atkbd_scan + dDpl0 + dInt + dPresent + irqEnable + kprintf + mVec + setLED + setVector + stdinBuffer + x1 + + + int + static int atkbd_scan + () + atkbd_scan + + + + + + + + inportByte + outportByte + atkbd_init + keyboardHandler + + + unsigned char + unsigned char getch + () + getch + + + + + + + + tty_termNode::stdin + stdinBuffer + tty_termNode::stdinSize + stdinSize + tty_foreground + x1 + sysFgetc + + + void + void keyboardHandler + () + keyboardHandler + + + + + + + + altKey + atkbd_scan + atkbdSpinLock + backSpace + controlKey + controlKeys + inportByte + keyboardMap + keyMap + kprintf + ledCapslock + ledNumlock + ledScrolllock + ledStatus + outportByte + setLED + shiftKey + spinTryLock + spinUnlock + tty_termNode::stdin + stdinBuffer + tty_termNode::stdinSize + stdinSize + tty_change + tty_foreground + + + void + void setLED + () + setLED + + + + + + + + inportByte + ledStatus + outportByte + atkbd_init + keyboardHandler + + + + + spinLock_t + spinLock_t atkbdSpinLock + + atkbdSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + keyboardHandler + + + uInt32 + uInt32 controlKeys + + controlKeys + 0x0 + + + + + + + + keyboardHandler + + + unsigned int + unsigned int keyboardMap[255][8] + [255][8] + keyboardMap + + + + + + + + keyboardHandler + + + unsigned int + unsigned int keyMap + + keyMap + 0x0 + + + + + + + + keyboardHandler + + + unsigned int + unsigned int ledStatus + + ledStatus + 0x0 + + + + + + + + keyboardHandler + setLED + + + char + char stdinBuffer[512] + [512] + stdinBuffer + + + + + + + + atkbd_init + getch + keyboardHandler + + + uInt16 + uInt16 stdinSize + + stdinSize + + + + + + + + getch + keyboardHandler + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<isa/atkbd.h> +#include<isa/8259.h> +#include<sys/video.h> +#include<sys/idt.h> +#include<sys/gdt.h> +#include<sys/io.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<ubixos/endtask.h> +#include<ubixos/tty.h> +#include<ubixos/spinlock.h> + +staticintatkbd_scan(); + +staticunsignedintkeyMap=0x0; +staticunsignedintledStatus=0x0; +staticcharstdinBuffer[512]; +staticuInt16stdinSize; +staticuInt32controlKeys=0x0; + +staticspinLock_tatkbdSpinLock=SPIN_LOCK_INITIALIZER; + +staticunsignedintkeyboardMap[255][8]={ +/*Ascii,Shift,Ctrl,Alt,Num,Caps,ShiftCaps,ShiftNum*/ +{0,0,0,0,0,0,0,0}, +/*ESC*/{0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B}, +/*1,!*/{0x31,0x21,0,0,0x31,0x31,0x21,0x21}, +/*2,@*/{0x32,0x40,0,0,0x32,0x32,0x40,0x40}, +/*3,#*/{0x33,0x23,0,0,0x33,0x33,0x23,0x23}, +/*4,$*/{0x34,0x24,0,0,0x34,0x34,0x24,0x24}, +/*5,%*/{0x35,0x25,0,0,0x35,0x35,0x25,0x25}, +/*6,^*/{0x36,0x5E,0,0,0x36,0x36,0x5E,0x5E}, +/*7,&*/{0x37,0x26,0,0,0x37,0x37,0x26,0x26}, +/*8,**/{0x38,0x2A,0,0,0x38,0x38,0x2A,0x2A}, +/*9.(*/{0x39,0x28,0,0,0x39,0x39,0x28,0x28}, +/*0,)*/{0x30,0x29,0,0,0x30,0x30,0x29,0x29}, +/*-,_*/{0x2D,0x5F,0,0,0x2D,0x2D,0x5F,0x5F}, +/*=,+*/{0x3D,0x2B,0,0,0x3D,0x3D,0x2B,0x2B}, +/*14*/{0x08,0x08,0x8,0x8,0x08,0x08,0x08,0x08}, +/*15*/{0x09,0,0,0,0,0,0,0}, +/**/{0x71,0x51,0,0,0,0,0,0}, +/**/{0x77,0x57,0,0,0,0,0,0}, +/**/{0x65,0x45,0,0,0,0,0,0}, +/**/{0x72,0x52,0,0,0,0,0,0}, +/**/{0x74,0x54,0,0,0,0,0,0}, +/**/{0x79,0x59,0,0,0,0,0,0}, +/**/{0x75,0x55,0,0,0,0,0,0}, +/**/{0x69,0x49,0,0,0,0,0,0}, +/**/{0x6F,0x4F,0,0,0,0,0,0}, +/**/{0x70,0x50,0,0,0,0,0,0}, +/**/{0x5B,0x7B,0,0,0,0,0,0}, +/**/{0x5D,0x7D,0,0,0,0,0,0}, +/**/{0x0A,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/*a,A*/{0x61,0x41,0x41,0,0,0,0,0}, +/**/{0x73,0x53,0,0,0,0,0,0}, +/**/{0x64,0x44,0,0,0,0,0,0}, +/**/{0x66,0x46,0,0,0,0,0,0}, +/**/{0x67,0x47,0,0,0,0,0,0}, +/**/{0x68,0x48,0,0,0,0,0,0}, +/**/{0x6A,0x4A,0,0,0,0,0,0}, +/**/{0x6B,0x4B,0,0,0,0,0,0}, +/**/{0x6C,0x4C,0,0,0,0,0,0}, +/**/{0x3B,0x3A,0,0,0,0,0,0}, +/**/{0x27,0x22,0,0,0,0,0,0}, +/**/{0x60,0x7E,0,0,0,0,0,0}, +/**/{0x2A,0x0,0,0,0,0,0,0}, +/**/{0x5C,0x3C,0,0,0,0,0,0}, +/**/{0x7A,0x5A,0,0,0,0,0,0}, +/**/{0x78,0x58,0,0,0,0,0,0}, +/*c,C*/{0x63,0x43,0x3,0x9,0,0,0,0}, +/**/{0x76,0x56,0,0,0,0,0,0}, +/**/{0x62,0x42,0,0,0,0,0,0}, +/**/{0x6E,0x4E,0,0,0,0,0,0}, +/**/{0x6D,0x4D,0,0,0,0,0,0}, +/**/{0x2C,0x3C,0,0,0,0,0,0}, +/**/{0x2E,0x3E,0,0,0,0,0,0}, +/**/{0x2F,0x3F,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0x20,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/*F1*/{0x3000,0,0,0x3000,0,0,0,0}, +/**/{0x3001,0,0,0x3001,0,0,0,0}, +/**/{0x3002,0,0,0x3002,0,0,0,0}, +/**/{0x3003,0,0,0x3003,0,0,0,0}, +/**/{0x3004,0,0,0x3004,0,0,0,0}, +/**/{0x4000,0,0,0,0,0,0,0}, +/**/{0x4100,0,0,0,0,0,0,0}, +/**/{0x4200,0,0,0,0,0,0,0}, +/**/{0x4300,0,0,0,0,0,0,0}, +/**/{0x4400,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0x4700,0,0,0,0,0,0,0}, +/**/{0x4800,0,0,0,0,0,0,0}, +/**/{0x4900,0,0,0,0,0,0,0}, +/**/{0x2D,0,0,0,0,0,0,0}, +/**/{0x4B00,0,0,0,0,0,0,0}, +/**/{0x4C00,0,0,0,0,0,0,0}, +/**/{0x4D00,0,0,0,0,0,0,0}, +/**/{0x2B,0,0,0,0,0,0,0}, +/**/{0x4F00,0,0,0,0,0,0,0}, +/**/{0x5000,0,0,0,0,0,0,0}, +/**/{0x5100,0,0,0,0,0,0,0}, +/**/{0x5200,0,0,0,0,0,0,0}, +/**/{0x5300,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0}, +/**/{0,0,0,0,0,0,0,0} +}; + +/************************************************************************ + +Function:intatkbd_init + +Description:Thisfunctionisusedtoturnonthekeyboard + +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ +intatkbd_init(){ +/*InserttheIDTvectorforthekeyboardhandler*/ +setVector(&atkbd_isr,mVec+0x1,dPresent+dInt+dDpl0); + +/*SettheLEDStotheirdefaults*/ +setLED(); + +/*ClearKeyboard*/ +atkbd_scan(); + +/*Turnonthekeyboardvector*/ +irqEnable(0x1); + +/*Printoutinformationonkeyboard*/ +kprintf("atkbd0-Address:[0x%X],KeyboardBuffer:[0x%X],BufferSize[%i]\n",&atkbd_isr,&stdinBuffer,512); + +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +} + +/* +*2-23-2004mjiIthinkthepusha/popashouldbepushal/popal +*/ + +asm( +".globlatkbd_isr\n" +"atkbd_isr:\n" +"pusha\n"/*Saveallregisters*/ +"push%ss\n" +"push%ds\n" +"push%es\n" +"push%fs\n" +"push%gs\n" +"callkeyboardHandler\n" +"mov$0x20,%dx\n" +"mov$0x20,%ax\n" +"outb%al,%dx\n" +"pop%gs\n" +"pop%fs\n" +"pop%es\n" +"pop%ds\n" +"pop%ss\n" +"popa\n" +"iret\n"/*Exitinterrupt*/ +); + +staticintatkbd_scan(){ +intcode=0x0; +intval=0x0; + +code=inportByte(0x60); +val=inportByte(0x61); + +outportByte(0x61,val|0x80); +outportByte(0x61,val); + +return(code); +} + +voidkeyboardHandler(){ +intkey=0x0; + +if(!spinTryLock(&atkbdSpinLock)) +return; + +key=atkbd_scan(); + +if(key>255) +return; + +/*ControlKey*/ +if(key==0x1D&&!(controlKeys&controlKey)){ +controlKeys|=controlKey; +} +if(key==0x80+0x1D){ +controlKeys&=(0xFF-controlKey); +} +/*ALTKey*/ +if(key==0x38&&!(controlKeys&altKey)){ +controlKeys|=altKey; +} +if(key==0x80+0x38){ +controlKeys&=(0xFF-altKey); +} +/*ShiftKey*/ +if((key==0x2A||key==0x36)&&!(controlKeys&shiftKey)){ +controlKeys|=shiftKey; +} +if((key==0x80+0x2A)||(key==0x80+0x36)){ +controlKeys&=(0xFF-shiftKey); +} +/*CapsLock*/ +if(key==0x3A){ +ledStatus^=ledCapslock; +setLED(); +} +/*NumLock*/ +if(key==0x45){ +ledStatus^=ledNumlock; +setLED(); +} +/*ScrollLock*/ +if(key==0x46){ +ledStatus^=ledScrolllock; +setLED(); +} +/*PickWhichKeyMap*/ +if(controlKeys==0){keyMap=0;} +elseif(controlKeys==1){keyMap=1;} +elseif(controlKeys==2){keyMap=2;} +elseif(controlKeys==4){keyMap=3;} +/*IfKeyIsNotNullAddItToHandler*/ +if(((uInt)(keyboardMap[key][keyMap])>0)&&((uInt32)(keyboardMap[key][keyMap])<0xFF)){ +switch((uInt32)keyboardMap[key][keyMap]){ +case8: +backSpace(); +if(tty_foreground==0x0){ +stdinBuffer[stdinSize]=keyboardMap[key][keyMap]; +stdinSize++; +} +else{ +tty_foreground->stdin[tty_foreground->stdinSize]=keyboardMap[key][keyMap]; +tty_foreground->stdinSize++; +} +break; +case0x3: +//if(tty_foreground!=0x0) +//endTask(tty_foreground->owner); +kprintf("CTRL-Cpressed\n"); +//kprintf("FreePages:[0x%X]\n",systemVitals->freePages); +break; +case0x9: +kprintf("REBOOTING"); +while(inportByte(0x64)&0x02); +outportByte(0x64,0xFE); +break; +default: +if(tty_foreground==0x0){ +stdinBuffer[stdinSize]=keyboardMap[key][keyMap]; +stdinSize++; +} +else{ +tty_foreground->stdin[tty_foreground->stdinSize]=keyboardMap[key][keyMap]; +tty_foreground->stdinSize++; +} +break; +} +} +else{ +switch((keyboardMap[key][keyMap]>>8)){ +case0x30: +tty_change(keyboardMap[key][keyMap]&0xFF); +//kprintf("ChangingConsoles[0x%X:0x%X]\n",_current->id,_current); +break; +default: +break; +} +} + +/*Return*/ +spinUnlock(&atkbdSpinLock); +return; +} + +voidsetLED(){ +outportByte(0x60,0xED); +while(inportByte(0x64)&2); +outportByte(0x60,ledStatus); +while(inportByte(0x64)&2); +} + +/*Temp*/ +unsignedchargetch(){ +uInt8retKey=0x0; +uInt32i=0x0; + +/* +if((stdinSize<=0)&&(tty_foreground==0x0)){ +sched_yield(); +} +if((tty_foreground!=0x0)&&(tty_foreground->stdinSize<=0x0)){ +sched_yield(); +} +*/ + +/* +if(!spinTryLock(&atkbdSpinLock)) +return(0x0); +*/ + +if(tty_foreground==0x0){ +if(stdinSize==0x0){ +//spinUnlock(&atkbdSpinLock); +return(0x0); +} + +retKey=stdinBuffer[0]; +stdinSize--; + +for(i=0x0;i<stdinSize;i++){ +stdinBuffer[i]=stdinBuffer[i+0x1]; +} +} +else{ +if(tty_foreground->stdinSize==0x0){ +//spinUnlock(&atkbdSpinLock); +return(0x0); +} + +retKey=tty_foreground->stdin[0]; +tty_foreground->stdinSize--; + +for(i=0x0;i<tty_foreground->stdinSize;i++){ +tty_foreground->stdin[i]=tty_foreground->stdin[i+0x1]; +} +} +//spinUnlock(&atkbdSpinLock); +return(retKey); +} + +/*** + +$Log$ +Revision1.42006/12/0514:10:21reddawg +WorkignDistro + +Revision1.32006/12/0105:12:35reddawg +We'realmostthere...:) + +Revision1.22006/10/1917:52:17reddawg +WorkingOnUserland + +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:01reddawg +nomessage + +Revision1.292004/09/1121:38:00reddawg +Fixedafewproblems + +Revision1.282004/09/0823:19:58reddawg +hmm + +Revision1.272004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.262004/09/0622:18:52reddawg +okbedtime + +Revision1.252004/09/0622:11:29reddawg +tty:noweachttyhasastdin.... + +Revision1.242004/09/0615:13:25reddawg +LastcommitbeforeFreeBSD6.0 + +Revision1.232004/08/2123:47:50reddawg +***emptylogmessage*** + +Revision1.222004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce + +Revision1.212004/08/0622:32:16reddawg +UbixWorksAgain + +Revision1.192004/08/0318:31:19reddawg +virtualterms + +Revision1.182004/07/2921:32:16reddawg +Myquicklunchsbreaksworthofupdates.... + +Revision1.172004/07/2818:45:39reddawg +movementoffiles + +Revision1.162004/07/2817:07:25reddawg +MPI:movedthesyscalls + +Revision1.152004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.142004/07/2505:32:58reddawg +fixed + +Revision1.132004/07/2505:24:39reddawg +atkbd:removedsti...doesitstillmisskeys + +Revision1.122004/07/2420:00:51reddawg +Lotsofchangestothevmmsubsystem....Pagefaultshavebeenadjusttonowbeblockingonaperthreadbasisnotsystemwide.Thishasresultedinnomoredeadlocks..alsotheadditionofperthreadlockinghasremovedsegfaultsasaresultofCOWinwhichtwotasksfaultthesameCOWpageandtrytomodifyit. + +Revision1.112004/07/2415:12:56reddawg +NowI'mcurrent + +Revision1.102004/07/2317:49:58reddawg +atkbd:adjustthetimingissueonthedriverhopefullyitwillworkfinenow + +Revision1.92004/07/2317:37:35reddawg +Fix + +Revision1.82004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.72004/07/2220:53:07reddawg +atkbd:fixedproblem + +Revision1.62004/07/0913:34:51reddawg +keyboard:keyboardInittoatkbd_init +Adjustedinitializationroutines + +Revision1.52004/06/1714:49:14reddawg +atkbd:convertedsomevariablestostatic + +Revision1.42004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.32004/05/1904:07:42reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.22004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + +Revision1.1.1.12004/04/1512:07:09reddawg +UbixOSv1.0 + +Revision1.192004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/atkbd_8h.xml b/doc/xml/atkbd_8h.xml new file mode 100644 index 0000000..9535bf7 --- /dev/null +++ b/doc/xml/atkbd_8h.xml @@ -0,0 +1,280 @@ + + + + atkbd.h + src/sys/include/ubixos/init.h + src/sys/isa/atkbd.c + + + + + + + + + + + + + + + + + + + + + + + + + + + altKey + 4 + + + + + + + + keyboardHandler + + + controlKey + 2 + + + + + + + + keyboardHandler + + + ledCapslock + 4 + + + + + + + + keyboardHandler + + + ledNumlock + 2 + + + + + + + + keyboardHandler + + + ledScrolllock + 1 + + + + + + + + keyboardHandler + + + shiftKey + 1 + + + + + + + + keyboardHandler + + + + + int + int atkbd_init + () + atkbd_init + + + + + + + + atkbd_isr + atkbd_scan + dDpl0 + dInt + dPresent + irqEnable + kprintf + mVec + setLED + setVector + stdinBuffer + x1 + + + void + void atkbd_isr + () + atkbd_isr + + + + + + + + atkbd_init + + + void + void keyboardHandler + () + keyboardHandler + + + + + + + + altKey + atkbd_scan + atkbdSpinLock + backSpace + controlKey + controlKeys + inportByte + keyboardMap + keyMap + kprintf + ledCapslock + ledNumlock + ledScrolllock + ledStatus + outportByte + setLED + shiftKey + spinTryLock + spinUnlock + tty_termNode::stdin + stdinBuffer + stdinSize + tty_termNode::stdinSize + tty_change + tty_foreground + + + void + void setLED + () + setLED + + + + + + + + inportByte + ledStatus + outportByte + atkbd_init + keyboardHandler + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_ATKBD_H +#define_ATKBD_H + +#defineshiftKey1 +#definecontrolKey2 +#definealtKey4 +#defineledNumlock2 +#defineledScrolllock1 +#defineledCapslock4 + +intatkbd_init(); +voidatkbd_isr(); + +voidkeyboardHandler(); +voidsetLED(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:39reddawg +nomessage + +Revision1.42004/07/2921:32:16reddawg +Myquicklunchsbreaksworthofupdates.... + +Revision1.32004/07/0913:34:51reddawg +keyboard:keyboardInittoatkbd_init +Adjustedinitializationroutines + +Revision1.22004/05/2114:57:16reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/bioscall_8c.xml b/doc/xml/bioscall_8c.xml new file mode 100644 index 0000000..cbe2111 --- /dev/null +++ b/doc/xml/bioscall_8c.xml @@ -0,0 +1,396 @@ + + + + bioscall.c + sys/tss.h + ubixos/sched.h + vmm/vmm.h + lib/kmalloc.h + lib/bioscall.h + lib/string.h + sys/video.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl bios16Code\n"".code16 \n""bios16Code: \n""int $0x10 \n""int $0x69 \n"".code32 \n") + asm + + ".globl bios16Code\n"".code16 \n""bios16Code: \n""int $0x10 \n""int $0x69 \n"".code32 \n" + + + + + + + + + + + void + void biosCall + (int biosInt, int eax, int ebx, int ecx, int edx, int esi, int edi, int es, int ds) + biosCall + + int + biosInt + + + int + eax + + + int + ebx + + + int + ecx + + + int + edx + + + int + esi + + + int + edi + + + int + es + + + int + ds + + + + + + + + + _current + assert + tssStruct::back_link + bios16Code + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::eax + tssStruct::ebp + tssStruct::ebx + tssStruct::ecx + tssStruct::edi + tssStruct::edx + EFLAG_IF + EFLAG_VM + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + tssStruct::io_map + kmalloc + tssStruct::ldt + taskStruct::oInfo + READY + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + taskStruct::state + tssStruct::trace_bitmap + taskStruct::tss + osInfo::v86Task + x1000 + x2000 + systemTask + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/tss.h> +#include<ubixos/sched.h> +#include<vmm/vmm.h> +#include<lib/kmalloc.h> +#include<lib/bioscall.h> +#include<lib/string.h> +#include<sys/video.h> +#include<assert.h> + + +asm( +".globlbios16Code\n" +".code16\n" +"bios16Code:\n" +"int$0x10\n" +"int$0x69\n" +".code32\n" +); + + +voidbiosCall(intbiosInt,inteax,intebx,intecx,intedx,intesi,intedi,intes,intds){ +shortsegment=0x0,offset=0x0; +uInt32tmpAddr=(uInt32)&bios16Code; +kTask_t*newProcess=0x0; + +offset=tmpAddr&0xF;//lower4bits +segment=tmpAddr>>4; + +newProcess=schedNewTask(); +assert(newProcess); + + +newProcess->tss.back_link=0x0; +newProcess->tss.esp0=(uInt32)kmalloc(0x2000)+0x2000; +newProcess->tss.ss0=0x10; +newProcess->tss.esp1=0x0; +newProcess->tss.ss1=0x0; +newProcess->tss.esp2=0x0; +newProcess->tss.ss2=0x0; +newProcess->tss.cr3=(uInt32)_current->tss.cr3;//(uInt32)vmmCreateVirtualSpace(newProcess->id); +newProcess->tss.eip=offset&0xFFFF; +newProcess->tss.eflags=2|EFLAG_IF|EFLAG_VM; +newProcess->tss.eax=eax&0xFFFF; +newProcess->tss.ebx=ebx&0xFFFF; +newProcess->tss.ecx=ecx&0xFFFF; +newProcess->tss.edx=edx&0xFFFF; +newProcess->tss.esp=0x1000&0xFFFF; +newProcess->tss.ebp=0x1000&0xFFFF; +newProcess->tss.esi=esi&0xFFFF; +newProcess->tss.edi=edi&0xFFFF; +newProcess->tss.es=es&0xFFFF; +newProcess->tss.cs=segment&0xFFFF; +newProcess->tss.ss=0x1000&0xFFFF; +newProcess->tss.ds=ds&0xFFFF; +newProcess->tss.fs=0x0&0xFFFF; +newProcess->tss.gs=0x0&0xFFFF; +newProcess->tss.ldt=0x0&0xFFFF; +newProcess->tss.trace_bitmap=0x0&0xFFFF; +newProcess->tss.io_map=0x0&0xFFFF; +newProcess->tss.io_map=sizeof(structtssStruct)-8192; +newProcess->oInfo.v86Task=0x1; + +newProcess->state=READY; + +while(newProcess->state>0); + +return; +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/bioscall_8h.xml b/doc/xml/bioscall_8h.xml new file mode 100644 index 0000000..c467589 --- /dev/null +++ b/doc/xml/bioscall_8h.xml @@ -0,0 +1,270 @@ + + + + bioscall.h + ubixos/types.h + src/sys/kernel/bioscall.c + src/sys/kernel/systemtask.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EFLAG_IF + 0x200 + + + + + + + + _int13 + biosCall + + + EFLAG_IOPL3 + 0x3000 + + + + + + + + + + EFLAG_TF + 0x100 + + + + + + + + + + EFLAG_VM + 0x20000 + + + + + + + + _int13 + biosCall + + + + + void + void bios16Code + () + bios16Code + + + + + + + + biosCall + + + void + void biosCall + (int biosInt, int eax, int ebx, int ecx, int edx, int esi, int edi, int es, int ds) + biosCall + + int + biosInt + + + int + eax + + + int + ebx + + + int + ecx + + + int + edx + + + int + esi + + + int + edi + + + int + es + + + int + ds + + + + + + + + + _current + assert + tssStruct::back_link + bios16Code + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::eax + tssStruct::ebp + tssStruct::ebx + tssStruct::ecx + tssStruct::edi + tssStruct::edx + EFLAG_IF + EFLAG_VM + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + tssStruct::io_map + kmalloc + tssStruct::ldt + taskStruct::oInfo + READY + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + taskStruct::state + tssStruct::trace_bitmap + taskStruct::tss + osInfo::v86Task + x1000 + x2000 + systemTask + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_BIOSCALL_H +#define_BIOSCALL_H + +#include<ubixos/types.h> + +#defineEFLAG_TF0x100 +#defineEFLAG_IF0x200 +#defineEFLAG_IOPL30x3000 +#defineEFLAG_VM0x20000 + +voidbiosCall(intbiosInt,inteax,intebx,intecx,intedx,intesi,intedi,intes,intds); +voidbios16Code(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.22004/05/2115:00:27reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/block_8c.xml b/doc/xml/block_8c.xml new file mode 100644 index 0000000..ad87f08 --- /dev/null +++ b/doc/xml/block_8c.xml @@ -0,0 +1,353 @@ + + + + block.c + ubixfs/ubixfs.h + vfs/file.h + vfs/mount.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int freeBlocks + (int block, fileDescriptor *fd) + freeBlocks + + int + block + + + fileDescriptor * + fd + + + + + + + + + blockAllocationTableEntry::attributes + ubixFSInfo::blockAllocationTable + blockAllocationTableEntry::nextBlock + syncBat + + + int + int getFreeBlocks + (int count, fileDescriptor *fd) + getFreeBlocks + + int + count + + + fileDescriptor * + fd + + + + + + + + + blockAllocationTableEntry::attributes + ubixFSInfo::batEntries + ubixFSInfo::blockAllocationTable + blockAllocationTableEntry::nextBlock + syncBat + x1 + ubixFSmkDir + writeUbixFS + + + void + void syncBat + (struct vfs_mountPoint *mp) + syncBat + + struct vfs_mountPoint * + mp + + + + + + + + + ubixFSInfo::blockAllocationTable + vfs_mountPoint::device + device_node::devInfo + vfs_mountPoint::diskLabel + vfs_mountPoint::fsInfo + device_interface::info + vfs_mountPoint::partition + ubixDiskLabel::partitions + device_interface::write + freeBlocks + getFreeBlocks + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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. + +$Log$ +Revision1.22006/12/0514:10:21reddawg +WorkignDistro + +Revision1.1.1.12006/06/0112:46:17reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:39reddawg +nomessage + +Revision1.62004/08/1411:23:02reddawg +Changes + +Revision1.52004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.42004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.32004/05/1915:20:06reddawg +Fixedreferenceproblemsduetochangesindrivesubsystem + +Revision1.22004/04/2802:22:55reddawg +Thisisafiarlylargecommitbutwearestartingtousenewdrivermodel +allaround + +Revision1.1.1.12004/04/1512:07:07reddawg +UbixOSv1.0 + +Revision1.32004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + + +$Id$ + +*****************************************************************************************/ + +#include<ubixfs/ubixfs.h> +#include<vfs/file.h> +#include<vfs/mount.h> + + +voidsyncBat(structvfs_mountPoint*mp){ +structubixFSInfo*fsInfo=mp->fsInfo; +mp->device->devInfo->write(mp->device->devInfo->info,fsInfo->blockAllocationTable,mp->diskLabel->partitions[mp->partition].pOffset,mp->diskLabel->partitions[mp->partition].pBatSize); +} + +intfreeBlocks(intblock,fileDescriptor*fd){ +inti=block; + +structubixFSInfo*fsInfo=fd->mp->fsInfo; + +while(i!=0x0){ +block=fsInfo->blockAllocationTable[i].nextBlock; + +fsInfo->blockAllocationTable[i].attributes=0x0; +fsInfo->blockAllocationTable[i].nextBlock=0x0; + +i=block; +} +syncBat(fd->mp); +return(i); +} + +intgetFreeBlocks(intcount,fileDescriptor*fd){ +uInt32i=0x0; +uInt32x=0x0; + +structubixFSInfo*fsInfo=fd->mp->fsInfo; + +getBlocks: +for(i=1;i<fsInfo->batEntries;i++){ +if(fsInfo->blockAllocationTable[i].attributes==0x0){ +for(x=1;x<(uInt32)count;x++){ +if(fsInfo->blockAllocationTable[i+x].attributes!=0x0){ +gotogetBlocks; +} +} +for(x=i;x<i+count;x++){ +fsInfo->blockAllocationTable[x].attributes=0x1; +if((x+1)==(i+count)){ +fsInfo->blockAllocationTable[x].nextBlock=-1; +} +else{ +fsInfo->blockAllocationTable[x].nextBlock=x+1; +} +} +syncBat(fd->mp); +return(i); +} +} +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/bot_8c.xml b/doc/xml/bot_8c.xml new file mode 100644 index 0000000..617f61f --- /dev/null +++ b/doc/xml/bot_8c.xml @@ -0,0 +1,424 @@ + + + + bot.c + lib/kmalloc.h + lib/kprintf.h + string.h + net/mem.h + net/debug.h + net/def.h + net/api.h + net/stats.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void bot_init + (void) + bot_init + + void + + + + + + + + + bot_thread + NULL + sys_thread_new + + + void + static void bot_thread + (void *arg) + bot_thread + + void * + arg + + + + + + + + + IP4_ADDR + kprintf + netbuf_copy + netbuf_delete + netbuf_len + netconn_connect + netconn_new + netconn_recv + NETCONN_TCP + NULL + bot_init + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<string.h> + +#include"net/mem.h" +#include"net/debug.h" +#include"net/def.h" +#include"net/api.h" +#include"net/stats.h" + +/*UBU +staticvoidsendstr(constchar*str,structnetconn*conn){ +netconn_write(conn,(void*)str,strlen(str),NETCONN_NOCOPY); +} + +staticvoidbotErr(){ +kprintf("ERRROR\n"); +} +*/ + +staticvoidbot_thread(void*arg){ +structnetconn*conn; +intlen; +charbufr[1500]; +structip_addripaddr; +structnetbuf*buf=0x0; + +IP4_ADDR(&ipaddr,216,152,77,10); +conn=netconn_new(NETCONN_TCP); +kprintf("StartingUbixOSBot\n"); +while(1){ +kprintf("[A"); +kprintf("\n\nCONNECT:[%i]\n",netconn_connect(conn,&ipaddr,6667)); +kprintf("B]"); +while(1); +if(buf!=NULL){ +buf=netconn_recv(conn); +netbuf_copy(buf,bufr,1024); +len=netbuf_len(buf); +netbuf_delete(buf); +bufr[len-2]='\0'; +kprintf("Bufr:[%s:%i]",bufr,len); +//sendstr("BLah\n",conn); +} +} +} + +voidbot_init(void){ +sys_thread_new(bot_thread,NULL); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/btree_8cpp.xml b/doc/xml/btree_8cpp.xml new file mode 100644 index 0000000..9d43a7c --- /dev/null +++ b/doc/xml/btree_8cpp.xml @@ -0,0 +1,928 @@ + + + + btree.cpp + stdlib.h + string.h + stdio.h + unistd.h + iostream + assert.h + btree.h + ubixfs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + std + + + VERIFY + x + y + z + n + if ((x) != (y)) { cout << "verify " << z << " failed" << endl; PrintWholeTree(); } + + + + + + + + + + + + + + +//http://www.cs.msstate.edu/~cs2314/global/BTreeAnimation/algorithm.html +#include<stdlib.h> +#include<string.h> +#include<stdio.h> +#include<unistd.h> +#include<iostream> +#include<assert.h> +#include"btree.h" +#include"ubixfs.h" + +usingnamespacestd; +#defineVERIFY(x,y,z,n)if((x)!=(y)){cout<<"verify"<<z<<"failed"<<endl;PrintWholeTree();} + +bTree::bTree(UbixFS*filesystem,fileDescriptor*myfd){ +size_tresult=0; + +root=NULL; +tag=0; +fs=filesystem; +fd=myfd; +header=newbTreeHeader; +assert(header); +memset(header,0,sizeof(bTreeHeader)); +assert(fs); +result=fs->vfs_read(fd,header,0,sizeof(bTreeHeader)); +assert(result==sizeof(bTreeHeader)); + +//Ifthereareanyfilesinthisdir,loadthefirstnodeoftheb+tree +if(header->treeLeafCount!=0){ +assert(header->firstNodeOffset!=0); +root=newbNode; +assert(root); +result=fs->vfs_read(fd,root,header->firstNodeOffset,sizeof(bNode)); +assert(result==sizeof(bNode)); +}//if + +}//bTree::bTree + +bTree::bTree(constchar*key,ubixfsInode*inode){ +/*oncetheFSandthebTreeareinterfaced,thisshouldgoaway*/ +root=NULL; +tag=0; +header=newbTreeHeader; +assert(header); +memset(header,0,sizeof(bTreeHeader)); +header->treeDepth=1; +header->treeWidth=0; +header->treeLeafCount=0; +header->firstDeleted=-1; +header->firstNodeOffset=sizeof(bTreeHeader); + +if(inode==NULL)return; +root=allocEmptyNode(); +if(root==NULL)return; +root->used=1; +root->parent.bPtr=NULL; +root->leaf=true; +root->childCount[1]=1; + +//cout<<"---Creating"<<inode->name<<"@"<<inode<<endl; +strncpy(root->keys[0],key,B_MAX_NAME_LENGTH); +//insertpointertodatapagetotherightofthedata +root->head[1].iPtr=inode; +root->tail[1].iPtr=inode; + +root->present[1]=true; +if(inode!=NULL){ +inode->next.bPtr=inode->prev.bPtr=NULL; +}//if +return; +}//bTree:bTree + +bool +bTree::Insert(constchar*key,ubixfsInode*inode){ +bNode*bnode=root; +ubixfsInode*tmpInode=NULL; +unsignedintcurSlot=0; + +if(inode==NULL)returnfalse; + +//note:thiscodeisrightoutoftheconstructor +if(root==NULL){ +if(header==NULL)header=newbTreeHeader; +assert(header); +memset(header,0,sizeof(bTreeHeader)); +header->treeDepth=1; +header->treeWidth=0; +header->treeLeafCount=0; +header->firstDeleted=-1; +header->firstNodeOffset=sizeof(bTreeHeader); + +root=allocEmptyNode(); +assert(root); +if(root==NULL)returnfalse; + +root->used=1; +root->parent.bPtr=NULL; +root->leaf=true; +root->childCount[1]=1; + +strncpy(root->keys[0],key,B_MAX_NAME_LENGTH); +//insertpointertodatapagetotherightofthedata +root->head[1].iPtr=inode; +root->tail[1].iPtr=inode; + +root->present[1]=true; +inode->next.iPtr=inode->prev.iPtr=NULL; +returntrue; +}//if + +tmpInode=Find(key); +if(tmpInode!=NULL)returnfalse; +//PrintWholeTree(); +//cout<<"Insert("<<key<<")"<<endl; +//Info(bnode); +++header->treeLeafCount; +/* +*Findtheleafnodetheinodegoesinto +*/ +assert(bnode->used); +//cout<<"---Inserting"<<inode->name<<"@"<<inode<<endl; +while(bnode!=NULL&&!bnode->leaf){ +if(strcmp(key,bnode->keys[0])<0){ +bnode=bnode->head[0].bPtr; +}else{ +if(strcmp(key,bnode->keys[bnode->used-1])>=0){ +bnode=bnode->head[bnode->used].bPtr; +}else{ +for(unsignedinti=1;i<bnode->used;i++){ +if(strcmp(key,bnode->keys[i])<0){ +bnode=bnode->head[i].bPtr; +break; +}//if +}//fori +}//else +} +}//while + +/* +* +*/ + +assert(bnode); +if(bnode->leaf!=true)cout<<"leafnode!=true"<<endl; +assert(inode); + +if(strcmp(key,bnode->keys[curSlot=0])<0) +tmpInode=bnode->head[curSlot].iPtr; +else +if(strcmp(key,bnode->keys[(curSlot=bnode->used)-1])>=0) +tmpInode=bnode->head[bnode->used].iPtr; +else{ +for(curSlot=1;curSlot<bnode->used;curSlot++){ +if(strcmp(key,bnode->keys[curSlot])<0){ +tmpInode=bnode->head[curSlot].iPtr; +break; +}//if +}//forcurSlot +tmpInode=bnode->head[curSlot].iPtr; +}//else + + +if(tmpInode==NULL){ +/* +*Thisisthefirstnodeinthisleaf +*/ +bnode->head[curSlot].iPtr=bnode->tail[curSlot].iPtr=inode; +bnode->present[curSlot]=true; + +if(curSlot==0){ + +if(bnode->head[1].iPtr!=NULL){ +ubixfsInode*iptr=bnode->head[1].iPtr; +inode->prev.iPtr=iptr->prev.iPtr; +inode->next.iPtr=iptr; +iptr->prev.iPtr=inode; +if(inode->prev.iPtr!=NULL) +inode->prev.iPtr->next.iPtr=inode; +}else{ +inode->next.iPtr=inode->prev.iPtr=NULL; +}//else + +}else{ +++bnode->used; +}//else + +}else{ +/* +*Addnodetoleafpage.Scanthroughtofindwhereitgoes. +*/ +if(strcmp(key,bnode->head[curSlot].iPtr->name)<0) +{ + +inode->next.iPtr=bnode->head[curSlot].iPtr; +inode->prev.iPtr=inode->next.iPtr->prev.iPtr; +inode->next.iPtr->prev.iPtr=inode; +if(inode->prev.iPtr!=NULL)inode->prev.iPtr->next.iPtr=inode; +bnode->head[curSlot].iPtr=inode; + +}else{ + +if(strcmp(key,bnode->tail[curSlot].iPtr->name)>0){ + +inode->prev.iPtr=bnode->tail[curSlot].iPtr; +inode->next.iPtr=inode->prev.iPtr->next.iPtr; +inode->prev.iPtr->next.iPtr=inode; + +if(inode->next.iPtr!=NULL)inode->next.iPtr->prev.iPtr=inode; +bnode->tail[curSlot].iPtr=inode; + +}else{ + + +ubixfsInode*tmpInode=bnode->head[curSlot].iPtr; +for(unsignedinti=0;i<bnode->childCount[curSlot];i++){ +if(strcmp(key,tmpInode->name)<0){ +inode->next.iPtr=tmpInode; +inode->prev.iPtr=tmpInode->prev.iPtr; +inode->next.iPtr->prev.iPtr=inode; +inode->prev.iPtr->next.iPtr=inode; +break; +}//if +tmpInode=tmpInode->next.iPtr; +}//fori + +}//else + +}//else + +}//else + + + +if(++bnode->childCount[curSlot]==B_MAX_CHILD_COUNT){ + +//cout<<"----beforesplit----"<<endl; +//Info(bnode); + +if(curSlot!=bnode->used){ +intshift=bnode->used-curSlot+1; + +memmove(&bnode->head[curSlot+1], +&bnode->head[curSlot], +sizeof(bnode->head[0])*shift); +memmove(&bnode->tail[curSlot+1], +&bnode->tail[curSlot], +sizeof(bnode->tail[0])*shift); +memmove(&bnode->present[curSlot+1], +&bnode->present[curSlot], +sizeof(bnode->present[0])*shift); +memmove(&bnode->childCount[curSlot+1], +&bnode->childCount[curSlot], +sizeof(bnode->childCount[0])*shift); + +memmove(&bnode->keys[curSlot+1], +&bnode->keys[curSlot], +sizeof(bnode->keys[0])*(shift-1)); +memset(bnode->keys[curSlot],0,B_MAX_NAME_LENGTH); +}else{ +bnode->head[curSlot+1]=bnode->head[curSlot]; +bnode->tail[curSlot+1]=bnode->tail[curSlot]; +bnode->childCount[curSlot+1]=bnode->childCount[curSlot]; +bnode->present[curSlot+1]=bnode->present[curSlot]; +}//else + +ubixfsInode*tmpInode=bnode->head[curSlot].iPtr; + +for(unsignedinti=0;i<(B_MAX_CHILD_COUNT+1)>>1;i++){ +assert(tmpInode); +tmpInode=tmpInode->next.iPtr; +}//fori + +strncpy(bnode->keys[curSlot],tmpInode->name,B_MAX_NAME_LENGTH); +bnode->head[curSlot+1].iPtr=tmpInode; +bnode->tail[curSlot].iPtr=tmpInode->prev.iPtr; +bnode->childCount[curSlot]=(B_MAX_CHILD_COUNT+1)>>1; +bnode->childCount[curSlot+1]-=bnode->childCount[curSlot]; +bnode->present[curSlot]=true; +++header->treeWidth; +if(++bnode->used==B_MAX_KEYS)splitNode(bnode); + +}//ifleafisfull +//Info(bnode); +returntrue; +}//bTree::Insert + +void +bTree::splitNode(bNode*oldNode){ +ubixfsInode*tmpInode=NULL; +assert(oldNode); +if(oldNode==NULL)return; +if(oldNode->used!=B_MAX_KEYS)return; + +bNode*newNode=allocEmptyNode(); +if(newNode==NULL)return; + +unsignedintshift=B_MAX_KEYS>>1; +unsignedintsplitLoc=B_MAX_KEYS-shift; +++shift; +//cout<<"oldNodebeforesplit:"<<endl; +//Info(oldNode); +//cout<<"splitLoc:"<<splitLoc<<endl; +//cout<<"shift:"<<shift<<endl; + +newNode->used=oldNode->used=B_MAX_KEYS>>1; +newNode->parent.bPtr=oldNode->parent.bPtr; +newNode->leaf=oldNode->leaf; + +//cout<<"newNode->used:"<<newNode->used<<endl; +//cout<<"oldNode->used:"<<oldNode->used<<endl; + +memcpy(&newNode->keys[0], +&oldNode->keys[splitLoc], +sizeof(newNode->keys[0])*(shift-1)); + +memset(&oldNode->keys[splitLoc],0,sizeof(newNode->keys[0])*(shift-1)); + +memcpy(&newNode->present[0], +&oldNode->present[splitLoc], +sizeof(newNode->present[0])*shift); + +memset(&oldNode->present[splitLoc],0,sizeof(newNode->present[0])*shift); + +memcpy(&newNode->head[0], +&oldNode->head[splitLoc], +sizeof(newNode->head[0])*shift); + +memset(&oldNode->head[splitLoc],0, +sizeof(newNode->head[0])*shift); + +memcpy(&newNode->tail[0], +&oldNode->tail[splitLoc], +sizeof(newNode->tail[0])*shift); + +memset(&oldNode->tail[splitLoc],0, +sizeof(newNode->tail[0])*shift); + +memcpy(&newNode->childCount[0], +&oldNode->childCount[splitLoc], +sizeof(newNode->childCount[0])*shift); + +memset(&oldNode->childCount[splitLoc],0, +sizeof(newNode->childCount[0])*shift); + +if(!newNode->leaf){ +for(unsignedinti=0;i<=newNode->used;i++){ +newNode->head[i].bPtr->parent.bPtr=newNode; +}//fori +}//ifnewNodeisn'taleaf + +tmpInode=GetFirstNode(newNode); +assert(tmpInode); + +if(oldNode==root){ +//allocateanewrootnode +++header->treeDepth; +root=allocEmptyNode(); +oldNode->parent.bPtr=root; +newNode->parent.bPtr=root; +//strncpy(root->keys[0],newNode->keys[0],B_MAX_NAME_LENGTH); +strncpy(root->keys[0],tmpInode->name,B_MAX_NAME_LENGTH); +root->head[0].bPtr=oldNode; +root->tail[0].bPtr=root->tail[1].bPtr=NULL; +root->head[1].bPtr=newNode; +root->used=1; +root->leaf=false; +root->present[0]=root->present[1]=true; +root->childCount[0]=root->childCount[1]=0; +//root->childCount[0]=oldNode->used; +//root->childCount[1]=newNode->used; + +//cout<<"parent"<<endl; +//Info(newNode->parent); +//cout<<"oldNode"<<endl; +//Info(oldNode); +//cout<<"-----"<<endl; +//cout<<"newNode"<<endl; +//Info(newNode); +//cout<<"-----"<<endl; + +}else{ +insertNode(newNode->parent.bPtr,tmpInode->name,newNode); +//if(oldNode->parent->used==B_MAX_KEYS)splitNode(oldNode->parent); +}//else +return; +}//bTree::splitNode + +void +bTree::insertNode(bNode*node,constchar*key,bNode*headPtr){ +unsignedintcurSlot=0; +if(node==NULL||key==NULL)return; + +if(strcmp(key,node->keys[node->used-1])>=0){ +curSlot=node->used; +memset(node->keys[curSlot],0,B_MAX_NAME_LENGTH); +strncpy(node->keys[curSlot],key,B_MAX_NAME_LENGTH); +node->head[curSlot+1].bPtr=headPtr; +node->tail[curSlot+1].bPtr=NULL; +node->present[curSlot+1]=true; +node->childCount[node->used]=0;//maybe? + +}else{ + +for(curSlot=0;curSlot<node->used;curSlot++){ +if(strcmp(key,node->keys[curSlot])<0)break; +}//for + +/* +*notethatthereisonemoreitemforeverythingbutkeys +*So,maketheshiftcount+1andjustsubtractitfromthekeyshift +*later +*/ +intshift=node->used-curSlot+1; + +memmove(&node->head[curSlot+1], +&node->head[curSlot], +sizeof(node->head[0])*shift); +memmove(&node->tail[curSlot+1], +&node->tail[curSlot], +sizeof(node->tail[0])*shift); +memmove(&node->present[curSlot+1], +&node->present[curSlot], +sizeof(node->present[0])*shift); +memmove(&node->childCount[curSlot+1], +&node->childCount[curSlot], +sizeof(node->childCount[0])*shift); + +memmove(&node->keys[curSlot+1], +&node->keys[curSlot], +sizeof(node->keys[0])*(shift-1)); + +memset(node->keys[curSlot],0,B_MAX_NAME_LENGTH); +strncpy(node->keys[curSlot],key,B_MAX_NAME_LENGTH); +node->head[curSlot+1].bPtr=headPtr; +node->tail[curSlot+1].bPtr=NULL; +node->present[curSlot+1]=true; +//node->childCount[node->used]=?; +}//else +if(++node->used==B_MAX_KEYS)splitNode(node); +return; +}//bTree::insertNode + +bNode* +bTree::allocEmptyNode(void){ +bNode*newNode=newbNode; + +memset(newNode,0,sizeof(bNode)); +newNode->magic1=B_NODE_MAGIC_1; +newNode->magic2=B_NODE_MAGIC_2; +newNode->parent.bPtr=NULL; +newNode->tag=++tag;//thiswillstartat1(0istheheadernode) +returnnewNode; +}//bTree::allocEmptyNode + +void +bTree::Info(constbNode*node){ +ubixfsInode*inode=NULL; +if(node==NULL||root==NULL)return; +cout<<node<<"|"<<node->parent.bPtr<<endl; +for(unsignedinti=0;i<=node->used;i++){ +inode=node->head[i].iPtr; +//cout<<"("<<node->childCount[i]<<")"; +for(unsignedintk=0;k<node->childCount[i];k++){ +cout<<"["<<inode->name<<"]"; +inode=inode->next.iPtr; +}//fork +if(i!=node->used)cout<<"{"<<node->keys[i]<<"}"; +}//fori +cout<<endl; +return; +#if0 +for(unsignedinti=0;i<node->used;i++){ +cout<<"keys["<<i<<"]:"<<node->keys[i]<<""; +}//fori +cout<<endl; +cout<<"node->used:"<<node->used<<endl; +cout<<"leaf:"<<node->leaf<<endl; +for(unsignedinti=0;i<=node->used;i++){ +inode=(ubixfsInode*)node->head[i]; +cout<<"node->childCount["<<i<<"]:"<<node->childCount[i]<<endl; +for(unsignedintj=0;j<node->childCount[i];j++){ +assert(inode); +cout<<"["<<i<<"].["<<j<<"]->"<<inode->name<<endl; +inode=inode->next; +}//forj +}//fori +#endif +}//bTree::Info + +void +bTree::Info(void){ +ubixfsInode*inode=NULL; + +cout<<"treedepth:"<<header->treeDepth<<endl; +cout<<"treewidth:"<<header->treeWidth<<endl; +cout<<"treeleafcount:"<<header->treeLeafCount<<endl; +cout<<"tag:"<<tag<<endl; + +if(root==NULL)return; + +for(unsignedinti=0;i<=root->used;i++){ +cout<<"CC["<<i<<"]:"<<root->childCount[i]<<""; +}//fori + +cout<<endl; +for(unsignedinti=0;i<=root->used;i++){ +cout<<"CH["<<i<<"]:"<<root->head[i].bPtr<<""; +}//fori + +cout<<endl; +for(unsignedinti=0;i<=root->used;i++){ +cout<<"CT["<<i<<"]:"<<root->tail[i].bPtr<<""; +}//fori +cout<<endl; +for(unsignedinti=0;i<root->used;i++){ +cout<<"keys["<<i<<"]:"<<root->keys[i]<<""; +}//fori +cout<<endl; + +cout<<"root->used:"<<root->used<<endl; +for(unsignedinti=0;i<=root->used;i++){ +inode=root->head[i].iPtr; +cout<<"root->childCount["<<i<<"]:"<<root->childCount[i]<<endl; +if(root->leaf){ +cout<<"rootcontainsleafnode"<<endl; +for(unsignedintj=0;j<root->childCount[i];j++){ +assert(inode); +cout<<"["<<i<<"].["<<j<<"]->"<<inode->name<<endl; +inode=inode->next.iPtr; +}//forj +}//ifroot->leaf +}//fori +}//bTree::Info + +void +bTree::Print(void){ +ubixfsInode*node=GetFirstNode(); +while(node!=NULL){ +cout<<node->name<<endl; +node=node->next.iPtr; +} +}//bTree::Print + +ubixfsInode* +bTree::Find(constchar*key){ +/* +ubixfsInode*tmp=GetFirstNode(); +while(tmp!=NULL){ +if(strcmp(tmp->name,key)==0)returntmp; +tmp=tmp->next.iPtr; +} +returnNULL; +*/ +returntreeSearch(root,key); +}//bTree::Find + +ubixfsInode* +bTree::inodeSearch(ubixfsInode*inode,constchar*key){ +if(inode==NULL||key==NULL)returnNULL; +intresult=strcmp(inode->name,key); +if(result==0)returninode; + +if(result<0){ +inode=inode->next.iPtr; +while(inode!=NULL&&((result=strcmp(inode->name,key))<0)){ +inode=inode->next.iPtr; +}//while +}else{ +inode=inode->prev.iPtr; +while(inode!=NULL&&((result=strcmp(inode->name,key))>0)){ +inode=inode->prev.iPtr; +}//while +}//else +return(result==0?inode:NULL); +}//bTree::inodeSearch + +ubixfsInode* +bTree::treeSearch(bNode*bnode,constchar*key){ + +if(bnode==NULL||key==NULL||bnode->used==0)returnNULL; + +if(bnode->leaf) +returninodeSearch(GetFirstNode(bnode),key); + +if(strcmp(key,bnode->keys[0])<0){ +returntreeSearch(bnode->head[0].bPtr,key); +}//if + +if(strcmp(key,bnode->keys[bnode->used-1])>=0){ +returntreeSearch(bnode->head[bnode->used].bPtr,key); +}//if + +for(unsignedinti=1;i<bnode->used;i++){ +if(strcmp(key,bnode->keys[i])<0){ +returntreeSearch(bnode->head[i].bPtr,key); +}//if +}//fori + +returnNULL; +}//bTree::treeSearch + +ubixfsInode* +bTree::GetFirstNode(void){ +returnGetFirstNode(root); +}//bTree::GetFirstNode + +ubixfsInode* +bTree::GetFirstNode(bNode*node){ +bNode*tmpNode=node; + +if(tmpNode==NULL)returnNULL; + +while(!tmpNode->leaf){ +for(unsignedinti=0;i<tmpNode->used;i++){ +if(tmpNode->head[i].bPtr!=NULL){ +tmpNode=tmpNode->head[i].bPtr; +break; +}//if +}//fori +}//while + +for(unsignedinti=0;i<tmpNode->used;i++){ +if(tmpNode->head[i].iPtr!=NULL)returntmpNode->head[i].iPtr; +}//fori +returnNULL; +}//bTree::GetFirstNode + +bNode* +bTree::findLeafNode(bNode*node,constchar*key){ +assert(node); +assert(key); +if(node==NULL||key==NULL)returnNULL; +assert(node->used); +if(node->leaf)returnnode; + +if(strcmp(key,node->keys[0])<0) +returnfindLeafNode(node->head[0].bPtr,key); + +if(strcmp(key,node->keys[node->used-1])>=0) +returnfindLeafNode(node->head[node->used].bPtr,key); + +for(unsignedinti=1;i<node->used;i++){ +if(strcmp(key,node->keys[i])<0) +returnfindLeafNode(node->head[i].bPtr,key); +}//fori + +returnNULL; +}//bTree::findLeafNode + +void +bTree::saveNode(FILE*fd,bNode*node,void*tmpPtr){ + +bNode*ptr=(bNode*)tmpPtr; +assert(tmpPtr); +assert(fd); +assert(node); +cout<<"writingtag:"<<node->tag<<endl; + +memcpy(tmpPtr,node,sizeof(bNode)); + +if(node->parent.bPtr!=NULL) +ptr->parent.offset=node->parent.bPtr->tag*sizeof(bNode); +else +ptr->parent.offset=0; + +for(unsignedinti=0;i<=node->used;i++){ +bNode*bPtr=node->head[i].bPtr; + +if(bPtr!=NULL) +ptr->head[i].offset=bPtr->tag*sizeof(bNode); +else +ptr->head[i].offset=~0; +ptr->present[i]=false; +}//fori + +if(node->leaf){ + +for(unsignedinti=0;i<=node->used;i++){ +//ubixfsInode*inode=node->head[i].iPtr; +//mjiif(inode!=NULL)tmp->head[i]=inode-> +}//fori +}else{ + +for(unsignedinti=0;i<=node->used;i++){ + +if(node->head[i].bPtr!=NULL)saveNode(fd,node->head[i].bPtr,tmpPtr); + +}//fori + +}//else + +return; +}//bTree::saveNode + +bool +bTree::Save(constchar*filename){ +ubixfsInode*uPtr=NULL; +if(filename==NULL)returnfalse; +FILE*fd=NULL; +if((fd=fopen(filename,"wb+"))==NULL)returnfalse; + +cout<<"tags:"<<tag<<endl; +lseek(fileno(fd),tag*sizeof(bNode),SEEK_END); + +header->firstNodeOffset=sizeof(bNode); +header->firstDeleted=-1; +void*tmpPtr=malloc(sizeof(bNode)); +assert(tmpPtr); +uPtr=(ubixfsInode*)tmpPtr; +memset(tmpPtr,0,sizeof(bNode)); +fwrite(header,sizeof(bTreeHeader),1,fd); +saveNode(fd,root,tmpPtr); + +fclose(fd); +free(tmpPtr); +returntrue; +}//bTree::Save + +bool +bTree::Load(constchar*filename){ +if(filename==NULL)returnfalse; +returntrue; +}//bTree::Load + +bool +bTree::Delete(constchar*key){ + +if(key==NULL)returnfalse; +returntrue; +}//bTree::Delete + +bool +bTree::Verify(void){ +ubixfsInode*node=GetFirstNode(); +if(node==NULL)returntrue; + +while(node!=NULL){ +ubixfsInode*next=node->next.iPtr; +if(next!=NULL){ +//cout<<node->name<<"::"<<node->next->name<<":::"<<strcmp(node->name,node->next->name)<<endl; +if(strcmp(node->name,next->name)>0)returnfalse; +} +node=next; +}//while +returntrue; +}//bTree::Verify + +void +bTree::Print(bNode*node){ +if(node==NULL)return; +Info(node); +if(!node->leaf) +for(unsignedinti=0;i<=node->used;i++){ +Print(node->head[i].bPtr); +}//fori +}//bTree::Print + +void +bTree::PrintWholeTree(void){ +Print(root); +}//bTree::PrintWholeTree; + +bTree::~bTree(void){ +cout<<"treedepth:"<<header->treeDepth<<endl; +cout<<"treewidth:"<<header->treeWidth<<endl; +cout<<"treeleafcount:"<<header->treeLeafCount<<endl; +}//bTree::~bTree + + + + diff --git a/doc/xml/btree_8h.xml b/doc/xml/btree_8h.xml new file mode 100644 index 0000000..e331d6d --- /dev/null +++ b/doc/xml/btree_8h.xml @@ -0,0 +1,257 @@ + + + + btree.h + stdio.h + ubixfs.h + btreeheader.h + file.h + src/sys/ubixfsv2/btree.cpp + src/sys/ubixfsv2/main.cpp + src/sys/ubixfsv2/ubixfs.cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bNode + bTree + + + B_MAX_CHILD_COUNT + 4 + + + + + + + + + + B_MAX_KEYS + 15 + + + + + + + + bTree::insertNode + bTree::splitNode + + + B_MAX_NAME_LENGTH + 240 + + + + + + + + bTree::bTree + bTree::Insert + bTree::insertNode + bTree::splitNode + + + B_NODE_MAGIC_1 + 0xDEADBEEF + + + + + + + + bTree::allocEmptyNode + + + B_NODE_MAGIC_2 + 0x1900BABE + + + + + + + + bTree::allocEmptyNode + + + + + + + +#ifndefBTREE_H +#defineBTREE_H + +#include<stdio.h> + +#include"ubixfs.h" +#include"btreeheader.h" +#include"file.h" + +#defineB_NODE_MAGIC_10xDEADBEEF +#defineB_NODE_MAGIC_20x1900BABE + +#defineB_MAX_KEYS15 +#defineB_MAX_NAME_LENGTH240 +#defineB_MAX_CHILD_COUNT4 + +//ifanyofthesestructschangetheyhavetobeupdatedintheformat +//utilitytoo + +typedefstructbNode{ +uInt32magic1__attribute__((packed)); +uInt32used__attribute__((packed)); +uPtrparent__attribute__((packed)); +uInt64tag__attribute__((packed)); +charkeys[B_MAX_KEYS][B_MAX_NAME_LENGTH]__attribute__((packed)); +boolpresent[B_MAX_KEYS+1]__attribute__((packed)); +uPtrhead[B_MAX_KEYS+1]__attribute__((packed)); +uPtrtail[B_MAX_KEYS+1]__attribute__((packed)); +uInt32childCount[B_MAX_KEYS+1]__attribute__((packed)); +uInt32magic2__attribute__((packed)); +boolleaf__attribute__((packed)); +charreserved[131]__attribute__((packed)); +}bNode;//bNode + +structubixfsInode; + +classbTree{ +protected: +bNode*root; +UbixFS*fs; +bTreeHeader*header; +fileDescriptor*fd; +uInt32tag; +ubixfsInode*treeSearch(bNode*,constchar*); +ubixfsInode*inodeSearch(ubixfsInode*,constchar*); +voidsplitNode(bNode*); +bNode*allocEmptyNode(void); +voidinsertNode(bNode*,constchar*,bNode*); +bNode*findLeafNode(bNode*,constchar*); +voidPrint(bNode*); +voidsaveNode(FILE*,bNode*,void*); +public: +bTree(constchar*,ubixfsInode*); +bTree(UbixFS*,fileDescriptor*); +ubixfsInode*Find(constchar*); +ubixfsInode*GetFirstNode(void); +ubixfsInode*GetFirstNode(bNode*); +boolDelete(constchar*); +voidInfo(void); +voidInfo(constbNode*); +boolInsert(constchar*,ubixfsInode*); +boolSave(constchar*); +boolLoad(constchar*); +voidPrint(void); +voidPrintWholeTree(void); +boolVerify(void); +~bTree(void); +friendclassUbixFS; +};//bTree +#endif//!BTREE_H + + + + diff --git a/doc/xml/btreeheader_8h.xml b/doc/xml/btreeheader_8h.xml new file mode 100644 index 0000000..94c1375 --- /dev/null +++ b/doc/xml/btreeheader_8h.xml @@ -0,0 +1,58 @@ + + + + btreeheader.h + src/sys/ubixfsv2/btree.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bTreeHeader + + + + + +#ifndefBTREEHEADER_H +#defineBTREEHEADER_H + +typedefstructbTreeHeader{ +uInt32treeDepth; +uInt32treeWidth; +uInt32treeLeafCount; +off_tfirstNodeOffset;//usedwhentreeisondisk +off_tfirstDeleted;//usedtopointtoanemptynode +charpaddington[4068]; +}bTreeHeader;//bTreeHeader + +#endif/*!BTREEHEADER_H*/ + + + + diff --git a/doc/xml/buf_8h.xml b/doc/xml/buf_8h.xml new file mode 100644 index 0000000..46384bb --- /dev/null +++ b/doc/xml/buf_8h.xml @@ -0,0 +1,138 @@ + + + + buf.h + ubixos/types.h + vfs/vfs.h + sys/device.h + src/sys/ufs/ffs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + buf + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_BUF_H +#define_BUF_H + +#include<ubixos/types.h> +#include<vfs/vfs.h> +#include<sys/device.h> + +structbuf{ +}; + + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/cc_8h.xml b/doc/xml/cc_8h.xml new file mode 100644 index 0000000..f9dc03b --- /dev/null +++ b/doc/xml/cc_8h.xml @@ -0,0 +1,480 @@ + + + + cc.h + src/sys/include/net/arch.h + src/sys/include/net/err.h + src/sys/include/net/memp.h + src/sys/include/net/stats.h + src/sys/include/net/sys.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PACK_STRUCT_BEGIN + + + + + + + + + + PACK_STRUCT_END + + + + + + + + + + PACK_STRUCT_FIELD + x + x __attribute__((packed)) + + + + + + + + + + PACK_STRUCT_STRUCT + __attribute__((packed)) + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_CC_H__ +#define__ARCH_CC_H__ + +#definePACK_STRUCT_FIELD(x)x__attribute__((packed)) +#definePACK_STRUCT_STRUCT__attribute__((packed)) +#definePACK_STRUCT_BEGIN +#definePACK_STRUCT_END + +#endif/*__ARCH_CC_H__*/ + + + + diff --git a/doc/xml/cdefs_8h.xml b/doc/xml/cdefs_8h.xml new file mode 100644 index 0000000..a3d77c2 --- /dev/null +++ b/doc/xml/cdefs_8h.xml @@ -0,0 +1,124 @@ + + + + cdefs.h + ubixos/types.h + src/sys/lib/strtol.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + __dead2 + __attribute__((__noreturn__)) + + + + + + + + + + _CDRES_H + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_CDEFS_H +#define_CDRES_H + +#include<ubixos/types.h> + +#define__dead2__attribute__((__noreturn__)) + + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:51reddawg +nomessage + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/classDiskFS.xml b/doc/xml/classDiskFS.xml new file mode 100644 index 0000000..13f5acd --- /dev/null +++ b/doc/xml/classDiskFS.xml @@ -0,0 +1,162 @@ + + + + DiskFS + FileSystemAbstract + vfs.h + + + + DiskFS::DiskFS + (const char *) + DiskFS + + const char * + filename + + + + + + + + + diskFile + fopen + + + int + int DiskFS::read + (void *, long, long) + read + + void * + data + + + long + offset + + + long + size + + + + + + + + + diskFile + fread + fseek + NULL + SEEK_SET + + + int + int DiskFS::write + (const void *, long, long) + write + + const void * + data + + + long + offset + + + long + size + + + + + + + + + diskFile + fseek + fwrite + NULL + SEEK_SET + + + virtual + virtual DiskFS::~DiskFS + (void) + ~DiskFS + + void + + + + + + + + + + + + + FILE * + FILE* DiskFS::diskFile + + diskFile + + + + + + + + DiskFS + read + write + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiskFSdiskFile + DiskFSDiskFS + DiskFSread + DiskFSread + DiskFSwrite + DiskFSwrite + DiskFS~DiskFS + DiskFS~FileSystemAbstract + + + diff --git a/doc/xml/classFileSystemAbstract.xml b/doc/xml/classFileSystemAbstract.xml new file mode 100644 index 0000000..68ac59c --- /dev/null +++ b/doc/xml/classFileSystemAbstract.xml @@ -0,0 +1,92 @@ + + + + FileSystemAbstract + DiskFS + vfs.h + + + int + virtual int FileSystemAbstract::read + (char *, long, long)=0 + read + + char * + + + long + + + long + + + + + + + + + + + int + virtual int FileSystemAbstract::write + (char *, long, long)=0 + write + + char * + + + long + + + long + + + + + + + + + + + virtual + virtual FileSystemAbstract::~FileSystemAbstract + (void) + ~FileSystemAbstract + + void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FileSystemAbstractread + FileSystemAbstractwrite + FileSystemAbstract~FileSystemAbstract + + + diff --git a/doc/xml/classUbixFS.xml b/doc/xml/classUbixFS.xml new file mode 100644 index 0000000..3d3682a --- /dev/null +++ b/doc/xml/classUbixFS.xml @@ -0,0 +1,719 @@ + + + + UbixFS + vfs_abstract + ubixfs.h + + + + UbixFS::UbixFS + (device_t *) + UbixFS + + device_t * + dev + + + + + + + + + dev + freeBlockList + NULL + root + superBlock + + + + UbixFS::UbixFS + (void) + UbixFS + + void + + + + + + + + + freeBlockList + NULL + root + superBlock + + + int + int UbixFS::vfs_format + (device_t *) + vfs_format + vfs_format + + device_t * + dev + + + + + + + + + assert + dev + bTreeHeader::firstDeleted + bTreeHeader::firstNodeOffset + getgid + getuid + INODE_DIRECTORY + memset + NULL + strcpy + bTreeHeader::treeDepth + bTreeHeader::treeLeafCount + bTreeHeader::treeWidth + UBIXFS_INODE_MAGIC + UBIXFS_MAGIC1 + UBIXFS_MAGIC2 + UBIXFS_MAGIC3 + main + + + int + int UbixFS::vfs_init + (void) + vfs_init + vfs_init + + void + + + + + + + + + assert + bTree + freeBlockList + fileDescriptor::inode + memset + NULL + printSuperBlock + root + strcmp + superBlock + UBIXFS_CLEAN + UBIXFS_MAGIC1 + UBIXFS_MAGIC2 + UBIXFS_MAGIC3 + main + + + int + int UbixFS::vfs_mkdir + (const char *, mode_t) + vfs_mkdir + vfs_mkdir + + const char * + path + + + mode_t + mode + + + + + + + + + assert + fileDescriptor::inode + INODE_DIRECTORY + MAX_FILENAME_LENGTH + memset + mknod + name + NULL + root + strlen + strncpy + main + + + void * + void * UbixFS::vfs_mknod + (const char *, mode_t) + vfs_mknod + vfs_mknod + + const char * + path + + + mode_t + mode + + + + + + + + + mknod + + + int + int UbixFS::vfs_open + (const char *, fileDescriptor *, int,...) + vfs_open + vfs_open + + const char * + filename + + + fileDescriptor * + fd + + + int + flags + + + ... + + + + + + + + + fileDescriptor::inode + NULL + fileDescriptor::offset + fileDescriptor::size + + + size_t + size_t UbixFS::vfs_read + (fileDescriptor *, void *, off_t, size_t) + vfs_read + vfs_read + + fileDescriptor * + fd + + + void * + data + + + off_t + offset + + + size_t + size + + + + + + + + + assert + fileDescriptor::inode + NULL + NUM_DIRECT_BLOCKS + superBlock + + + int + int UbixFS::vfs_stop + (void) + vfs_stop + vfs_stop + + void + + + + + + + + + freeBlockList + fileDescriptor::inode + NULL + root + superBlock + vfs_sync + main + + + int + int UbixFS::vfs_sync + (void) + vfs_sync + vfs_sync + + void + + + + + + + + + freeBlockList + NULL + superBlock + vfs_stop + + + size_t + size_t UbixFS::vfs_write + (fileDescriptor *, void *, off_t, size_t) + vfs_write + vfs_write + + fileDescriptor * + fd + + + void * + data + + + off_t + offset + + + size_t + size + + + + + + + + + assert + getFreeBlock + fileDescriptor::inode + NULL + NUM_DIRECT_BLOCKS + superBlock + + + virtual + UbixFS::~UbixFS + (void) + ~UbixFS + + void + + + + + + + + + freeBlockList + + + + + blockRun + blockRun UbixFS::get8FreeBlocks + (uInt32) + get8FreeBlocks + + uInt32 + AG + + + + + + + + + freeBlockList + NULL + superBlock + + + blockRun + blockRun UbixFS::getFreeBlock + (void) + getFreeBlock + + void + + + + + + + + + getNextAG + getFreeBlock + mknod + vfs_write + + + blockRun + blockRun UbixFS::getFreeBlock + (uInt32) + getFreeBlock + + uInt32 + AG + + + + + + + + + freeBlockList + NULL + superBlock + + + blockRun + blockRun UbixFS::getFreeBlock + (blockRun) + getFreeBlock + + blockRun + ibr + + + + + + + + + freeBlockList + getFreeBlock + NULL + superBlock + + + uInt32 + uInt32 UbixFS::getNextAG + (void) + getNextAG + + void + + + + + + + + + superBlock + getFreeBlock + + + void * + void * UbixFS::mknod + (const char *, ubixfsInode *, mode_t) + mknod + + const char * + filename + + + ubixfsInode * + parent + + + mode_t + mode + + + + + + + + + assert + getFreeBlock + getgid + getuid + MAX_FILENAME_LENGTH + memset + NULL + strncpy + superBlock + UBIXFS_INODE_MAGIC + vfs_mkdir + vfs_mknod + + + void + void UbixFS::printFreeBlockList + (uInt32) + printFreeBlockList + + uInt32 + AG + + + + + + + + + freeBlockList + NULL + superBlock + + + void + void UbixFS::printSuperBlock + (void) + printSuperBlock + + void + + + + + + + + + superBlock + vfs_init + + + void + void UbixFS::setFreeBlock + (blockRun) + setFreeBlock + + blockRun + ibr + + + + + + + + + freeBlockList + NULL + superBlock + + + + + signed char * + signed char* UbixFS::freeBlockList + + freeBlockList + + + + + + + + get8FreeBlocks + getFreeBlock + printFreeBlockList + setFreeBlock + UbixFS + vfs_init + vfs_stop + vfs_sync + ~UbixFS + + + fileDescriptor * + fileDescriptor* UbixFS::root + + root + + + + + + + + UbixFS + vfs_init + vfs_mkdir + vfs_stop + + + diskSuperBlock * + diskSuperBlock* UbixFS::superBlock + + superBlock + + + + + + + + get8FreeBlocks + getFreeBlock + getNextAG + mknod + printFreeBlockList + printSuperBlock + setFreeBlock + UbixFS + vfs_init + vfs_read + vfs_stop + vfs_sync + vfs_write + + + + + friend class + friend class bTree + + bTree + + + + + + + + vfs_init + + + + + + + + + + + + + + + + + + + + + + + + + + superBlock + + + root + + + + + + + + + + + prev +next + + + + + + + prev +next + + + device + + + + + + + + + + UbixFSbTree + UbixFSdevice + UbixFSfreeBlockList + UbixFSget8FreeBlocks + UbixFSgetFreeBlock + UbixFSgetFreeBlock + UbixFSgetFreeBlock + UbixFSgetNextAG + UbixFSmknod + UbixFSnext + UbixFSprev + UbixFSprintFreeBlockList + UbixFSprintSuperBlock + UbixFSroot + UbixFSsetFreeBlock + UbixFSsuperBlock + UbixFSUbixFS + UbixFSUbixFS + UbixFSvfs_close + UbixFSvfs_closedir + UbixFSvfs_format + UbixFSvfs_init + UbixFSvfs_mkdir + UbixFSvfs_mknod + UbixFSvfs_open + UbixFSvfs_opendir + UbixFSvfs_purge + UbixFSvfs_read + UbixFSvfs_readdir + UbixFSvfs_rename + UbixFSvfs_rmdir + UbixFSvfs_stop + UbixFSvfs_sync + UbixFSvfs_unlink + UbixFSvfs_write + UbixFS~UbixFS + UbixFS~vfs_abstract + + + diff --git a/doc/xml/classbTree.xml b/doc/xml/classbTree.xml new file mode 100644 index 0000000..0459a05 --- /dev/null +++ b/doc/xml/classbTree.xml @@ -0,0 +1,775 @@ + + + + bTree + btree.h + + + + bTree::bTree + (UbixFS *, fileDescriptor *) + bTree + + UbixFS * + filesystem + + + fileDescriptor * + myfd + + + + + + + + + assert + fd + bTreeHeader::firstNodeOffset + header + memset + NULL + root + tag + bTreeHeader::treeLeafCount + + + + bTree::bTree + (const char *, ubixfsInode *) + bTree + + const char * + key + + + ubixfsInode * + inode + + + + + + + + + allocEmptyNode + assert + B_MAX_NAME_LENGTH + bTreeHeader::firstDeleted + bTreeHeader::firstNodeOffset + header + memset + NULL + root + strncpy + tag + bTreeHeader::treeDepth + bTreeHeader::treeLeafCount + bTreeHeader::treeWidth + + + bool + bool bTree::Delete + (const char *) + Delete + + const char * + key + + + + + + + + + NULL + + + ubixfsInode * + ubixfsInode * bTree::Find + (const char *) + Find + + const char * + key + + + + + + + + + root + treeSearch + Insert + + + ubixfsInode * + ubixfsInode * bTree::GetFirstNode + (bNode *) + GetFirstNode + + bNode * + node + + + + + + + + + NULL + + + ubixfsInode * + ubixfsInode * bTree::GetFirstNode + (void) + GetFirstNode + + void + + + + + + + + + root + main + Print + splitNode + treeSearch + Verify + + + void + void bTree::Info + (const bNode *) + Info + + const bNode * + node + + + + + + + + + assert + NULL + root + + + void + void bTree::Info + (void) + Info + + void + + + + + + + + + assert + header + NULL + root + tag + bTreeHeader::treeDepth + bTreeHeader::treeLeafCount + bTreeHeader::treeWidth + Print + + + bool + bool bTree::Insert + (const char *, ubixfsInode *) + Insert + + const char * + key + + + ubixfsInode * + inode + + + + + + + + + allocEmptyNode + assert + B_MAX_NAME_LENGTH + Find + bTreeHeader::firstDeleted + bTreeHeader::firstNodeOffset + header + memset + NULL + root + strcmp + strncpy + bTreeHeader::treeDepth + bTreeHeader::treeLeafCount + bTreeHeader::treeWidth + main + + + bool + bool bTree::Load + (const char *) + Load + + const char * + filename + + + + + + + + + NULL + + + void + void bTree::Print + (void) + Print + + void + + + + + + + + + GetFirstNode + NULL + Print + PrintWholeTree + + + void + void bTree::PrintWholeTree + (void) + PrintWholeTree + + void + + + + + + + + + Print + root + + + bool + bool bTree::Save + (const char *) + Save + + const char * + filename + + + + + + + + + assert + fclose + bTreeHeader::firstDeleted + bTreeHeader::firstNodeOffset + fopen + fwrite + header + memset + NULL + root + saveNode + tag + main + + + bool + bool bTree::Verify + (void) + Verify + + void + + + + + + + + + GetFirstNode + fileSystem::next + NULL + strcmp + + + + bTree::~bTree + (void) + ~bTree + + void + + + + + + + + + header + bTreeHeader::treeDepth + bTreeHeader::treeLeafCount + bTreeHeader::treeWidth + + + + + bNode * + bNode * bTree::allocEmptyNode + (void) + allocEmptyNode + + void + + + + + + + + + B_NODE_MAGIC_1 + B_NODE_MAGIC_2 + memset + NULL + tag + bTree + Insert + splitNode + + + bNode * + bNode * bTree::findLeafNode + (bNode *, const char *) + findLeafNode + + bNode * + node + + + const char * + key + + + + + + + + + assert + NULL + strcmp + + + ubixfsInode * + ubixfsInode * bTree::inodeSearch + (ubixfsInode *, const char *) + inodeSearch + + ubixfsInode * + inode + + + const char * + key + + + + + + + + + NULL + strcmp + treeSearch + + + void + void bTree::insertNode + (bNode *, const char *, bNode *) + insertNode + + bNode * + node + + + const char * + key + + + bNode * + headPtr + + + + + + + + + B_MAX_KEYS + B_MAX_NAME_LENGTH + memset + NULL + splitNode + strcmp + strncpy + splitNode + + + void + void bTree::Print + (bNode *) + Print + + bNode * + node + + + + + + + + + Info + NULL + Print + + + void + void bTree::saveNode + (FILE *, bNode *, void *) + saveNode + + FILE * + fd + + + bNode * + node + + + void * + tmpPtr + + + + + + + + + assert + memcpy + NULL + Save + + + void + void bTree::splitNode + (bNode *) + splitNode + + bNode * + oldNode + + + + + + + + + allocEmptyNode + assert + B_MAX_KEYS + B_MAX_NAME_LENGTH + GetFirstNode + header + insertNode + memcpy + memset + NULL + root + strncpy + bTreeHeader::treeDepth + insertNode + + + ubixfsInode * + ubixfsInode * bTree::treeSearch + (bNode *, const char *) + treeSearch + + bNode * + bnode + + + const char * + key + + + + + + + + + GetFirstNode + inodeSearch + NULL + strcmp + Find + + + + + fileDescriptor * + fileDescriptor* bTree::fd + + fd + + + + + + + + bTree + + + UbixFS * + UbixFS* bTree::fs + + fs + + + + + + + + + + bTreeHeader * + bTreeHeader* bTree::header + + header + + + + + + + + bTree + Info + Insert + Save + splitNode + ~bTree + + + bNode * + bNode* bTree::root + + root + + + + + + + + bTree + Find + GetFirstNode + Info + Insert + PrintWholeTree + Save + splitNode + + + uInt32 + uInt32 bTree::tag + + tag + + + + + + + + allocEmptyNode + bTree + Info + Save + + + + + friend class + friend class UbixFS + + UbixFS + + + + + + + + + + + + + + + + + + + + + superBlock + + + root + + + + + + + + + + + + + + + + + + + prev +next + + + + + + + prev +next + + + device + + + + + + + + + + + fs + + + fd + + + root + + + header + + + + + + bTreeallocEmptyNode + bTreebTree + bTreebTree + bTreeDelete + bTreefd + bTreeFind + bTreefindLeafNode + bTreefs + bTreeGetFirstNode + bTreeGetFirstNode + bTreeheader + bTreeInfo + bTreeInfo + bTreeinodeSearch + bTreeInsert + bTreeinsertNode + bTreeLoad + bTreePrint + bTreePrint + bTreePrintWholeTree + bTreeroot + bTreeSave + bTreesaveNode + bTreesplitNode + bTreetag + bTreetreeSearch + bTreeUbixFS + bTreeVerify + bTree~bTree + + + diff --git a/doc/xml/classogDisplay__UbixOS.xml b/doc/xml/classogDisplay__UbixOS.xml new file mode 100644 index 0000000..0582669 --- /dev/null +++ b/doc/xml/classogDisplay__UbixOS.xml @@ -0,0 +1,412 @@ + + + + ogDisplay_UbixOS + ogDisplay_UbixOS.h + + + bool + virtual bool ogDisplay_UbixOS::ogAlias + (ogSurface &, uInt32, uInt32, uInt32, uInt32) + ogAlias + + ogSurface & + + + uInt32 + + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + bool + virtual bool ogDisplay_UbixOS::ogClone + (ogSurface &) + ogClone + + ogSurface & + + + + + + + + + + + void + virtual void ogDisplay_UbixOS::ogCopyPalette + (ogSurface &) + ogCopyPalette + + ogSurface & + + + + + + + + + + + bool + virtual bool ogDisplay_UbixOS::ogCreate + (uInt32, uInt32, ogPixelFmt) + ogCreate + + uInt32 + + + uInt32 + + + ogPixelFmt + + + + + + + + + + + + ogDisplay_UbixOS::ogDisplay_UbixOS + (void) + ogDisplay_UbixOS + + void + + + + + + + + + + + bool + virtual bool ogDisplay_UbixOS::ogLoadPalette + (const char *) + ogLoadPalette + + const char * + + + + + + + + + + + void + virtual void ogDisplay_UbixOS::ogSetPalette + (uInt8, uInt8, uInt8, uInt8, uInt8) + ogSetPalette + + uInt8 + + + uInt8 + + + uInt8 + + + uInt8 + + + uInt8 + + + + + + + + + + + void + virtual void ogDisplay_UbixOS::ogSetPalette + (uInt8, uInt8, uInt8, uInt8) + ogSetPalette + + uInt8 + + + uInt8 + + + uInt8 + + + uInt8 + + + + + + + + + + + void + virtual void ogDisplay_UbixOS::ogSetPalette + (const ogRGBA8[]) + ogSetPalette + + const + ogRGBA8 + [] + + + + + + + + + + + virtual + virtual ogDisplay_UbixOS::~ogDisplay_UbixOS + (void) + ~ogDisplay_UbixOS + + void + + + + + + + + + + + + + uInt16 + uInt16 ogDisplay_UbixOS::FindMode + (uInt32, uInt32, uInt32) + FindMode + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + void + void ogDisplay_UbixOS::GetModeInfo + (uInt16) + GetModeInfo + + uInt16 + + + + + + + + + + + void + void ogDisplay_UbixOS::GetVESAInfo + (void) + GetVESAInfo + + void + + + + + + + + + + + void + void ogDisplay_UbixOS::SetMode + (uInt16) + SetMode + + uInt16 + + + + + + + + + + + void + void ogDisplay_UbixOS::SetPal + (void) + SetPal + + void + + + + + + + + + + + + + uInt32 + uInt32 ogDisplay_UbixOS::activePage + + activePage + + + + + + + + + + ogModeInfo * + ogModeInfo* ogDisplay_UbixOS::modeInfo + + modeInfo + + + + + + + + + + void * + void* ogDisplay_UbixOS::pages[2] + [2] + pages + + + + + + + + + + ogVESAInfo * + ogVESAInfo* ogDisplay_UbixOS::VESAInfo + + VESAInfo + + + + + + + + + + uInt32 + uInt32 ogDisplay_UbixOS::visualPage + + visualPage + + + + + + + + + + + + + + + + + + + + + + + VESAInfo + + + modeInfo + + + + + + + + + + ogDisplay_UbixOSactivePage + ogDisplay_UbixOSFindMode + ogDisplay_UbixOSGetModeInfo + ogDisplay_UbixOSGetVESAInfo + ogDisplay_UbixOSmodeInfo + ogDisplay_UbixOSogAlias + ogDisplay_UbixOSogClone + ogDisplay_UbixOSogCopyPalette + ogDisplay_UbixOSogCreate + ogDisplay_UbixOSogDisplay_UbixOS + ogDisplay_UbixOSogLoadPalette + ogDisplay_UbixOSogSetPalette + ogDisplay_UbixOSogSetPalette + ogDisplay_UbixOSogSetPalette + ogDisplay_UbixOSpages + ogDisplay_UbixOSSetMode + ogDisplay_UbixOSSetPal + ogDisplay_UbixOSVESAInfo + ogDisplay_UbixOSvisualPage + ogDisplay_UbixOS~ogDisplay_UbixOS + + + diff --git a/doc/xml/classogDisplay__VESA.xml b/doc/xml/classogDisplay__VESA.xml new file mode 100644 index 0000000..5bdabd9 --- /dev/null +++ b/doc/xml/classogDisplay__VESA.xml @@ -0,0 +1,640 @@ + + + + ogDisplay_VESA + ogDisplay_VESA.h + + + bool + virtual bool ogDisplay_VESA::ogAlias + (ogSurface &, uInt32, uInt32, uInt32, uInt32) + ogAlias + + ogSurface & + + + uInt32 + + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + bool + virtual bool ogDisplay_VESA::ogAvail + (void) + ogAvail + + void + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogClear + (uInt32) + ogClear + + uInt32 + + + + + + + + + + + bool + virtual bool ogDisplay_VESA::ogClone + (ogSurface &) + ogClone + + ogSurface & + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogCopyLineFrom + (uInt32, uInt32, void *, uInt32) + ogCopyLineFrom + + uInt32 + + + uInt32 + + + void * + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogCopyLineTo + (uInt32, uInt32, const void *, uInt32) + ogCopyLineTo + + uInt32 + + + uInt32 + + + const void * + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogCopyPal + (ogSurface &) + ogCopyPal + + ogSurface & + + + + + + + + + + + bool + virtual bool ogDisplay_VESA::ogCreate + (uInt32, uInt32, ogPixelFmt) + ogCreate + + uInt32 + + + uInt32 + + + ogPixelFmt + + + + + + + + + + + + ogDisplay_VESA::ogDisplay_VESA + (void) + ogDisplay_VESA + + void + + + + + + + + + + + uInt32 + virtual uInt32 ogDisplay_VESA::ogGetPixel + (int32, int32) + ogGetPixel + + int32 + + + int32 + + + + + + + + + + + void * + virtual void* ogDisplay_VESA::ogGetPtr + (uInt32, uInt32) + ogGetPtr + + uInt32 + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogHLine + (int32, int32, int32, uInt32) + ogHLine + + int32 + + + int32 + + + int32 + + + uInt32 + + + + + + + + + + + bool + virtual bool ogDisplay_VESA::ogLoadPal + (const char *) + ogLoadPal + + const char * + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogSetPixel + (int32, int32, uInt32) + ogSetPixel + + int32 + + + int32 + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogSetRGBPalette + (uInt8, uInt8, uInt8, uInt8) + ogSetRGBPalette + + uInt8 + + + uInt8 + + + uInt8 + + + uInt8 + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogVFlip + (void) + ogVFlip + + void + + + + + + + + + + + void + virtual void ogDisplay_VESA::ogVLine + (int32, int32, int32, uInt32) + ogVLine + + int32 + + + int32 + + + int32 + + + uInt32 + + + + + + + + + + + virtual + virtual ogDisplay_VESA::~ogDisplay_VESA + (void) + ~ogDisplay_VESA + + void + + + + + + + + + + + + + uInt16 + uInt16 ogDisplay_VESA::findMode + (uInt32, uInt32, uInt32) + findMode + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + void + void ogDisplay_VESA::getModeInfo + (uInt16) + getModeInfo + + uInt16 + + + + + + + + + + + void + void ogDisplay_VESA::getVESAInfo + (void) + getVESAInfo + + void + + + + + + + + + + + uInt32 + virtual uInt32 ogDisplay_VESA::rawGetPixel + (uInt32, uInt32) + rawGetPixel + + uInt32 + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::rawLine + (uInt32, uInt32, uInt32, uInt32, uInt32) + rawLine + + uInt32 + + + uInt32 + + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + void + virtual void ogDisplay_VESA::rawSetPixel + (uInt32, uInt32, uInt32) + rawSetPixel + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + + + void + void ogDisplay_VESA::setMode + (uInt16) + setMode + + uInt16 + + + + + + + + + + + void + void ogDisplay_VESA::setPal + (void) + setPal + + void + + + + + + + + + + + + + bool + bool ogDisplay_VESA::InGraphics + + InGraphics + + + + + + + + + + TMode_Rec * + TMode_Rec* ogDisplay_VESA::ModeRec + + ModeRec + + + + + + + + + + uInt16 + uInt16 ogDisplay_VESA::ScreenSelector + + ScreenSelector + + + + + + + + + + TVESA_Rec * + TVESA_Rec* ogDisplay_VESA::VESARec + + VESARec + + + + + + + + + + + + + + + + + + + + + + + + + + + ModeRec + + + VESARec + + + + + + ogDisplay_VESAfindMode + ogDisplay_VESAgetModeInfo + ogDisplay_VESAgetVESAInfo + ogDisplay_VESAInGraphics + ogDisplay_VESAModeRec + ogDisplay_VESAogAlias + ogDisplay_VESAogAvail + ogDisplay_VESAogClear + ogDisplay_VESAogClone + ogDisplay_VESAogCopyLineFrom + ogDisplay_VESAogCopyLineTo + ogDisplay_VESAogCopyPal + ogDisplay_VESAogCreate + ogDisplay_VESAogDisplay_VESA + ogDisplay_VESAogGetPixel + ogDisplay_VESAogGetPtr + ogDisplay_VESAogHLine + ogDisplay_VESAogLoadPal + ogDisplay_VESAogSetPixel + ogDisplay_VESAogSetRGBPalette + ogDisplay_VESAogVFlip + ogDisplay_VESAogVLine + ogDisplay_VESArawGetPixel + ogDisplay_VESArawLine + ogDisplay_VESArawSetPixel + ogDisplay_VESAScreenSelector + ogDisplay_VESAsetMode + ogDisplay_VESAsetPal + ogDisplay_VESAVESARec + ogDisplay_VESA~ogDisplay_VESA + + + diff --git a/doc/xml/classvfs__abstract.xml b/doc/xml/classvfs__abstract.xml new file mode 100644 index 0000000..91a543c --- /dev/null +++ b/doc/xml/classvfs__abstract.xml @@ -0,0 +1,448 @@ + + + + vfs_abstract + UbixFS + fsAbstract.h + + + int + virtual int vfs_abstract::vfs_close + (fileDescriptor *) + vfs_close + + fileDescriptor * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_closedir + (DIR *) + vfs_closedir + + DIR * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_format + (device_t *) + vfs_format + vfs_format + + device_t * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_init + (void) + vfs_init + vfs_init + + void + + + + + + + + + + + int + virtual int vfs_abstract::vfs_mkdir + (const char *, mode_t) + vfs_mkdir + vfs_mkdir + + const char * + + + mode_t + + + + + + + + + + + void * + virtual void* vfs_abstract::vfs_mknod + (const char *, mode_t) + vfs_mknod + vfs_mknod + + const char * + + + mode_t + + + + + + + + + NULL + + + int + virtual int vfs_abstract::vfs_open + (const char *, fileDescriptor *, int,...) + vfs_open + vfs_open + + const char * + + + fileDescriptor * + + + int + + + ... + + + + + + + + + + + int + virtual int vfs_abstract::vfs_opendir + (DIR *, const char *) + vfs_opendir + + DIR * + + + const char * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_purge + (void) + vfs_purge + + void + + + + + + + + + + + size_t + virtual size_t vfs_abstract::vfs_read + (fileDescriptor *, void *, off_t, size_t) + vfs_read + vfs_read + + fileDescriptor * + + + void * + + + off_t + + + size_t + + + + + + + + + + + int + virtual int vfs_abstract::vfs_readdir + (DIR *, struct dirent *) + vfs_readdir + + DIR * + + + struct dirent * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_rename + (const char *, const char *) + vfs_rename + + const char * + + + const char * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_rmdir + (const char *) + vfs_rmdir + + const char * + + + + + + + + + + + int + virtual int vfs_abstract::vfs_stop + (void) + vfs_stop + vfs_stop + + void + + + + + + + + + + + int + virtual int vfs_abstract::vfs_sync + (void) + vfs_sync + vfs_sync + + void + + + + + + + + + + + int + virtual int vfs_abstract::vfs_unlink + (const char *) + vfs_unlink + + const char * + + + + + + + + + + + size_t + virtual size_t vfs_abstract::vfs_write + (fileDescriptor *, void *, off_t, size_t) + vfs_write + vfs_write + + fileDescriptor * + + + void * + + + off_t + + + size_t + + + + + + + + + + + virtual + virtual vfs_abstract::~vfs_abstract + (void) + ~vfs_abstract + + void + + + + + + + + + + + + + device_t * + device_t* vfs_abstract::device + + device + + + + + + + + + + vfs_abstract * + vfs_abstract* vfs_abstract::next + + next + + + + + + + + + + vfs_abstract * + vfs_abstract* vfs_abstract::prev + + prev + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + prev +next + + + device + + + + + + + + + + vfs_abstractdevice + vfs_abstractnext + vfs_abstractprev + vfs_abstractvfs_close + vfs_abstractvfs_closedir + vfs_abstractvfs_format + vfs_abstractvfs_init + vfs_abstractvfs_mkdir + vfs_abstractvfs_mknod + vfs_abstractvfs_open + vfs_abstractvfs_opendir + vfs_abstractvfs_purge + vfs_abstractvfs_read + vfs_abstractvfs_readdir + vfs_abstractvfs_rename + vfs_abstractvfs_rmdir + vfs_abstractvfs_stop + vfs_abstractvfs_sync + vfs_abstractvfs_unlink + vfs_abstractvfs_write + vfs_abstract~vfs_abstract + + + diff --git a/doc/xml/combine.xslt b/doc/xml/combine.xslt new file mode 100644 index 0000000..abdd9ac --- /dev/null +++ b/doc/xml/combine.xslt @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/doc/xml/compound.xsd b/doc/xml/compound.xsd new file mode 100644 index 0000000..f08e5e6 --- /dev/null +++ b/doc/xml/compound.xsd @@ -0,0 +1,782 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/xml/copyvirtualspace_8c.xml b/doc/xml/copyvirtualspace_8c.xml new file mode 100644 index 0000000..eb368ef --- /dev/null +++ b/doc/xml/copyvirtualspace_8c.xml @@ -0,0 +1,414 @@ + + + + copyvirtualspace.c + vmm/vmm.h + sys/kern_sysctl.h + ubixos/spinlock.h + ubixos/kpanic.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* vmmCopyVirtualSpace + (pidType pid) + vmmCopyVirtualSpace + + pidType + pid + + + + + + + + + adjustCowCounter + cvsSpinLock + kpanic + memset + PAGE_COW + PAGE_DEFAULT + PAGE_STACK + pageEntries + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + vmm_getPhysicalAddr + vmmGetFreeKernelPage + vmmUnmapPage + x1 + x1000 + fork_copyProcess + + + + + spinLock_t + spinLock_t cvsSpinLock + + cvsSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + vmmCopyVirtualSpace + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<sys/kern_sysctl.h> +#include<ubixos/spinlock.h> +#include<ubixos/kpanic.h> +#include<string.h> + +staticspinLock_tcvsSpinLock=SPIN_LOCK_INITIALIZER; + +/************************************************************************ + +Function:void*vmmCopyVirtualSpace(pidTypepid); + +Description:CreatesACopyOfAVirtualSpaceAndSetAllNONKernel +SpaceToCOWForAForkThisWillAlsoAlterTheParents +VMSpaceToMakeThatCOWAsWell + +Notes: + +08/02/02-AddedPassingOfpidTypepidSoWeCanBetterKeepTrackOf +WhichTaskHasWhichPhysicalPages + +************************************************************************/ +void* +vmmCopyVirtualSpace(pidTypepid) +{ +void*newPageDirectoryAddress=0x0; +uInt32*parentPageDirectory=0x0,*newPageDirectory=0x0; +uInt32*parentPageTable=0x0,*newPageTable=0x0; +uInt32*parentStackPage=0x0,*newStackPage=0x0; +uInt16x=0,i=0,s=0; + +spinLock(&cvsSpinLock); + +/*SetAddressOfParentPageDirectory*/ +parentPageDirectory=(uInt32*)parentPageDirAddr; +/*AllocateANewPageForTheNewPageDirectory*/ +if((newPageDirectory=(uInt32*)vmmGetFreeKernelPage(pid,1))==0x0) +kpanic("Error:newPageDirectory==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); + +/*SetnewPageDirectoryAddressToTheNewlyCreatedPageDirectoriesPage*/ +newPageDirectoryAddress=(void*)vmm_getPhysicalAddr((uInt32)newPageDirectory); + +/*FirstSetUpAFlushedPageDirectory*/ +memset(newPageDirectory,0x0,0x1000); + +/*MapTheTop1GBRegionOfTheVMSpace*/ +for(x=768;x<pageEntries;x++){ +newPageDirectory[x]=parentPageDirectory[x]; +} + +/* +*NowForTheFunStuffForPageTables1-766WeMustMapTheseAndSet +*ThePermissionsOnEveryMappedPagesToCOWThisWillConserveMemory +*BecauseTheTwoVMSpacesWillBeSharingSomePages +*/ +for(x=0x1;x<=766;x++){ +/*IfPageTableExistsMapIt*/ +if(parentPageDirectory[x]!=0){ +/*SetParentToPropperPageTable*/ +parentPageTable=(uInt32*)(tablesBaseAddress+(0x1000*x)); +/*AllocateANewPageTable*/ +if((newPageTable=(uInt32*)vmmGetFreeKernelPage(pid,1))==0x0) +kpanic("Error:newPageTable==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); + +/*SetParentAndNewPagesToCOW*/ +for(i=0;i<pageEntries;i++){ + +/*IfPageIsMapped*/ +if((parentPageTable[i]&0xFFFFF000)!=0x0){ +/*CheckToSeeIfItsAStackPage*/ +if(((uInt32)parentPageTable[i]&PAGE_STACK)==PAGE_STACK){ +/*AllocANewPageForThisStackPage*/ +if((newStackPage=(uInt32*)vmmGetFreeKernelPage(pid,1))==0x0) +kpanic("Error:newStackPage==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); + +/*SetPointerToParentsStackPage*/ +parentStackPage=(uInt32*)(((1024*4096)*x)+(4096*i)); + +/*CopyTheTackByteForByte(IShouldFindAFasterWay)*/ +for(s=0x0;s<pageEntries;s++){ +newStackPage[s]=parentStackPage[s]; +} +/*InsertNewStackIntoPageTable*/ +newPageTable[i]=(vmm_getPhysicalAddr((uInt32)newStackPage)|PAGE_DEFAULT|PAGE_STACK); +/*UnmapFromKernelSpace*/ +vmmUnmapPage((uInt32)newStackPage,1); +} +else{ +/*SetPageToCOWInParentAndChildSpace*/ +newPageTable[i]=(((uInt32)parentPageTable[i]&0xFFFFF000)|(PAGE_DEFAULT|PAGE_COW)); +/*IncrementTheCOWCounterForThisPage*/ +if(((uInt32)parentPageTable[i]&PAGE_COW)==PAGE_COW){ +adjustCowCounter(((uInt32)parentPageTable[i]&0xFFFFF000),1); +} +else{ +adjustCowCounter(((uInt32)parentPageTable[i]&0xFFFFF000),2); +parentPageTable[i]=newPageTable[i]; +} +} +} +else{ +newPageTable[i]=(uInt32)0x0; +} +} + +/*PutNewPageTableIntoNewPageDirectory*/ +newPageDirectory[x]=(vmm_getPhysicalAddr((uInt32)newPageTable)|PAGE_DEFAULT); +/*UnmapPageFromKernelSpaceButKeepItMarkedAsNotAvail*/ +vmmUnmapPage((uInt32)newPageTable,1); +}else{ +newPageDirectory[x]=(uInt32)0x0; +} +} +/* +*AllocateANewPageForTheTheFirstPageTableWhereWeWillMapThe +*LowerRegion +*/ +if((newPageTable=(uInt32*)vmmGetFreeKernelPage(pid,1))==0x0) +kpanic("Error:newPageTable==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); + +/*FlushThePageFromGarbageInMemory*/ +memset(newPageTable,0x0,0x1000); + +/*MapThisIntoThePageDirectory*/ +newPageDirectory[0]=(vmm_getPhysicalAddr((uInt32)newPageTable)|PAGE_DEFAULT); +/*SetAddressOfParentsPageTable*/ +parentPageTable=(uInt32*)tablesBaseAddress; +/*MapTheFirst1MBWorthOfPages*/ +for(x=0;x<(pageEntries/4);x++){ +newPageTable[x]=parentPageTable[x]; +} +/*MapTheNext3MBWorthOfPagesButMakeThemCOW*/ +for(x=(pageEntries/4)+1;x<pageEntries;x++){ +/*IfPageIsAvaiableMapIt*/ +if((parentPageTable[x]&0xFFFFF000)!=0x0){ +/*SetPagesToCOW*/ +newPageTable[x]=(((uInt32)parentPageTable[x]&0xFFFFF000)|(PAGE_DEFAULT|PAGE_COW)); +/*IncrementTheCOWCounterForThisPage*/ +if(((uInt32)parentPageTable[x]&PAGE_COW)==PAGE_COW){ +adjustCowCounter(((uInt32)parentPageTable[x]&0xFFFFF000),1); +}else{ +adjustCowCounter(((uInt32)parentPageTable[x]&0xFFFFF000),2); +parentPageTable[x]=newPageTable[x]; +} +}else{ +newPageTable[x]=(uInt32)0x0; +} +} +/*SetVirtualMappingForPageDirectory*/ +newPageTable[256]=(vmm_getPhysicalAddr((uInt32)newPageDirectory)|PAGE_DEFAULT); + +/* +*NowTheFunStuffBuildTheInitialVirtualPageSpaceSoWeDon'tHave +*ToWorryAboutMappingThemInLaterHowEverI'mConcernedThisMay +*BecomeASecurityIssue +*/ +/*FirstLetsUnmapThePreviouslyAllocatedPageTable*/ +vmmUnmapPage((uInt32)newPageTable,1); +/*AllocateANewPageTable*/ +if((newPageTable=(uInt32*)vmmGetFreeKernelPage(pid,1))==0x0) +kpanic("Error:newPageTable==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); +/*FirstSetOurPageDirectoryToContainThis*/ +newPageDirectory[767]=vmm_getPhysicalAddr((uInt32)newPageTable)|PAGE_DEFAULT; +/*NowLetsBuildThePageTable*/ +for(x=0;x<pageEntries;x++){ +newPageTable[x]=newPageDirectory[x]; +} +/*NowWeAreDoneSoLetsUnmapThisPage*/ +vmmUnmapPage((uInt32)newPageTable,1); +/*NowWeAreDoneWithThePageDirectorySoLetsUnmapThatToo*/ +vmmUnmapPage((uInt32)newPageDirectory,1); + +spinUnlock(&cvsSpinLock); + +/*ReturnPhysicalAddressOfPageDirectory*/ +return(newPageDirectoryAddress); +} + +/*** +$Log$ +Revision1.42006/12/0514:10:21reddawg +WorkignDistro + +Revision1.32006/12/0105:12:35reddawg +We'realmostthere...:) + +Revision1.22006/11/0619:10:12reddawg +LotsOfUpdates...Stillhavingissueswithbrk(); + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:49reddawg +nomessage + +Revision1.72004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.62004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.52004/07/2506:04:00reddawg +Lastofmyfixesforthemorning + +Revision1.42004/07/2022:29:55reddawg +assert:remadeassert + +Revision1.32004/07/1901:58:12reddawg +vmmCopyVirtualSpace:cleaneduponefullpagememoryleakwewerestillusingoldsysIDoverpid + +Revision1.22004/06/1512:35:05reddawg +CleanedUp + +Revision1.1.1.12004/04/1512:06:51reddawg +UbixOSv1.0 + +Revision1.142004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/cpu_8h.xml b/doc/xml/cpu_8h.xml new file mode 100644 index 0000000..698e2e5 --- /dev/null +++ b/doc/xml/cpu_8h.xml @@ -0,0 +1,365 @@ + + + + cpu.h + src/sys/include/net/arch.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BYTE_ORDER + LITTLE_ENDIAN + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_CPU_H__ +#define__ARCH_CPU_H__ + +#ifndefBYTE_ORDER +#defineBYTE_ORDERLITTLE_ENDIAN +#endif/*BYTE_ORDER*/ + +#endif/*__ARCH_CPU_H__*/ + + + + diff --git a/doc/xml/createvirtualspace_8c.xml b/doc/xml/createvirtualspace_8c.xml new file mode 100644 index 0000000..342c213 --- /dev/null +++ b/doc/xml/createvirtualspace_8c.xml @@ -0,0 +1,243 @@ + + + + createvirtualspace.c + vmm/vmm.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* vmmCreateVirtualSpace + (pid_t pid) + vmmCreateVirtualSpace + + pid_t + pid + + + + + + + + + PAGE_DEFAULT + pageEntries + parentPageDirAddr + tablesBaseAddress + vmm_getPhysicalAddr + vmmGetFreePage + vmmUnmapPage + execFile + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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. + +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:50reddawg +nomessage + +Revision1.22004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.1.1.12004/04/1512:06:51reddawg +UbixOSv1.0 + +Revision1.82004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + + +$Id$ + +*****************************************************************************************/ + +#include<vmm/vmm.h> + + +/************************************************************************ + +Function:void*vmmCreateVirtualSpace(pid_t); +Description:CreatesAVirtualSpaceForANewTask +Notes: + +07/30/02-ThisIsGoingToCreateANewVMSpaceHoweverItsGoingTo +ShareTheSameTop1GBSpaceWithTheKernelsVMAndLower +1MBOfVMSpaceWithTheKernel + +07/30/02-NoteThisIsGoingToGetTheTop1GigAndLower1MBRegion +FromTheCurrentlyLoadedPageDirectoryThisIsSafeBecause +AllVMSpacesWillShareTheseRegions + +07/30/02-NoteIRealizedAMistakeTheFirstPageTableWillNeedToBe +ACopyButThePageTablesForTheTop1GBWillNotReasonFor +ThisIsThatWeJustShareTheFirst1MBInTheFirstPageTable +SoWeWillJustSharePhysicalPages. + +08/02/02-AddedPassingOfpid_tpidForBetterTrackingOfWhoHasWhich +SetOfPages + +************************************************************************/ +void* +vmmCreateVirtualSpace(pid_tpid) +{ +void*newPageDirectoryAddress=0x0; +uInt32*parentPageDirectory=0x0,*newPageDirectory=0x0; +uInt32*parentPageTable=0x0,*newPageTable=0x0; +intx=0; + +/*SetAddressOfParentPageDirectory*/ +parentPageDirectory=(uInt32*)parentPageDirAddr; +/*AllocateANewPageForTheNewPageDirectory*/ +newPageDirectory=(uInt32*)vmmGetFreePage(pid); +/*SetnewPageDirectoryAddressToTheNewlyCreatedPageDirectoriesPage*/ +newPageDirectoryAddress=(void*)vmm_getPhysicalAddr((uInt32)newPageDirectory); +/*FirstSetUpAFlushedPageDirectory*/ +for(x=0;x<pageEntries;x++){ +(uInt32)newPageDirectory[x]=(uInt32)0x0; +} +/*MapTheTop1GBRegionOfTheVMSpace*/ +for(x=768;x<pageEntries;x++){ +newPageDirectory[x]=parentPageDirectory[x]; +} +/* +*AllocateANewPageForTheTheFirstPageTableWhereWeWillMapThe +*LowerRegion +*/ +newPageTable=(uInt32*)vmmGetFreePage(pid); +/*FlushThePageFromGarbageInMemory*/ +for(x=0;x<pageEntries;x++){ +(uInt32)newPageTable[x]=(uInt32)0x0; +} +/*MapThisIntoThePageDirectory*/ +newPageDirectory[0]=(vmm_getPhysicalAddr((uInt32)newPageTable)|PAGE_DEFAULT); +/*SetAddressOfParentsPageTable*/ +parentPageTable=(uInt32*)tablesBaseAddress; +/*MapTheFirst1MBWorthOfPages*/ +for(x=0;x<(pageEntries/4);x++){ +newPageTable[x]=parentPageTable[x]; +} +/*SetVirtualMappingForPageDirectory*/ +newPageTable[256]=(vmm_getPhysicalAddr((uInt32)newPageDirectory)|PAGE_DEFAULT); + +/* +*NowTheFunStuffBuildTheInitialVirtualPageSpaceSoWeDon'tHave +*ToWorryAboutMappingThemInLaterHowEverI'mConcernedThisMay +*BecomeASecurityIssue +*/ +/*FirstLetsUnmapThePreviouslyAllocatedPageTable*/ +vmmUnmapPage((uInt32)newPageTable,1); +/*AllocateANewPageTable*/ +newPageTable=(uInt32*)vmmGetFreePage(pid); +/*FirstSetOurPageDirectoryToContainThis*/ +newPageDirectory[767]=vmm_getPhysicalAddr((uInt32)newPageTable)|PAGE_DEFAULT; +/*NowLetsBuildThePageTable*/ +for(x=0;x<pageEntries;x++){ +newPageTable[x]=newPageDirectory[x]; +} +/*NowWeAreDoneSoLetsUnmapThisPage*/ +vmmUnmapPage((uInt32)newPageTable,1); +/*NowWeAreDoneWithThePageDirectorySoLetsUnmapThatToo*/ +vmmUnmapPage((uInt32)newPageDirectory,1); +/*ReturnPhysicalAddressOfPageDirectory*/ +return(newPageDirectoryAddress); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/debug_8h.xml b/doc/xml/debug_8h.xml new file mode 100644 index 0000000..bd6b17f --- /dev/null +++ b/doc/xml/debug_8h.xml @@ -0,0 +1,905 @@ + + + + debug.h + src/sys/include/net/err.h + src/sys/include/net/mem.h + src/sys/include/net/memp.h + src/sys/include/net/pbuf.h + src/sys/net/api/api_lib.c + src/sys/net/api/api_msg.c + src/sys/net/api/sockets.c + src/sys/net/api/tcpip.c + src/sys/net/net/bot.c + src/sys/net/net/shell.c + src/sys/net/net/sys_arch.c + src/sys/net/netif/arp.c + src/sys/net/netif/ethernetif.c + src/sys/net/netif/loopif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + API_LIB_DEBUG + 0 + + + + + + + + netconn_recv + netconn_send + netconn_write + + + API_MSG_DEBUG + 0 + + + + + + + + do_accept + do_listen + + + ARP_DEBUG + 0 + + + + + + + + arp_ip_input + arp_tmr + + + ASSERT + x + y + + + + + + + + + + DEBUGF + debug + x + + + + + + + + arp_ip_input + arp_tmr + do_accept + do_listen + lwip_close + lwip_send + lwip_socket + lwip_write + netconn_recv + netconn_send + netconn_write + + + DELIF_DEBUG + 0 + + + + + + + + + + DEMO_DEBUG + 0 + + + + + + + + + + DHCP_DEBUG + 0 + + + + + + + + + + DROPIF_DEBUG + 0 + + + + + + + + + + ICMP_DEBUG + 0 + + + + + + + + + + INET_DEBUG + 0 + + + + + + + + + + IP_DEBUG + 0 + + + + + + + + + + IP_REASS_DEBUG + 0 + + + + + + + + + + MEM_DEBUG + 0 + + + + + + + + + + MEMP_DEBUG + 0 + + + + + + + + + + NETIF_DEBUG + 0 + + + + + + + + + + PBUF_DEBUG + 0 + + + + + + + + + + SOCKETS_DEBUG + 0 + + + + + + + + lwip_close + lwip_send + lwip_socket + lwip_write + + + SYS_DEBUG + 0 + + + + + + + + + + TAPIF_DEBUG + 0 + + + + + + + + + + TCP_CWND_DEBUG + 0 + + + + + + + + + + TCP_DEBUG + 0 + + + + + + + + + + TCP_FR_DEBUG + 0 + + + + + + + + + + TCP_INPUT_DEBUG + 0 + + + + + + + + + + TCP_OUTPUT_DEBUG + 0 + + + + + + + + + + TCP_QLEN_DEBUG + 0 + + + + + + + + + + TCP_REXMIT_DEBUG + 0 + + + + + + + + + + TCP_RST_DEBUG + 0 + + + + + + + + + + TCP_RTO_DEBUG + 0 + + + + + + + + + + TCP_WND_DEBUG + 0 + + + + + + + + + + TCPDUMP_DEBUG + 0 + + + + + + + + + + TCPIP_DEBUG + 0 + + + + + + + + + + TUNIF_DEBUG + 0 + + + + + + + + + + UDP_DEBUG + 0 + + + + + + + + + + UNIXIF_DEBUG + 0 + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_DEBUG_H__ +#define__LWIP_DEBUG_H__ + +#ifdefLWIP_DEBUG + +#defineASSERT(x,y)if(!(y)){printf("Assertion\"%s\"failedatline%din%s\n",\ +x,__LINE__,__FILE__);fflush(NULL);abort();} + +/*Thesedefinescontroltheamountofdebuggingoutput:*/ +#defineMEM_TRACKING + +#defineDEMO_DEBUG1 + +#defineARP_DEBUG0 + +#defineNETIF_DEBUG1 +#definePBUF_DEBUG0 +#defineDELIF_DEBUG0 +#defineDROPIF_DEBUG0 +#defineTUNIF_DEBUG0 +#defineUNIXIF_DEBUG0 +#defineTAPIF_DEBUG0 + +#defineAPI_LIB_DEBUG0 +#defineAPI_MSG_DEBUG0 +#defineSOCKETS_DEBUG1 +#defineICMP_DEBUG0 +#defineINET_DEBUG0 +#defineIP_DEBUG0 +#defineIP_REASS_DEBUG1 +#defineMEM_DEBUG0 +#defineMEMP_DEBUG0 +#defineSYS_DEBUG0 +#defineTCP_DEBUG0 +#defineTCP_INPUT_DEBUG0 +#defineTCP_FR_DEBUG0 +#defineTCP_RTO_DEBUG0 +#defineTCP_REXMIT_DEBUG0 +#defineTCP_CWND_DEBUG0 +#defineTCP_WND_DEBUG0 +#defineTCP_OUTPUT_DEBUG0 +#defineTCP_RST_DEBUG0 +#defineTCP_QLEN_DEBUG0 +#defineUDP_DEBUG0 +#defineTCPIP_DEBUG0 +#defineTCPDUMP_DEBUG0 +#defineDHCP_DEBUG1 + +#include<stdio.h> +#defineDEBUGF(debug,x)do{if(debug){printfx;}}while(0) + + +#else/*LWIP_DEBUG*/ + +/*DEBUGisnotdefined,sowedefinenullmacrosforASSERTandDEBUGF*/ + +#defineASSERT(x,y) +#defineDEBUGF(debug,x) + +/*Andwedefinethosetobezero:*/ + +#defineDEMO_DEBUG0 +#defineARP_DEBUG0 +#defineNETIF_DEBUG0 +#definePBUF_DEBUG0 +#defineDELIF_DEBUG0 +#defineDROPIF_DEBUG0 +#defineTUNIF_DEBUG0 +#defineUNIXIF_DEBUG0 +#defineTAPIF_DEBUG0 +#defineAPI_LIB_DEBUG0 +#defineAPI_MSG_DEBUG0 +#defineSOCKETS_DEBUG0 +#defineICMP_DEBUG0 +#defineINET_DEBUG0 +#defineIP_DEBUG0 +#defineIP_REASS_DEBUG0 +#defineMEM_DEBUG0 +#defineMEMP_DEBUG0 +#defineSYS_DEBUG0 +#defineTCP_DEBUG0 +#defineTCP_INPUT_DEBUG0 +#defineTCP_FR_DEBUG0 +#defineTCP_RTO_DEBUG0 +#defineTCP_REXMIT_DEBUG0 +#defineTCP_CWND_DEBUG0 +#defineTCP_WND_DEBUG0 +#defineTCP_OUTPUT_DEBUG0 +#defineTCP_RST_DEBUG0 +#defineTCP_QLEN_DEBUG0 +#defineUDP_DEBUG0 +#defineTCPIP_DEBUG0 +#defineTCPDUMP_DEBUG0 +#defineDHCP_DEBUG0 + +#endif/*LWIP_DEBUG*/ + + +#endif/*__LWIP_DEBUG_H__*/ + + + + + + + + + + diff --git a/doc/xml/def_8h.xml b/doc/xml/def_8h.xml new file mode 100644 index 0000000..98e9ed0 --- /dev/null +++ b/doc/xml/def_8h.xml @@ -0,0 +1,391 @@ + + + + def.h + arch/lib.h + src/sys/include/net/ipv4/ip.h + src/sys/net/net/bot.c + src/sys/net/net/shell.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NULL + ((void *)0) + + + + + + + + __assert + accept_function + alloc_socket + bTree::allocEmptyNode + arp_arp_input + arp_lookup + arp_query + arp_timer + bot_init + bot_thread + bTree::bTree + current_thread + bTree::Delete + devfs_init + device_add + device_remove + do_accept + do_bind + do_close + do_connect + do_connected + do_delconn + do_listen + do_recv + do_send + do_write + err_tcp + ethernetif_init + ethernetif_input + ethernetif_output + fclose + bTree::findLeafNode + fopen + UbixFS::get8FreeBlocks + get_socket + bTree::GetFirstNode + UbixFS::getFreeBlock + inet_aton + bTree::Info + bTree::inodeSearch + bTree::Insert + bTree::insertNode + kmain + kmod_add + kpanic + kprint + bTree::Load + loopif_output + low_level_input + low_level_output + lwip_accept + lwip_bind + lwip_close + lwip_connect + lwip_listen + lwip_recv + lwip_recvfrom + lwip_send + lwip_sendto + lwip_socket + lwip_write + main + UbixFS::mknod + netbuf_alloc + netbuf_copy_partial + netbuf_data + netbuf_delete + netbuf_free + netbuf_new + netbuf_next + netbuf_ref + netconn_accept + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_new + netconn_recv + netconn_send + netconn_write + openFileUbixFS + poll_tcp + bTree::Print + UbixFS::printFreeBlockList + DiskFS::read + readUbixFS + recv_tcp + recv_udp + bTree::Save + bTree::saveNode + sent_tcp + UbixFS::setFreeBlock + shell_init + shell_thread + bTree::splitNode + strstr + strtok_r + strtol + sys_arch_mbox_fetch + sys_mbox_free + sys_sem_new_ + sys_thread_new + sysFclose + sysFopen + sysFread + sysFseek + sysMkDir + tcpdump + tcpdump_init + tcpip_apimsg + tcpip_init + tcpip_input + tcpip_tcp_timer + tcpip_thread + bTree::treeSearch + UbixFS::UbixFS + ubixfs_cacheAdd + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_findName + ubixfs_init + ubixfs_loadData + udpecho_init + udpecho_thread + ufs_init + unlink + bTree::Verify + vfs_findMount + UbixFS::vfs_format + UbixFS::vfs_init + UbixFS::vfs_mkdir + vfs_abstract::vfs_mknod + vfs_mount + UbixFS::vfs_open + UbixFS::vfs_read + UbixFS::vfs_stop + UbixFS::vfs_sync + UbixFS::vfs_write + vfsRegisterFS + DiskFS::write + writeFileByte + writeUbixFS + + + UMAX + a + b + ((a) > (b) ? (a) : (b)) + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_DEF_H__ +#define__LWIP_DEF_H__ + +#defineUMAX(a,b)((a)>(b)?(a):(b)) + +#ifndefNULL +#defineNULL((void*)0) +#endif + +#include"arch/lib.h" + +#endif/*__LWIP_DEF_H__*/ + + + + + diff --git a/doc/xml/devfs_8c.xml b/doc/xml/devfs_8c.xml new file mode 100644 index 0000000..06db463 --- /dev/null +++ b/doc/xml/devfs_8c.xml @@ -0,0 +1,606 @@ + + + + devfs.c + devfs/devfs.h + vfs/vfs.h + sys/device.h + ubixos/types.h + ubixos/spinlock.h + ubixos/kpanic.h + lib/kmalloc.h + lib/string.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int devfs_init + () + devfs_init + + + + + + + + devfs_initialize + devfs_open + devfs_read + devfs_write + NULL + vfs_mount + vfsRegisterFS + x1 + + + void + static void devfs_initialize + (struct vfs_mountPoint *mp) + devfs_initialize + + struct vfs_mountPoint * + mp + + + + + + + + + devfs_info::deviceList + vfs_mountPoint::fsInfo + kmalloc + kpanic + devfs_init + + + int + int devfs_makeNode + (char *name, uInt8 type, uInt16 major, uInt16 minor) + devfs_makeNode + + char * + name + + + uInt8 + type + + + uInt16 + major + + + uInt16 + minor + + + + + + + + + devfs_len + devfsSpinLock + devfs_info::deviceList + devfs_devices::devMajor + devfs_devices::devMinor + devfs_devices::devName + devfs_devices::devType + vfs_mountPoint::fsInfo + kmalloc + kprintf + devfs_devices::next + devfs_devices::prev + spinLock + spinUnlock + sprintf + strlen + vfs_findMount + fdc_init + initHardDisk + + + int + static int devfs_open + (char *file, fileDescriptor *fd) + devfs_open + + char * + file + + + fileDescriptor * + fd + + + + + + + + + devfs_len + devfsSpinLock + device_find + devfs_info::deviceList + device_node::devInfo + devfs_devices::devMajor + devfs_devices::devMinor + devfs_devices::devName + kprintf + devfs_devices::next + device_interface::size + fileDescriptor::size + spinLock + spinUnlock + strcmp + x1 + devfs_init + + + int + static int devfs_read + (fileDescriptor *fd, char *data, long offset, long size) + devfs_read + + fileDescriptor * + fd + + + char * + data + + + long + offset + + + long + size + + + + + + + + + device_find + device_node::devInfo + devfs_devices::devMajor + devfs_devices::devMinor + device_interface::info + kprintf + device_interface::read + devfs_init + + + int + static int devfs_write + (fileDescriptor *fd, char *data, long offset, long size) + devfs_write + + fileDescriptor * + fd + + + char * + data + + + long + offset + + + long + size + + + + + + + + + device_find + device_node::devInfo + devfs_devices::devMajor + devfs_devices::devMinor + device_interface::info + device_interface::read + device_interface::write + devfs_init + + + + + int + int devfs_len + + devfs_len + 0x0 + + + + + + + + devfs_makeNode + devfs_open + + + spinLock_t + spinLock_t devfsSpinLock + + devfsSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + devfs_makeNode + devfs_open + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<devfs/devfs.h> +#include<vfs/vfs.h> +#include<sys/device.h> +#include<ubixos/types.h> +#include<ubixos/spinlock.h> +#include<ubixos/kpanic.h> +#include<lib/kmalloc.h> +#include<lib/string.h> +#include<lib/kprintf.h> + +/*Spinlockfordevfsweshouldstartconvertingtosem/mutex*/ +staticspinLock_tdevfsSpinLock=SPIN_LOCK_INITIALIZER; + +/*Lengthofdevlist*/ +staticintdevfs_len=0x0; + +staticvoiddevfs_initialize(structvfs_mountPoint*mp){ +structdevfs_info*fsInfo=0x0; + +/*AllocatememoryforthefsInfo*/ +if((mp->fsInfo=(structdevfs_info*)kmalloc(sizeof(structdevfs_info)))==0x0) +kpanic("devfs:failedtoallocatememor\n"); + +fsInfo=mp->fsInfo; +fsInfo->deviceList=0x0; + +//Return +return; +} + +staticintdevfs_open(char*file,fileDescriptor*fd){ +structdevfs_info*fsInfo=fd->mp->fsInfo; +structdevfs_devices*tmpDev=0x0; +structdevice_node*device=0x0; + +spinLock(&devfsSpinLock); + +if(strcmp(file,"/")==0x0){ +fd->start=-1; +fd->size=devfs_len; +spinUnlock(&devfsSpinLock); +return(0x1); +} +if(file[0]=='/') +file++; +for(tmpDev=fsInfo->deviceList;tmpDev!=0x0;tmpDev=tmpDev->next){ +if(strcmp(tmpDev->devName,file)==0x0){ +switch((fd->mode&0x3)){ +case0: +case1: +device=device_find(tmpDev->devMajor,tmpDev->devMinor); +(void*)fd->start=tmpDev; +fd->size=device->devInfo->size; +break; +default: +kprintf("InvalidFileMode\n"); +spinUnlock(&devfsSpinLock); +return(-1); +break; +} +spinUnlock(&devfsSpinLock); +return(0x1); +} +} +spinUnlock(&devfsSpinLock); +return(0x0); +} + +/************************************************************************ + +Function:intreadDevFS(fileDescriptor*fd,char*data,longoffset,longsize) +Description:ReadFileIntoData +Notes: + +************************************************************************/ +staticintdevfs_read(fileDescriptor*fd,char*data,longoffset,longsize){ +inti=0x0,x=0x0; +uInt32sectors=0x0; +uInt16diff=0x0; +structdevice_node*device=0x0; +structdevfs_devices*tmpDev=(void*)fd->start; + +if(tmpDev==-1){ +kprintf("HiUbie[%i]!!!\n",size); +for(i=0;i<size;i++){ +data[i]='a'; +fd->buffer[i]='a'; +} +data[size-1]='\n'; +return(size); +} + +device=device_find(tmpDev->devMajor,tmpDev->devMinor); + +sectors=((size+511)/512); +diff=(offset-((offset/512)*512)); + +for(i=0x0;i<sectors;i++){ +device->devInfo->read(device->devInfo->info,fd->buffer,i+(offset/512),1); +for(x=0x0;x<(size-(i*512));x++){ +if(diff>0){ +data[x]=fd->buffer[x+diff]; +} +else{ +data[x]=fd->buffer[x]; +} +} +diff=0x0; +data+=512; +} + +return(size); +} + +/************************************************************************ + +Function:intwriteDevFS(fileDescriptor*fd,char*data,longoffset,longsize) +Description:WriteDataIntoFile +Notes: + +************************************************************************/ +staticintdevfs_write(fileDescriptor*fd,char*data,longoffset,longsize){ +inti=0x0,x=0x0; +structdevice_node*device=0x0; +structdevfs_devices*tmpDev=(void*)fd->start; + +device=device_find(tmpDev->devMajor,tmpDev->devMinor); +for(i=0x0;i<((size+511)/512);i++){ +device->devInfo->read(device->devInfo->info,fd->buffer,i+(offset/512),1); +for(x=0x0;((x<512)&&((x+(i*512))<size));x++){ +fd->buffer[x]=data[x]; +} +device->devInfo->write(device->devInfo->info,fd->buffer,i+(offset/512),1); +data+=512; +} +return(size); +} + + +intdevfs_makeNode(char*name,uInt8type,uInt16major,uInt16minor){ +structvfs_mountPoint*mp=0x0; +structdevfs_info*fsInfo=0x0; +structdevfs_devices*tmpDev=0x0; + +spinLock(&devfsSpinLock); + +mp=vfs_findMount("devfs"); + +if(mp==0x0){ +kprintf("Error:Can'tFindMountPoint\n"); +spinUnlock(&devfsSpinLock); +return(-1); +} + +fsInfo=mp->fsInfo; + +tmpDev=(structdevfs_devices*)kmalloc(sizeof(structdevfs_devices)); + +tmpDev->devType=type; +tmpDev->devMajor=major; +tmpDev->devMinor=minor; +sprintf(tmpDev->devName,name); +devfs_len+=strlen(name)+1; + +tmpDev->next=fsInfo->deviceList; +tmpDev->prev=0x0; +if(fsInfo->deviceList!=0x0){ +fsInfo->deviceList->prev=tmpDev; +} + +fsInfo->deviceList=tmpDev; + +spinUnlock(&devfsSpinLock); +return(0x0); +} + +intdevfs_init(){ +/*Buildourdevfsstruct*/ +structfileSystemdevFS= +{NULL,/*prev*/ +NULL,/*next*/ +(void*)devfs_initialize,/*vfsInitFS*/ +(void*)devfs_read,/*vfsRead*/ +(void*)devfs_write,/*vfsWrite*/ +(void*)devfs_open,/*vfsOpenFile*/ +NULL,/*vfsUnlink*/ +NULL,/*vfsMakeDir*/ +NULL,/*vfsRemDir*/ +NULL,/*vfsSync*/ +1/*vfsType*/ +};/*devFS*/ + +if(vfsRegisterFS(devFS)!=0x0){ +//sysErr(systemErr,"UnableToEnableDevFS"); +return(0x1); +} +/*Mountourdevfsthiswillbuildthedevfscontainernode*/ +vfs_mount(0x0,0x0,0x0,0x1,"devfs","rw");//MountDeviceFileSystem + +/*Return*/ +return(0x0); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/devfs_8h.xml b/doc/xml/devfs_8h.xml new file mode 100644 index 0000000..c9528ec --- /dev/null +++ b/doc/xml/devfs_8h.xml @@ -0,0 +1,274 @@ + + + + devfs.h + ubixos/types.h + vfs/file.h + src/sys/devfs/devfs.c + src/sys/include/ubixos/init.h + src/sys/isa/fdc.c + src/sys/pci/hd.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + devfs_devices + devfs_info + + + int + int devfs_init + () + devfs_init + + + + + + + + devfs_initialize + devfs_open + devfs_read + devfs_write + NULL + vfs_mount + vfsRegisterFS + x1 + + + int + int devfs_makeNode + (char *name, uInt8 type, uInt16 major, uInt16 minor) + devfs_makeNode + + char * + name + + + uInt8 + type + + + uInt16 + major + + + uInt16 + minor + + + + + + + + + devfs_len + devfsSpinLock + devfs_info::deviceList + devfs_devices::devMajor + devfs_devices::devMinor + devfs_devices::devName + devfs_devices::devType + vfs_mountPoint::fsInfo + kmalloc + kprintf + devfs_devices::next + devfs_devices::prev + spinLock + spinUnlock + sprintf + strlen + vfs_findMount + fdc_init + initHardDisk + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_DEVFS_H +#define_DEVFS_H + +#include<ubixos/types.h> +#include<vfs/file.h> + +structdevfs_devices{ +structdevfs_devices*next; +structdevfs_devices*prev; +uInt8devType; +uInt16devMajor; +uInt16devMinor; +chardevName[32]; +}; + +structdevfs_info{ +structdevfs_devices*deviceList; +}; + +intdevfs_init(); +intdevfs_makeNode(char*name,uInt8type,uInt16major,uInt16minor); +/* +intdevfs_open(char*file,fileDescriptor*fd); +voiddevFSInit(structmountPoints*mp); +intdevfs_read(fileDescriptor*fd,char*data,longoffset,longsize); +intdevfs_write(fileDescriptor*fd,char*data,longoffset,longsize); +*/ + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:38reddawg +nomessage + +Revision1.52004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.42004/07/1412:17:52reddawg +devfs:devFSEnabletodevfs_init +ChangedStartupRoutines + +Revision1.32004/05/2114:54:41reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/device_8c.xml b/doc/xml/device_8c.xml new file mode 100644 index 0000000..8701754 --- /dev/null +++ b/doc/xml/device_8c.xml @@ -0,0 +1,358 @@ + + + + device.c + sys/device.h + ubixos/spinlock.h + lib/kmalloc.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int device_add + (int minor, char type, struct device_interface *devInfo) + device_add + + int + minor + + + char + type + + + struct device_interface * + devInfo + + + + + + + + + devices + deviceSpinLock + device_node::devInfo + device_interface::init + device_interface::initialized + kmalloc + kprintf + device_node::minor + device_node::next + NULL + device_node::prev + spinLock + spinUnlock + device_node::type + fdc_init + initHardDisk + + + device_node * + struct device_node* device_find + (int major, int minor) + device_find + + int + major + + + int + minor + + + + + + + + + devices + deviceSpinLock + device_node::devInfo + device_interface::major + device_node::minor + device_node::next + spinLock + spinUnlock + devfs_open + devfs_read + devfs_write + vfs_mount + + + int + int device_remove + (struct device_node *deviceToDelete) + device_remove + + struct device_node * + deviceToDelete + + + + + + + + + devices + deviceSpinLock + kfree + device_node::next + NULL + spinLock + spinUnlock + + + + + struct device_node * + struct device_node* devices + + devices + 0x0 + + + + + + + + device_add + device_find + device_remove + + + spinLock_t + spinLock_t deviceSpinLock + + deviceSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + device_add + device_find + device_remove + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/device.h> +#include<ubixos/spinlock.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<assert.h> + +/*Linkedlistofdriversloadedinthesystemaccessablebythesubsystemonly*/ +staticstructdevice_node*devices=0x0; +staticspinLock_tdeviceSpinLock=SPIN_LOCK_INITIALIZER; + +/***************************************************************************************** + +Function:intdeviceAdd(intminor,chartype,structdevice_interface*devInfo); + +Description:Thiswilladdadevicetothesystem + +Notes: + +05/19/2004-ImprovingUponthespec + +*****************************************************************************************/ +intdevice_add(intminor,chartype,structdevice_interface*devInfo){ +structdevice_node*tmpDev=0x0; + + +tmpDev=(structdevice_node*)kmalloc(sizeof(structdevice_node)); +if(tmpDev==NULL) +kprintf("ErrorAddingDevice:memoryfailure\n"); + +tmpDev->prev=0x0; +tmpDev->minor=minor; +tmpDev->type=type; +tmpDev->devInfo=devInfo; + +spinLock(&deviceSpinLock); +tmpDev->next=devices; +devices=tmpDev; +spinUnlock(&deviceSpinLock); + +if(tmpDev->devInfo->initialized==0x0) +return(tmpDev->devInfo->init(tmpDev)); +else +return(0x0); +} + +/***************************************************************************************** + +Function:structdevice_node*deviceFind(intmajor,intminor); + +Description:Thiswillfindadevicebasedonmajorminor + +Notes: + +05/19/2004-ImprovingUponthespec + +*****************************************************************************************/ +structdevice_node*device_find(intmajor,intminor){ +structdevice_node*tmpDev=0x0; + +spinLock(&deviceSpinLock); + +for(tmpDev=devices;tmpDev;tmpDev=tmpDev->next){ +if((tmpDev->devInfo->major==major)&&(tmpDev->minor==minor)){ +spinUnlock(&deviceSpinLock); +return(tmpDev); +} +} + +spinUnlock(&deviceSpinLock); +return(0x0); +} + + +/******************************************************************************************** + +Function:intdeviceRemove(struct*device_node); + +Description:Thiswillremoveadevicebasedonit'spointer + +*********************************************************************************************/ +intdevice_remove(structdevice_node*deviceToDelete) +{ +structdevice_node*current,*previous; + + +current=devices; +previous=NULL; +spinLock(&deviceSpinLock); +while(current!=NULL) +{ +if(current==deviceToDelete)break; +else +{ +previous=current; +current=current->next; +} +} +if(current==NULL) +{ +spinUnlock(&deviceSpinLock); +return1; +} +else +{ +if(current==devices) +devices=devices->next; +else +previous->next=current->next; +kfree(current); +spinUnlock(&deviceSpinLock); +return1; +} + +spinUnlock(&deviceSpinLock); +return0x0; +} + + +/*** +END +***/ + + + + diff --git a/doc/xml/device_8old_8h.xml b/doc/xml/device_8old_8h.xml new file mode 100644 index 0000000..f1e7574 --- /dev/null +++ b/doc/xml/device_8old_8h.xml @@ -0,0 +1,136 @@ + + + + device.old.h + ubixos/types.h + src/sys/include/isa/ne2k.h + src/sys/isa/ne2k.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + device + ei_device + net + + + + + +/************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,arepermittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors. +Redistributionsinbinaryformmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors +inthedocumentationand/orothermaterialsprovidedwiththedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftwarewithoutspecificpriorwrittenpermission. + +THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANYEXPRESSORIMPLIED +WARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULAR +PURPOSEAREDISCLAIMED.INNOEVENTSHALLTHECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT, +INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTE +GOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY +OFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. + +$Id$ + +**************************************************************************************/ + +#ifndef_DEVICE_H +#define_DEVICE_H + +#include<ubixos/types.h> + +structdevice{ +structnet*net; +uInt16ioAddr; +uInt32irq; +structei_device*priv; +uInt32mtu; +}; + +structnet{ +charmac[6]; +charbroadcast[6]; +}; + +structei_device{ +inttxStartPage; +intrxStartPage; +intstopPage; +intcurrentPage; +uInt16word16; +uInt32pingPong; +inttx1; +inttx2; +}; + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/dirCache_8c.xml b/doc/xml/dirCache_8c.xml new file mode 100644 index 0000000..172ec28 --- /dev/null +++ b/doc/xml/dirCache_8c.xml @@ -0,0 +1,804 @@ + + + + dirCache.c + assert.h + ubixfs/dirCache.h + ubixfs/ubixfs.h + lib/kmalloc.h + lib/kprintf.h + lib/string.h + ubixos/spinlock.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cacheNode * + struct cacheNode* ubixfs_cacheAdd + (struct cacheNode *node, struct cacheNode *newNode) + ubixfs_cacheAdd + + struct cacheNode * + node + + + struct cacheNode * + newNode + + + + + + + + + assert + dca_spinLock + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::next + NULL + cacheNode::parent + cacheNode::prev + spinLock + spinUnlock + ubixfs_cacheFind + + + void + void ubixfs_cacheDelete + (struct cacheNode **head) + ubixfs_cacheDelete + + struct cacheNode ** + head + + + + + + + + + cacheNode::fileListHead + cacheNode::info + kfree + cacheNode::name + cacheNode::next + NULL + ubixfs_cacheDelete + ubixfs_cacheDelete + + + cacheNode * + struct cacheNode* ubixfs_cacheFind + (struct cacheNode *head, char *name) + ubixfs_cacheFind + + struct cacheNode * + head + + + char * + name + + + + + + + + + assert + cacheNode::attributes + dca_spinLock + dirList + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::info + cacheNode::name + cacheNode::next + NULL + cacheNode::parent + cacheNode::permissions + cacheNode::present + cacheNode::prev + cacheNode::size + spinLock + spinUnlock + cacheNode::startCluster + strcmp + typeFile + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_findName + openFileUbixFS + ubixfs_cacheFind + + + cacheNode * + struct cacheNode* ubixfs_cacheNew + (const char *name) + ubixfs_cacheNew + + const char * + name + + + + + + + + + assert + cacheNode::attributes + cacheNode::dirty + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::info + kmalloc + cacheNode::name + cacheNode::next + NULL + cacheNode::parent + cacheNode::permissions + cacheNode::present + cacheNode::prev + cacheNode::size + cacheNode::startCluster + strcpy + strlen + ubixfs_cacheFind + ubixfs_initialize + + + struct directoryEntry * + static struct directoryEntry* ubixfs_findName + (struct directoryEntry *dirList, uInt32 size, char *name) + ubixfs_findName + + struct directoryEntry * + dirList + + + uInt32 + size + + + char * + name + + + + + + + + + dirList + directoryEntry::fileName + NULL + strcmp + ubixfs_cacheFind + + + + + spinLock_t + spinLock_t dca_spinLock + + dca_spinLock + SPIN_LOCK_INITIALIZER + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheFind + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<assert.h> +#include<ubixfs/dirCache.h> +#include<ubixfs/ubixfs.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/string.h> + +#include<ubixos/spinlock.h> + +staticspinLock_tdca_spinLock=SPIN_LOCK_INITIALIZER; + +static +structdirectoryEntry* +ubixfs_findName(structdirectoryEntry*dirList,uInt32size,char*name){ +unsignedinti; + +if(dirList==NULL||name==NULL)returnNULL; +//UBUkprintf("dirList:[0x%X],name:[0x%X]\n",dirList,name); +for(i=0;i<(size/sizeof(structdirectoryEntry));i++){ +if(strcmp(dirList[i].fileName,name)==0)return&dirList[i]; +}/*for*/ +returnNULL; +}/*ubixfs_findName*/ + +structcacheNode* +ubixfs_cacheFind(structcacheNode*head,char*name){ +structcacheNode*tmp=head; +structdirectoryEntry*dirList=NULL; +unsignedinti=0x0; +chardirName[256]; +char*nextDir=NULL; +/*kprintf("lookingfor%s\n",name);*/ +assert(name); +assert(head); +assert(*name); +spinLock(&dca_spinLock); +spinUnlock(&dca_spinLock); +if(name==NULL||head==NULL)returnNULL; +if(*name=='\0')returnNULL; + +/* +*walkdownthetreerecursivelyuntilwefindthenodewe'relooking +*for +*/ +i=0; +while(name[i]!='\0'&&name[i]!='/'&&i<sizeof(dirName)){ +dirName[i]=name[i]; +i++; +}/*while*/ +assert(i<sizeof(dirName)); +if(i==sizeof(dirName))returnNULL; + +if(i==0)dirName[i++]='/'; + +dirName[i]='\0'; + +nextDir=&name[i]; +if(*nextDir=='/')nextDir++; + +/* +*nextDirpointstothenextdir +*namepointstoanullterminateddirectoryname +*ifnextDirisn'tnull,thenmakesurethatthisdirispresent +*/ +/*kprintf("nextdir:%s--dirName:%s\n",nextDir,dirName);*/ +if(*nextDir!='\0'){ +while(tmp!=NULL){ +//UBUkprintf("tmp->name:[0x%X],dirName:[0x%X]\n",tmp->name,dirName); +if(strcmp(tmp->name,dirName)==0){ + +if((*tmp->attributes&typeFile)==typeFile +||tmp->fileListHead==NULL){ + +/*ifwe'rehere,thentherearenosubdirscachedtolookthrough*/ +dirList=ubixfs_findName((structdirectoryEntry*)head->info, +*head->size,nextDir); +if(dirList==NULL)returnNULL; +/*kprintf("creatingnewnode%s",dirList->fileName);*/ +tmp=ubixfs_cacheAdd(tmp,ubixfs_cacheNew(dirList->fileName)); +tmp->attributes=&dirList->attributes; +tmp->permissions=&dirList->permissions; +tmp->size=&dirList->size; +/*kprintf("size:%d\n",*tmp->size);*/ +tmp->startCluster=&dirList->startCluster; +tmp->present=0; +returntmp; +}else{ +returnubixfs_cacheFind(tmp->fileListHead,nextDir); +} +}/*if*/ +tmp=tmp->next; +}/*while*/ +/*itwasn'tpresent,returnNULL*/ +returnNULL; +}/*if*/ + +/* +*ifnextDirwasnull,thenwe'reatthebottomlevel.Lookforthe +*dirlistinghere +*/ +while(tmp!=NULL){ + +assert(tmp->name); +assert(name); +/*don'tforgettochecktoseeifit'sadirectory*/ +//UBUkprintf("tmpName:[0x%X],name:[0x%X]\n",tmp->name,name); +if(strcmp(tmp->name,name)==0){ + +/* +*wefoundthenode.Moveittothefrontofthelist +*(ifitisn'talready) +*/ +#if0 +assert(tmp->parent); +if(tmp!=tmp->parent->fileListHead){ + +/*ifwe'rethetail,pointthetailtoourprev*/ +if(tmp==tmp->parent->fileListTail){ +tmp->parent->fileListTail=tmp->prev; +}/*if*/ + +if(tmp->next!=NULL)tmp->next->prev=tmp->prev; +if(tmp->prev!=NULL)tmp->prev->next=tmp->next; +tmp->next=tmp->parent->fileListHead; +tmp->prev=NULL; +tmp->parent->fileListHead=tmp; +}/*if*/ +#endif +returntmp; +}/*if*/ +tmp=tmp->next; +}/*while*/ +/*ifwe'rehere,thenonelevelofthedirisn'tcached*/ + +tmp=head->parent; +assert(tmp); +assert(tmp->info); +dirList=ubixfs_findName((structdirectoryEntry*)tmp->info, +*tmp->size,name); +if(dirList==NULL)returnNULL; +/*kprintf("creatingnewnode/size%s/%d",dirList->fileName,dirList->size);*/ +tmp=ubixfs_cacheAdd(tmp,ubixfs_cacheNew(dirList->fileName)); +tmp->attributes=&dirList->attributes; +tmp->permissions=&dirList->permissions; +tmp->size=&dirList->size; +/*kprintf("size:%d\n",*tmp->size);*/ +tmp->startCluster=&dirList->startCluster; +tmp->present=0; +returntmp; +#if0 +returnNULL;/*couldn'tfindit*/ +#endif +}/*ubixfs_cacheFind*/ + +structcacheNode* +ubixfs_cacheNew(constchar*name){ +structcacheNode*tmp=kmalloc(sizeof(structcacheNode)); +assert(tmp); +tmp->parent=tmp; +tmp->prev=tmp->next=tmp->fileListHead=tmp->fileListTail=NULL; +tmp->info=NULL; +tmp->size=NULL; +tmp->present=tmp->dirty=0; +tmp->startCluster=NULL; +tmp->attributes=NULL; +tmp->permissions=NULL; +tmp->name=(char*)kmalloc(strlen(name)+1); +strcpy(tmp->name,name); +returntmp; +}/*ubixfs_cacheNew*/ + +void +ubixfs_cacheDelete(structcacheNode**head){ +structcacheNode*tmp=NULL; +structcacheNode*del=NULL; + +if(head==NULL)return; +if(*head==NULL)return; + +tmp=*head; +while(tmp!=NULL){ +/*ifthereareanychildnodes,deletethemfirst*/ + +/* +*thefollowingcommentedout``if''statementisredundant,sinceit +*willbecaughtwiththeabovechecks +*/ +/*if(tmp->fileListHead!=NULL)*/ +ubixfs_cacheDelete(&tmp->fileListHead); + +kfree(tmp->info); +kfree(tmp->name); +del=tmp; +tmp=tmp->next; +kfree(del); +}/*while*/ +*head=NULL; +return; +}/*deleteNode*/ +#if0 +void +addNode(structcacheNode**node,structcacheNode*newNode){ +if(node==NULL)return; +newNode->next=*node; +if(*node!=NULL)(*node)->prev=newNode; +newNode->prev=NULL; +*node=newNode; +return; +}/*addNode*/ +#endif + +structcacheNode* +ubixfs_cacheAdd(structcacheNode*node,structcacheNode*newNode){ +structcacheNode*tmp; + +assert(node); +spinLock(&dca_spinLock); +newNode->parent=node; +newNode->next=node->fileListHead; +newNode->prev=NULL; +if(node->fileListHead==NULL) +node->fileListTail=newNode; +else +node->fileListHead->prev=newNode; + +node->fileListHead=newNode; +tmp=node->fileListHead; +spinUnlock(&dca_spinLock); +returntmp; +}/*ubixfs_cacheAdd*/ + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:17reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:40reddawg +nomessage + +Revision1.302004/08/1411:23:02reddawg +Changes + +Revision1.292004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce + +Revision1.282004/08/0117:58:39flameshadow +chg:fixedstringallocationbuginubixfs_cacheNew() + +Revision1.272004/07/2817:24:13flameshadow +chg:nocomment + +Revision1.262004/07/2817:07:29flameshadow +chg:re-addedmovingcachednodestothefrontofthelistwhenfound +add:addedanassert()inubixfs.c + +Revision1.252004/07/2719:24:31flameshadow +chg:reducedthenumberofdebuggingstatementsinthekernel. + +Revision1.242004/07/2712:02:01reddawg +chg:fixedmarksbugreadFiledidalookupwhichiswhyitlookedlikeitwaslooppingsomuch + +Revision1.232004/07/2709:05:43flameshadow +chg:fixedfilenotfoundbug.Stillcan'tfindloopingissue + +Revision1.222004/07/2704:05:20flameshadow +chg:kindafixedit.Addedbunchesofdebuginfo + +Revision1.212004/07/2522:21:52flameshadow +chg:re-enabledkprintf()inubixfs_cacheFind() + +Revision1.202004/07/2417:19:24flameshadow +chg:Temporarilydisabledthemovingofthefoundcachenodetothefront +ofthelist.Itseemstocauseproblemslater(racecondition,possibly) + +Revision1.192004/07/2223:01:51reddawg +OkcheckinginbeforeIsleep + +Revision1.182004/07/2219:54:50flameshadow +chg:worksnow.Thanxubu + +Revision1.172004/07/2219:01:59flameshadow +chg:moredirectoryandfilecaching + +Revision1.162004/07/2216:34:32flameshadow +add:fileanddircachingkindawork + +Revision1.152004/07/2122:43:18flameshadow +onemoretry + +Revision1.142004/07/2122:42:25flameshadow +tryitnow + +Revision1.132004/07/2122:40:27flameshadow +weird + +Revision1.122004/07/2122:18:37flameshadow +chg:renamedsubDirsHead/TailmembersofcacheNodetofileListHead/Tail + +Revision1.112004/07/2122:12:22flameshadow +add:attributestagincacheNode +add:settingofattributesinubixfx_cacheNew()andubixfs_cacheFind() + +Revision1.102004/07/2122:07:18flameshadow +chg:renamedcachingfunctions(again) + +Revision1.92004/07/2122:00:04flameshadow +chg:ubixfws_dirCacheAddnowreturnsapointertothenodeitadded +chg:minorfixinubixfs_dirCacheFind() + +Revision1.62004/07/2114:43:14flameshadow +add:addedcwc(currentworkingcontainer)totheosInfostrut + +Revision1.52004/07/2019:21:30reddawg +Youlikeleavingout$Log$ +YoulikeleavingoutRevision1.1.1.12006/06/0112:46:17reddawg +Youlikeleavingoutubix2 +Youlikeleavingout +YoulikeleavingoutRevision1.22005/10/1200:13:37reddawg +YoulikeleavingoutRemoved +Youlikeleavingout +YoulikeleavingoutRevision1.1.1.12005/09/2617:24:40reddawg +Youlikeleavingoutnomessage +Youlikeleavingout +YoulikeleavingoutRevision1.302004/08/1411:23:02reddawg +YoulikeleavingoutChanges +Youlikeleavingout +YoulikeleavingoutRevision1.292004/08/0912:58:05reddawg +Youlikeleavingoutletmeknowwhenyougotthesurce +Youlikeleavingout +YoulikeleavingoutRevision1.282004/08/0117:58:39flameshadow +Youlikeleavingoutchg:fixedstringallocationbuginubixfs_cacheNew() +Youlikeleavingout +YoulikeleavingoutRevision1.272004/07/2817:24:13flameshadow +Youlikeleavingoutchg:nocomment +Youlikeleavingout +YoulikeleavingoutRevision1.262004/07/2817:07:29flameshadow +Youlikeleavingoutchg:re-addedmovingcachednodestothefrontofthelistwhenfound +Youlikeleavingoutadd:addedanassert()inubixfs.c +Youlikeleavingout +YoulikeleavingoutRevision1.252004/07/2719:24:31flameshadow +Youlikeleavingoutchg:reducedthenumberofdebuggingstatementsinthekernel. +Youlikeleavingout +YoulikeleavingoutRevision1.242004/07/2712:02:01reddawg +Youlikeleavingoutchg:fixedmarksbugreadFiledidalookupwhichiswhyitlookedlikeitwaslooppingsomuch +Youlikeleavingout +YoulikeleavingoutRevision1.232004/07/2709:05:43flameshadow +Youlikeleavingoutchg:fixedfilenotfoundbug.Stillcan'tfindloopingissue +Youlikeleavingout +YoulikeleavingoutRevision1.222004/07/2704:05:20flameshadow +Youlikeleavingoutchg:kindafixedit.Addedbunchesofdebuginfo +Youlikeleavingout +YoulikeleavingoutRevision1.212004/07/2522:21:52flameshadow +Youlikeleavingoutchg:re-enabledkprintf()inubixfs_cacheFind() +Youlikeleavingout +YoulikeleavingoutRevision1.202004/07/2417:19:24flameshadow +Youlikeleavingoutchg:Temporarilydisabledthemovingofthefoundcachenodetothefront +Youlikeleavingoutofthelist.Itseemstocauseproblemslater(racecondition,possibly) +Youlikeleavingout +YoulikeleavingoutRevision1.192004/07/2223:01:51reddawg +YoulikeleavingoutOkcheckinginbeforeIsleep +Youlikeleavingout +YoulikeleavingoutRevision1.182004/07/2219:54:50flameshadow +Youlikeleavingoutchg:worksnow.Thanxubu +Youlikeleavingout +YoulikeleavingoutRevision1.172004/07/2219:01:59flameshadow +Youlikeleavingoutchg:moredirectoryandfilecaching +Youlikeleavingout +YoulikeleavingoutRevision1.162004/07/2216:34:32flameshadow +Youlikeleavingoutadd:fileanddircachingkindawork +Youlikeleavingout +YoulikeleavingoutRevision1.152004/07/2122:43:18flameshadow +Youlikeleavingoutonemoretry +Youlikeleavingout +YoulikeleavingoutRevision1.142004/07/2122:42:25flameshadow +Youlikeleavingouttryitnow +Youlikeleavingout +YoulikeleavingoutRevision1.132004/07/2122:40:27flameshadow +Youlikeleavingoutweird +Youlikeleavingout +YoulikeleavingoutRevision1.122004/07/2122:18:37flameshadow +Youlikeleavingoutchg:renamedsubDirsHead/TailmembersofcacheNodetofileListHead/Tail +Youlikeleavingout +YoulikeleavingoutRevision1.112004/07/2122:12:22flameshadow +Youlikeleavingoutadd:attributestagincacheNode +Youlikeleavingoutadd:settingofattributesinubixfx_cacheNew()andubixfs_cacheFind() +Youlikeleavingout +YoulikeleavingoutRevision1.102004/07/2122:07:18flameshadow +Youlikeleavingoutchg:renamedcachingfunctions(again) +Youlikeleavingout +YoulikeleavingoutRevision1.92004/07/2122:00:04flameshadow +Youlikeleavingoutchg:ubixfws_dirCacheAddnowreturnsapointertothenodeitadded +Youlikeleavingoutchg:minorfixinubixfs_dirCacheFind() +Youlikeleavingout +YoulikeleavingoutRevision1.62004/07/2114:43:14flameshadow +Youlikeleavingoutadd:addedcwc(currentworkingcontainer)totheosInfostrut +Youlikeleavingoutsoidon'tknowwhatisgoingoneh? + +END +***/ + + + + + + diff --git a/doc/xml/dirCache_8h.xml b/doc/xml/dirCache_8h.xml new file mode 100644 index 0000000..5a7bef3 --- /dev/null +++ b/doc/xml/dirCache_8h.xml @@ -0,0 +1,740 @@ + + + + dirCache.h + ubixos/types.h + src/sys/include/ubixfs/ubixfs.h + src/sys/include/vfs/file.h + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/ubixfs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cacheNode + + + cacheNode * + struct cacheNode* ubixfs_cacheAdd + (struct cacheNode *, struct cacheNode *) + ubixfs_cacheAdd + + struct cacheNode * + + + struct cacheNode * + + + + + + + + + assert + dca_spinLock + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::next + NULL + cacheNode::parent + cacheNode::prev + spinLock + spinUnlock + ubixfs_cacheFind + + + void + void ubixfs_cacheDelete + (struct cacheNode **) + ubixfs_cacheDelete + + struct cacheNode ** + + + + + + + + + cacheNode::fileListHead + cacheNode::info + kfree + cacheNode::name + cacheNode::next + NULL + ubixfs_cacheDelete + ubixfs_cacheDelete + + + cacheNode * + struct cacheNode* ubixfs_cacheFind + (struct cacheNode *, char *) + ubixfs_cacheFind + + struct cacheNode * + + + char * + + + + + + + + + assert + cacheNode::attributes + dca_spinLock + dirList + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::info + cacheNode::name + cacheNode::next + NULL + cacheNode::parent + cacheNode::permissions + cacheNode::present + cacheNode::prev + cacheNode::size + spinLock + spinUnlock + cacheNode::startCluster + strcmp + typeFile + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_findName + openFileUbixFS + ubixfs_cacheFind + + + cacheNode * + struct cacheNode* ubixfs_cacheNew + (const char *) + ubixfs_cacheNew + + const char * + + + + + + + + + assert + cacheNode::attributes + cacheNode::dirty + cacheNode::fileListHead + cacheNode::fileListTail + cacheNode::info + kmalloc + cacheNode::name + cacheNode::next + NULL + cacheNode::parent + cacheNode::permissions + cacheNode::present + cacheNode::prev + cacheNode::size + cacheNode::startCluster + strcpy + strlen + ubixfs_cacheFind + ubixfs_initialize + + + + + + + +#ifndefDIRCACHE_H +#defineDIRCACHE_H + +/*#include"ubixfs.h"*/ +#include<ubixos/types.h> + +structcacheNode{ +char*name; +structcacheNode*prev; +structcacheNode*next; +structcacheNode*parent; +structcacheNode*fileListHead; +structcacheNode*fileListTail; +void*info; +int*size; +intpresent; +intdirty; +uInt32*startCluster; +uInt16*attributes; +uInt16*permissions; +};/*cacheNode*/ + +structcacheNode*ubixfs_cacheFind(structcacheNode*,char*); +structcacheNode*ubixfs_cacheNew(constchar*); +voidubixfs_cacheDelete(structcacheNode**); +structcacheNode*ubixfs_cacheAdd(structcacheNode*,structcacheNode*); + +#endif/*!DIRCACHE_H*/ + + + + diff --git a/doc/xml/dir_0af38c139db535004c17f658eecde1eb.xml b/doc/xml/dir_0af38c139db535004c17f658eecde1eb.xml new file mode 100644 index 0000000..64fd68d --- /dev/null +++ b/doc/xml/dir_0af38c139db535004c17f658eecde1eb.xml @@ -0,0 +1,12 @@ + + + + src/sys/devfs/ + devfs.c + + + + + + + diff --git a/doc/xml/dir_0da430bc12a622a01803598a1e7c0e05.xml b/doc/xml/dir_0da430bc12a622a01803598a1e7c0e05.xml new file mode 100644 index 0000000..9a3c828 --- /dev/null +++ b/doc/xml/dir_0da430bc12a622a01803598a1e7c0e05.xml @@ -0,0 +1,13 @@ + + + + src/sys/include/ubixfs/ + dirCache.h + ubixfs.h + + + + + + + diff --git a/doc/xml/dir_21e0927e9dd41d8ff1206ca4f0555726.xml b/doc/xml/dir_21e0927e9dd41d8ff1206ca4f0555726.xml new file mode 100644 index 0000000..47397a8 --- /dev/null +++ b/doc/xml/dir_21e0927e9dd41d8ff1206ca4f0555726.xml @@ -0,0 +1,25 @@ + + + + src/sys/ubixfsv2/ + btree.cpp + btree.h + btreeheader.h + device.h + file.h + fsAbstract.h + main.cpp + ramdrive.cpp + ramdrive.h + types.h + ubixfs.cpp + ubixfs.h + vfs.cpp + vfs.h + + + + + + + diff --git a/doc/xml/dir_248b3debdbff35864f3bdabccbc86e68.xml b/doc/xml/dir_248b3debdbff35864f3bdabccbc86e68.xml new file mode 100644 index 0000000..e9b312b --- /dev/null +++ b/doc/xml/dir_248b3debdbff35864f3bdabccbc86e68.xml @@ -0,0 +1,12 @@ + + + + src/sys/include/devfs/ + devfs.h + + + + + + + diff --git a/doc/xml/dir_2f8fc94d4f17c865dd63167e45dee9cf.xml b/doc/xml/dir_2f8fc94d4f17c865dd63167e45dee9cf.xml new file mode 100644 index 0000000..74a4f1f --- /dev/null +++ b/doc/xml/dir_2f8fc94d4f17c865dd63167e45dee9cf.xml @@ -0,0 +1,18 @@ + + + + src/sys/isa/ + 8259.c + atkbd.c + fdc.c + mouse.c + ne2k.c + pit.c + rs232.c + + + + + + + diff --git a/doc/xml/dir_2fce887bf7cb6c890cb427c03dad3e86.xml b/doc/xml/dir_2fce887bf7cb6c890cb427c03dad3e86.xml new file mode 100644 index 0000000..9b3a9c9 --- /dev/null +++ b/doc/xml/dir_2fce887bf7cb6c890cb427c03dad3e86.xml @@ -0,0 +1,12 @@ + + + + src/sys/include/objgfx/ + ogDisplay_VESA.h + + + + + + + diff --git a/doc/xml/dir_366cae809cefebd9796e1be555536f38.xml b/doc/xml/dir_366cae809cefebd9796e1be555536f38.xml new file mode 100644 index 0000000..0b1a32b --- /dev/null +++ b/doc/xml/dir_366cae809cefebd9796e1be555536f38.xml @@ -0,0 +1,14 @@ + + + + src/sys/vfs/ + file.c + mount.c + vfs.c + + + + + + + diff --git a/doc/xml/dir_4d4c8e7174efe8ad5ca8ab494abe072d.xml b/doc/xml/dir_4d4c8e7174efe8ad5ca8ab494abe072d.xml new file mode 100644 index 0000000..e406ffb --- /dev/null +++ b/doc/xml/dir_4d4c8e7174efe8ad5ca8ab494abe072d.xml @@ -0,0 +1,13 @@ + + + + src/sys/include/ufs/ + ffs.h + ufs.h + + + + + + + diff --git a/doc/xml/dir_531e61b8e9b8982548f8f8f296b3206c.xml b/doc/xml/dir_531e61b8e9b8982548f8f8f296b3206c.xml new file mode 100644 index 0000000..1df6f8c --- /dev/null +++ b/doc/xml/dir_531e61b8e9b8982548f8f8f296b3206c.xml @@ -0,0 +1,17 @@ + + + + src/sys/include/isa/ + 8259.h + atkbd.h + fdc.h + mouse.h + ne2k.h + pit.h + + + + + + + diff --git a/doc/xml/dir_5377d826f41208e35c1e6ec985f139cd.xml b/doc/xml/dir_5377d826f41208e35c1e6ec985f139cd.xml new file mode 100644 index 0000000..ae85c91 --- /dev/null +++ b/doc/xml/dir_5377d826f41208e35c1e6ec985f139cd.xml @@ -0,0 +1,16 @@ + + + + src/sys/net/api/ + api_lib.c + api_msg.c + err.c + sockets.c + tcpip.c + + + + + + + diff --git a/doc/xml/dir_538938396c33f4585b2c9d510e98cbd2.xml b/doc/xml/dir_538938396c33f4585b2c9d510e98cbd2.xml new file mode 100644 index 0000000..f88e3ad --- /dev/null +++ b/doc/xml/dir_538938396c33f4585b2c9d510e98cbd2.xml @@ -0,0 +1,17 @@ + + + + src/sys/include/lib/ + bioscall.h + kmalloc.h + kprint.h + kprintf.h + libcpp.h + string.h + + + + + + + diff --git a/doc/xml/dir_5ea7b6688944441098902d7716f0cb6a.xml b/doc/xml/dir_5ea7b6688944441098902d7716f0cb6a.xml new file mode 100644 index 0000000..c519a47 --- /dev/null +++ b/doc/xml/dir_5ea7b6688944441098902d7716f0cb6a.xml @@ -0,0 +1,12 @@ + + + + src/sys/compile/ + null.c + + + + + + + diff --git a/doc/xml/dir_626404c379d6b1b237f0a541878d72c0.xml b/doc/xml/dir_626404c379d6b1b237f0a541878d72c0.xml new file mode 100644 index 0000000..7595c9d --- /dev/null +++ b/doc/xml/dir_626404c379d6b1b237f0a541878d72c0.xml @@ -0,0 +1,13 @@ + + + + src/sys/include/sde/ + ogDisplay_UbixOS.h + sde.h + + + + + + + diff --git a/doc/xml/dir_74196872fc832845f1a07f1162e5c554.xml b/doc/xml/dir_74196872fc832845f1a07f1162e5c554.xml new file mode 100644 index 0000000..abb5dec --- /dev/null +++ b/doc/xml/dir_74196872fc832845f1a07f1162e5c554.xml @@ -0,0 +1,16 @@ + + + + src/sys/ubixfs/ + block.c + dirCache.c + directory.c + thread.c + ubixfs.c + + + + + + + diff --git a/doc/xml/dir_76136493e73439838033f413ae0f827f.xml b/doc/xml/dir_76136493e73439838033f413ae0f827f.xml new file mode 100644 index 0000000..0c18bdf --- /dev/null +++ b/doc/xml/dir_76136493e73439838033f413ae0f827f.xml @@ -0,0 +1,15 @@ + + + + src/sys/include/net/ipv6/ + icmp.h + inet.h + ip.h + ip_addr.h + + + + + + + diff --git a/doc/xml/dir_77bb06880a0e48020cb00f59405a6b13.xml b/doc/xml/dir_77bb06880a0e48020cb00f59405a6b13.xml new file mode 100644 index 0000000..78cde66 --- /dev/null +++ b/doc/xml/dir_77bb06880a0e48020cb00f59405a6b13.xml @@ -0,0 +1,14 @@ + + + + src/sys/include/vfs/ + file.h + mount.h + vfs.h + + + + + + + diff --git a/doc/xml/dir_7b0469299ccbf4a3a403496996173710.xml b/doc/xml/dir_7b0469299ccbf4a3a403496996173710.xml new file mode 100644 index 0000000..ee13d79 --- /dev/null +++ b/doc/xml/dir_7b0469299ccbf4a3a403496996173710.xml @@ -0,0 +1,16 @@ + + + + src/sys/sys/ + device.c + dma.c + idt.c + io.c + video.c + + + + + + + diff --git a/doc/xml/dir_7efffd2b1fae7bb6f2aa85845c863494.xml b/doc/xml/dir_7efffd2b1fae7bb6f2aa85845c863494.xml new file mode 100644 index 0000000..fd61bcb --- /dev/null +++ b/doc/xml/dir_7efffd2b1fae7bb6f2aa85845c863494.xml @@ -0,0 +1,39 @@ + + + + src/sys/kernel/ + ap-boot.S + bioscall.c + elf.c + endtask.c + exec.c + fork.c + gen_calls.c + kern_descrip.c + kern_sig.c + kern_sysctl.c + kpanic.c + ld.c + pipe.c + sched.c + schedyield.S + sem.c + smp.c + spinlock.c + sys_call.S + sys_call_new.S + syscall.c + syscall_new.c + systemtask.c + time.c + timer.S + tty.c + ubthread.c + vitals.c + + + + + + + diff --git a/doc/xml/dir_832905b1f7f5feaf61a306b40c0ac817.xml b/doc/xml/dir_832905b1f7f5feaf61a306b40c0ac817.xml new file mode 100644 index 0000000..b568dcc --- /dev/null +++ b/doc/xml/dir_832905b1f7f5feaf61a306b40c0ac817.xml @@ -0,0 +1,28 @@ + + + + src/sys/ + src/sys/devfs/ + src/sys/include/ + src/sys/init/ + src/sys/isa/ + src/sys/kernel/ + src/sys/kmods/ + src/sys/lib/ + src/sys/mpi/ + src/sys/net/ + src/sys/pci/ + src/sys/sys/ + src/sys/ubixfs/ + src/sys/ubixfsv2/ + src/sys/ufs/ + src/sys/vfs/ + src/sys/vmm/ + Makefile.inc + + + + + + + diff --git a/doc/xml/dir_897b6a2d7bab147dd1db58381aad3984.xml b/doc/xml/dir_897b6a2d7bab147dd1db58381aad3984.xml new file mode 100644 index 0000000..a20e115 --- /dev/null +++ b/doc/xml/dir_897b6a2d7bab147dd1db58381aad3984.xml @@ -0,0 +1,12 @@ + + + + src/ + src/sys/ + + + + + + + diff --git a/doc/xml/dir_912887cea1b4cb6e273c4527a2250d09.xml b/doc/xml/dir_912887cea1b4cb6e273c4527a2250d09.xml new file mode 100644 index 0000000..63ac54a --- /dev/null +++ b/doc/xml/dir_912887cea1b4cb6e273c4527a2250d09.xml @@ -0,0 +1,14 @@ + + + + src/sys/include/pci/ + hd.h + lnc.h + pci.h + + + + + + + diff --git a/doc/xml/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.xml b/doc/xml/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.xml new file mode 100644 index 0000000..0494f12 --- /dev/null +++ b/doc/xml/dir_9854bc9d2b9a2a73f32c73e97d31d0f7.xml @@ -0,0 +1,35 @@ + + + + src/sys/include/ubixos/ + elf.h + endtask.h + exec.h + fork.h + init.h + kmod.h + kpanic.h + ld.h + lists.h + sched.h + sem.h + smp.h + spinlock.h + static.h + syscall.h + syscalls.h + syscalls_new.h + systemtask.h + time.h + times.h + tty.h + types.h + ubthread.h + vitals.h + + + + + + + diff --git a/doc/xml/dir_a0cadbe588a0f0b62517333d702e3cca.xml b/doc/xml/dir_a0cadbe588a0f0b62517333d702e3cca.xml new file mode 100644 index 0000000..cbaff9f --- /dev/null +++ b/doc/xml/dir_a0cadbe588a0f0b62517333d702e3cca.xml @@ -0,0 +1,12 @@ + + + + src/sys/kmods/ + kmod.c + + + + + + + diff --git a/doc/xml/dir_b2e9f53f507f0bb44cd3f7446945d199.xml b/doc/xml/dir_b2e9f53f507f0bb44cd3f7446945d199.xml new file mode 100644 index 0000000..d3cfd71 --- /dev/null +++ b/doc/xml/dir_b2e9f53f507f0bb44cd3f7446945d199.xml @@ -0,0 +1,18 @@ + + + + src/sys/net/net/ + bot.c + init.c + shell.c + shell.h + sys_arch.c + udpecho.c + udpecho.h + + + + + + + diff --git a/doc/xml/dir_b683da389ddfd9a2385307147d6c30b8.xml b/doc/xml/dir_b683da389ddfd9a2385307147d6c30b8.xml new file mode 100644 index 0000000..606cdfe --- /dev/null +++ b/doc/xml/dir_b683da389ddfd9a2385307147d6c30b8.xml @@ -0,0 +1,14 @@ + + + + src/sys/pci/ + hd.c + lnc.c + pci.c + + + + + + + diff --git a/doc/xml/dir_b87deefade4e886319aa926bd3ba1491.xml b/doc/xml/dir_b87deefade4e886319aa926bd3ba1491.xml new file mode 100644 index 0000000..fdeccd6 --- /dev/null +++ b/doc/xml/dir_b87deefade4e886319aa926bd3ba1491.xml @@ -0,0 +1,23 @@ + + + + src/sys/vmm/ + copyvirtualspace.c + createvirtualspace.c + getfreepage.c + getfreevirtualpage.c + getphysicaladdr.c + page_fault.S + pagefault.c + paging.c + setpageattributes.c + unmappage.c + vmm_init.c + vmm_memory.c + + + + + + + diff --git a/doc/xml/dir_bcb67723b759fa7c88f0f248d2c080de.xml b/doc/xml/dir_bcb67723b759fa7c88f0f248d2c080de.xml new file mode 100644 index 0000000..784a840 --- /dev/null +++ b/doc/xml/dir_bcb67723b759fa7c88f0f248d2c080de.xml @@ -0,0 +1,13 @@ + + + + src/sys/mpi/ + message.c + system.c + + + + + + + diff --git a/doc/xml/dir_bdca170688007a80a8e983b8739e5b43.xml b/doc/xml/dir_bdca170688007a80a8e983b8739e5b43.xml new file mode 100644 index 0000000..8f54f06 --- /dev/null +++ b/doc/xml/dir_bdca170688007a80a8e983b8739e5b43.xml @@ -0,0 +1,17 @@ + + + + src/sys/include/net/arch/ + cc.h + cpu.h + init.h + lib.h + perf.h + sys_arch.h + + + + + + + diff --git a/doc/xml/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.xml b/doc/xml/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.xml new file mode 100644 index 0000000..01dee48 --- /dev/null +++ b/doc/xml/dir_becc64c1c5cdfab2e137aa1ca4b91e6b.xml @@ -0,0 +1,15 @@ + + + + src/sys/net/netif/ + arp.c + ethernetif.c + loopif.c + tcpdump.c + + + + + + + diff --git a/doc/xml/dir_c0f81d69cde38683f3447d3343de50f4.xml b/doc/xml/dir_c0f81d69cde38683f3447d3343de50f4.xml new file mode 100644 index 0000000..4438d00 --- /dev/null +++ b/doc/xml/dir_c0f81d69cde38683f3447d3343de50f4.xml @@ -0,0 +1,15 @@ + + + + src/sys/include/netif/ + arp.h + ethernetif.h + loopif.h + tcpdump.h + + + + + + + diff --git a/doc/xml/dir_c1d11d251a83b2498f44d410b793c5eb.xml b/doc/xml/dir_c1d11d251a83b2498f44d410b793c5eb.xml new file mode 100644 index 0000000..8f76fca --- /dev/null +++ b/doc/xml/dir_c1d11d251a83b2498f44d410b793c5eb.xml @@ -0,0 +1,34 @@ + + + + src/sys/include/net/ + src/sys/include/net/arch/ + src/sys/include/net/ipv4/ + src/sys/include/net/ipv6/ + api.h + api_msg.h + arch.h + debug.h + def.h + err.h + list.h + lwipopts.h + mem.h + memp.h + net.h + netif.h + opt.h + pbuf.h + sockets.h + stats.h + sys.h + tcp.h + tcpip.h + udp.h + + + + + + + diff --git a/doc/xml/dir_c3e84400a32e4fc888777536359ca22b.xml b/doc/xml/dir_c3e84400a32e4fc888777536359ca22b.xml new file mode 100644 index 0000000..1d6c1da --- /dev/null +++ b/doc/xml/dir_c3e84400a32e4fc888777536359ca22b.xml @@ -0,0 +1,15 @@ + + + + src/sys/include/net/ipv4/ + icmp.h + inet.h + ip.h + ip_addr.h + + + + + + + diff --git a/doc/xml/dir_caf4200c438ae9601464168e21e8e4d8.xml b/doc/xml/dir_caf4200c438ae9601464168e21e8e4d8.xml new file mode 100644 index 0000000..9e90324 --- /dev/null +++ b/doc/xml/dir_caf4200c438ae9601464168e21e8e4d8.xml @@ -0,0 +1,30 @@ + + + + src/sys/include/ + src/sys/include/devfs/ + src/sys/include/isa/ + src/sys/include/lib/ + src/sys/include/mpi/ + src/sys/include/net/ + src/sys/include/netif/ + src/sys/include/objgfx/ + src/sys/include/pci/ + src/sys/include/sde/ + src/sys/include/sys/ + src/sys/include/ubixfs/ + src/sys/include/ubixos/ + src/sys/include/ufs/ + src/sys/include/vfs/ + src/sys/include/vmm/ + assert.h + math.h + stdarg.h + string.h + + + + + + + diff --git a/doc/xml/dir_cbd3b6f8ac372a007cdc756f615c76fe.xml b/doc/xml/dir_cbd3b6f8ac372a007cdc756f615c76fe.xml new file mode 100644 index 0000000..db293d3 --- /dev/null +++ b/doc/xml/dir_cbd3b6f8ac372a007cdc756f615c76fe.xml @@ -0,0 +1,13 @@ + + + + src/sys/ufs/ + ffs.c + ufs.c + + + + + + + diff --git a/doc/xml/dir_d26f37d6397a53073c964316867e8d67.xml b/doc/xml/dir_d26f37d6397a53073c964316867e8d67.xml new file mode 100644 index 0000000..e6b2154 --- /dev/null +++ b/doc/xml/dir_d26f37d6397a53073c964316867e8d67.xml @@ -0,0 +1,32 @@ + + + + src/sys/include/sys/ + _types.h + buf.h + cdefs.h + device.h + device.old.h + dma.h + driver.h + gdt.h + gen_calls.h + idt.h + io.h + kern_descrip.h + kern_sig.h + kern_sysctl.h + pipe.h + signal.h + sysproto.h + thread.h + trap.h + tss.h + video.h + + + + + + + diff --git a/doc/xml/dir_d5a59026f863a7643db80a2edf430514.xml b/doc/xml/dir_d5a59026f863a7643db80a2edf430514.xml new file mode 100644 index 0000000..58e035b --- /dev/null +++ b/doc/xml/dir_d5a59026f863a7643db80a2edf430514.xml @@ -0,0 +1,13 @@ + + + + src/sys/include/vmm/ + paging.h + vmm.h + + + + + + + diff --git a/doc/xml/dir_d6c0de4141c0ef78b51cf518480fe588.xml b/doc/xml/dir_d6c0de4141c0ef78b51cf518480fe588.xml new file mode 100644 index 0000000..7087d98 --- /dev/null +++ b/doc/xml/dir_d6c0de4141c0ef78b51cf518480fe588.xml @@ -0,0 +1,12 @@ + + + + src/sys/include/mpi/ + mpi.h + + + + + + + diff --git a/doc/xml/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.xml b/doc/xml/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.xml new file mode 100644 index 0000000..f2e36d3 --- /dev/null +++ b/doc/xml/dir_d9dcf62a8e8b4cc91cbf2445d76a799b.xml @@ -0,0 +1,27 @@ + + + + src/sys/lib/ + assert.c + atan.c + bcopy.c + divdi3.c + kmalloc.c + kprintf.c + libcpp.cc + memcpy.c + memset.c + net.c + ogprintf.cc + sqrt.c + string.c + strtok.c + strtol.c + vsprintf.c + + + + + + + diff --git a/doc/xml/dir_da977d215fccd664f66e7711fda26f76.xml b/doc/xml/dir_da977d215fccd664f66e7711fda26f76.xml new file mode 100644 index 0000000..755b3ec --- /dev/null +++ b/doc/xml/dir_da977d215fccd664f66e7711fda26f76.xml @@ -0,0 +1,14 @@ + + + + src/sys/net/ + src/sys/net/api/ + src/sys/net/net/ + src/sys/net/netif/ + + + + + + + diff --git a/doc/xml/dir_dffcdd1ad37a0b2305f9cf289deb8f95.xml b/doc/xml/dir_dffcdd1ad37a0b2305f9cf289deb8f95.xml new file mode 100644 index 0000000..951829f --- /dev/null +++ b/doc/xml/dir_dffcdd1ad37a0b2305f9cf289deb8f95.xml @@ -0,0 +1,14 @@ + + + + src/sys/init/ + main.c + start.S + static.c + + + + + + + diff --git a/doc/xml/directory_8c.xml b/doc/xml/directory_8c.xml new file mode 100644 index 0000000..61e0bd2 --- /dev/null +++ b/doc/xml/directory_8c.xml @@ -0,0 +1,468 @@ + + + + directory.c + ubixfs/ubixfs.h + vfs/file.h + vfs/mount.h + ubixos/types.h + lib/kmalloc.h + lib/kprintf.h + lib/string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int addDirEntry + (struct directoryEntry *dir, fileDescriptor *fd) + addDirEntry + + struct directoryEntry * + dir + + + fileDescriptor * + fd + + + + + + + + + kmalloc + kprintf + memcpy + fileDescriptor::offset + readUbixFS + fileDescriptor::size + writeUbixFS + x1000 + ubixFSmkDir + + + dirList_t + dirList_t ubixFSLoadDir + (char *data) + ubixFSLoadDir + + char * + data + + + + + + + + + directoryList::dirCache + dirList + directoryList::dirName + kmalloc + directoryList::next + directoryList::prev + sprintf + strcmp + + + int + int ubixFSmkDir + (char *directory, fileDescriptor *fd) + ubixFSmkDir + + char * + directory + + + fileDescriptor * + fd + + + + + + + + + addDirEntry + directoryEntry::attributes + ubixFSInfo::blockAllocationTable + blockSize + directoryEntry::fileName + getFreeBlocks + kfree + kmalloc + directoryEntry::permissions + blockAllocationTableEntry::realSector + directoryEntry::size + sprintf + directoryEntry::startCluster + typeDirectory + UBIXFS_BLOCKSIZE_BYTES + ubixfs_init + + + + + dirList_t + dirList_t dirList + + dirList + 0x0 + + + + + + + + ubixfs_cacheFind + ubixfs_findName + ubixFSLoadDir + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<ubixfs/ubixfs.h> +#include<vfs/file.h> +#include<vfs/mount.h> +#include<ubixos/types.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/string.h> + +staticdirList_tdirList=0x0; + +dirList_t +ubixFSLoadDir(char*data){ +dirList_ttmpDir=0x0; + +tmpDir=(dirList_t)kmalloc(sizeof(structdirectoryList)); + +sprintf(tmpDir->dirName,"%s",data); + +if(0x0==dirList){ +dirList=tmpDir; +} +else{ +tmpDir->next=dirList; +tmpDir->prev=0x0; +dirList->prev=tmpDir; +dirList=tmpDir; +} + +if(!strcmp(":",data)){ +tmpDir->dirCache=(char*)kmalloc(0x4000); +} + +return(tmpDir); +} + +int +addDirEntry(structdirectoryEntry*dir,fileDescriptor*fd){ +uInt32i=0x0; +uInt32entries=0x0; +structdirectoryEntry*tmp=0x0; + +tmp=(structdirectoryEntry*)kmalloc(fd->size); + +readUbixFS(fd,(char*)tmp,fd->offset,fd->size); +entries=fd->size/sizeof(structdirectoryEntry); +for(i=0;(tmp[i].attributes!=0x0)&&(i<entries);i++); + +if(i==entries){ +tmp=(structdirectoryEntry*)kmalloc(0x1000); +i=0x0; +} +else{ +fd->offset=0x0; +} +memcpy(&tmp[i],dir,sizeof(structdirectoryEntry)); + +if(writeUbixFS(fd,(char*)tmp,fd->offset,fd->size)==0x0){ +kprintf("ErrorCreatingDirectory\n"); +} + +return(0x0); +} + +int +ubixFSmkDir(char*directory,fileDescriptor*fd){ +intblock=0x0; + +structdirectoryEntry*dir=0x0; +structdirectoryEntry*entry=0x0; +structubixFSInfo*fsInfo=fd->mp->fsInfo; + +//kprintf("CreatingDirectory:%s",directory); + +block=getFreeBlocks(1,fd); +if(block!=0x0){ +dir=(structdirectoryEntry*)kmalloc(UBIXFS_BLOCKSIZE_BYTES); +entry=(structdirectoryEntry*)kmalloc(sizeof(structdirectoryEntry)); + +entry->startCluster=block; +entry->size=UBIXFS_BLOCKSIZE_BYTES; +entry->attributes=typeDirectory; +entry->permissions=0xEAA; +sprintf(entry->fileName,directory); + +//dir->attributes=typeDirectory; +//sprintf(dir->fileName,"TestEntry"); + +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info, +dir, +fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[block].realSector, +blockSize); +addDirEntry(entry,fd); +kfree(dir); +kfree(entry); +} + +return(0x0); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:17reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:41reddawg +nomessage + +Revision1.122004/08/1411:23:02reddawg +Changes + +Revision1.112004/08/0117:58:39flameshadow +chg:fixedstringallocationbuginubixfs_cacheNew() + +Revision1.102004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.92004/07/1620:17:29flameshadow +chg:broketheufsstuff +chg:changedvfsRegisterFS()toacceptafileSystemstruct +chg:modifiedcallstovfsRegisterFS()topassfileSystemstruct + +Revision1.82004/06/2903:59:47reddawg +Fixedafewissueswithsubdirectoriestheyareworkingmuchbetternow + +Revision1.72004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.62004/06/0413:20:22reddawg +ubixFSmkDir():playedwithitabittoseeifitstillworked + +Revision1.52004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.42004/05/1915:20:06reddawg +Fixedreferenceproblemsduetochangesindrivesubsystem + +Revision1.32004/05/1904:07:43reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.22004/04/2802:22:55reddawg +Thisisafiarlylargecommitbutwearestartingtousenewdrivermodel +allaround + +Revision1.1.1.12004/04/1512:07:07reddawg +UbixOSv1.0 + +Revision1.62004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/divdi3_8c.xml b/doc/xml/divdi3_8c.xml new file mode 100644 index 0000000..1cba86e --- /dev/null +++ b/doc/xml/divdi3_8c.xml @@ -0,0 +1,144 @@ + + + + divdi3.c + math.h + + + + + + + + + + + + + + + + + + + + + + + + + + + quad_t + quad_t __divdi3 + (quad_t a, quad_t b) + __divdi3 + + quad_t + a + + + quad_t + b + + + + + + + + + + + u_quad_t + u_quad_t __udivdi3 + (u_quad_t a, u_quad_t b) + __udivdi3 + + u_quad_t + a + + + u_quad_t + b + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<math.h> + +u_quad_t__udivdi3(u_quad_ta,u_quad_tb){ +return(0);/*QuickHack*/ +} + +quad_t__divdi3(quad_ta,quad_tb){ +return(0);/*QuickHack*/ +} + +/*** +$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.22004/05/1903:46:32reddawg +AFewQuickHacksToMakeThingsWork + +Revision1.1.1.12004/04/1512:07:10reddawg +UbixOSv1.0 + +Revision1.22004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/dma_8c.xml b/doc/xml/dma_8c.xml new file mode 100644 index 0000000..8082ca0 --- /dev/null +++ b/doc/xml/dma_8c.xml @@ -0,0 +1,319 @@ + + + + dma.c + sys/dma.h + sys/io.h + ubixos/types.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + highByte + x + ((x & 0xFF00) >> 8) + + + + + + + + _dmaXfer + + + lowByte + x + (x & 0x00FF) + + + + + + + + _dmaXfer + + + + + void + void _dmaXfer + (uInt8 dmaChannel, uInt8 page, uInt offset, uInt length, uInt8 mode) + _dmaXfer + + uInt8 + dmaChannel + + + uInt8 + page + + + uInt + offset + + + uInt + length + + + uInt8 + mode + + + + + + + + + addrPort + clearReg + countPort + highByte + lowByte + maskReg + modeReg + outportByte + pagePort + dmaXfer + + + void + void dmaXfer + (uInt8 channel, uInt32 address, uInt length, uInt8 read) + dmaXfer + + uInt8 + channel + + + uInt32 + address + + + uInt + length + + + uInt8 + read + + + + + + + + + _dmaXfer + fdcRw + + + + + uInt8 + uInt8 addrPort[8] + [8] + addrPort + { 0x00, 0x02, 0x04, 0x06, 0xC0, 0xC4, 0xC8, 0xCC } + + + + + + + + _dmaXfer + + + uInt8 + uInt8 clearReg[8] + [8] + clearReg + { 0x0C, 0x0C, 0x0C, 0x0C, 0xD8, 0xD8, 0xD8, 0xD8 } + + + + + + + + _dmaXfer + + + uInt8 + uInt8 countPort[8] + [8] + countPort + { 0x01, 0x03, 0x05, 0x07, 0xC2, 0xC6, 0xCA, 0xCE } + + + + + + + + _dmaXfer + + + uInt8 + uInt8 maskReg[8] + [8] + maskReg + { 0x0A, 0x0A, 0x0A, 0x0A, 0xD4, 0xD4, 0xD4, 0xD4 } + + + + + + + + _dmaXfer + + + uInt8 + uInt8 modeReg[8] + [8] + modeReg + { 0x0B, 0x0B, 0x0B, 0x0B, 0xD6, 0xD6, 0xD6, 0xD6 } + + + + + + + + _dmaXfer + + + uInt8 + uInt8 pagePort[8] + [8] + pagePort + { 0x87, 0x83, 0x81, 0x82, 0x8F, 0x8B, 0x89, 0x8A } + + + + + + + + _dmaXfer + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/dma.h> +#include<sys/io.h> +#include<ubixos/types.h> + +#definelowByte(x)(x&0x00FF) +#definehighByte(x)((x&0xFF00)>>8) + +staticuInt8maskReg[8]={0x0A,0x0A,0x0A,0x0A,0xD4,0xD4,0xD4,0xD4}; +staticuInt8clearReg[8]={0x0C,0x0C,0x0C,0x0C,0xD8,0xD8,0xD8,0xD8}; +staticuInt8modeReg[8]={0x0B,0x0B,0x0B,0x0B,0xD6,0xD6,0xD6,0xD6}; +staticuInt8addrPort[8]={0x00,0x02,0x04,0x06,0xC0,0xC4,0xC8,0xCC}; +staticuInt8pagePort[8]={0x87,0x83,0x81,0x82,0x8F,0x8B,0x89,0x8A}; +staticuInt8countPort[8]={0x01,0x03,0x05,0x07,0xC2,0xC6,0xCA,0xCE}; + +voiddmaXfer(uInt8channel,uInt32address,uIntlength,uInt8read){ +unsignedcharpage=0,mode=0; +unsignedintoffset=0; +if(read){ +mode=0x48+channel; +} +else{ +mode=0x44+channel; +} +page=address>>16; +offset=address&0xFFFF; +length--; +_dmaXfer(channel,page,offset,length,mode); +} + +void_dmaXfer(uInt8dmaChannel,uInt8page,uIntoffset,uIntlength,uInt8mode){ +//asm("cli"); +outportByte(maskReg[dmaChannel],0x04|dmaChannel); +outportByte(clearReg[dmaChannel],0x00); +outportByte(modeReg[dmaChannel],mode); +outportByte(addrPort[dmaChannel],lowByte(offset)); +outportByte(addrPort[dmaChannel],highByte(offset)); +outportByte(pagePort[dmaChannel],page); +outportByte(countPort[dmaChannel],lowByte(length)); +outportByte(countPort[dmaChannel],highByte(length)); +outportByte(maskReg[dmaChannel],dmaChannel); +//asm("sti"); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/dma_8h.xml b/doc/xml/dma_8h.xml new file mode 100644 index 0000000..3f8a891 --- /dev/null +++ b/doc/xml/dma_8h.xml @@ -0,0 +1,184 @@ + + + + dma.h + ubixos/types.h + src/sys/isa/fdc.c + src/sys/sys/dma.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void _dmaXfer + (uInt8 dmaChannel, uInt8 page, uInt offset, uInt length, uInt8 mode) + _dmaXfer + + uInt8 + dmaChannel + + + uInt8 + page + + + uInt + offset + + + uInt + length + + + uInt8 + mode + + + + + + + + + addrPort + clearReg + countPort + highByte + lowByte + maskReg + modeReg + outportByte + pagePort + dmaXfer + + + void + void dmaXfer + (uInt8 channel, uInt32 address, uInt length, uInt8 read) + dmaXfer + + uInt8 + channel + + + uInt32 + address + + + uInt + length + + + uInt8 + read + + + + + + + + + _dmaXfer + fdcRw + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_DMA_H +#define_DMA_H + +#include<ubixos/types.h> + +voiddmaXfer(uInt8channel,uInt32address,uIntlength,uInt8read); +void_dmaXfer(uInt8dmaChannel,uInt8page,uIntoffset,uIntlength,uInt8mode); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:52reddawg +nomessage + +Revision1.32004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/driver_8h.xml b/doc/xml/driver_8h.xml new file mode 100644 index 0000000..598c673 --- /dev/null +++ b/doc/xml/driver_8h.xml @@ -0,0 +1,116 @@ + + + + driver.h + ubixos/types.h + + + + + + + + + + + + + + + + + + + devMethodType + driverType + + + devMethodType + typedef struct devMethodType devMethod + + devMethod + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_DRIVER_H +#define_DRIVER_H + +#include<ubixos/types.h> + + +typedefstructdevMethodTypedevMethod; + +structdevMethodType{ +}; + +structdriverType{ +constchar*devName; +devMethod*methods; +} + + + + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:52reddawg +nomessage + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/elf_8c.xml b/doc/xml/elf_8c.xml new file mode 100644 index 0000000..7210b5e --- /dev/null +++ b/doc/xml/elf_8c.xml @@ -0,0 +1,374 @@ + + + + elf.c + ubixos/elf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + char * + char* elfGetPhType + (int phType) + elfGetPhType + + int + phType + + + + + + + + + elfPhType + phTypeName + + + char * + char* elfGetRelType + (int relType) + elfGetRelType + + int + relType + + + + + + + + + elfRelType + relTypeName + kmod_load + ldEnable + + + char * + char* elfGetShType + (int shType) + elfGetShType + + int + shType + + + + + + + + + elfShType + shTypeName + + + + + @10 + struct @10 elfPhType[] + [] + elfPhType + + + + + + + + elfGetPhType + + + @12 + struct @12 elfRelType[] + [] + elfRelType + + + + + + + + elfGetRelType + + + @11 + struct @11 elfShType[] + [] + elfShType + + + + + + + + elfGetShType + + + @9 + struct @9 elfType[] + [] + elfType + + + + + + + + + + char * + char* elfTypeName + + elfTypeName + + + + + + + + + + uInt32 + uInt32 id + + id + + + + + + + + + + uInt32 + uInt32 id + + id + + + + + + + + + + uInt32 + uInt32 id + + id + + + + + + + + + + uInt32 + uInt32 id + + id + + + + + + + + + + char * + char* phTypeName + + phTypeName + + + + + + + + elfGetPhType + + + char * + char* relTypeName + + relTypeName + + + + + + + + elfGetRelType + + + char * + char* shTypeName + + shTypeName + + + + + + + + elfGetShType + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/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 +***/ + + + + + diff --git a/doc/xml/elf_8h.xml b/doc/xml/elf_8h.xml new file mode 100644 index 0000000..ed13646 --- /dev/null +++ b/doc/xml/elf_8h.xml @@ -0,0 +1,1258 @@ + + + + elf.h + ubixos/types.h + src/sys/include/ubixos/sched.h + src/sys/kernel/elf.c + src/sys/kernel/ld.c + src/sys/kernel/syscall.c + src/sys/kmods/kmod.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + elfDynamic + elfDynSym + elfHeader + elfPltInfo + elfProgramHeader + elfSectionHeader + + + ELF32_R_INFO + s + t + ((s)<<8+(unsigned char)(t)) + + + + + + + + + + ELF32_R_SYM + i + ((i)>>8) + + + + + + + + kmod_load + ldEnable + + + ELF32_R_TYPE + i + ((unsigned char)(i)) + + + + + + + + kmod_load + ldEnable + + + elfExecutable + 0x002 + + + + + + + + + + elfLibrary + 0x003 + + + + + + + + + + EM_386 + 3 + + + + + + + + + + EM_68K + 4 + + + + + + + + + + EM_860 + 7 + + + + + + + + + + EM_88K + 5 + + + + + + + + + + EM_M32 + 1 + + + + + + + + + + EM_MIPS + 8 + + + + + + + + + + EM_NONE + 0 + + + + + + + + + + EM_SPARC + 2 + + + + + + + + + + ET_CORE + 4 + + + + + + + + + + ET_DYN + 3 + + + + + + + + + + ET_EXEC + 2 + + + + + + + + + + ET_HIPROC + 0xffff + + + + + + + + + + ET_LOPROC + 0xff00 + + + + + + + + + + ET_NONE + 0 + + + + + + + + + + ET_REL + 1 + + + + + + + + + + EV_CURRENT + 1 + + + + + + + + + + EV_NONE + 0 + + + + + + + + + + PT_DYNAMIC + 2 + + + + + + + + kmod_load + ldEnable + sysExec + + + PT_GNU_EH_FRAME + 0x6474e550 + + + + + + + + + + PT_GNU_RELRO + (PT_LOOS + 0x474e552) + + + + + + + + + + PT_GNU_STACK + (PT_LOOS + 0x474e551) + + + + + + + + kmod_load + ldEnable + + + PT_HIOS + 0x6fffffff + + + + + + + + + + PT_HIPROC + 0x7fffffff + + + + + + + + + + PT_INTERP + 3 + + + + + + + + sysExec + + + PT_LOAD + 1 + + + + + + + + kmod_load + ldEnable + sysExec + + + PT_LOOS + 0x60000000 + + + + + + + + + + PT_LOPROC + 0x70000000 + + + + + + + + + + PT_NOTE + 4 + + + + + + + + + + PT_NULL + 0 + + + + + + + + + + PT_PAX_FLAGS + (PT_LOOS + 0x5041580) + + + + + + + + kmod_load + ldEnable + + + PT_PHDR + 6 + + + + + + + + + + PT_SHLIB + 5 + + + + + + + + + + R_386_32 + 1 + + + + + + + + kmod_load + ldEnable + + + R_386_COPY + 5 + + + + + + + + + + R_386_GLOB_DAT + 6 + + + + + + + + + + R_386_GOT32 + 3 + + + + + + + + + + R_386_GOTOFF + 9 + + + + + + + + + + R_386_GOTPC + 10 + + + + + + + + + + R_386_JMP_SLOT + 7 + + + + + + + + + + R_386_NONE + 0 + + + + + + + + + + R_386_PC32 + 2 + + + + + + + + kmod_load + ldEnable + + + R_386_PLT32 + 4 + + + + + + + + + + R_386_RELATIVE + 8 + + + + + + + + kmod_load + ldEnable + + + + + char * + char* elfGetPhType + (int) + elfGetPhType + + int + + + + + + + + + elfPhType + phTypeName + + + char * + char* elfGetRelType + (int) + elfGetRelType + + int + + + + + + + + + elfRelType + relTypeName + kmod_load + ldEnable + + + char * + char* elfGetShType + (int) + elfGetShType + + int + + + + + + + + + elfShType + shTypeName + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_ELF_H +#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*/ + + +/*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 +***/ + + + + diff --git a/doc/xml/endtask_8c.xml b/doc/xml/endtask_8c.xml new file mode 100644 index 0000000..068bfc3 --- /dev/null +++ b/doc/xml/endtask_8c.xml @@ -0,0 +1,310 @@ + + + + endtask.c + ubixos/types.h + ubixos/sched.h + ubixos/vitals.h + vmm/vmm.h + lib/kprintf.h + isa/8259.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void endTask + (pidType pid) + endTask + + pidType + pid + + + + + + + + + _current + DEAD + taskStruct::id + sched_setStatus + sched_yield + __sysctl + _int0 + _int1 + _int10 + _int11 + _int12 + _int2 + _int3 + _int4 + _int5 + _int6 + _int9 + netMainThread + schedEndTask + sysExec + sysExit + vmm_pageFault + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<ubixos/sched.h> +#include<ubixos/vitals.h> +#include<vmm/vmm.h> +#include<lib/kprintf.h> +#include<isa/8259.h> + +/************************************************************************ + +Function:endTask(pidTypepid) + +Description:Thiswilldocleanupforanendingtask + +Notes: + +************************************************************************/ +voidendTask(pidTypepid){ +//kTask_t*tmpTask=0x0; + +/*Don'tmesswithschedulerstructuresfromoutsidethescheduler!*/ +/*Justsetstatustodead,andlettheschedulercleanupitself*/ +sched_setStatus(pid,DEAD); +//tmpTask=schedFindTask(pid); +//if(sched_deleteTask(pid)!=0x0) +//kpanic("sched_deleteTask:Failed\n"); +//kprintf("EndingTask:(%i:0x%X)\n",tmpTask->id,tmpTask); +//sched_addDelTask(tmpTask); +//tmpTask->state=DEAD; + +//tmpTask->term->owner=tmpTask->parentPid; + +if(pid==_current->id) +while(1) +sched_yield(); +sched_yield(); + +return; +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/endtask_8h.xml b/doc/xml/endtask_8h.xml new file mode 100644 index 0000000..a876c7c --- /dev/null +++ b/doc/xml/endtask_8h.xml @@ -0,0 +1,284 @@ + + + + endtask.h + ubixos/types.h + ubixos/sched.h + src/sys/isa/atkbd.c + src/sys/kernel/exec.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/sched.c + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + src/sys/net/net/init.c + src/sys/sys/idt.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void endTask + (pidType) + endTask + + pidType + + + + + + + + + _current + DEAD + taskStruct::id + sched_setStatus + sched_yield + __sysctl + _int0 + _int1 + _int10 + _int11 + _int12 + _int2 + _int3 + _int4 + _int5 + _int6 + _int9 + netMainThread + schedEndTask + sysExec + sysExit + vmm_pageFault + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_ENDTASK_H +#define_ENDTASK_H + +#include<ubixos/types.h> +#include<ubixos/sched.h> + +voidendTask(pidType); + +#endif + +/*** +$Log$ +Revision1.22006/10/3120:41:16reddawg +Includes + +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.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/err_8c.xml b/doc/xml/err_8c.xml new file mode 100644 index 0000000..e4d8c33 --- /dev/null +++ b/doc/xml/err_8c.xml @@ -0,0 +1,112 @@ + + + + err.c + net/err.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include"net/err.h" + +#ifdefLWIP_DEBUG + +staticchar*err_strerr[]={"Ok.", +"Outofmemoryerror.", +"Buffererror.", +"Connectionaborted.", +"Connectionreset.", +"Connectionclosed.", +"Notconnected.", +"Illegalvalue.", +"Illegalargument.", +"Routingproblem.", +"Addressinuse." +}; + +/*-----------------------------------------------------------------------------------*/ +char* +lwip_strerr(err_terr) +{ +returnerr_strerr[-err]; + +} +/*-----------------------------------------------------------------------------------*/ + +#endif/*LWIP_DEBUG*/ + + + + diff --git a/doc/xml/err_8h.xml b/doc/xml/err_8h.xml new file mode 100644 index 0000000..b6cbd15 --- /dev/null +++ b/doc/xml/err_8h.xml @@ -0,0 +1,518 @@ + + + + err.h + ubixos/types.h + net/debug.h + net/arch/cc.h + src/sys/include/net/api.h + src/sys/include/net/ipv4/ip.h + src/sys/include/net/netif.h + src/sys/include/net/tcp.h + src/sys/include/net/udp.h + src/sys/net/api/err.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ERR_ABRT + -3 + + + + + + + + + + ERR_ARG + -8 + + + + + + + + lwip_send + lwip_write + + + ERR_BUF + -2 + + + + + + + + netbuf_data + + + ERR_CLSD + -5 + + + + + + + + + + ERR_CONN + -6 + + + + + + + + netconn_recv + + + ERR_MEM + -1 + + + + + + + + accept_function + do_connect + do_listen + ethernetif_output + loopif_output + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + tcpip_input + + + ERR_OK + 0 + + + + + + + + accept_function + do_connected + do_delconn + do_write + loopif_output + low_level_output + lwip_bind + lwip_connect + lwip_listen + lwip_send + lwip_write + netbuf_data + netconn_addr + netconn_delete + netconn_peer + netconn_recv + netconn_send + netconn_write + poll_tcp + recv_tcp + sent_tcp + tcpip_input + + + ERR_RST + -4 + + + + + + + + + + ERR_RTE + -9 + + + + + + + + + + ERR_USE + -10 + + + + + + + + + + ERR_VAL + -7 + + + + + + + + do_connected + do_write + netconn_bind + netconn_close + netconn_connect + netconn_listen + netconn_send + netconn_write + recv_tcp + + + lwip_strerr + x + "" + + + + + + + + + + + + Int8 + typedef Int8 err_t + + err_t + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_ERR_H__ +#define__LWIP_ERR_H__ + +#include<ubixos/types.h> + +#include"net/debug.h" + +#include"net/arch/cc.h" + +typedefInt8err_t; + +/*Definitionsforerrorconstants.*/ + +#defineERR_OK0/*Noerror,everythingOK.*/ +#defineERR_MEM-1/*Outofmemoryerror.*/ +#defineERR_BUF-2/*Buffererror.*/ + + +#defineERR_ABRT-3/*Connectionaborted.*/ +#defineERR_RST-4/*Connectionreset.*/ +#defineERR_CLSD-5/*Connectionclosed.*/ +#defineERR_CONN-6/*Notconnected.*/ + +#defineERR_VAL-7/*Illegalvalue.*/ + +#defineERR_ARG-8/*Illegalargument.*/ + +#defineERR_RTE-9/*Routingproblem.*/ + +#defineERR_USE-10/*Addressinuse.*/ + + + +#ifdefLWIP_DEBUG +externchar*lwip_strerr(err_terr); +#else +#definelwip_strerr(x)"" +#endif/*LWIP_DEBUG*/ +#endif/*__LWIP_ERR_H__*/ + + + + diff --git a/doc/xml/ethernetif_8c.xml b/doc/xml/ethernetif_8c.xml new file mode 100644 index 0000000..705fab2 --- /dev/null +++ b/doc/xml/ethernetif_8c.xml @@ -0,0 +1,1008 @@ + + + + ethernetif.c + ubixos/types.h + ubixos/sched.h + lib/kmalloc.h + lib/kprintf.h + sys/device.old.h + isa/ne2k.h + net/debug.h + net/opt.h + net/def.h + net/mem.h + net/pbuf.h + net/sys.h + netif/arp.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ethernetif + + + IFNAME0 + 'e' + + + + + + + + ethernetif_init + + + IFNAME1 + 'd' + + + + + + + + ethernetif_init + + + + + void + static void arp_timer + (void *arg) + arp_timer + + void * + arg + + + + + + + + + arp_tmr + ARP_TMR_INTERVAL + NULL + sys_timeout + ethernetif_init + + + void + void ethernetif_init + (struct netif *netif) + ethernetif_init + + struct netif * + netif + + + + + + + + + arp_init + arp_timer + ARP_TMR_INTERVAL + ethernetif_output + netif::hwaddr + IFNAME0 + IFNAME1 + netif::linkoutput + low_level_init + low_level_output + mem_malloc + netif::name + NULL + netif::output + netif::state + sys_timeout + netMainThread + + + void + static void ethernetif_input + (struct netif *netif) + ethernetif_input + + struct netif * + netif + + + + + + + + + arp_arp_input + arp_ip_input + ethernetif::ethaddr + ETHTYPE_ARP + ETHTYPE_IP + htons + netif::input + low_level_input + low_level_output + NULL + pbuf::payload + pbuf_free + pbuf_header + netif::state + ethernetif_thread + + + err_t + static err_t ethernetif_output + (struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) + ethernetif_output + + struct netif * + netif + + + struct pbuf * + p + + + struct ip_addr * + ipaddr + + + + + + + + + arp_lookup + arp_query + ERR_MEM + ethernetif::ethaddr + ethbroadcast + ETHTYPE_IP + netif::gw + htons + ip4_addr2 + ip4_addr3 + ip4_addr4 + netif::ip_addr + ip_addr_isany + ip_addr_isbroadcast + ip_addr_ismulticast + ip_addr_maskcmp + low_level_output + netif::netmask + NULL + pbuf::payload + pbuf_alloc + pbuf_chain + pbuf_free + pbuf_header + PBUF_LINK + PBUF_RAM + netif::state + ethernetif_init + + + void + void ethernetif_thread + (void *arg) + ethernetif_thread + + void * + arg + + + + + + + + + ethernetif_input + nicBuffer::length + ne2kFreeBuffer + ne2kGetBuffer + tmpBuf + + + void + static void ethernetif_thread + () + ethernetif_thread + + + + + + + + low_level_init + + + void + static void low_level_init + (struct netif *netif) + low_level_init + + struct netif * + netif + + + + + + + + + dev + ethernetif::ethaddr + ethernetif_thread + device::ioAddr + device::irq + kmalloc + kprintf + netif::state + sys_thread_new + ethernetif_init + + + struct pbuf * + static struct pbuf* low_level_input + (struct ethernetif *ethernetif) + low_level_input + + struct ethernetif * + ethernetif + + + + + + + + + bcopy + nicBuffer::buffer + pbuf::len + nicBuffer::length + pbuf::next + NULL + pbuf::payload + pbuf_alloc + PBUF_LINK + PBUF_POOL + tmpBuf + ethernetif_input + + + err_t + static err_t low_level_output + (struct ethernetif *ethernetif, struct pbuf *p) + low_level_output + + struct ethernetif * + ethernetif + + + struct pbuf * + p + + + + + + + + + bcopy + dev + ERR_OK + device::ioAddr + device::irq + pbuf::len + pbuf::next + NULL + pbuf::payload + PCtoNIC + pbuf::tot_len + ethernetif_init + ethernetif_input + ethernetif_output + + + + + device * + struct device* dev + + dev + 0x0 + + + + + + + + dp_pkt2user + dp_recv + fdcInit2 + getblock + hdInit + low_level_init + low_level_output + NICtoPC + pci_init + PCtoNIC + UbixFS::UbixFS + UbixFS::vfs_format + + + struct eth_addr + struct eth_addr ethbroadcast + + ethbroadcast + {{0xff,0xff,0xff,0xff,0xff,0xff}} + + + + + + + + ethernetif_output + + + nicBuffer * + struct nicBuffer* tmpBuf + + tmpBuf + 0x0 + + + + + + + + dp_pkt2user + ethernetif_thread + low_level_input + ne2kAllocBuffer + ne2kGetBuffer + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +/* +*ThisfileisaskeletonfordevelopingEthernetnetworkinterface +*driversforlwIP.Addcodetothelow_levelfunctionsanddoa +*search-and-replacefortheword"ethernetif"toreplaceitwith +*somethingthatbetterdescribesyournetworkinterface. +*/ + +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<sys/device.old.h> +#include<isa/ne2k.h> + + +#include"net/debug.h" + +#include"net/opt.h" +#include"net/def.h" +#include"net/mem.h" +#include"net/pbuf.h" +#include"net/sys.h" + +#include"netif/arp.h" + +/*Definethosetobetterdescribeyournetworkinterface.*/ +#defineIFNAME0'e' +#defineIFNAME1'd' + +structnicBuffer*tmpBuf=0x0; + +structethernetif{ +structeth_addr*ethaddr; +/*Addwhateverper-interfacestatethatisneededhere.*/ +}; + +staticconststructeth_addrethbroadcast={{0xff,0xff,0xff,0xff,0xff,0xff}}; + +/*Forwarddeclarations.*/ +staticvoidethernetif_input(structnetif*netif); +staticerr_tethernetif_output(structnetif*netif,structpbuf*p,structip_addr*ipaddr); +staticvoidethernetif_thread(); +structdevice*dev=0x0; + +/*-----------------------------------------------------------------------------------*/ +staticvoidlow_level_init(structnetif*netif){ +structethernetif*ethernetif; + +ethernetif=netif->state; +dev=(structdevice*)kmalloc(sizeof(structdevice)); +dev->ioAddr=0x280; +dev->irq=0x10; + +/*ObtainMACaddressfromnetworkinterface.*/ +ethernetif->ethaddr->addr[0]=0x00; +ethernetif->ethaddr->addr[1]=0x00; +ethernetif->ethaddr->addr[2]=0xC0; +ethernetif->ethaddr->addr[3]=0x97; +ethernetif->ethaddr->addr[4]=0xC6; +ethernetif->ethaddr->addr[5]=0x93; + +/*Dowhateverelseisneededtoinitializeinterface.*/ +kprintf("NETIF:[0x%X:0x%X]\n",netif,ethernetif_thread); +sys_thread_new(ethernetif_thread,netif); + +} +/*-----------------------------------------------------------------------------------*/ +/* +*low_level_output(): +* +*Shoulddotheactualtransmissionofthepacket.Thepacketis +*containedinthepbufthatispassedtothefunction.Thispbuf +*mightbechained. +* +*/ +/*-----------------------------------------------------------------------------------*/ + +staticerr_tlow_level_output(structethernetif*ethernetif,structpbuf*p){ +structpbuf*q; +charbuf[1500]; +char*bufptr=0x0; + +dev->ioAddr=0x280; +dev->irq=10; + +bufptr=&buf[0]; + +for(q=p;q!=NULL;q=q->next){ +bcopy(q->payload,bufptr,q->len); +bufptr+=q->len; +} +PCtoNIC(dev,buf,p->tot_len); +//kprintf("SendingData[%i]\n",p->tot_len); +returnERR_OK; +} + + +/*-----------------------------------------------------------------------------------*/ +/* +*low_level_input(): +* +*Shouldallocateapbufandtransferthebytesoftheincoming +*packetfromtheinterfaceintothepbuf. +* +*/ +/*-----------------------------------------------------------------------------------*/ +staticstructpbuf*low_level_input(structethernetif*ethernetif){ +structpbuf*p,*q; +uInt16len; +char*bufptr; +char*buf; + +len=tmpBuf->length; +bufptr=tmpBuf->buffer; + + +/*Weallocateapbufchainofpbufsfromthepool.*/ +p=pbuf_alloc(PBUF_LINK,len,PBUF_POOL); + +if(p!=NULL){ +/*Weiterateoverthepbufchainuntilwehavereadtheentire +packetintothepbuf.*/ +//bufptr=&buf[0]; +for(q=p;q!=NULL;q=q->next){ +/*Readenoughbytestofillthispbufinthechain.The +avaliabledatainthepbufisgivenbytheq->len +variable.*/ +/*readdatainto(q->payload,q->len);*/ +bcopy(bufptr,q->payload,q->len); +buf=q->payload; +bufptr+=q->len; +} +/*acknowledgethatpackethasbeenread();*/ +}else{ +/*droppacket();*/ +} +returnp; +} + + +/*-----------------------------------------------------------------------------------*/ +/* +*ethernetif_output(): +* +*ThisfunctioniscalledbytheTCP/IPstackwhenanIPpacket +*shouldbesent.Itcallsthefunctioncalledlow_level_output()to +*dotheactualltransmissionofthepacket. +* +*/ +/*-----------------------------------------------------------------------------------*/ +staticerr_tethernetif_output(structnetif*netif,structpbuf*p,structip_addr*ipaddr){ +structethernetif*ethernetif; +structpbuf*q; +structeth_hdr*ethhdr; +structeth_addr*dest,mcastaddr; +structip_addr*queryaddr; +err_terr; +uInt8i; + +ethernetif=netif->state; + + +/*MakeroomforEthernetheader.*/ +if(pbuf_header(p,sizeof(structeth_hdr))!=0){ +/*Thepbuf_header()callshouldn'tfail,butweallocateanextra +pbufjustincase.*/ +q=pbuf_alloc(PBUF_LINK,sizeof(structeth_hdr),PBUF_RAM); +if(q==NULL){ +returnERR_MEM; +} +pbuf_chain(q,p); +p=q; +} + +/*ConstructEthernetheader.Startwithlookingupdecidingwhich +MACaddresstouseasadestinationaddress.Broadcastsand +multicastsarespecial,allotheraddressesarelookedupinthe +ARPtable.*/ +queryaddr=ipaddr; +if(ip_addr_isany(ipaddr)|| +ip_addr_isbroadcast(ipaddr,&(netif->netmask))){ +dest=(structeth_addr*)&ethbroadcast; +}elseif(ip_addr_ismulticast(ipaddr)){ +/*HashIPmulticastaddresstoMACaddress.*/ +mcastaddr.addr[0]=0x01; +mcastaddr.addr[1]=0x0; +mcastaddr.addr[2]=0x5e; +mcastaddr.addr[3]=ip4_addr2(ipaddr)&0x7f; +mcastaddr.addr[4]=ip4_addr3(ipaddr); +mcastaddr.addr[5]=ip4_addr4(ipaddr); +dest=&mcastaddr; +}else{ +if(ip_addr_maskcmp(ipaddr,&(netif->ip_addr),&(netif->netmask))){ +/*UsedestinationIPaddressifthedestinationisonthesame +subnetasweare.*/ +queryaddr=ipaddr; +}else{ +/*Otherwiseweusethedefaultrouterastheaddresstosend +theEthernetframeto.*/ +queryaddr=&(netif->gw); +} +dest=arp_lookup(queryaddr); +} + + +/*Ifthearp_lookup()didn'tfindanaddress,wesendoutanARP +queryfortheIPaddress.*/ +if(dest==NULL){ +q=arp_query(netif,ethernetif->ethaddr,queryaddr); +if(q!=NULL){ +err=low_level_output(ethernetif,q); +pbuf_free(q); +returnerr; +} +returnERR_MEM; +} +ethhdr=p->payload; + +for(i=0;i<6;i++){ +ethhdr->dest.addr[i]=dest->addr[i]; +ethhdr->src.addr[i]=ethernetif->ethaddr->addr[i]; +} + +ethhdr->type=htons(ETHTYPE_IP); + +returnlow_level_output(ethernetif,p); + +} +/*-----------------------------------------------------------------------------------*/ +/* +*ethernetif_input(): +* +*Thisfunctionshouldbecalledwhenapacketisreadytoberead +*fromtheinterface.Itusesthefunctionlow_level_input()that +*shouldhandletheactualreceptionofbytesfromthenetwork +*interface. +* +*/ +/*-----------------------------------------------------------------------------------*/ +staticvoidethernetif_input(structnetif*netif){ +structethernetif*ethernetif=0x0; +structeth_hdr*ethhdr=0x0; +structpbuf*p=0x0; + +ethernetif=netif->state; + +p=low_level_input(ethernetif); + +if(p!=NULL){ + +ethhdr=p->payload; + +switch(htons(ethhdr->type)){ +caseETHTYPE_IP: +arp_ip_input(netif,p); +pbuf_header(p,-14); +netif->input(p,netif); +break; +caseETHTYPE_ARP: +p=arp_arp_input(netif,ethernetif->ethaddr,p); +if(p!=NULL){ +low_level_output(ethernetif,p); +pbuf_free(p); +} +break; +default: +pbuf_free(p); +break; +} +} +} +/*-----------------------------------------------------------------------------------*/ +staticvoid +arp_timer(void*arg) +{ +arp_tmr(); +sys_timeout(ARP_TMR_INTERVAL,(sys_timeout_handler)arp_timer,NULL); +} + +/*-----------------------------------------------------------------------------------*/ +/* +*ethernetif_init(): +* +*Shouldbecalledatthebeginningoftheprogramtosetupthe +*networkinterface.Itcallsthefunctionlow_level_init()todothe +*actualsetupofthehardware. +* +*/ +/*-----------------------------------------------------------------------------------*/ +voidethernetif_init(structnetif*netif){ +structethernetif*ethernetif; + +ethernetif=mem_malloc(sizeof(structethernetif)); +netif->state=ethernetif; +netif->name[0]=IFNAME0; +netif->name[1]=IFNAME1; +netif->output=ethernetif_output; +netif->linkoutput=(void*)low_level_output; + +ethernetif->ethaddr=(structeth_addr*)&(netif->hwaddr[0]); + +low_level_init(netif); +arp_init(); + +sys_timeout(ARP_TMR_INTERVAL,(sys_timeout_handler)arp_timer,NULL); +} + +/*-----------------------------------------------------------------------------------*/ + +voidethernetif_thread(void*arg){ +structnetif*netif=0x0; + +netif=arg; + +while(1){ +tmpBuf=ne2kGetBuffer(); +if(tmpBuf&&tmpBuf->length>0x0){ +ethernetif_input(netif); +} +} +ne2kFreeBuffer(tmpBuf); +} + + + + diff --git a/doc/xml/ethernetif_8h.xml b/doc/xml/ethernetif_8h.xml new file mode 100644 index 0000000..64ac053 --- /dev/null +++ b/doc/xml/ethernetif_8h.xml @@ -0,0 +1,203 @@ + + + + ethernetif.h + net/netif.h + src/sys/net/net/init.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void ethernetif_init + (struct netif *netif) + ethernetif_init + + struct netif * + netif + + + + + + + + + arp_init + arp_timer + ARP_TMR_INTERVAL + ethernetif_output + netif::hwaddr + IFNAME0 + IFNAME1 + netif::linkoutput + low_level_init + low_level_output + mem_malloc + netif::name + NULL + netif::output + netif::state + sys_timeout + netMainThread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__NETIF_ETHERNETIF_H__ +#define__NETIF_ETHERNETIF_H__ + +#include"net/netif.h" + +voidethernetif_init(structnetif*netif); + +#endif/*__NETIF_ETHERNETIF_H__*/ + + + + diff --git a/doc/xml/exec_8c.xml b/doc/xml/exec_8c.xml new file mode 100644 index 0000000..81ae108 --- /dev/null +++ b/doc/xml/exec_8c.xml @@ -0,0 +1,958 @@ + + + + exec.c + ubixos/exec.h + ubixos/sched.h + ubixos/ld.h + ubixos/kpanic.h + ubixos/endtask.h + vmm/vmm.h + lib/kmalloc.h + lib/kprintf.h + lib/string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STACK_ADDR + 0xC800000 + + + + + + + + execFile + sysExec + + + + + void + void execFile + (char *file, int argc, char **argv, int console) + execFile + + char * + file + + + int + argc + + + char ** + argv + + + int + console + + + + + + + + + _current + assert + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::edi + elfHeader::eEntry + tssStruct::eflags + elfHeader::eIdent + tssStruct::eip + elfHeader::ePhnum + elfHeader::ePhoff + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + elfHeader::eType + fclose + fopen + fread + tssStruct::fs + fseek + taskStruct::gid + tssStruct::gs + taskStruct::id + tssStruct::io_map + K_PANIC + KERNEL_PAGE_DEFAULT + kernelPageDirectory + kfree + kmalloc + kpanic + kprintf + tssStruct::ldt + memset + taskStruct::oInfo + tty_termNode::owner + PAGE_DEFAULT + PAGE_PRESENT + PAGE_STACK + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + READY + sched_setStatus + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + STACK_ADDR + taskStruct::td + taskStruct::term + tssStruct::trace_bitmap + taskStruct::tss + tty_find + taskStruct::uid + thread::vm_daddr + vmm_remapPage + vmm_setPageAttributes + vmmCreateVirtualSpace + vmmFindFreePage + osInfo::vmStart + x1000 + x18 + x30 + kmain + + + uInt32 + uInt32 execThread + (void(*tproc)(void), uInt32 stack, char *arg) + execThread + + void(*)(void) + tproc + + + uInt32 + stack + + + char * + arg + + + + + + + + + assert + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::edi + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + taskStruct::id + taskStruct::imageFd + tssStruct::io_map + kernelPageDirectory + kpanic + tssStruct::ldt + taskStruct::oInfo + READY + sched_setStatus + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + tssStruct::trace_bitmap + taskStruct::tss + osInfo::vmStart + kmain + ubthread_create + + + void + void sysExec + (char *file, int argc, char **argv) + sysExec + + char * + file + + + int + argc + + + char ** + argv + + + + + + + + + _current + assert + elfHeader::eEntry + elfHeader::eIdent + endTask + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + tssStruct::esp0 + elfHeader::eType + fclose + fopen + fread + fseek + taskStruct::id + taskStruct::imageFd + K_PANIC + kfree + kmalloc + kpanic + kprintf + ldEnable + memset + taskStruct::oInfo + PAGE_DEFAULT + PAGE_PRESENT + PAGE_SHIFT + PAGE_SIZE + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + PT_DYNAMIC + PT_INTERP + PT_LOAD + round_page + STACK_ADDR + taskStruct::td + trunc_page + taskStruct::tss + thread::vm_daddr + thread::vm_dsize + vmm_cleanVirtualSpace + vmm_remapPage + vmm_setPageAttributes + vmmFindFreePage + osInfo::vmStart + x1000 + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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" +"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)); + + +//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; + + +/*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,intargc,char**argv){ +inti=0x0; +intx=0x0; +uInt32*tmp=0x0; +uInt32ldAddr=0x0; +uInt32seg_size=0x0; +uInt32seg_addr=0x0; +char*interp=0x0; + +fileDescriptor*tmpFd=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +elfSectionHeader*sectionHeader=0x0; +elfDynamic*elfDynamicS=0x0; + +tmpFd=fopen(file,"r"); +_current->imageFd=tmpFd; +/*IfWeDontFindtheFileReturn*/ +if(tmpFd==0x0){ +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*/ + +/*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)*/ +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) +endTask(_current->id); + +assert(sectionHeader); +fseek(tmpFd,binaryHeader->eShoff,0); +fread(sectionHeader,sizeof(elfSectionHeader)*binaryHeader->eShnum,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); + +/* +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(); +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; +} +} +} +_current->td.vm_dsize=seg_size>>PAGE_SHIFT; +_current->td.vm_daddr=(char*)seg_addr; + +vmm_cleanVirtualSpace(_current->td.vm_daddr+(_current->td.vm_dsize<<PAGE_SIZE)); + +/*Adjustiframe*/ +tmp=(uInt32*)_current->tss.esp0-5; +tmp[0]=binaryHeader->eEntry; +tmp[3]=STACK_ADDR-12; + +tmp=(uInt32*)STACK_ADDR-2; +kprintf("argv:[0x%X]\n",argv); +tmp[0]=(u_int32_t)argv; +tmp[1]=(u_int32_t)argv; + +/*NowThatWeRelocatedTheBinaryWeCanUnmapAndFreeHeaderInfo*/ +kfree(binaryHeader); +kfree(programHeader); + +return; +} + +/*** +END +***/ + + + + diff --git a/doc/xml/exec_8h.xml b/doc/xml/exec_8h.xml new file mode 100644 index 0000000..c5ca8b7 --- /dev/null +++ b/doc/xml/exec_8h.xml @@ -0,0 +1,392 @@ + + + + exec.h + ubixos/types.h + ubixos/sched.h + src/sys/init/main.c + src/sys/kernel/exec.c + src/sys/kernel/syscall.c + src/sys/kernel/systemtask.c + src/sys/kernel/ubthread.c + src/sys/net/api/tcpip.c + src/sys/net/net/init.c + src/sys/ubixfs/ubixfs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void execFile + (char *file, int argc, char **argv, int console) + execFile + + char * + file + + + int + argc + + + char ** + argv + + + int + console + + + + + + + + + _current + assert + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::edi + elfHeader::eEntry + tssStruct::eflags + elfHeader::eIdent + tssStruct::eip + elfHeader::ePhnum + elfHeader::ePhoff + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + elfHeader::eType + fclose + fopen + fread + tssStruct::fs + fseek + taskStruct::gid + tssStruct::gs + taskStruct::id + tssStruct::io_map + K_PANIC + KERNEL_PAGE_DEFAULT + kernelPageDirectory + kfree + kmalloc + kpanic + kprintf + tssStruct::ldt + memset + taskStruct::oInfo + tty_termNode::owner + PAGE_DEFAULT + PAGE_PRESENT + PAGE_STACK + PAGE_USER + elfProgramHeader::phMemsz + elfProgramHeader::phVaddr + READY + sched_setStatus + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + STACK_ADDR + taskStruct::td + taskStruct::term + tssStruct::trace_bitmap + taskStruct::tss + tty_find + taskStruct::uid + thread::vm_daddr + vmm_remapPage + vmm_setPageAttributes + vmmCreateVirtualSpace + vmmFindFreePage + osInfo::vmStart + x1000 + x18 + x30 + kmain + + + uInt32 + uInt32 execThread + (void(*tproc)(void), uInt32, char *) + execThread + + void(*)(void) + tproc + + + uInt32 + + + char * + + + + + + + + + assert + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::edi + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + taskStruct::id + taskStruct::imageFd + tssStruct::io_map + kernelPageDirectory + kpanic + tssStruct::ldt + taskStruct::oInfo + READY + sched_setStatus + schedNewTask + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + tssStruct::trace_bitmap + taskStruct::tss + osInfo::vmStart + kmain + ubthread_create + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_EXEC_H +#define_EXEC_H + +#include<ubixos/types.h> +#include<ubixos/sched.h> + +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 +***/ + + + + diff --git a/doc/xml/fdc_8c.xml b/doc/xml/fdc_8c.xml new file mode 100644 index 0000000..a590201 --- /dev/null +++ b/doc/xml/fdc_8c.xml @@ -0,0 +1,1274 @@ + + + + fdc.c + isa/fdc.h + isa/8259.h + sys/video.h + sys/gdt.h + sys/idt.h + ubixos/types.h + ubixos/spinlock.h + sys/io.h + sys/dma.h + sys/device.h + lib/kprintf.h + lib/kmalloc.h + devfs/devfs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl floppyIsr \n""floppyIsr: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" call floppyIsrhndlr \n"" pop %gs \n"" pop %fs \n"" pop %es \n"" pop %ds \n"" pop %ss \n"" popa \n"" iret \n") + asm + + ".globl floppyIsr \n""floppyIsr: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" call floppyIsrhndlr \n"" pop %gs \n"" pop %fs \n"" pop %es \n"" pop %ds \n"" pop %ss \n"" popa \n"" iret \n" + + + + + + + + + + + void + void block2Hts + (int block, int *head, int *track, int *sector) + block2Hts + + int + block + + + int * + head + + + int * + track + + + int * + sector + + + + + + + + + geometry + DrvGeom::heads + DrvGeom::spt + fdcRw + + + int + int fdc_init + () + fdc_init + + + + + + + + devfs_makeNode + device_add + dInt + dPresent + fdcInit2 + fdcRead + fdcWrite + floppyIsr + device_interface::init + irqEnable + kmalloc + device_interface::major + mVec + device_interface::read + device_interface::reset + reset + setVector + device_interface::write + + + int + int fdcInit2 + (struct device_node *dev) + fdcInit2 + + struct device_node * + dev + + + + + + + + + dev + fdc_init + + + void + void fdcRead + (void *info, void *baseAddr, uInt32 startSector, uInt32 sectorCount) + fdcRead + + void * + info + + + void * + baseAddr + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + fdcSpinLock + readBlock + spinLock + spinUnlock + fdc_init + + + bool + bool fdcRw + (int block, Int8 *blockBuffer, bool read, unsigned long numSectors) + fdcRw + + int + block + + + Int8 * + blockBuffer + + + bool + read + + + unsigned long + numSectors + + + + + + + + + block2Hts + cmdRead + cmdWrite + dg144Gap3rw + dg144Spt + dg168Gap3rw + diskChange + dmaXfer + FALSE + fdcCcr + fdcDir + fdcRw + geometry + inportByte + kprint + kprintf + motorOff + motorOn + outportByte + recalibrate + reset + seek + sendByte + DrvGeom::spt + status + tbaddr + TRUE + waitFdc + fdcRw + readBlock + writeBlock + + + void + void fdcWrite + (void *info, void *baseAddr, uInt32 startSector, uInt32 sectorCount) + fdcWrite + + void * + info + + + void * + baseAddr + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + writeBlock + fdc_init + + + void + void floppyIsrhndlr + () + floppyIsrhndlr + + + + + + + + done + outportByte + TRUE + x20 + + + int + int getByte + () + getByte + + + + + + + + fdcData + fdcMsr + inportByte + waitFdc + + + void + void motorOff + (void) + motorOff + + void + + + + + + + + + FALSE + motor + TRUE + fdcRw + recalibrate + + + void + void motorOn + (void) + motorOn + + void + + + + + + + + + FALSE + fdcDor + motor + outportByte + TRUE + fdcRw + recalibrate + + + bool + bool readBlock + (int block, Int8 *blockBuffer, unsigned long numSectors) + readBlock + + int + block + + + Int8 * + blockBuffer + + + unsigned long + numSectors + + + + + + + + + fdcRw + TRUE + fdcRead + + + void + void recalibrate + (void) + recalibrate + + void + + + + + + + + + cmdRecal + motorOff + motorOn + sendByte + TRUE + waitFdc + fdcRw + reset + + + void + void reset + (void) + reset + + void + + + + + + + + + cmdSpecify + diskChange + done + FALSE + fdcDor + motor + outportByte + recalibrate + seek + sendByte + TRUE + waitFdc + fdc_init + fdcRw + + + bool + bool seek + (int track) + seek + + int + track + + + + + + + + + cmdSeek + FALSE + fdcTrack + kprintf + sendByte + sr0 + TRUE + waitFdc + x20 + fdcRw + reset + + + void + void sendByte + (int Int8) + sendByte + + int + Int8 + + + + + + + + + fdcData + fdcMsr + inportByte + outportByte + fdcRw + recalibrate + reset + seek + waitFdc + + + bool + bool waitFdc + (bool sensei) + waitFdc + + bool + sensei + + + + + + + + + cmdSensei + diskChange + done + FALSE + fdcDir + fdcMsr + fdcTrack + getByte + inportByte + sendByte + sr0 + statSize + status + timeOut + TRUE + fdcRw + recalibrate + reset + seek + + + bool + bool writeBlock + (int block, Int8 *blockBuffer, unsigned long numSectors) + writeBlock + + int + block + + + Int8 * + blockBuffer + + + unsigned long + numSectors + + + + + + + + + FALSE + fdcRw + fdcWrite + + + + + bool + bool diskChange + + diskChange + FALSE + + + + + + + + fdcRw + reset + waitFdc + + + bool + volatile bool done + + done + FALSE + + + + + + + + bcopy + floppyIsrhndlr + reset + waitFdc + + + spinLock_t + spinLock_t fdcSpinLock + + fdcSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + fdcRead + + + Int8 + volatile Int8 fdcTrack + + fdcTrack + 0xff + + + + + + + + seek + waitFdc + + + drvGeom + drvGeom geometry + + geometry + { dg144Heads,dg144Tracks,dg144Spt } + + + + + + + + block2Hts + fdcRw + + + bool + bool motor + + motor + FALSE + + + + + + + + motorOff + motorOn + reset + + + Int8 + Int8 sr0 + + sr0 + 0 + + + + + + + + seek + waitFdc + + + Int8 + Int8 statSize + + statSize + 0 + + + + + + + + waitFdc + + + Int8 + Int8 status[7] + [7] + status + { 0 } + + + + + + + + fdcRw + ne2kHandler + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + waitFdc + + + unsigned long + unsigned long tbaddr + + tbaddr + 0x80000L + + + + + + + + fdcRw + + + int + volatile int timeOut + + timeOut + 0 + + + + + + + + waitFdc + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<isa/fdc.h> +#include<isa/8259.h> +#include<sys/video.h> +#include<sys/gdt.h> +#include<sys/idt.h> +#include<ubixos/types.h> +#include<ubixos/spinlock.h> +#include<sys/io.h> +#include<sys/dma.h> +#include<sys/device.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<devfs/devfs.h> + +staticspinLock_tfdcSpinLock=SPIN_LOCK_INITIALIZER; + +staticvolatilebooldone=FALSE; +staticdrvGeomgeometry={dg144Heads,dg144Tracks,dg144Spt}; +staticbooldiskChange=FALSE; +staticboolmotor=FALSE; +staticvolatileInt8fdcTrack=0xff; +staticInt8sr0=0; +staticvolatileinttimeOut=0; +staticInt8statSize=0; +staticInt8status[7]={0}; + +unsignedlongtbaddr=0x80000L; + +intfdcInit2(structdevice_node*dev){ +dev->devInfo->size=(1024*1450); +return(0x0); +} + +intfdc_init(){ +structdevice_interface*devInfo=(structdevice_interface*)kmalloc(sizeof(structdevice_interface)); +setVector(floppyIsr,mVec+6,(dInt+dPresent)); +irqEnable(6); +reset(); +devInfo->major=0x0; +devInfo->init=(void*)&fdcInit2; +devInfo->read=fdcRead; +devInfo->write=fdcWrite; +devInfo->reset=(void*)reset; + +device_add(0,'c',devInfo); +devfs_makeNode("fd0",'b',0x0,0x0); +return(0x0); +} + +asm( +".globlfloppyIsr\n" +"floppyIsr:\n" +"pusha\n" +"push%ss\n" +"push%ds\n" +"push%es\n" +"push%fs\n" +"push%gs\n" +"callfloppyIsrhndlr\n" +"pop%gs\n" +"pop%fs\n" +"pop%es\n" +"pop%ds\n" +"pop%ss\n" +"popa\n" +"iret\n" +); + +voidfloppyIsrhndlr(){ +done=TRUE; +outportByte(0x20,0x20); +} + +voidsendByte(intInt8){ +volatileintmsr; +inttmo; +for(tmo=0;tmo<128;tmo++){ +msr=inportByte(fdcMsr); +if((msr&0xc0)==0x80){ +outportByte(fdcData,Int8); +return; +} +inportByte(0x80); +} +} + +intgetByte(){ +volatileintmsr; +inttmo; +for(tmo=0;tmo<128;tmo++){ +msr=inportByte(fdcMsr); +if((msr&0xd0)==0xd0){ +returninportByte(fdcData); +} +inportByte(0x80); +} +return(-1); +} + +boolfdcRw(intblock,Int8*blockBuffer,boolread,unsignedlongnumSectors){ +inthead=0x0,track=0x0,sector=0x0,tries=0x0,copyCount=0x0; +unsignedchar*p_tbaddr=(char*)0x80000; +unsignedchar*p_blockbuff=blockBuffer; +//kprintf("Block:[%i]\n",block); +block2Hts(block,&head,&track,&sector); +motorOn(); +if(!read&&blockBuffer){ +/*copydatafromdatabufferintotrackbuffer*/ +for(copyCount=0;copyCount<(numSectors*512);copyCount++){ +*p_tbaddr=*p_blockbuff; +p_blockbuff++; +p_tbaddr++; +} +} +for(tries=0;tries<3;tries++){ +if(inportByte(fdcDir)&0x80){ +diskChange=TRUE; +seek(1);/*clear"diskchange"status*/ +recalibrate(); +motorOff(); +kprint("FDC:Diskchangedetected.Tryingagain.\n"); +returnfdcRw(block,blockBuffer,read,numSectors); +} +if(!seek(track)){ +motorOff(); +kprintf("FDC:Errorseekingtotrack[%i]\n",block); +returnFALSE; +} +outportByte(fdcCcr,0); +if(read){ +dmaXfer(2,tbaddr,numSectors*512,FALSE); +sendByte(cmdRead); +} +else{ +dmaXfer(2,tbaddr,numSectors*512,TRUE); +sendByte(cmdWrite); +} +sendByte(head<<2); +sendByte(track); +sendByte(head); +sendByte(sector); +sendByte(2);/*512Int8s/sector*/ +sendByte(geometry.spt); +if(geometry.spt==dg144Spt){ +sendByte(dg144Gap3rw);/*gap3sizefor1.44Mread/write*/ +} +else{ +sendByte(dg168Gap3rw);/*gap3sizefor1.68Mread/write*/ +} +sendByte(0xff);/*DTL=unused*/ +if(!waitFdc(TRUE)){ +kprint("Timedout,tryingoperationagainafterreset()\n"); +reset(); +returnfdcRw(block,blockBuffer,read,numSectors); +} +if((status[0]&0xc0)==0)break;/*worked!outtahere!*/ +recalibrate();/*oops,tryagain...*/ +} +motorOff(); +if(read&&blockBuffer){ +p_blockbuff=blockBuffer; +p_tbaddr=(char*)0x80000; +for(copyCount=0x0;copyCount<(numSectors*512);copyCount++){ +*p_blockbuff=*p_tbaddr; +p_blockbuff++; +p_tbaddr++; +} +} +return(tries!=3); +} + +voidblock2Hts(intblock,int*head,int*track,int*sector){ +*head=(block%(geometry.spt*geometry.heads))/(geometry.spt); +*track=block/(geometry.spt*geometry.heads); +*sector=block%geometry.spt+1; +} + +voidmotorOn(void){ +if(motor==FALSE){ +outportByte(fdcDor,0x1c); +motor=TRUE; +} +} + +voidmotorOff(void){ +if(motor==TRUE){ +//outportByte(fdcDor,0x0); +//outportByte(fdcDor,0x0C); +motor=FALSE; +} +} + +boolseek(inttrack){ +if(fdcTrack==track){ +return(TRUE); +} +sendByte(cmdSeek); +sendByte(0); +sendByte(track); +if(!waitFdc(TRUE)){ +kprintf("waitfdcfailed\n"); +return(FALSE); +} +if((sr0!=0x20)||(fdcTrack!=track)){ +return(FALSE); +} +else{ +return(TRUE); +} +} + +boolreadBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors){ +intresult=0x0,loop=0x0; +if(numSectors>1){ +for(loop=0;loop<numSectors;loop++){ +result=fdcRw(block+loop,blockBuffer+(loop*512),TRUE,1); +} +returnresult; +} +returnfdcRw(block,blockBuffer,TRUE,numSectors); +} + +boolwriteBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors){ +returnfdcRw(block,blockBuffer,FALSE,numSectors); +} + +boolwaitFdc(boolsensei){ +timeOut=50000; +while(!done&&timeOut); +statSize=0; +while((statSize<7)&&(inportByte(fdcMsr)&(1<<4))){ +status[(int)statSize++]=getByte(); +} +if(sensei){ +sendByte(cmdSensei); +sr0=getByte(); +fdcTrack=getByte(); +} +done=FALSE; +if(!timeOut){ +if(inportByte(fdcDir)&0x80){ +diskChange=TRUE; +} +return(FALSE); +} +else{ +return(TRUE); +} +} + +voidrecalibrate(void){ +motorOn(); +sendByte(cmdRecal); +sendByte(0); +waitFdc(TRUE); +motorOff(); +} + +voidreset(void){ +outportByte(fdcDor,0); +motor=FALSE; +outportByte(fdcDor,0x0c); +done=TRUE; +waitFdc(TRUE); +sendByte(cmdSpecify); +sendByte(0xdf); +sendByte(0x02); +seek(1); +recalibrate(); +diskChange=FALSE; +return; +} + +voidfdcRead(void*info,void*baseAddr,uInt32startSector,uInt32sectorCount){ +spinLock(&fdcSpinLock); +readBlock(startSector,baseAddr,sectorCount); +spinUnlock(&fdcSpinLock); +return; +} +voidfdcWrite(void*info,void*baseAddr,uInt32startSector,uInt32sectorCount){ +writeBlock(startSector,baseAddr,sectorCount); +return; +} + +/*** + +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:01reddawg +nomessage + +Revision1.242004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.232004/09/0615:13:25reddawg +LastcommitbeforeFreeBSD6.0 + +Revision1.222004/08/2120:06:28reddawg +okcheckoutexec.c + +Revision1.212004/08/1516:47:49reddawg +Fixed + +Revision1.202004/08/1500:33:02reddawg +Wowtheidedriverworksagain + +Revision1.192004/08/0120:40:45reddawg +Netrelatedfixes + +Revision1.182004/07/2921:32:16reddawg +Myquicklunchsbreaksworthofupdates.... + +Revision1.172004/07/2708:03:36reddawg +chg:stoppedpushalltheseextraregistersIcan'tfindagoodreasonastowhyIwasdoingit + +Revision1.162004/07/2217:32:25reddawg +Ibrokeithopefully + +Revision1.152004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.142004/07/1702:38:31reddawg +Fixedafewproblems + +Revision1.132004/07/1412:42:46reddawg +fdc:fdcInittofdc_init +ChangedStartupRoutines + +Revision1.122004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.112004/05/2022:51:09reddawg +CleanedUpWarnings + +Revision1.102004/05/1923:36:52reddawg +BugFixes + +Revision1.92004/05/1915:31:27reddawg +Fixeduptherestofthereferences + +Revision1.82004/05/1915:26:33reddawg +Fixedreferenceissuesduetochangesindriversubsystem + +Revision1.72004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + +Revision1.62004/04/3014:16:04reddawg +FixedallthedatatypestobeconsistantuInt8,uInt16,uInt32,Int8,Int16,Int32 + +Revision1.52004/04/2915:29:20reddawg +FixedAllRunningIssues + +Revision1.42004/04/2802:22:54reddawg +Thisisafiarlylargecommitbutwearestartingtousenewdrivermodel +allaround + +Revision1.32004/04/2622:22:33reddawg +DevFSnowusescorrectsizeofdevice + +Revision1.22004/04/2221:20:05reddawg +FDCnowaddsdrivestothedevfs + +Revision1.1.1.12004/04/1512:07:09reddawg +UbixOSv1.0 + +Revision1.62004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/fdc_8h.xml b/doc/xml/fdc_8h.xml new file mode 100644 index 0000000..06e555a --- /dev/null +++ b/doc/xml/fdc_8h.xml @@ -0,0 +1,871 @@ + + + + fdc.h + ubixos/types.h + src/sys/include/ubixos/init.h + src/sys/isa/fdc.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DrvGeom + + + cmdRead + (0xe6) + + + + + + + + fdcRw + + + cmdRecal + (0x07) + + + + + + + + recalibrate + + + cmdSeek + (0x0f) + + + + + + + + seek + + + cmdSensei + (0x08) + + + + + + + + waitFdc + + + cmdSpecify + (0x03) + + + + + + + + reset + + + cmdWrite + (0xc5) + + + + + + + + fdcRw + + + dg144Gap3rw + 0x1b + + + + + + + + fdcRw + + + dg144Heads + 2 + + + + + + + + + + dg144Spt + 18 + + + + + + + + fdcRw + + + dg144Tracks + 80 + + + + + + + + + + dg168Gap3rw + 0x1c + + + + + + + + fdcRw + + + fdcCcr + (0x3f7) + + + + + + + + fdcRw + + + fdcData + (0x3f5) + + + + + + + + getByte + sendByte + + + fdcDir + (0x3f7) + + + + + + + + fdcRw + waitFdc + + + fdcDor + (0x3f2) + + + + + + + + motorOn + reset + + + fdcDrs + (0x3f4) + + + + + + + + + + fdcMsr + (0x3f4) + + + + + + + + getByte + sendByte + waitFdc + + + + + DrvGeom + typedef struct DrvGeom drvGeom + + drvGeom + + + + + + + + + + + + void + void block2Hts + (int block, int *head, int *track, int *sector) + block2Hts + + int + block + + + int * + head + + + int * + track + + + int * + sector + + + + + + + + + geometry + DrvGeom::heads + DrvGeom::spt + fdcRw + + + int + int fdc_init + () + fdc_init + + + + + + + + devfs_makeNode + device_add + dInt + dPresent + fdcInit2 + fdcRead + fdcWrite + floppyIsr + device_interface::init + irqEnable + kmalloc + device_interface::major + mVec + device_interface::read + reset + device_interface::reset + setVector + device_interface::write + + + void + void fdcRead + (void *info, void *, uInt32 startSector, uInt32 sectorCount) + fdcRead + + void * + info + + + void * + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + fdcSpinLock + readBlock + spinLock + spinUnlock + fdc_init + + + bool + bool fdcRw + (int block, Int8 *blockBuffer, bool read, unsigned long numSectors) + fdcRw + + int + block + + + Int8 * + blockBuffer + + + bool + read + + + unsigned long + numSectors + + + + + + + + + block2Hts + cmdRead + cmdWrite + dg144Gap3rw + dg144Spt + dg168Gap3rw + diskChange + dmaXfer + FALSE + fdcCcr + fdcDir + fdcRw + geometry + inportByte + kprint + kprintf + motorOff + motorOn + outportByte + recalibrate + reset + seek + sendByte + DrvGeom::spt + status + tbaddr + TRUE + waitFdc + fdcRw + readBlock + writeBlock + + + void + void fdcWrite + (void *info, void *, uInt32 startSector, uInt32 sectorCount) + fdcWrite + + void * + info + + + void * + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + writeBlock + fdc_init + + + void + void floppyIsr + () + floppyIsr + + + + + + + + fdc_init + + + void + void floppyIsrhndlr + () + floppyIsrhndlr + + + + + + + + done + outportByte + TRUE + x20 + + + int + int getByte + () + getByte + + + + + + + + fdcData + fdcMsr + inportByte + waitFdc + + + void + void motorOff + (void) + motorOff + + void + + + + + + + + + FALSE + motor + TRUE + fdcRw + recalibrate + + + void + void motorOn + (void) + motorOn + + void + + + + + + + + + FALSE + fdcDor + motor + outportByte + TRUE + fdcRw + recalibrate + + + bool + bool readBlock + (int block, Int8 *blockBuffer, unsigned long numSectors) + readBlock + + int + block + + + Int8 * + blockBuffer + + + unsigned long + numSectors + + + + + + + + + fdcRw + TRUE + fdcRead + + + void + void recalibrate + (void) + recalibrate + + void + + + + + + + + + cmdRecal + motorOff + motorOn + sendByte + TRUE + waitFdc + fdcRw + reset + + + void + void reset + (void) + reset + + void + + + + + + + + + cmdSpecify + diskChange + done + FALSE + fdcDor + motor + outportByte + recalibrate + seek + sendByte + TRUE + waitFdc + fdc_init + fdcRw + + + bool + bool seek + (int track) + seek + + int + track + + + + + + + + + cmdSeek + FALSE + fdcTrack + kprintf + sendByte + sr0 + TRUE + waitFdc + x20 + fdcRw + reset + + + void + void sendByte + (int Int8) + sendByte + + int + Int8 + + + + + + + + + fdcData + fdcMsr + inportByte + outportByte + fdcRw + recalibrate + reset + seek + waitFdc + + + bool + bool waitFdc + (bool sensei) + waitFdc + + bool + sensei + + + + + + + + + cmdSensei + diskChange + done + FALSE + fdcDir + fdcMsr + fdcTrack + getByte + inportByte + sendByte + sr0 + statSize + status + timeOut + TRUE + fdcRw + recalibrate + reset + seek + + + bool + bool writeBlock + (int block, Int8 *blockBuffer, unsigned long numSectors) + writeBlock + + int + block + + + Int8 * + blockBuffer + + + unsigned long + numSectors + + + + + + + + + FALSE + fdcRw + fdcWrite + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_FDC_H +#define_FDC_H + +#include<ubixos/types.h> + +typedefstructDrvGeom{ +Int8heads; +Int8tracks; +Int8spt; +}drvGeom; + + +#definefdcMsr(0x3f4) +#definefdcData(0x3f5) +#definefdcDir(0x3f7) +#definefdcCcr(0x3f7) +#definefdcDor(0x3f2) +#definefdcDrs(0x3f4) + +#definecmdWrite(0xc5) +#definecmdRead(0xe6) +#definecmdSeek(0x0f) +#definecmdSensei(0x08) +#definecmdRecal(0x07) +#definecmdSpecify(0x03) + +#definedg144Heads2/*headsperdrive(1.44M)*/ +#definedg144Tracks80 +#definedg144Spt18 +#definedg144Gap3rw0x1b +#definedg168Gap3rw0x1c + + + +intfdc_init(); +voidfloppyIsr(); +voidfloppyIsrhndlr(); +voidsendByte(intInt8); +intgetByte(); +boolfdcRw(intblock,Int8*blockBuffer,boolread,unsignedlongnumSectors); +voidblock2Hts(intblock,int*head,int*track,int*sector); +voidmotorOn(void); +voidmotorOff(void); +boolseek(inttrack); +boolwaitFdc(boolsensei); +intgetByte(); +voidsendByte(intInt8); +voidrecalibrate(void); +voidreset(void); +boolwriteBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors); +boolreadBlock(intblock,Int8*blockBuffer,unsignedlongnumSectors); +voidfdcWrite(void*info,void*,uInt32startSector,uInt32sectorCount); +voidfdcRead(void*info,void*,uInt32startSector,uInt32sectorCount); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:39reddawg +nomessage + +Revision1.62004/07/1702:38:31reddawg +Fixedafewproblems + +Revision1.52004/07/1412:42:46reddawg +fdc:fdcInittofdc_init +ChangedStartupRoutines + +Revision1.42004/05/2114:57:16reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/ffs_8c.xml b/doc/xml/ffs_8c.xml new file mode 100644 index 0000000..2a110f0 --- /dev/null +++ b/doc/xml/ffs_8c.xml @@ -0,0 +1,201 @@ + + + + ffs.c + vfs/vfs.h + ufs/ufs.h + ufs/ffs.h + lib/kprintf.h + lib/kmalloc.h + ubixos/kpanic.h + lib/string.h + sys/buf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int ffs_read + (fileDescriptor *fd, char *data, uInt32 offset, long size) + ffs_read + + fileDescriptor * + fd + + + char * + data + + + uInt32 + offset + + + long + size + + + + + + + + + fs::fs_maxfilesize + kprintf + + + + + + + +#include<vfs/vfs.h> +#include<ufs/ufs.h> +#include<ufs/ffs.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<ubixos/kpanic.h> +#include<lib/string.h> +#include<sys/buf.h> + + +intffs_read(fileDescriptor*fd,char*data,uInt32offset,longsize){ +structfs*fs; + +fs=(structfs*)fd->dmadat->sbbuf; + +if(offset<fd->size&&offset>=fs->fs_maxfilesize){ +//return(EOVERFLOW); +return(-1); +} + +kprintf("ReadingFilew/NewFunction[0x%X]\n",fs->fs_maxfilesize); +return(0x0); +} + + + + diff --git a/doc/xml/ffs_8h.xml b/doc/xml/ffs_8h.xml new file mode 100644 index 0000000..7f386f4 --- /dev/null +++ b/doc/xml/ffs_8h.xml @@ -0,0 +1,171 @@ + + + + ffs.h + ubixos/types.h + vfs/vfs.h + sys/device.h + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int ffs_read + (fileDescriptor *, char *, uInt32, long) + ffs_read + + fileDescriptor * + + + char * + + + uInt32 + + + long + + + + + + + + + fs::fs_maxfilesize + kprintf + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_FFS_H +#define_FFS_H + +#include<ubixos/types.h> +#include<vfs/vfs.h> +#include<sys/device.h> + +intffs_read(fileDescriptor*,char*,uInt32,long); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/file_8c.xml b/doc/xml/file_8c.xml new file mode 100644 index 0000000..ae15acc --- /dev/null +++ b/doc/xml/file_8c.xml @@ -0,0 +1,1295 @@ + + + + file.c + vfs/vfs.h + vfs/file.h + ubixos/sched.h + ubixos/vitals.h + ubixos/kpanic.h + ubixos/spinlock.h + lib/kmalloc.h + lib/string.h + vmm/paging.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int fclose + (fileDescriptor *fd) + fclose + + fileDescriptor * + fd + + + + + + + + + assert + fdTable + fdTable_lock + kfree + fileDescriptor::next + NULL + vitalsStruct::openFiles + fileDescriptor::prev + spinLock + spinUnlock + systemVitals + x1 + dev_ramDestroy + dev_ramDrive + execFile + kmod_load + ldEnable + bTree::Save + sysExec + sysFclose + sysMkDir + systemTask + + + int + int feof + (fileDescriptor *fd) + feof + + fileDescriptor * + fd + + + + + + + + + fdEof + + + int + int fgetc + (fileDescriptor *fd) + fgetc + + fileDescriptor * + fd + + + + + + + + + fileDescriptor::offset + sysFgetc + + + fileDescriptor * + fileDescriptor* fopen + (const char *file, const char *flags) + fopen + + const char * + file + + + const char * + flags + + + + + + + + + fdOpen + fdTable + fdTable_lock + fileAppend + fileBinary + fileRead + fileWrite + kfree + kmalloc + kprintf + fileDescriptor::next + NULL + fileDescriptor::offset + vitalsStruct::openFiles + fileDescriptor::prev + spinLock + spinUnlock + sprintf + strstr + strtok + systemVitals + vfs_findMount + dev_ramDestroy + dev_ramDrive + DiskFS::DiskFS + execFile + kmod_load + ldEnable + bTree::Save + sysExec + sysFopen + sysMkDir + tcpdump_init + + + int + int fputc + (int ch, fileDescriptor *fd) + fputc + + int + ch + + + fileDescriptor * + fd + + + + + + + + + fileDescriptor::offset + + + size_t + size_t fread + (void *ptr, int size, int nmemb, fileDescriptor *fd) + fread + + void * + ptr + + + int + size + + + int + nmemb + + + fileDescriptor * + fd + + + + + + + + + assert + fileDescriptor::offset + dev_ramDrive + execFile + kmod_load + ldEnable + DiskFS::read + sysExec + sysFread + + + int + int fseek + (fileDescriptor *tmpFd, long offset, int whence) + fseek + + fileDescriptor * + tmpFd + + + long + offset + + + int + whence + + + + + + + + + fileDescriptor::offset + execFile + kmod_load + ldEnable + DiskFS::read + sysExec + DiskFS::write + + + size_t + size_t fwrite + (void *ptr, int size, int nmemb, fileDescriptor *fd) + fwrite + + void * + ptr + + + int + size + + + int + nmemb + + + fileDescriptor * + fd + + + + + + + + + fileDescriptor::offset + dev_ramDestroy + bTree::Save + sysFwrite + DiskFS::write + + + void + void sysChDir + (const char *path) + sysChDir + + const char * + path + + + + + + + + + _current + osInfo::cwd + taskStruct::oInfo + sprintf + strstr + + + void + void sysFclose + (userFileDescriptor *userFd, int *status) + sysFclose + + userFileDescriptor * + userFd + + + int * + status + + + + + + + + + fclose + userFileDescriptorStruct::fd + NULL + + + void + void sysFgetc + (int *ptr, userFileDescriptor *userFd) + sysFgetc + + int * + ptr + + + userFileDescriptor * + userFd + + + + + + + + + _current + userFileDescriptorStruct::fd + fgetc + getch + sched_yield + taskStruct::term + tty_foreground + + + void + void sysFopen + (const char *file, char *flags, userFileDescriptor *userFd) + sysFopen + + const char * + file + + + char * + flags + + + userFileDescriptor * + userFd + + + + + + + + + userFileDescriptorStruct::fd + userFileDescriptorStruct::fdSize + fopen + kprintf + NULL + fileDescriptorStruct::size + + + void + void sysFread + (void *data, long size, userFileDescriptor *userFd) + sysFread + + void * + data + + + long + size + + + userFileDescriptor * + userFd + + + + + + + + + userFileDescriptorStruct::fd + fread + NULL + + + void + void sysFseek + (userFileDescriptor *userFd, long offset, int whence) + sysFseek + + userFileDescriptor * + userFd + + + long + offset + + + int + whence + + + + + + + + + userFileDescriptorStruct::fd + NULL + fileDescriptorStruct::offset + + + void + void sysFwrite + (char *ptr, int size, userFileDescriptor *userFd) + sysFwrite + + char * + ptr + + + int + size + + + userFileDescriptor * + userFd + + + + + + + + + _current + userFileDescriptorStruct::fd + fwrite + taskStruct::term + tty_print + + + void + void sysMkDir + (const char *path) + sysMkDir + + const char * + path + + + + + + + + + _current + osInfo::cwd + fclose + fopen + kprintf + NULL + taskStruct::oInfo + sprintf + strstr + strtok + + + void + void sysRmDir + () + sysRmDir + + + + + + + + + + void + void sysUnlink + (const char *path, int *retVal) + sysUnlink + + const char * + path + + + int * + retVal + + + + + + + + + unlink + + + int + int unlink + (const char *node) + unlink + + const char * + node + + + + + + + + + vfs_mountPoint::fs + vfs_mountPoint::mountPoint + NULL + strtok + vfs_findMount + fileSystem::vfsUnlink + sysUnlink + + + + + fileDescriptor * + fileDescriptor* fdTable + + fdTable + 0x0 + + + + + + + + fclose + fopen + + + spinLock_t + spinLock_t fdTable_lock + + fdTable_lock + SPIN_LOCK_INITIALIZER + + + + + + + + fclose + fopen + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vfs/vfs.h> +#include<vfs/file.h> +#include<ubixos/sched.h> +#include<ubixos/vitals.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> +#include<lib/kmalloc.h> +#include<lib/string.h> +#include<vmm/paging.h> +#include<lib/kprintf.h> +#include<assert.h> + +staticspinLock_tfdTable_lock=SPIN_LOCK_INITIALIZER; + + +fileDescriptor*fdTable=0x0; + +/*USER*/ + +voidsysFwrite(char*ptr,intsize,userFileDescriptor*userFd){ +if(userFd==0x0){ +tty_print(ptr,_current->term); +} +else{ +fwrite(ptr,size,1,userFd->fd); +} +return; +} + +voidsysFgetc(int*ptr,userFileDescriptor*userFd){ +fileDescriptor*tmpFd=0x0; +tmpFd=userFd->fd; +if(userFd->fd==0x0){ +while(1){ +if(_current->term==tty_foreground){ +if((*ptr=getch())!=0x0) +return; +sched_yield(); +} +else{ +sched_yield(); +} +/* +else{ +kprintf("WakingTask:%i\n",tty_foreground->owner); +sched_setStatus(tty_foreground->owner,READY); +kprintf("SleepingTask:%i\n",_current->id); +sched_setStatus(_current->id,WAIT); +sched_yield(); +} +*/ +} +} +else{ +ptr[0]=(int)fgetc(tmpFd); +} +} + +voidsysRmDir(){ +return; +} + +voidsysFseek(userFileDescriptor*userFd,longoffset,intwhence){ +//TODO:coredump? +if(userFd==NULL) +return; +if(userFd->fd==NULL) +return; + +userFd->fd->offset=offset+whence; +} + +voidsysChDir(constchar*path){ +if(strstr(path,":")==0x0){ +sprintf(_current->oInfo.cwd,"%s%s",_current->oInfo.cwd,path); +} +else{ +sprintf(_current->oInfo.cwd,path); +} +} + +voidsysUnlink(constchar*path,int*retVal){ +*retVal=unlink(path); +} + +/************************************************************************ + +Function:voidsysFopen(); +Description:OpensAFileDescriptorForAUserTask +Notes: + +************************************************************************/ +voidsysFopen(constchar*file,char*flags,userFileDescriptor*userFd){ +if(userFd==NULL) +kprintf("Error:userFd==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); +userFd->fd=fopen(file,flags); +if(userFd->fd!=0x0){ +userFd->fdSize=userFd->fd->size; +} +/*Return*/ +return; +} + +/************************************************************************ + +Function:voidsysFread(); +Description:ReadsSIZEBytesFromTheuserFdIntoDATA +Notes: + +************************************************************************/ +voidsysFread(void*data,longsize,userFileDescriptor*userFd){ +/*TODO:coredump?*/ +if(userFd==NULL) +return; +if(userFd->fd==NULL) +return; +fread(data,size,1,userFd->fd); +return; +} + +/************************************************************************ + +Function:voidsysFclse(); +Description:ClosesAFileDescriptorForAUserTask +Notes: + +************************************************************************/ +voidsysFclose(userFileDescriptor*userFd,int*status){ +if(userFd==NULL) +{ +*status=-1; +return; +} +if(userFd->fd==NULL) +{ +*status=-1; +return; +} +*status=fclose(userFd->fd); +/*Return*/ +return; +} + + + +/*KERNEL*/ + + +size_tfread(void*ptr,intsize,intnmemb,fileDescriptor*fd){ + +if(fd==0x0) +return(0x0); + +if(nmemb==0x0)nmemb=1;//TempFix +assert(fd); +//kprintf("fd->fileName:%s:%i\n",fd->fileName,_current->id); +assert(fd->mp); +assert(fd->mp->fs); +fd->mp->fs->vfsRead(fd,ptr,fd->offset,size*nmemb); +fd->offset+=size*nmemb; +return(size*nmemb); +} + +size_tfwrite(void*ptr,intsize,intnmemb,fileDescriptor*fd){ +if(fd!=0x0){ +fd->mp->fs->vfsWrite(fd,ptr,fd->offset,size*nmemb); +fd->offset+=size*nmemb; +} +return(0x0); +} + +intfseek(fileDescriptor*tmpFd,longoffset,intwhence){ +tmpFd->offset=offset+whence; +return(tmpFd->offset); +} + +/************************************************************************ + +Function:intfeof(fileDescriptor*fd) +Description:CheckAFileDescriptorForEOFAndReturnResult +Notes: + +************************************************************************/ +intfeof(fileDescriptor*fd){ +if(fd->status==fdEof){ +return(-1); +} +return(0); +} + +/************************************************************************ + +Function:intfputc(intch,fileDescriptor*fd) +Description:ThisWillWriteCharacterToFD +Notes: + +************************************************************************/ +intfputc(intch,fileDescriptor*fd){ +if(fd!=0x0){ +ch=fd->mp->fs->vfsWrite(fd,(char*)ch,fd->offset,1); +fd->offset++; +return(ch); +} +/*ReturnNULLIfFDIsNotFound*/ +return(0x0); +} + +/************************************************************************ + +Function:intfgetc(fileDescriptor*fd) +Description:ThisWillReturnTheNextCharacterInAFDStream +Notes: + +************************************************************************/ +intfgetc(fileDescriptor*fd){ +intch=0x0; +/*IfFoundReturnNextChar*/ +if(fd!=0x0){ +fd->mp->fs->vfsRead(fd,(char*)&ch,fd->offset,1); +fd->offset++; +return(ch); +} + +/*ReturnNULLIfFDIsNotFound*/ +return(0x0); +} + +/************************************************************************ + +Function:fileDescriptor*fopen(constchar*file,contchar*flags) +Description:ThisWillOpenAFileAndReturnAFileDescriptor +Notes: + +08/05/02-JustStartedARewriteOfThisFunctionShouldWorkOutWell + +************************************************************************/ + +fileDescriptor*fopen(constchar*file,constchar*flags){ +inti=0x0; +char*path=0x0; +char*mountPoint=0x0; +charfileName[1024]; +fileDescriptor*tmpFd=0x0; + +/*AllocateMemoryForFileDescriptor*/ +if((tmpFd=(fileDescriptor*)kmalloc(sizeof(fileDescriptor)))==0x0){ +kprintf("Error:tmpFd==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); +return(NULL); +} + +sprintf(fileName,"%s",file); +if(strstr(fileName,":")){ +mountPoint=(char*)strtok((char*)&fileName,":"); +path=strtok(NULL,"\n"); +} +else{ +path=fileName; +//path=&fileName; +} + +if(path[0]=='/'){ +sprintf(tmpFd->fileName,"%s",path); +} +else{ +sprintf(tmpFd->fileName,"/%s",path); +} + +/*Findourmountpointorsetdefaulttosys*/ +if(mountPoint==0x0){ +tmpFd->mp=vfs_findMount("sys"); +} +else{ +tmpFd->mp=vfs_findMount(mountPoint); +} + +if(tmpFd->mp==0x0){ +kprintf("MountPointBad\n"); +return(0x0); +} + +/*ThisWillSetUpTheDescriptorModes*/ +tmpFd->mode=0; +for(i=0;'\0'!=flags[i];i++){ +switch(flags[i]){ +case'w': +case'W': +tmpFd->mode|=fileWrite; +break; +case'r': +case'R': +tmpFd->mode|=fileRead; +break; +case'b': +case'B': +tmpFd->mode|=fileBinary; +break; +case'a': +case'A': +tmpFd->mode|=fileAppend; +break; +default: +kprintf("Invalidmode'%c'forfopen\n",flags[i]); +break; +} +} +/*SearchForTheFile*/ +if(tmpFd->mp->fs->vfsOpenFile(tmpFd->fileName,tmpFd)==0x1){ +/*IfTheFileIsFoundThenSetUpTheDescriptor*/ + + +/*inordertosaveresourceswewillallocatethebufferlaterwhenitisneeded*/ + +tmpFd->buffer=(char*)kmalloc(4096); +if(tmpFd->buffer==0x0) +{ +kfree(tmpFd); +kprintf("Error:tmpFd->buffer==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); +spinUnlock(&fdTable_lock); +return0x1; +} +/*SetItsStatusToOpen*/ +tmpFd->status=fdOpen; + +/*InitialFileOffsetIsZero*/ +tmpFd->offset=0; +tmpFd->prev=0x0; + +/*wedonotwanttobeinaspinlocklongerthanweneedto,so +ithasbeenmovedtohere.*/ +spinLock(&fdTable_lock); + +/*IncrementNumberOfOpenFiles*/ +systemVitals->openFiles++; + +tmpFd->next=fdTable; + +if(fdTable!=0x0) +fdTable->prev=tmpFd; + +fdTable=tmpFd; + +spinUnlock(&fdTable_lock); + + +/*ReturnTheFD*/ +return(tmpFd); +} +else{ +kfree(tmpFd->buffer); +kfree(tmpFd); +spinUnlock(&fdTable_lock); +kprintf("FileNotFound?\n"); +return(NULL); +} + +/*ReturnNULL*/ +return(0x0); +} + +/************************************************************************ + +Function:intfclose(fileDescriptor*fd); +Description:ThisWillCloseAndFreeAFileDescriptor +Notes: + +************************************************************************/ +intfclose(fileDescriptor*fd){ +fileDescriptor*tmpFd=0x0; +assert(fd); + +spinLock(&fdTable_lock); + +for(tmpFd=fdTable;tmpFd!=0x0;tmpFd=tmpFd->next){ +if(tmpFd==fd){ +if(tmpFd->prev) +tmpFd->prev->next=tmpFd->next; +if(tmpFd->next) +tmpFd->next->prev=tmpFd->prev; + +if(tmpFd==fdTable) +fdTable=tmpFd->next; + +systemVitals->openFiles--; +spinUnlock(&fdTable_lock); +if(tmpFd->buffer!=NULL) +kfree(tmpFd->buffer); +kfree(tmpFd); +return(0x0); +} +} + +spinUnlock(&fdTable_lock); +return(0x1); +} + +/*UBU*/ + +/************************************************************************ + +Function:voidsysMkDir(constchar*path) +Description:ThisWillCreateANewDirectory +Notes: + +************************************************************************/ +voidsysMkDir(constchar*path){ +fileDescriptor*tmpFD=0x0; +chartmpDir[1024]; +charrootPath[256]; +char*dir=0x0;//UBU*mountPoint=0x0; +char*tmp=0x0; +rootPath[0]='\0'; +dir=(char*)path; + +if(strstr(path,":")==0x0){ +sprintf(tmpDir,"%s%s",_current->oInfo.cwd,path); +dir=(char*)&tmpDir; +} +while(strstr(dir,"/")){ +if(rootPath[0]==0x0) +sprintf(rootPath,"%s/",strtok(dir,"/")); +else +sprintf(rootPath,"%s%s/",rootPath,strtok(dir,"/")); +tmp=strtok(NULL,"\n"); +dir=tmp; +} + +//kprintf("rootPath:[%s]\n",rootPath); +tmpFD=fopen(rootPath,"rb"); + +if(tmpFD->mp==0x0){ +kprintf("InvalidMountPoint\n"); +} +tmpFD->mp->fs->vfsMakeDir(dir,tmpFD); + +fclose(tmpFD); + +return; +} + + +/************************************************************************ + +Function:intunlink(constchar*node) +Description:Thiswillunlinkafile +Notes: + +************************************************************************/ + +intunlink(constchar*node){ +char*path=0x0,*mountPoint=0x0; +structvfs_mountPoint*mp=0x0; + +path=(char*)strtok((char*)node,"@"); +mountPoint=strtok(NULL,"\n"); +if(mountPoint==0x0){ +mp=vfs_findMount("sys");/*_current->oInfo.container;*/ +} +else{ +mp=vfs_findMount(mountPoint); +} +if(mp==0x0){ +//kpanic("MountPointBad"); +return(0x0); +} +mp->fs->vfsUnlink(path,mp); +return(0x0); +} + + +/*** +END +***/ + + + + + diff --git a/doc/xml/fork_8c.xml b/doc/xml/fork_8c.xml new file mode 100644 index 0000000..4df4b6c --- /dev/null +++ b/doc/xml/fork_8c.xml @@ -0,0 +1,484 @@ + + + + fork.c + ubixos/fork.h + ubixos/types.h + ubixos/sched.h + ubixos/tty.h + ubixos/vitals.h + vmm/vmm.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl sysFork \n""sysFork: \n"" xor %eax,%eax \n"" call schedNewTask \n"" testl %eax,%eax \n"" je fork_ret \n"" pushl %esi \n"" pushl %edi \n"" pushl %ebp \n"" pushl %eax \n"" call fork_copyProcess \n"" movl %eax,(%ebx) \n"" addl $16,%esp \n""fork_ret: \n"" ret \n") + asm + + ".globl sysFork \n""sysFork: \n"" xor % + eax + + + %eax\n""call schedNewTask\n""testl% + eax + + + %eax\n""je fork_ret\n""pushl%esi\n""pushl%edi\n""pushl%ebp\n""pushl%eax\n""call fork_copyProcess\n""movl% + eax + + + (%ebx)\n""addl $ + 16 + + + %esp\n""fork_ret:\n""ret\n" + + + + + + + + + + + int + int fork_copyProcess + (struct taskStruct *newProcess, long ebp, long edi, long esi, long none, long ebx, long ecx, long edx, long eip, long cs, long eflags, long esp, long ss) + fork_copyProcess + + struct taskStruct * + newProcess + + + long + ebp + + + long + edi + + + long + esi + + + long + none + + + long + ebx + + + long + ecx + + + long + edx + + + long + eip + + + long + cs + + + long + eflags + + + long + esp + + + long + ss + + + + + + + + + _current + assert + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + osInfo::cwd + tssStruct::ds + tssStruct::eax + tssStruct::ebp + tssStruct::ebx + tssStruct::ecx + tssStruct::edi + tssStruct::edx + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + FORK + tssStruct::fs + taskStruct::gid + tssStruct::gs + taskStruct::id + tssStruct::io_map + tssStruct::ldt + memcpy + taskStruct::oInfo + tty_termNode::owner + sched_yield + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + taskStruct::state + taskStruct::term + tssStruct::trace_bitmap + taskStruct::tss + taskStruct::uid + vmmCopyVirtualSpace + osInfo::vmStart + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/fork.h> +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<ubixos/tty.h> +#include<ubixos/vitals.h> +#include<vmm/vmm.h> +#include<string.h> +#include<assert.h> + +/***************************************************************************************** +Functoin:staticintfork_copyProcess(structtaskStruct*newProcess,longebp,longedi, +longesi,longnone,longebx,longecx,longedx,longeip,longcs,longeflags, +longesp,longss) + +Desc:Thisfunctionwillcopyaprocess + +Notes: + +*****************************************************************************************/ +/*Hadtoremovestaticthoughtihsfunctionisonlyusedinthisfile*/ +intfork_copyProcess(structtaskStruct*newProcess,longebp,longedi,longesi,longnone,longebx,longecx,longedx,longeip,longcs,longeflags,longesp,longss){ +volatilestructtaskStruct*tmpProcPtr=newProcess; +assert(newProcess); +assert(_current); + +/*SetUpNewTasksInformation*/ +memcpy(newProcess->oInfo.cwd,_current->oInfo.cwd,1024); + +newProcess->tss.eip=eip; +newProcess->oInfo.vmStart=_current->oInfo.vmStart; +newProcess->term=_current->term; +newProcess->term->owner=newProcess->id; +newProcess->uid=_current->uid; +newProcess->gid=_current->gid; +newProcess->tss.back_link=0x0; +newProcess->tss.esp0=_current->tss.esp0; +newProcess->tss.ss0=0x10; +newProcess->tss.esp1=0x0; +newProcess->tss.ss1=0x0; +newProcess->tss.esp2=0x0; +newProcess->tss.ss2=0x0; +newProcess->tss.eflags=eflags; +newProcess->tss.eax=0x0; +newProcess->tss.ebx=ebx; +newProcess->tss.ecx=ecx; +newProcess->tss.edx=edx; +newProcess->tss.esi=esi; +newProcess->tss.edi=edi; +newProcess->tss.ebp=ebp; +newProcess->tss.esp=esp; +newProcess->tss.cs=cs&0xFF; +newProcess->tss.ss=ss&0xFF; +newProcess->tss.ds=_current->tss.ds&0xFF; +newProcess->tss.fs=_current->tss.fs&0xFF; +newProcess->tss.gs=_current->tss.gs&0xFF; +newProcess->tss.es=_current->tss.es&0xFF; +newProcess->tss.ldt=0x18; +newProcess->tss.trace_bitmap=0x0000; +newProcess->tss.io_map=0x8000; +/*CreateACopyOfTheVMSpaceForNewTask*/ +newProcess->tss.cr3=(uInt32)vmmCopyVirtualSpace(newProcess->id); +newProcess->state=FORK; + +/*Fixgccoptimizationproblems*/ +while(tmpProcPtr->state==FORK)sched_yield(); + +/*ReturnIdofProccess*/ +return(newProcess->id); +} + +/***************************************************************************************** +Functoin:voidsysFork(); + +Desc:Thisfunctionwillforkanewtask + +Notes: + +08/01/02-ThisSeemsToBeWorkingFineHoweverI'mNotSureIfI +ChoseTheBestPathToImplimentItIGuessWeWillSee +WhatTheFutureMayBring + +*****************************************************************************************/ +asm( +".globlsysFork\n" +"sysFork:\n" +"xor%eax,%eax\n" +"callschedNewTask\n" +"testl%eax,%eax\n" +"jefork_ret\n" +"pushl%esi\n" +"pushl%edi\n" +"pushl%ebp\n" +"pushl%eax\n" +"callfork_copyProcess\n" +"movl%eax,(%ebx)\n" +"addl$16,%esp\n" +"fork_ret:\n" +"ret\n" +); + +/*** +END +***/ + + + + + diff --git a/doc/xml/fork_8h.xml b/doc/xml/fork_8h.xml new file mode 100644 index 0000000..256eae2 --- /dev/null +++ b/doc/xml/fork_8h.xml @@ -0,0 +1,203 @@ + + + + fork.h + ubixos/types.h + ubixos/sched.h + src/sys/kernel/fork.c + src/sys/net/net/shell.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void sysFork + () + sysFork + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_FORK_H +#define_FORK_H + +#include<ubixos/types.h> +#include<ubixos/sched.h> + +voidsysFork(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:54reddawg +nomessage + +Revision1.32004/09/1113:06:39reddawg +fork:cleanedupcommentsinforkandmadefork_copyProcessstatic + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/fsAbstract_8h.xml b/doc/xml/fsAbstract_8h.xml new file mode 100644 index 0000000..bc80614 --- /dev/null +++ b/doc/xml/fsAbstract_8h.xml @@ -0,0 +1,180 @@ + + + + fsAbstract.h + stdio.h + dirent.h + sys/types.h + device.h + file.h + src/sys/ubixfsv2/ubixfs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vfs_abstract + + + + + +#ifndefFSABSTRACT_H +#defineFSABSTRACT_H + +#include<stdio.h> +#include<dirent.h> +#include<sys/types.h> +#include<device.h> +#include"file.h" + +classvfs_abstract{ +protected: +vfs_abstract*prev; +vfs_abstract*next; +device_t*device; +public: +/*FileI/O*/ +virtualintvfs_open(constchar*,fileDescriptor*,int,...){return-1;}; +virtualintvfs_close(fileDescriptor*){return-1;}; +virtualsize_tvfs_read(fileDescriptor*,void*,off_t,size_t) +{return0;}; +virtualsize_tvfs_write(fileDescriptor*,void*,off_t,size_t) +{return0;}; + +/*DirI/O*/ +virtualintvfs_opendir(DIR*,constchar*){return-1;}; +virtualintvfs_closedir(DIR*){return-1;}; +virtualintvfs_mkdir(constchar*,mode_t){return-1;}; +virtualintvfs_rmdir(constchar*){return-1;}; +virtualintvfs_readdir(DIR*,structdirent*){return-1;}; + +/*FSFunctions*/ +virtualintvfs_init(void){return-1;}; +virtualintvfs_format(device_t*){return-1;}; +virtualvoid*vfs_mknod(constchar*,mode_t){returnNULL;}; +virtualintvfs_purge(void){return-1;}; +virtualintvfs_stop(void){return-1;}; +virtualintvfs_sync(void){return-1;}; + +/*MiscFunctions*/ +virtualintvfs_unlink(constchar*){return-1;}; +virtualintvfs_rename(constchar*,constchar*){return-1;}; + +virtual~vfs_abstract(void){}; +};//vfs_FS + +#endif//!FSABSTRACT_H + + + + diff --git a/doc/xml/gdt_8h.xml b/doc/xml/gdt_8h.xml new file mode 100644 index 0000000..8868cae --- /dev/null +++ b/doc/xml/gdt_8h.xml @@ -0,0 +1,590 @@ + + + + gdt.h + src/sys/include/sys/idt.h + src/sys/init/main.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/kernel/sched.c + src/sys/pci/lnc.c + src/sys/sys/idt.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + descriptorTableUnion + gdtDescriptor + gdtGate + + + dAcc + 0x100 + + + + + + + + + + dBig + 0x40 + + + + + + + + ubixDescriptorTable + + + dBiglim + 0x80 + + + + + + + + ubixDescriptorTable + + + dBusy + 0xB00 + + + + + + + + + + dCall + 0x0C00 + + + + + + + + + + dCode + 0x1800 + + + + + + + + ubixDescriptorTable + + + dConform + 0x400 + + + + + + + + + + dData + 0x1000 + + + + + + + + ubixDescriptorTable + + + dDpl0 + 0x0000 + + + + + + + + atkbd_init + idt_init + ne2k_init + + + dDpl1 + 0x2000 + + + + + + + + + + dDpl2 + 0x4000 + + + + + + + + + + dDpl3 + 0x6000 + + + + + + + + idt_init + initLNC + mouseInit + ubixDescriptorTable + + + dEexdown + 0x400 + + + + + + + + + + dInt + 0x0E00 + + + + + + + + atkbd_init + fdc_init + idt_init + initLNC + mouseInit + ne2k_init + + + dLdt + 0x200 + + + + + + + + ubixDescriptorTable + + + dNpresent + 0x8000 + + + + + + + + + + dPresent + 0x8000 + + + + + + + + atkbd_init + fdc_init + idt_init + initLNC + mouseInit + ne2k_init + + + dRead + 0x200 + + + + + + + + ubixDescriptorTable + + + dTask + 0x500 + + + + + + + + idt_init + + + dTrap + 0x0F00 + + + + + + + + idt_init + + + dTss + 0x900 + + + + + + + + ubixDescriptorTable + + + dWrite + 0x200 + + + + + + + + ubixDescriptorTable + + + ubixDescriptorTable + name + length + union descriptorTableUnion name[length] = + + + + + + + + + + ubixGateDescriptor + offset + selector + control + {gate: {(offset & 0xffff), selector, \ + (control+dPresent), (offset >> 16) }} + + + + + + + + + + ubixStandardDescriptor + base + limit + control + {descriptor: \ + {(limit & 0xffff), \ + (base & 0xffff), \ + ((base >> 16) & 0xff), \ + ((control+dPresent) >> 8), \ + (limit >> 16), \ + ((control & 0xff) >> 4), \ + (base >> 24)}} + + + + + + + + ubixDescriptorTable + + + + + gdtGate + struct gdtGate packed + + packed + + + + + + + + + + gdtDescriptor + struct gdtDescriptor packed + + packed + + + + + + + + + + descriptorTableUnion + union descriptorTableUnion ubixGDT[9] + [9] + ubixGDT + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_GDT_H +#define_GDT_H + +/*DescriptorDefinitions*/ +#definedCall0x0C00/*386CallGate*/ +#definedCode0x1800/*CodeSegment*/ +#definedData0x1000/*DataSegment*/ +#definedInt0x0E00/*386InterruptGate*/ +#definedLdt0x200/*LocalDescriptorTable(LDT)*/ +#definedTask0x500/*Taskgate*/ +#definedTrap0x0F00/*386TrapGate*/ +#definedTss0x900/*TaskStateSegment(TSS)*/ + +/*DescriptorOptions*/ +#definedDpl30x6000/*DPL3ormaskforDPL*/ +#definedDpl20x4000/*DPL2ormaskforDPL*/ +#definedDpl10x2000/*DPL1ormaskforDPL*/ +#definedDpl00x0000/*DPL0ormaskforDPL*/ +#definedPresent0x8000/*Present*/ +#definedNpresent0x8000/*NotPresent*/ +#definedAcc0x100/*Accessed(DataorCode)*/ +#definedWrite0x200/*Writable(Datasegmentsonly)*/ +#definedRead0x200/*Readable(Codesegmentsonly)*/ +#definedBusy0xB00/*Busy(TSSonly)was200*/ +#definedEexdown0x400/*Expanddown(Datasegmentsonly)*/ +#definedConform0x400/*Conforming(Codesegmentsonly)*/ +#definedBig0x40/*Defaultto32bitmode*/ +#definedBiglim0x80/*Limitisin4Kunits*/ + +/*GDTDescriptor*/ +structgdtDescriptor{ +unsignedshortlimitLow;/*Limit0..15*/ +unsignedshortbaseLow;/*Base0..15*/ +unsignedcharbaseMed;/*Base16..23*/ +unsignedcharaccess;/*AccessByte*/ +unsignedintlimitHigh:4;/*Limit16..19*/ +unsignedintgranularity:4;/*Granularity*/ +unsignedcharbaseHigh;/*Base24..31*/ +}__attribute__((packed)); + +structgdtGate{ +unsignedshortoffsetLow;/*Offset0..15*/ +unsignedshortselector;/*Selector*/ +unsignedshortaccess;/*AccessFlags*/ +unsignedshortoffsetHigh;/*Offset16..31*/ +}__attribute__((packed)); + +uniondescriptorTableUnion{ +structgdtDescriptordescriptor;/*Normaldescriptor*/ +structgdtGategate;/*Gatedescriptor*/ +unsignedlongdummy;/*Anyotherinfo*/ +}; + + +#defineubixDescriptorTable(name,length)uniondescriptorTableUnionname[length]= +#defineubixStandardDescriptor(base,limit,control){descriptor:\ +{(limit&0xffff),\ +(base&0xffff),\ +((base>>16)&0xff),\ +((control+dPresent)>>8),\ +(limit>>16),\ +((control&0xff)>>4),\ +(base>>24)}} +#defineubixGateDescriptor(offset,selector,control){gate:{(offset&0xffff),selector,\ +(control+dPresent),(offset>>16)}} + +externuniondescriptorTableUnionubixGDT[9]; + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:52reddawg +nomessage + +Revision1.52004/08/1516:47:49reddawg +Fixed + +Revision1.42004/07/2220:53:07reddawg +atkbd:fixedproblem + +Revision1.32004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/gen__calls_8c.xml b/doc/xml/gen__calls_8c.xml new file mode 100644 index 0000000..18b2705 --- /dev/null +++ b/doc/xml/gen__calls_8c.xml @@ -0,0 +1,419 @@ + + + + gen_calls.c + ubixos/types.h + sys/thread.h + sys/gen_calls.h + ubixos/sched.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int getgid + (struct thread *td, struct getgid_args *uap) + getgid + + struct thread * + td + + + struct getgid_args * + uap + + + + + + + + + _current + taskStruct::gid + taskStruct::td + thread::td_retval + + + int + int getpid + (struct thread *td, struct getpid_args *uap) + getpid + + struct thread * + td + + + struct getpid_args * + uap + + + + + + + + + _current + taskStruct::id + taskStruct::td + thread::td_retval + + + int + int gettimeofday_new + (struct thread *td, struct gettimeofday_args *uap) + gettimeofday_new + + struct thread * + td + + + struct gettimeofday_args * + uap + + + + + + + + + + + int + int getuid + (struct thread *td, struct getuid_args *uap) + getuid + + struct thread * + td + + + struct getuid_args * + uap + + + + + + + + + _current + taskStruct::td + thread::td_retval + taskStruct::uid + + + int + int issetugid + (register struct thread *td, struct issetugid_args *uap) + issetugid + + register struct thread * + td + + + struct issetugid_args * + uap + + + + + + + + + + + int + int readlink + (struct thread *td, struct readlink_args *uap) + readlink + + struct thread * + td + + + struct readlink_args * + uap + + + + + + + + + readlink_args::count + kprintf + readlink_args::path + taskStruct::td + thread::td_retval + + + int + int sys_write + (struct thread *td, struct write_args *uap) + sys_write + + struct thread * + td + + + struct write_args * + uap + + + + + + + + + write_args::buf + buffer + write_args::fd + kfree + kmalloc + kprintf + memcpy + write_args::nbyte + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<sys/thread.h> +#include<sys/gen_calls.h> +#include<ubixos/sched.h> +#include<lib/kprintf.h> +#include<assert.h> + +/*returntheprocessid*/ +intgetpid(structthread*td,structgetpid_args*uap){ +td->td_retval[0]=_current->id; +return(0); +} + +/*returntheprocessuserid*/ +intgetuid(structthread*td,structgetuid_args*uap){ +td->td_retval[0]=_current->uid; +return(0); +} + +/*returntheprocessgroupid*/ +intgetgid(structthread*td,structgetgid_args*uap){ +td->td_retval[0]=_current->gid; +return(0); +} + +intsys_write(structthread*td,structwrite_args*uap){ +char*buffer=0x0; +char*in=0x0; + +if(uap->fd==2){ +kprintf("stderr:%s",uap->buf); +} + +if(uap->fd==1){ +in=uap->buf; +buffer=kmalloc(1024); +memcpy(buffer,uap->buf,uap->nbyte); +kprintf("%s",buffer); +kfree(buffer); +} +else{ +kprintf("(%i)%s",uap->fd,uap->buf); +} +return(0x0); +} + +intissetugid(registerstructthread*td,structissetugid_args*uap){ +td->td_retval[0]=0; +return(0); +} + +intreadlink(structthread*td,structreadlink_args*uap){ +kprintf("readlink:[%s:%i]\n",uap->path,uap->count); +td->td_retval[0]=-1; +td->td_retval[1]=0x0; +return(0x0); +} + +intgettimeofday_new(structthread*td,structgettimeofday_args*uap){ +return(0x0); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/gen__calls_8h.xml b/doc/xml/gen__calls_8h.xml new file mode 100644 index 0000000..3a89805 --- /dev/null +++ b/doc/xml/gen__calls_8h.xml @@ -0,0 +1,254 @@ + + + + gen_calls.h + sys/thread.h + sys/sysproto.h + src/sys/kernel/gen_calls.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int getgid + (struct thread *, struct getgid_args *) + getgid + + struct thread * + + + struct getgid_args * + + + + + + + + + UbixFS::mknod + UbixFS::vfs_format + + + int + int getpid + (struct thread *, struct getpid_args *) + getpid + + struct thread * + + + struct getpid_args * + + + + + + + + + + + int + int gettimeofday_new + (struct thread *, struct gettimeofday_args *) + gettimeofday_new + + struct thread * + + + struct gettimeofday_args * + + + + + + + + + + + int + int getuid + (struct thread *, struct getuid_args *) + getuid + + struct thread * + + + struct getuid_args * + + + + + + + + + UbixFS::mknod + UbixFS::vfs_format + + + int + int issetugid + (register struct thread *, struct issetugid_args *) + issetugid + + register struct thread * + + + struct issetugid_args * + + + + + + + + + + + int + int readlink + (struct thread *, struct readlink_args *) + readlink + + struct thread * + + + struct readlink_args * + + + + + + + + + + + int + int sys_write + (struct thread *, struct write_args *) + sys_write + + struct thread * + + + struct write_args * + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_GEN_CALLS_H +#define_GEN_CALLS_H + +#include<sys/thread.h> +#include<sys/sysproto.h> + +intsys_write(structthread*,structwrite_args*); +intgetpid(structthread*,structgetpid_args*); +intissetugid(registerstructthread*,structissetugid_args*); +intreadlink(structthread*,structreadlink_args*); +intgetuid(structthread*,structgetuid_args*); +intgetgid(structthread*,structgetgid_args*); +intgettimeofday_new(structthread*,structgettimeofday_args*); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/getfreepage_8c.xml b/doc/xml/getfreepage_8c.xml new file mode 100644 index 0000000..3349aa7 --- /dev/null +++ b/doc/xml/getfreepage_8c.xml @@ -0,0 +1,213 @@ + + + + getfreepage.c + vmm/vmm.h + ubixos/kpanic.h + ubixos/spinlock.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* vmmGetFreePage + (pidType pid) + vmmGetFreePage + + pidType + pid + + + + + + + + + KERNEL_PAGE_DEFAULT + kpanic + spinLock + spinUnlock + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + vmmGFPlock + x1000 + vmmCreateVirtualSpace + + + + + spinLock_t + spinLock_t vmmGFPlock + + vmmGFPlock + SPIN_LOCK_INITIALIZER + + + + + + + + vmmGetFreePage + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> + +staticspinLock_tvmmGFPlock=SPIN_LOCK_INITIALIZER; + +/************************************************************************ + +Function:void*vmmGetFreePage(pidTypepid); + +Description:ReturnsAFreePageMappedToTheVMSpace + +Notes: + +07/30/02-ThisReturnsAFreePageInTheTop1GBForTheKernel + +************************************************************************/ +void* +vmmGetFreePage(pidTypepid) +{ +uInt16x=0x0,y=0x0; +uInt32*pageTableSrc=0x0; + +spinLock(&vmmGFPlock); + +/*LetsSearchForAFreePage*/ +for(x=768;x<1024;x++){ + +/*SetPageTableAddress*/ +pageTableSrc=(uInt32*)(tablesBaseAddress+(0x1000*x)); +for(y=0x0;y<1024;y++){ +/*LoopThroughThePageTableFindAnUnAllocatedPage*/ +if((uInt32)pageTableSrc[y]==(uInt32)0x0){ +/*MapAPhysicalPageToTheVirtualPage*/ +if((vmm_remapPage(vmmFindFreePage(pid),((x*0x400000)+(y*0x1000)),KERNEL_PAGE_DEFAULT))==0x0) +kpanic("vmmRemapPage:vmmGetFreePage\n"); +/*ClearThisPageSoNoGarbageIsThere*/ +vmmClearVirtualPage((uInt32)((x*0x400000)+(y*0x1000))); +/*ReturnTheAddressOfTheNewlyAllocatePage*/ +spinUnlock(&vmmGFPlock); +return((void*)((x*0x400000)+(y*0x1000))); +} +} +} +/*IfNoFreePageWasFoundReturnNULL*/ +spinUnlock(&vmmGFPlock); +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/getfreevirtualpage_8c.xml b/doc/xml/getfreevirtualpage_8c.xml new file mode 100644 index 0000000..263fe57 --- /dev/null +++ b/doc/xml/getfreevirtualpage_8c.xml @@ -0,0 +1,403 @@ + + + + getfreevirtualpage.c + vmm/vmm.h + ubixos/sched.h + ubixos/kpanic.h + ubixos/spinlock.h + lib/kprint.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* vmmGetFreeVirtualPage + (pidType pid, int count, int type) + vmmGetFreeVirtualPage + + pidType + pid + + + int + count + + + int + type + + + + + + + + + _current + btoc + ctob + fvpSpinLock + taskStruct::id + K_PANIC + kpanic + kprintf + taskStruct::oInfo + PAGE_COW + PAGE_DEFAULT + PAGE_PRESENT + pageEntries + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + taskStruct::td + thread::vm_daddr + thread::vm_dsize + VM_TASK + VM_THRD + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + osInfo::vmStart + x1 + x1000 + mmap + sysGetFreePage + vmm_pageFault + + + + + spinLock_t + spinLock_t fvpSpinLock + + fvpSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + vmmGetFreeVirtualPage + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<ubixos/sched.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> +#include<lib/kprint.h> + +staticspinLock_tfvpSpinLock=SPIN_LOCK_INITIALIZER; + +/************************************************************************ + +Function:void*vmmGetFreeVirtualPage(pidTypepid,intcount); +Description:ReturnsAFreePageMappedToTheVMSpace +Notes: + +08/11/02-ThisWillReturnNextAvilableFreePageOfTasksVMSpace + +************************************************************************/ +void*vmmGetFreeVirtualPage(pidTypepid,intcount,inttype){ +intx=0,y=0,c=0; +uInt32*pageTableSrc=0x0; +uInt32*pageDir=0x0; +uInt32start_page=0x0; + + +spinLock(&fvpSpinLock); + +pageDir=(uInt32*)parentPageDirAddr; + +/*LetsSearchForAFreePage*/ +if(_current->oInfo.vmStart<=0x100000) +kpanic("InvalidvmStart\n"); + +if(type==VM_THRD){ +start_page=(u_int32_t)(_current->td.vm_daddr+ctob(_current->td.vm_dsize)); +} +elseif(type==VM_TASK){ +//kprintf("vmStart"); +start_page=_current->oInfo.vmStart; +} +else +K_PANIC("InvalidType"); + +//for(x=((_current->td.vm_daddr+_current->td.vm_dsize)/(1024*4096));x<1024;x++){ +for(x=(start_page/(1024*4096));x<1024;x++){ +/*SetPageTableAddress*/ +if((pageDir[x]&PAGE_PRESENT)!=PAGE_PRESENT){ +/*IfPageTableIsNonExistantThenSetItUp*/ +pageDir[x]=(uInt32)vmmFindFreePage(_current->id)|PAGE_DEFAULT; +/*AlsoAddItToVirtualSpaceSoWeCanMakeChangesLater*/ +pageTableSrc=(uInt32*)(tablesBaseAddress+(4096*767)); +pageTableSrc[x]=pageDir[x]; +y=1; +/*ReloadPageDirectory*/ +asm( +"movl%cr3,%eax\n" +"movl%eax,%cr3\n" +); +} +pageTableSrc=(uInt32*)(tablesBaseAddress+(0x1000*x)); +if(y!=0x0){ +for(y=0x0;y<pageEntries;y++){ +pageTableSrc[y]=(uInt32)0x0; +} +} +for(y=0;y<1024;y++){ +/*LoopThroughThePageTableFindAnUnAllocatedPage*/ +if((pageTableSrc[y]&PAGE_COW)==PAGE_COW){ +kprintf("COW"); +//_current->td.vm_dsize+=btoc(0x1000); +/*HACKMEMORYLEAK*/ +//pageTableSrc[y]=0x0; +} +if((uInt32)pageTableSrc[y]==(uInt32)0x0){ +if(count>0x1){ +for(c=0;c<count;c++){ +if(y+c<1024){ +if((pageTableSrc[y+c]&PAGE_COW)==PAGE_COW){ +kprintf("COW"); +//_current->td.vm_dsize+=btoc(0x1000); +/*HACKMEMORYLEAK*/ +//pageTableSrc[y+c]=0x0; +} + +if((uInt32)pageTableSrc[y+c]!=(uInt32)0x0){ +c=-1; +break; +} +} +} +if(c!=-1){ +for(c=0;c<count;c++){ +if((vmm_remapPage((uInt32)vmmFindFreePage(pid),((x*(1024*4096))+((y+c)*4096)),PAGE_DEFAULT))==0x0) +kpanic("vmmRemapPage:getFreeVirtualPage-1:[0x%X]\n",((x*(1024*4096))+((y+c)*4096))); +vmmClearVirtualPage((uInt32)((x*(1024*4096))+((y+c)*4096))); +} +if(type==VM_THRD) +_current->td.vm_dsize+=btoc(count*0x1000); +spinUnlock(&fvpSpinLock); +return((void*)((x*(1024*4096))+(y*4096))); +} +}else{ +/*MapAPhysicalPageToTheVirtualPage*/ + +/* +*remapPage((uInt32)vmmFindFreePage(pid),((x*(1024*4096))+(y*4096)) +*,pid); +*/ +if((vmm_remapPage((uInt32)vmmFindFreePage(pid),((x*(1024*4096))+(y*4096)),PAGE_DEFAULT))==0x0) +kpanic("vmmRemapPage:getFreeVirtualPage-2\n"); + +/*ClearThisPageSoNoGarbageIsThere*/ +vmmClearVirtualPage((uInt32)((x*(1024*4096))+(y*4096))); + +/*ReturnTheAddressOfTheNewlyAllocatePage*/ +if(type==VM_THRD){ +_current->td.vm_dsize+=btoc(count*0x1000); +kprintf("vm_dsize:[0x%X]][0x%X]\n",ctob(_current->td.vm_dsize),_current->td.vm_dsize); +} +//kprintf("(0x%X:0x%X)",_current->td.vm_dsize,vmm_getPhysicalAddr(((x*(1024*4096))+(y*4096)))); +//kprintf("(0x%X:0x%X)",_current->td.vm_dsize+_current->td.vm_daddr,((x*(1024*4096))+(y*4096))); +spinUnlock(&fvpSpinLock); +return((void*)((x*(1024*4096))+(y*4096))); +} +} +} +} +/*IfNoFreePageWasFoundReturnNULL*/ +spinUnlock(&fvpSpinLock); +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/getphysicaladdr_8c.xml b/doc/xml/getphysicaladdr_8c.xml new file mode 100644 index 0000000..a27f403 --- /dev/null +++ b/doc/xml/getphysicaladdr_8c.xml @@ -0,0 +1,142 @@ + + + + getphysicaladdr.c + vmm/vmm.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u_int32_t + u_int32_t vmm_getPhysicalAddr + (uInt32 pageAddr) + vmm_getPhysicalAddr + + uInt32 + pageAddr + + + + +Function: void *vmmGetPhysicalAddr(); Description: Returns The Physical Address Of The Virtual Page Notes: + + + + tablesBaseAddress + x1000 + vmm_pageFault + vmmCopyVirtualSpace + vmmCreateVirtualSpace + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> + +u_int32_tvmm_getPhysicalAddr(uInt32pageAddr){ +intpageDirectoryIndex=0x0,pageTableIndex=0x0; +uInt32*pageTable=0x0; + +//CalculateThePageDirectoryIndex +pageDirectoryIndex=(pageAddr>>22); + +//CalculateThePageTableIndex +pageTableIndex=((pageAddr>>12)&0x3FF); + +/*SetpageTableToTheVirtualAddressOfTable*/ +pageTable=(uInt32*)(tablesBaseAddress+(0x1000*pageDirectoryIndex)); +/*ReturnThePhysicalAddressOfThePage*/ +return((uInt32)(pageTable[pageTableIndex]&0xFFFFF000)); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/hd_8c.xml b/doc/xml/hd_8c.xml new file mode 100644 index 0000000..092b4a1 --- /dev/null +++ b/doc/xml/hd_8c.xml @@ -0,0 +1,900 @@ + + + + hd.c + pci/hd.h + sys/video.h + sys/device.h + sys/io.h + lib/kmalloc.h + lib/kprintf.h + devfs/devfs.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int hdInit + (struct device_node *dev) + hdInit + + struct device_node * + dev + + + + + + + + + dev + hdCmd + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMask + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + driveInfo::hdSector + driveInfo::hdShift + driveInfo::hdSize + hdStat + inportByte + inportWord + kprintf + outportByte + initHardDisk + + + int + int hdIoctl + () + hdIoctl + + + + + + + + initHardDisk + + + void + void hdRead + (struct driveInfo *hdd, void *baseAddr, uInt32 startSector, uInt32 sectorCount) + hdRead + + struct driveInfo * + hdd + + + void * + baseAddr + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + driveInfo::hdCalc + hdCmd + hdCylHi + hdCylLow + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + hdSecNum + driveInfo::hdShift + hdStat + inportByte + inportWord + kprintf + outportByte + driveInfo::parOffset + x20 + initHardDisk + + + int + int hdReset + () + hdReset + + + + + + + + initHardDisk + + + int + int hdStandby + () + hdStandby + + + + + + + + initHardDisk + + + int + int hdStart + () + hdStart + + + + + + + + initHardDisk + + + int + int hdStop + () + hdStop + + + + + + + + initHardDisk + + + void + void hdWrite + (struct driveInfo *hdd, void *baseAddr, uInt32 startSector, uInt32 sectorCount) + hdWrite + + struct driveInfo * + hdd + + + void * + baseAddr + + + uInt32 + startSector + + + uInt32 + sectorCount + + + + + + + + + driveInfo::hdCalc + hdCmd + hdCylHi + hdCylLow + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + hdSecNum + driveInfo::hdShift + hdStat + inportByte + kprintf + outportByte + outportWord + driveInfo::parOffset + x30 + initHardDisk + + + int + int initHardDisk + () + initHardDisk + + + + + + + + bsd_disklabel::d_npartitions + bsd_disklabel::d_partitions + devfs_makeNode + device_add + dos_partition::dp_start + fstypenames + driveInfo::hdDev + hdInit + hdIoctl + driveInfo::hdPort + hdRead + hdReset + driveInfo::hdSize + hdStandby + hdStart + hdStop + hdWrite + device_interface::info + device_interface::init + device_interface::ioctl + kmalloc + kprintf + device_interface::major + memcpy + name + bsd_disklabel::partition::p_fstype + bsd_disklabel::partition::p_offset + bsd_disklabel::partition::p_size + driveInfo::parOffset + device_interface::read + device_interface::reset + sprintf + device_interface::standby + device_interface::start + device_interface::stop + device_interface::write + x1 + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<pci/hd.h> +#include<sys/video.h> +#include<sys/device.h> +#include<sys/io.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<devfs/devfs.h> +#include<string.h> + +intinitHardDisk(){ +inti=0x0; +intx=0x0; +intminor=0x0; +structdevice_interface*devInfo=0x0; +structdevice_interface*devInfo2=0x0; +structdos_partition*d=0x0; +structdriveInfo*hdd=0x0; +structdriveInfo*hdd2=0x0; +char*data=0x0; +char*data2=0x0; +charname[16]; +structbsd_disklabel*bsdd=0x0; + +hdd=(structdriveInfo*)kmalloc(sizeof(structdriveInfo)); +hdd->hdPort=0x1F0; +hdd->hdDev=0x40; +hdd->parOffset=0x0; + + +/*Allocmemoryfordevicestructureandsetitupcorrectly*/ +devInfo=(structdevice_interface*)kmalloc(sizeof(structdevice_interface)); +devInfo->read=(void*)&hdRead; +devInfo->write=(void*)&hdWrite; +devInfo->reset=(void*)&hdReset; +devInfo->init=(void*)&hdInit; +devInfo->ioctl=(void*)&hdIoctl; +devInfo->stop=(void*)&hdStop; +devInfo->start=(void*)&hdStart; +devInfo->standby=(void*)&hdStandby; +devInfo->info=hdd; + +devInfo->major=0x1; + +data=(char*)kmalloc(512); +d=(structdos_partition*)(data+0x1BE); + +data2=(char*)kmalloc(512); +bsdd=(structbsd_disklabel*)data2; + +if(device_add(0,'c',devInfo)==0x0){ +kprintf("ad0-Start:[0x0],Size:[0x%x/0x%X]\n",hdd->hdSize,hdd->hdSize*512); +devfs_makeNode("ad0",'b',0x1,0x0); +hdRead(devInfo->info,data,0x0,0x1); +for(i=0x0;i<0x4;i++){ +if(d[i].dp_type!=0x0){ +devInfo2=(structdevice_interface*)kmalloc(sizeof(structdevice_interface)); +hdd2=(structdriveInfo*)kmalloc(sizeof(structdriveInfo)); +memcpy(devInfo2,devInfo,sizeof(structdevice_interface)); +memcpy(hdd2,hdd,sizeof(structdriveInfo)); +hdd2->parOffset=d[i].dp_start; +devInfo2->info=hdd2; +minor++; +if(device_add(minor,'c',devInfo2)==0x0){ +sprintf(name,"ad0s%i",i+1); +kprintf("%s-Type:[0x%X],Start:[0x%X],Size:[0x%X]\n",name,d[i].dp_type,d[i].dp_start,d[i].dp_size); +devfs_makeNode(name,'c',0x1,minor); +if(d[i].dp_type==0xA5){ +//Whydoineedtoadd1? +hdRead(devInfo->info,data2,d[i].dp_start+1,0x1); +for(x=0;x<bsdd->d_npartitions;x++){ +if(bsdd->d_partitions[x].p_size>0){ +sprintf(name,"ad0s%i%c",i+1,'a'+x); +//NewNodes +devInfo2=(structdevice_interface*)kmalloc(sizeof(structdevice_interface)); +hdd2=(structdriveInfo*)kmalloc(sizeof(structdriveInfo)); +memcpy(devInfo2,devInfo,sizeof(structdevice_interface)); +memcpy(hdd2,hdd,sizeof(structdriveInfo)); +//hdd2->parOffset=d[i].dp_start+bsdd->d_partitions[x].p_offset; +hdd2->parOffset=bsdd->d_partitions[x].p_offset; +devInfo2->info=hdd2; +minor++; +device_add(minor,'c',devInfo2); +devfs_makeNode(name,'c',0x1,minor); +kprintf("%s-Type:[%s],Start:[0x%X],Size:[0x%X],MM:[%i:%i]\n",name,fstypenames[bsdd->d_partitions[x].p_fstype],bsdd->d_partitions[x].p_offset,bsdd->d_partitions[x].p_size,devInfo->major,minor); +} +} +} +} +} +} +} +kfree(data); +return(0x0); +} + +inthdStandby(){ +return(0x0); +} + +inthdStart(){ +return(0x0); +} + +inthdStop(){ +return(0x0); +} + +inthdIoctl(){ +return(0x0); +} + +inthdReset(){ +return(0x0); +} + +inthdInit(structdevice_node*dev){ +charretVal=0x0; +longcounter=0x0; +short*tmp=0x0; +structdriveInfo*hdd=dev->devInfo->info; +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat)&0x80; +if(!retVal)gotoready; +} +kprintf("ErrorInitializingDrive\n"); +return(1); +ready: +outportByte(hdd->hdPort+hdHead,hdd->hdDev); +outportByte(hdd->hdPort+hdCmd,0xEC); +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat); +if((retVal&1)!=0x0){ +kprintf("ErrorDriveNotAvailable\n"); +return(1); +} +if((retVal&8)!=0x0){ +gotogo; +} +} +kprintf("TimeOutWaitingOnDrive\n"); +return(1); +go: +tmp=(short*)hdd->hdSector; +for(counter=0;counter<(512/2);counter++){ +tmp[counter]=inportWord(hdd->hdPort+hdData); +} +retVal=tmp[0x2F]&0xFF; +switch(retVal){ +case0: +hdd->hdShift=0; +hdd->hdMulti=1; +break; +case2: +hdd->hdShift=1; +hdd->hdMulti=retVal; +break; +case4: +hdd->hdShift=2; +hdd->hdMulti=retVal; +break; +case8: +hdd->hdShift=3; +hdd->hdMulti=retVal; +break; +case16: +hdd->hdShift=4; +hdd->hdMulti=retVal; +break; +case32: +hdd->hdShift=5; +hdd->hdMulti=retVal; +break; +case64: +hdd->hdShift=6; +hdd->hdMulti=retVal; +break; +default: +kprintf("ErrorBLOCKModeUnavailable:[%i]\n",retVal); +return(1); +} +outportByte(hdd->hdPort+hdSecCount,retVal); +outportByte(hdd->hdPort+hdHead,hdd->hdDev); +outportByte(hdd->hdPort+hdCmd,0xC6); +hdd->hdMask=retVal; +hdd->hdSize=(hdd->hdSector[0x7B]*256*256*256)+(hdd->hdSector[0x7A]*256*256)+(hdd->hdSector[0x79]*256)+hdd->hdSector[0x78]; +hdd->hdEnable=1; +kprintf("Drive:[0x%X/0x%X],Size:[%iSectors/%iKBytes]\n",hdd->hdPort,hdd->hdDev,hdd->hdSize,((hdd->hdSize*512)/1024)); +dev->devInfo->size=hdd->hdSize*512; +dev->devInfo->initialized=0x1; +return(0x0); +} + +voidhdWrite(structdriveInfo*hdd,void*baseAddr,uInt32startSector,uInt32sectorCount){ +longcounter=0x0; +longretVal=0x0; +shorttransactionCount=0x0; +short*tmp=(short*)baseAddr; +startSector+=hdd->parOffset; +if(hdd->hdEnable==0x0){ +kprintf("InvalidDrive\n"); +return; +} +if((sectorCount>>hdd->hdShift)==0x0){ +hdd->hdCalc=sectorCount;/*hdd->hdMask;*/ +transactionCount=1; +} +else{ +hdd->hdCalc=hdd->hdMulti; +transactionCount=sectorCount>>hdd->hdShift; +} +for(;transactionCount>0;transactionCount--){ +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat)&0x80; +if(!retVal)gotoready; +} +kprintf("TimeOutWaitingOnDrive\n"); +return; +ready: +outportByte(hdd->hdPort+hdSecCount,hdd->hdCalc); +outportByte(hdd->hdPort+hdSecNum,(startSector&0xFF)); +retVal=startSector>>8; +outportByte(hdd->hdPort+hdCylLow,(retVal&0xFF)); +retVal>>=8; +outportByte(hdd->hdPort+hdCylHi,(retVal&0xFF)); +retVal>>=8; +retVal&=0x0F; +retVal|=(hdd->hdDev|0xA0);//TestAsPerTJ +outportByte(hdd->hdPort+hdHead,(retVal&0xFF)); +if(hdd->hdShift>0) +outportByte(hdd->hdPort+hdCmd,0xC5); +else +outportByte(hdd->hdPort+hdCmd,0x30); +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat); +if((retVal&1)!=0x0){ +kprintf("HDWriteError\n"); +return; +} +if((retVal&8)!=0x0){ +gotogo; +} +} +kprintf("TimeOutWaitingOnDrive\n"); +return; +go: +for(counter=0;counter<(hdd->hdCalc<<8);counter++){ +outportWord(hdd->hdPort+hdData,(short)tmp[counter]); +} +tmp+=(counter+0); +startSector+=hdd->hdCalc; +} +return; +} + +voidhdRead(structdriveInfo*hdd,void*baseAddr,uInt32startSector,uInt32sectorCount){ +longcounter=0x0; +longretVal=0x0; +shorttransactionCount=0x0; +short*tmp=(short*)baseAddr; +startSector+=hdd->parOffset; + +if(hdd->hdEnable==0x0){ +kprintf("InvalidDrive\n"); +return; +} +if((sectorCount>>hdd->hdShift)==0x0){ +hdd->hdCalc=sectorCount;/*hdd->hdMask);*/ +transactionCount=1; +} +else{ +hdd->hdCalc=hdd->hdMulti; +transactionCount=sectorCount>>hdd->hdShift; +} +for(;transactionCount>0;transactionCount--){ +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat)&0x80; +if(!retVal)gotoready; +} +kprintf("TimeOutWaitingOnDrive\n"); +return; +ready: +outportByte(hdd->hdPort+hdSecCount,hdd->hdCalc); +outportByte(hdd->hdPort+hdSecNum,(startSector&0xFF)); +retVal=startSector>>8; +outportByte(hdd->hdPort+hdCylLow,(retVal&0xFF)); +retVal>>=8; +outportByte(hdd->hdPort+hdCylHi,(retVal&0xFF)); +retVal>>=8; +retVal&=0x0F; +retVal|=(hdd->hdDev|0xA0);//TestasperTJ +//retVal|=hdd->hdDev;//retVal|=(hdd->hdDev|0xA0);//TestasperTJ +outportByte(hdd->hdPort+hdHead,(retVal&0xFF)); +if(hdd->hdShift>0) +outportByte(hdd->hdPort+hdCmd,0xC4); +else +outportByte(hdd->hdPort+hdCmd,0x20); +for(counter=1000000;counter>=0;counter--){ +retVal=inportByte(hdd->hdPort+hdStat); +if((retVal&1)!=0x0){ +kprintf("HDReadError:[%i:0x%X:%i]\n",counter,(uInt32)baseAddr,startSector); +return; +} +if((retVal&8)!=0x0){ +gotogo; +} +} +kprintf("Error:TimeOutWaitingOnDrive\n"); +return; +go: +for(counter=0;counter<(hdd->hdCalc<<8);counter++){ +tmp[counter]=inportWord(hdd->hdPort+hdData); +} +tmp+=(counter+0); +startSector+=hdd->hdCalc; +} +return; +} + +/*** +$Log$ +Revision1.52006/10/1215:00:26reddawg +Morechanges + +Revision1.42006/10/1014:14:01reddawg +UFSReading + +Revision1.32006/10/0902:58:05reddawg +FixingUFS + +Revision1.22006/10/0615:48:01reddawg +StartingtomakeubixosworkwithUFS2 + +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:34reddawg +nomessage + +Revision1.162004/08/2622:51:19reddawg +TCAtouchedme:(ithinkhelikesmen.... + + +sched.h:kTask_taddedparentPid +endtask.c:fixedtermbacktoparentPid +exec.c:cleanedwarnings +fork.c:fixedtermtochildPid +sched.c:cleanupfordeadtasks +systemtask.c:cleanupdeadtasks +kmalloc.c:cleanedupwarnings +udp.c:cleanedupwarnings +bot.c:cleanedupwarnings +shell.c:cleanedupwarnings +tcpdump.c:tookadump +hd.c:cleanedupwarnings +ubixfs.c:stoppedprningdebuginfo + +Revision1.152004/08/1500:33:02reddawg +Wowtheidedriverworksagain + +Revision1.142004/08/1421:56:44reddawg +Addedinitializedbytetothedevicesystemtomakeiteasytoaddchilddeviceswhichuseparenthardware. + +Revision1.132004/08/0211:43:17reddawg +Fixens + +Revision1.122004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.112004/05/1923:36:52reddawg +BugFixes + +Revision1.102004/05/1915:20:06reddawg +Fixedreferenceproblemsduetochangesindrivesubsystem + +Revision1.92004/05/1915:07:59reddawg +TypodefInfoshouldofbeendevInfo + +Revision1.72004/05/1904:07:43reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.62004/04/2821:10:40reddawg +LotsOfchangestomakeitworkwithexistingos + +Revision1.52004/04/2802:37:34reddawg +Moreupdatesforusingthenewdriversubsystem + +Revision1.42004/04/2802:22:54reddawg +Thisisafiarlylargecommitbutwearestartingtousenewdrivermodel +allaround + +Revision1.32004/04/2721:05:19reddawg +Updatingdriverstousenewmodel + +Revision1.22004/04/2622:22:33reddawg +DevFSnowusescorrectsizeofdevice + +Revision1.1.1.12004/04/1512:07:16reddawg +UbixOSv1.0 + +Revision1.122004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/hd_8h.xml b/doc/xml/hd_8h.xml new file mode 100644 index 0000000..304b29c --- /dev/null +++ b/doc/xml/hd_8h.xml @@ -0,0 +1,833 @@ + + + + hd.h + ubixfs/ubixfs.h + src/sys/include/ubixos/init.h + src/sys/pci/hd.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bsd_disklabel + bsd_disklabel::partition + dos_partition + driveInfo + + + hdCmd + 0x7 + + + + + + + + hdInit + hdRead + hdWrite + + + hdCylHi + 0x5 + + + + + + + + hdRead + hdWrite + + + hdCylLow + 0x4 + + + + + + + + hdRead + hdWrite + + + hdData + 0x0 + + + + + + + + hdInit + hdRead + hdWrite + + + hdError + 0x1 + + + + + + + + + + hdHead + 0x6 + + + + + + + + hdInit + hdRead + hdWrite + + + hdSecCount + 0x2 + + + + + + + + hdInit + hdRead + hdWrite + + + hdSecNum + 0x3 + + + + + + + + hdRead + hdWrite + + + hdStat + 0x7 + + + + + + + + hdInit + hdRead + hdWrite + + + MAXPARTITIONS + 8 + + + + + + + + + + NDDATA + 5 + + + + + + + + + + NSPARE + 5 + + + + + + + + + + + + int + int hdInit + (struct device_node *dev) + hdInit + + struct device_node * + dev + + + + + + + + + dev + hdCmd + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMask + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + driveInfo::hdSector + driveInfo::hdShift + driveInfo::hdSize + hdStat + inportByte + inportWord + kprintf + outportByte + initHardDisk + + + int + int hdIoctl + () + hdIoctl + + + + + + + + initHardDisk + + + void + void hdRead + (struct driveInfo *hdd, void *, uInt32, uInt32) + hdRead + + struct driveInfo * + hdd + + + void * + + + uInt32 + + + uInt32 + + + + + + + + + driveInfo::hdCalc + hdCmd + hdCylHi + hdCylLow + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + hdSecNum + driveInfo::hdShift + hdStat + inportByte + inportWord + kprintf + outportByte + driveInfo::parOffset + x20 + initHardDisk + + + int + int hdReset + () + hdReset + + + + + + + + initHardDisk + + + int + int hdStandby + () + hdStandby + + + + + + + + initHardDisk + + + int + int hdStart + () + hdStart + + + + + + + + initHardDisk + + + int + int hdStop + () + hdStop + + + + + + + + initHardDisk + + + void + void hdWrite + (struct driveInfo *hdd, void *, uInt32, uInt32) + hdWrite + + struct driveInfo * + hdd + + + void * + + + uInt32 + + + uInt32 + + + + + + + + + driveInfo::hdCalc + hdCmd + hdCylHi + hdCylLow + hdData + driveInfo::hdDev + driveInfo::hdEnable + hdHead + driveInfo::hdMulti + driveInfo::hdPort + hdSecCount + hdSecNum + driveInfo::hdShift + hdStat + inportByte + kprintf + outportByte + outportWord + driveInfo::parOffset + x30 + initHardDisk + + + int + int initHardDisk + () + initHardDisk + + + + + + + + bsd_disklabel::d_npartitions + bsd_disklabel::d_partitions + devfs_makeNode + device_add + dos_partition::dp_start + fstypenames + driveInfo::hdDev + hdInit + hdIoctl + driveInfo::hdPort + hdRead + hdReset + driveInfo::hdSize + hdStandby + hdStart + hdStop + hdWrite + device_interface::info + device_interface::init + device_interface::ioctl + kmalloc + kprintf + device_interface::major + memcpy + name + bsd_disklabel::partition::p_fstype + bsd_disklabel::partition::p_offset + bsd_disklabel::partition::p_size + driveInfo::parOffset + device_interface::read + device_interface::reset + sprintf + device_interface::standby + device_interface::start + device_interface::stop + device_interface::write + x1 + + + + + const char * + const char* fstypenames[] + [] + fstypenames + { + "unused", + "swap", + "Version 6", + "Version 7", + "System V", + "4.1BSD", + "Eighth Edition", + "4.2BSD", + "MSDOS", + "4.4LFS", + "unknown", + "HPFS", + "ISO9660", + "boot", + "vinum", + "raid", + "?", + "?", + "?", + "?", + "jfs", + NULL +} + + + + + + + + initHardDisk + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_HD_H +#define_HD_H + +#include<ubixfs/ubixfs.h> + +#definehdData0x0 +#definehdError0x1 +#definehdSecCount0x2 +#definehdSecNum0x3 +#definehdCylLow0x4 +#definehdCylHi0x5 +#definehdHead0x6 +#definehdStat0x7 +#definehdCmd0x7 + + +structdriveInfo{ +structdriveDiskLabel*diskLabel; +charhdSector[512]; +charhdEnable; +charhdDev; +charhdFlags; +charhdShift; +longhdMask; +longhdMulti; +longhdPort; +longhdSize; +longhdCalc; +longparOffset; +}; + +intinitHardDisk(); +voidhdWrite(structdriveInfo*hdd,void*,uInt32,uInt32); +voidhdRead(structdriveInfo*hdd,void*,uInt32,uInt32); +inthdReset(); +inthdIoctl(); +inthdStart(); +inthdStop(); +inthdStandby(); +inthdInit(structdevice_node*dev); + +structdos_partition{ +unsignedchardp_flag;/*bootstrapflags*/ +unsignedchardp_shd;/*startinghead*/ +unsignedchardp_ssect;/*startingsector*/ +unsignedchardp_scyl;/*startingcylinder*/ +unsignedchardp_type;/*partitiontype*/ +unsignedchardp_ehd;/*endhead*/ +unsignedchardp_esect;/*endsector*/ +unsignedchardp_ecyl;/*endcylinder*/ +uInt32dp_start;/*absolutestartingsectornumber*/ +uInt32dp_size;/*partitionsizeinsectors*/ +}; + +#defineMAXPARTITIONS8 + +structbsd_disklabel{ +u_int32_td_magic;/*themagicnumber*/ +u_int16_td_type;/*drivetype*/ +u_int16_td_subtype;/*controller/d_typespecific*/ +chard_typename[16];/*typename,e.g."eagle"*/ + +chard_packname[16];/*packidentifier*/ + +/*diskgeometry:*/ +u_int32_td_secsize;/*#ofbytespersector*/ +u_int32_td_nsectors;/*#ofdatasectorspertrack*/ +u_int32_td_ntracks;/*#oftrackspercylinder*/ +u_int32_td_ncylinders;/*#ofdatacylindersperunit*/ +u_int32_td_secpercyl;/*#ofdatasectorspercylinder*/ +u_int32_td_secperunit;/*#ofdatasectorsperunit*/ + +/* +*Spares(badsectorreplacements)belowarenotcountedin +*d_nsectorsord_secpercyl.Sparesectorsareassumedto +*bephysicalsectorswhichoccupyspaceattheendofeach +*trackand/orcylinder. +*/ +u_int16_td_sparespertrack;/*#ofsparesectorspertrack*/ +u_int16_td_sparespercyl;/*#ofsparesectorspercylinder*/ +/* +*Alternatecylindersincludemaintenance,replacement,configuration +*descriptionareas,etc. +*/ +u_int32_td_acylinders;/*#ofalt.cylindersperunit*/ + +/*hardwarecharacteristics:*/ +/* +*d_interleave,d_trackskewandd_cylskewdescribeperturbations +*inthemediaformatusedtocompensateforaslowcontroller. +*Interleaveisphysicalsectorinterleave,setupbythe +*formatterorcontrollerwhenformatting.Wheninterleavingis +*inuse,logicallyadjacentsectorsarenotphysically +*contiguous,butinsteadareseparatedbysomenumberof +*sectors.Itisspecifiedastheratioofphysicalsectors +*traversedperlogicalsector.Thusaninterleaveof1:1 +*impliescontiguouslayout,while2:1impliesthatlogical +*sector0isseparatedbyonesectorfromlogicalsector1. +*d_trackskewistheoffsetofsector0ontrackNrelativeto +*sector0ontrackN-1onthesamecylinder.Finally,d_cylskew +*istheoffsetofsector0oncylinderNrelativetosector0 +*oncylinderN-1. +*/ +u_int16_td_rpm;/*rotationalspeed*/ +u_int16_td_interleave;/*hardwaresectorinterleave*/ +u_int16_td_trackskew;/*sector0skew,pertrack*/ +u_int16_td_cylskew;/*sector0skew,percylinder*/ +u_int32_td_headswitch;/*headswitchtime,usec*/ +u_int32_td_trkseek;/*track-to-trackseek,usec*/ +u_int32_td_flags;/*genericflags*/ +#defineNDDATA5 +u_int32_td_drivedata[NDDATA];/*drive-typespecificinformation*/ +#defineNSPARE5 +u_int32_td_spare[NSPARE];/*reservedforfutureuse*/ +u_int32_td_magic2;/*themagicnumber(again)*/ +u_int16_td_checksum;/*xorofdataincl.partitions*/ + +/*filesystemandpartitioninformation:*/ +u_int16_td_npartitions;/*numberofpartitionsinfollowing*/ +u_int32_td_bbsize;/*sizeofbootareaatsn0,bytes*/ +u_int32_td_sbsize;/*maxsizeoffssuperblock,bytes*/ +structpartition{/*thepartitiontable*/ +u_int32_tp_size;/*numberofsectorsinpartition*/ +u_int32_tp_offset;/*startingsector*/ +u_int32_tp_fsize;/*filesystembasicfragmentsize*/ +u_int8_tp_fstype;/*filesystemtype,seebelow*/ +u_int8_tp_frag;/*filesystemfragmentsperblock*/ +u_int16_tp_cpg;/*filesystemcylinderspergroup*/ +}d_partitions[MAXPARTITIONS];/*actuallymaybemore*/ +}; + +staticconstchar*fstypenames[]={ +"unused", +"swap", +"Version6", +"Version7", +"SystemV", +"4.1BSD", +"EighthEdition", +"4.2BSD", +"MSDOS", +"4.4LFS", +"unknown", +"HPFS", +"ISO9660", +"boot", +"vinum", +"raid", +"?", +"?", +"?", +"?", +"jfs", +NULL +}; + +#endif + +/*** +$Log$ +Revision1.22006/10/0902:58:05reddawg +FixingUFS + +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:50reddawg +nomessage + +Revision1.72004/08/1500:33:02reddawg +Wowtheidedriverworksagain + +Revision1.62004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.52004/05/2115:05:07reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/idt_8c.xml b/doc/xml/idt_8c.xml new file mode 100644 index 0000000..6223e7c --- /dev/null +++ b/doc/xml/idt_8c.xml @@ -0,0 +1,1237 @@ + + + + idt.c + sys/idt.h + sys/gdt.h + sys/io.h + ubixos/sched.h + isa/8259.h + lib/kprintf.h + lib/kmalloc.h + vmm/vmm.h + ubixos/syscall.h + ubixos/kpanic.h + ubixos/endtask.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FP_TO_LINEAR + seg + off + ((void*) ((((uInt16) (seg)) << 4) + ((uInt16) (off)))) + + + + + + + + _int13 + + + + + void + void _int0 + () + _int0 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int1 + () + _int1 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int10 + () + _int10 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int11 + () + _int11 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int12 + () + _int12 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int13 + () + _int13 + + + + + + + + _current + _int13 + tssStruct::cs + DEAD + tssStruct::eax + tssStruct::ebp + tssStruct::edx + EFLAG_IF + EFLAG_VM + tssStruct::eflags + tssStruct::eip + tssStruct::esp + FALSE + FP_TO_LINEAR + taskStruct::id + inportByte + inportWord + irqDisable + irqEnable + kpanic + kprintf + taskStruct::oInfo + outportByte + outportWord + tssStruct::ss + taskStruct::state + osInfo::timer + TRUE + taskStruct::tss + osInfo::v86If + _int13 + idt_init + + + void + void _int2 + () + _int2 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int3 + () + _int3 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int4 + () + _int4 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int5 + () + _int5 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int6 + () + _int6 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int7 + () + _int7 + + + + + + + + + + void + void _int8 + () + _int8 + + + + + + + + _current + _int8 + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esp + tssStruct::fs + tssStruct::gs + taskStruct::id + tssStruct::io_map + kernelPageDirectory + kpanic + tssStruct::ss + _int8 + idt_init + + + void + void _int9 + () + _int9 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + + asm + (".globl _int7 \n""_int7: \n"" pushl %eax \n"" clts \n"" movl _current,%eax \n"" cmpl _usedMath,%eax \n"" je mathDone \n"" call mathStateRestore \n""mathDone: \n"" popl %eax \n"" iret \n") + asm + + ".globl _int7 \n""_int7: \n"" pushl %eax \n"" clts \n"" movl + _current + + + %eax\n""cmpl + _usedMath + + + %eax\n""je mathDone\n""call mathStateRestore\n""mathDone:\n""popl%eax\n""iret\n" + + + + + + + + + + + int + int idt_init + () + idt_init + + + + + + + + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int7 + _int8 + _int9 + _sysCall + _sysCall_new + _vmm_pageFault + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + dDpl0 + dDpl3 + dInt + dPresent + tssStruct::ds + dTask + dTrap + tssStruct::ebp + tssStruct::edi + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + intNull + tssStruct::io_map + kernelPageDirectory + kprintf + tssStruct::ldt + loadidt + memset + setTaskVector + setVector + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + timerInt + tssStruct::trace_bitmap + + + void + void intNull + () + intNull + + + + + + + + _current + taskStruct::id + kprintf + idt_init + + + void + void mathStateRestore + () + mathStateRestore + + + + + + + + _current + _usedMath + taskStruct::i387 + taskStruct::usedMath + + + void + void setTaskVector + (uInt8 interrupt, uInt16 controlMajor, uInt8 selector) + setTaskVector + + uInt8 + interrupt + + + uInt16 + controlMajor + + + uInt8 + selector + + + + + + + + + gdtGate::access + descriptorTableUnion::gate + gdtGate::offsetHigh + gdtGate::offsetLow + gdtGate::selector + idt_init + + + void + void setVector + (void *handler, unsigned char interrupt, unsigned short controlMajor) + setVector + + void * + handler + + + unsigned char + interrupt + + + unsigned short + controlMajor + + + + + + + + + gdtGate::access + descriptorTableUnion::gate + gdtGate::offsetHigh + gdtGate::offsetLow + gdtGate::selector + atkbd_init + fdc_init + idt_init + initLNC + mouseInit + ne2k_init + + + static + static ubixDescriptorTable + (ubixIDT, 256) + ubixDescriptorTable + + ubixIDT + + + 256 + + + + + + + + + + + + + struct @14 + struct @14 loadidt + + loadidt + + + + + + + + idt_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/idt.h> +#include<sys/gdt.h> +#include<sys/io.h> +#include<ubixos/sched.h> +#include<isa/8259.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<vmm/vmm.h> +#include<ubixos/syscall.h> +#include<ubixos/kpanic.h> +#include<ubixos/endtask.h> +#include<string.h> + +#defineFP_TO_LINEAR(seg,off)((void*)((((uInt16)(seg))<<4)+((uInt16)(off)))) + +staticubixDescriptorTable(ubixIDT,256){}; + +staticstruct{ +unsignedshortlimit__attribute__((packed)); +uniondescriptorTableUnion*idt__attribute__((packed)); +}loadidt={ +(256*sizeof(uniondescriptorTableUnion)-1),ubixIDT +}; + +/************************************************************************ + +Function:intidtInit() +Description:ThisfunctionisusedtoenableourIDTsubsystem +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ +intidt_init(){ +inti=0x0; + +structtssStruct*sfTSS=(structtssStruct*)0x6200; +structtssStruct*gpfTSS=(structtssStruct*)0x4200; + +/*Setupdefaultvectortableforallpossible256interrupts*/ + +for(i=0x0;i<256;i++){ +setVector(intNull,i,dPresent+dInt+dDpl3); +} + +/*LoadtheIDTintothesystem*/ +asmvolatile( +"cli\n" +"lidt(%0)\n"/*LoadtheIDT*/ +"pushfl\n"/*CleartheNTflag*/ +"andl$0xffffbfff,(%%esp)\n" +"popfl\n" +"sti\n" +: +:"r"((char*)&loadidt) +); + +/*Setupthebasicvectorsforthereservedints*/ +setVector(_int0,0,dPresent+dInt+dDpl0); +setVector(_int1,1,dPresent+dInt+dDpl0); +setVector(_int2,2,dPresent+dInt+dDpl0); +setVector(_int3,3,dPresent+dInt+dDpl0); +setVector(_int4,4,dPresent+dInt+dDpl0); +setVector(_int5,5,dPresent+dInt+dDpl0); +setVector(_int6,6,dPresent+dInt+dDpl0); +setVector(_int7,7,dPresent+dInt+dDpl0); +setTaskVector(8,dPresent+dTask+dDpl0,0x40); +setVector(_int9,9,dPresent+dInt+dDpl0); +setVector(_int10,10,dPresent+dInt+dDpl0); +setVector(_int11,11,dPresent+dInt+dDpl0); +setVector(_int12,12,dPresent+dInt+dDpl0); +setTaskVector(13,dPresent+dTask+dDpl0,0x38); +setVector(_vmm_pageFault,14,dPresent+dInt+dDpl0); +setVector(_sysCall,128,dPresent+dTrap+dDpl3); +setVector(_sysCall_new,0x81,dPresent+dTrap+dDpl3); +//setVector(_sysCallNew,0x90,dPresent+dTrap+dDpl3); +setVector(timerInt,0x68,(dInt+dPresent+dDpl0)); + + +gpfTSS->back_link=0x0; +gpfTSS->esp0=0x0; +gpfTSS->ss0=0x0; +gpfTSS->esp1=0x0; +gpfTSS->ss1=0x0; +gpfTSS->esp2=0x0; +gpfTSS->ss2=0x0; +gpfTSS->cr3=(unsignedint)kernelPageDirectory; +gpfTSS->eip=(unsignedint)&_int13; +gpfTSS->eflags=0x206; +gpfTSS->esp=0x1D000; +gpfTSS->ebp=0x1D000; +gpfTSS->esi=0x0; +gpfTSS->edi=0x0; +gpfTSS->es=0x10; +gpfTSS->cs=0x08; +gpfTSS->ss=0x10; +gpfTSS->ds=0x10; +gpfTSS->fs=0x10; +gpfTSS->gs=0x10; +gpfTSS->ldt=0x0; +gpfTSS->trace_bitmap=0x0000; +gpfTSS->io_map=0x8000; + +memset(sfTSS,0x0,sizeof(structtssStruct)); +sfTSS->cr3=(unsignedint)kernelPageDirectory; +sfTSS->eip=(unsignedint)&_int8; +sfTSS->eflags=0x206; +sfTSS->esp=0x1C000; +sfTSS->ebp=0x1C000; +sfTSS->es=0x10; +sfTSS->cs=0x08; +sfTSS->ss=0x10; +sfTSS->ds=0x10; +sfTSS->fs=0x10; +sfTSS->gs=0x10; +sfTSS->io_map=0x8000; + +/*PrintoutinformationfortheIDT*/ +kprintf("idt0-Address:[0x%X]\n",&ubixIDT); + +/*Returnsoweknowallwentwell*/ +return(0x0); +} + + +/*SetsUpIDTVector*/ +voidsetVector(void*handler,unsignedcharinterrupt,unsignedshortcontrolMajor){ +unsignedshortcodesegment=0x08; +asmvolatile("movw%%cs,%0":"=g"(codesegment)); + +ubixIDT[interrupt].gate.offsetLow=(unsignedshort)(((unsignedlong)handler)&0xffff); +ubixIDT[interrupt].gate.selector=codesegment; +ubixIDT[interrupt].gate.access=controlMajor; +ubixIDT[interrupt].gate.offsetHigh=(unsignedshort)(((unsignedlong)handler)>>16); +} + +/************************************************************************ + +Function:voidsetTaskVector(uInt8,uInt16,uInt8); +Description:ThisFunctionSetsUpAnIDTTaskVector +Notes: + +************************************************************************/ +void +setTaskVector(uInt8interrupt,uInt16controlMajor,uInt8selector) +{ +uInt16codesegment=0x08; +asmvolatile("movw%%cs,%0":"=g"(codesegment)); + +ubixIDT[interrupt].gate.offsetLow=0x0; +ubixIDT[interrupt].gate.selector=selector; +ubixIDT[interrupt].gate.access=controlMajor; +ubixIDT[interrupt].gate.offsetHigh=0x0; +} + + +/*NullIntteruptDescriptor*/ +voidintNull(){ +kprintf("InvalidInterrupt[%i]\n",_current->id); +/* +kpanic("InvalidInterrupt[%i]\n",_current->id); +while(1); +endTask(_current->id); +sched_yield(); +*/ +} + +void_int0(){ +kpanic("int0:Divide-by-Zero[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int1(){ +kpanic("int1:Debugexception[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int2(){ +kpanic("int2:unknownerror[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int3(){ +kpanic("int3:Breakpoint[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int4(){ +kpanic("int4:Overflow[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int5(){ +kpanic("int5:Boundscheck[%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int6(){ +kpanic("int6:Invalidopcode![%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int8(){ +structtssStruct*sfTSS=(structtssStruct*)0x6200; +kpanic("int8:DoubleFault![%i]\n",_current->id); +sfTSS->cr3=(unsignedint)kernelPageDirectory; +sfTSS->eip=(unsignedint)&_int8; +sfTSS->eflags=0x206; +sfTSS->esp=0x1C000; +sfTSS->ebp=0x1C000; +sfTSS->es=0x10; +sfTSS->cs=0x08; +sfTSS->ss=0x10; +sfTSS->ds=0x10; +sfTSS->fs=0x10; +sfTSS->gs=0x10; +sfTSS->io_map=0x8000; +while(1); +} + +void_int9(){ +kpanic("int9:CoprocessorSegmentOverrun![%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int10(){ +kpanic("int10:InvalidTSS![%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int11(){ +kpanic("int11:SegmentNotPresent![%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int12(){ +kpanic("int12:Stack-SegmentFault![%i]\n",_current->id); +endTask(_current->id); +sched_yield(); +} + +void_int13(){ +uInt8*ip=0x0; +uInt16*stack=0x0,*ivt=0x0; +uInt32*stack32=0x0; +boolisOperand32=FALSE,isAddress32=FALSE; +structtssStruct*gpfTSS=(structtssStruct*)0x4200; + +irqDisable(0x0); + +gpfTSS->eip=(unsignedint)&_int13; +gpfTSS->esp=0x1D000; +gpfTSS->ebp=0x1D000; +gpfTSS->eflags=0x206; + +ip=FP_TO_LINEAR(_current->tss.cs,_current->tss.eip); +ivt=(uInt16*)0x0; +stack=(uInt16*)FP_TO_LINEAR(_current->tss.ss,_current->tss.esp); +stack32=(uInt32*)stack; + +gpfStart: +switch(ip[0]){ +case0xCD:/*INTn*/ +switch(ip[1]){ +case0x69: +kprintf("ExitBios[0x%X]\n",_current->id); +_current->state=DEAD; +break; +case0x20: +case0x21: +kpanic("GPFOP0x20/0x21\n"); +break; +default: +stack-=3; +_current->tss.esp=((_current->tss.esp&0xffff)-6)&0xffff; +stack[0]=(uInt16)(_current->tss.eip+2); +stack[1]=_current->tss.cs;stack[2]=(uInt16)_current->tss.eflags; +if(_current->oInfo.v86If) +stack[2]|=EFLAG_IF; +else +stack[2]&=~EFLAG_IF; +_current->tss.cs=ivt[ip[1]*2+1]&0xFFFF; +_current->tss.eip=ivt[ip[1]*2]&0xFFFF; +break; +} +break; +case0x66: +isOperand32=TRUE; +ip++; +_current->tss.eip=(uInt16)(_current->tss.eip+1); +gotogpfStart; +break; +case0x67: +isAddress32=TRUE; +ip++; +_current->tss.eip=(uInt16)(_current->tss.eip+1); +gotogpfStart; +break; +case0xF0: +_current->tss.eip=(uInt16)(_current->tss.eip+1); +kpanic("GPFOP0xF0\n"); +break; +case0x9C: +if(isOperand32==TRUE){ +_current->tss.esp=((_current->tss.esp&0xffff)-4)&0xffff; +stack32--; +stack32[0]=_current->tss.eflags&0xDFF; +if(_current->oInfo.v86If==TRUE) +stack32[0]|=EFLAG_IF; +elsestack32[0]&=~EFLAG_IF; +}else{ +_current->tss.esp=((_current->tss.esp&0xffff)-2)&0xffff; +stack--; + +stack[0]=(uInt16)_current->tss.eflags; +if(_current->oInfo.v86If==TRUE)stack[0]|=EFLAG_IF; +elsestack[0]&=~EFLAG_IF; +_current->tss.eip=(uInt16)(_current->tss.eip+1); + +} +break; +case0x9D: +if(isOperand32==TRUE){ +_current->tss.eflags=EFLAG_IF|EFLAG_VM|(stack32[0]&0xDFF); +_current->oInfo.v86If=(stack32[0]&EFLAG_IF)!=0; +_current->tss.esp=((_current->tss.esp&0xffff)+4)&0xffff; +}else{ +_current->tss.eflags=EFLAG_IF|EFLAG_VM|stack[0]; +_current->oInfo.v86If=(stack[0]&EFLAG_IF)!=0; +_current->tss.esp=((_current->tss.esp&0xffff)+2)&0xffff; +} +_current->tss.eip=(uInt16)(_current->tss.eip+1); +/*kprintf("popf[0x%X]\n",_current->id);*/ +break; +case0xFA: +_current->oInfo.v86If=FALSE; +_current->tss.eflags&=~EFLAG_IF; +_current->tss.eip=(uInt16)(_current->tss.eip+1); +_current->oInfo.timer=0x1; +break; +case0xFB: +_current->oInfo.v86If=TRUE; +_current->tss.eflags|=EFLAG_IF; +_current->tss.eip=(uInt16)(_current->tss.eip+1); +_current->oInfo.timer=0x0; +/*kprintf("sti[0x%X]\n",_current->id);*/ +break; +case0xCF: +_current->tss.eip=stack[0]; +_current->tss.cs=stack[1]; +_current->tss.eflags=EFLAG_IF|EFLAG_VM|stack[2]; +_current->oInfo.v86If=(stack[2]&EFLAG_IF)!=0; +_current->tss.esp=((_current->tss.esp&0xffff)+6)&0xffff; +/*kprintf("iret[0x%X]\n",_current->id);*/ +break; +case0xEC:/*INAL,DX*/ +_current->tss.eax=(_current->tss.eax&~0xFF)|inportByte(_current->tss.edx); +_current->tss.eip=(uInt16)(_current->tss.eip+1); +break; +case0xED:/*INAX,DX*/ +_current->tss.eax=(_current->tss.eax&~0xFFFF)|inportWord(_current->tss.edx); +_current->tss.eip=(uInt16)(_current->tss.eip+1); +break; +case0xEE:/*OUTDX,AL*/ +outportByte(_current->tss.edx,_current->tss.eax&0xFF); +_current->tss.eip=(uInt16)(_current->tss.eip+1); +break; +case0xEF: +outportWord(_current->tss.edx,_current->tss.eax); +_current->tss.eip=(uInt16)(_current->tss.eip+1); +break; +case0xF4: +_current->tss.eip=(uInt16)(_current->tss.eip+1); +break; +default:/*somethingwrong*/ +kprintf("NonHandledOpCode[0x%X:0x%X]\n",_current->id,ip[0]); +_current->state=DEAD; +break; +} +irqEnable(0); +while(1); +} + +/*Removedstatichoweverthisistheonlyplaceit'scalledfrom*/ +voidmathStateRestore(){ +if(_usedMath!=0x0){ +asm( +"fnsave%0" +: +:"m"(_usedMath->i387) +); +} +if(_current->usedMath!=0x0){ +asm( +"frstor%0" +: +:"m"(_current->i387) +); +} +else{ +asm("fninit"); +_current->usedMath=0x1; +} + +_usedMath=_current; + +//Return +} + +void_int7(); +asm( +".globl_int7\n" +"_int7:\n" +"pushl%eax\n" +"clts\n" +"movl_current,%eax\n" +"cmpl_usedMath,%eax\n" +"jemathDone\n" +"callmathStateRestore\n" +"mathDone:\n" +"popl%eax\n" +"iret\n" +); + +/*** +END +***/ + + + + diff --git a/doc/xml/idt_8h.xml b/doc/xml/idt_8h.xml new file mode 100644 index 0000000..e35b60f --- /dev/null +++ b/doc/xml/idt_8h.xml @@ -0,0 +1,706 @@ + + + + idt.h + ubixos/types.h + sys/gdt.h + src/sys/include/ubixos/init.h + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/isa/ne2k.c + src/sys/kernel/sched.c + src/sys/pci/lnc.c + src/sys/sys/idt.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EFLAG_IF + 0x200 + + + + + + + + + + EFLAG_IOPL3 + 0x3000 + + + + + + + + + + EFLAG_TF + 0x100 + + + + + + + + + + EFLAG_VM + 0x20000 + + + + + + + + + + + + void + void _int0 + () + _int0 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int1 + () + _int1 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int10 + () + _int10 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int11 + () + _int11 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int12 + () + _int12 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int13 + () + _int13 + + + + + + + + _current + _int13 + tssStruct::cs + DEAD + tssStruct::eax + tssStruct::ebp + tssStruct::edx + EFLAG_IF + EFLAG_VM + tssStruct::eflags + tssStruct::eip + tssStruct::esp + FALSE + FP_TO_LINEAR + taskStruct::id + inportByte + inportWord + irqDisable + irqEnable + kpanic + kprintf + taskStruct::oInfo + outportByte + outportWord + tssStruct::ss + taskStruct::state + osInfo::timer + TRUE + taskStruct::tss + osInfo::v86If + _int13 + idt_init + + + void + void _int2 + () + _int2 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int3 + () + _int3 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int4 + () + _int4 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int5 + () + _int5 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int6 + () + _int6 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + void + void _int7 + () + _int7 + + + + + + + + idt_init + + + void + void _int8 + () + _int8 + + + + + + + + _current + _int8 + tssStruct::cr3 + tssStruct::cs + tssStruct::ds + tssStruct::ebp + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esp + tssStruct::fs + tssStruct::gs + taskStruct::id + tssStruct::io_map + kernelPageDirectory + kpanic + tssStruct::ss + _int8 + idt_init + + + void + void _int9 + () + _int9 + + + + + + + + _current + endTask + taskStruct::id + kpanic + sched_yield + idt_init + + + int + int idt_init + () + idt_init + + + + + + + + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int7 + _int8 + _int9 + _sysCall + _sysCall_new + _vmm_pageFault + tssStruct::back_link + tssStruct::cr3 + tssStruct::cs + dDpl0 + dDpl3 + dInt + dPresent + tssStruct::ds + dTask + dTrap + tssStruct::ebp + tssStruct::edi + tssStruct::eflags + tssStruct::eip + tssStruct::es + tssStruct::esi + tssStruct::esp + tssStruct::esp0 + tssStruct::esp1 + tssStruct::esp2 + tssStruct::fs + tssStruct::gs + intNull + tssStruct::io_map + kernelPageDirectory + kprintf + tssStruct::ldt + loadidt + memset + setTaskVector + setVector + tssStruct::ss + tssStruct::ss0 + tssStruct::ss1 + tssStruct::ss2 + timerInt + tssStruct::trace_bitmap + + + void + void intNull + () + intNull + + + + + + + + _current + taskStruct::id + kprintf + idt_init + + + void + void setTaskVector + (uInt8 interrupt, uInt16 controlMajor, uInt8 selector) + setTaskVector + + uInt8 + interrupt + + + uInt16 + controlMajor + + + uInt8 + selector + + + + + + + + + gdtGate::access + descriptorTableUnion::gate + gdtGate::offsetHigh + gdtGate::offsetLow + gdtGate::selector + idt_init + + + void + void setVector + (void *handler, unsigned char interrupt, unsigned short controlMajor) + setVector + + void * + handler + + + unsigned char + interrupt + + + unsigned short + controlMajor + + + + + + + + + gdtGate::access + descriptorTableUnion::gate + gdtGate::offsetHigh + gdtGate::offsetLow + gdtGate::selector + atkbd_init + fdc_init + idt_init + initLNC + mouseInit + ne2k_init + + + void + void timerInt + () + timerInt + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_IDT_H +#define_IDT_H + +#include<ubixos/types.h> +#include<sys/gdt.h> + +#defineEFLAG_TF0x100 +#defineEFLAG_IF0x200 +#defineEFLAG_IOPL30x3000 +#defineEFLAG_VM0x20000 + +intidt_init(); +voidsetVector(void*handler,unsignedcharinterrupt,unsignedshortcontrolMajor); +voidsetTaskVector(uInt8interrupt,uInt16controlMajor,uInt8selector); +voidintNull(); + +void_int0(); +void_int1(); +void_int2(); +void_int3(); +void_int4(); +void_int5(); +void_int6(); +void_int7(); +void_int8(); +void_int9(); +void_int10(); +void_int11(); +void_int12(); +void_int13(); +voidtimerInt(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:52reddawg +nomessage + +Revision1.52004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.32004/07/0913:16:41reddawg +idt:idtInittoidt_init +AdjustedStartupRoutines + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/include_2sys_2device_8h.xml b/doc/xml/include_2sys_2device_8h.xml new file mode 100644 index 0000000..c8ba217 --- /dev/null +++ b/doc/xml/include_2sys_2device_8h.xml @@ -0,0 +1,392 @@ + + + + device.h + ubixos/types.h + src/sys/devfs/devfs.c + src/sys/include/sys/buf.h + src/sys/include/ubixfs/ubixfs.h + src/sys/include/ufs/ffs.h + src/sys/include/ufs/ufs.h + src/sys/isa/fdc.c + src/sys/pci/hd.c + src/sys/sys/device.c + src/sys/vfs/mount.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + device_interface + device_node + device_resource + + + int + int device_add + (int, char, struct device_interface *) + device_add + + int + + + char + + + struct device_interface * + + + + + + + + + devices + deviceSpinLock + device_node::devInfo + device_interface::init + device_interface::initialized + kmalloc + kprintf + device_node::minor + device_node::next + NULL + device_node::prev + spinLock + spinUnlock + device_node::type + fdc_init + initHardDisk + + + device_node * + struct device_node* device_find + (int major, int minor) + device_find + + int + major + + + int + minor + + + + + + + + + devices + deviceSpinLock + device_node::devInfo + device_interface::major + device_node::minor + device_node::next + spinLock + spinUnlock + devfs_open + devfs_read + devfs_write + vfs_mount + + + int + int device_remove + (struct device_node *) + device_remove + + struct device_node * + + + + + + + + + devices + deviceSpinLock + kfree + device_node::next + NULL + spinLock + spinUnlock + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_DEVICE_H +#define_DEVICE_H + +#include<ubixos/types.h> + +structdevice_node{ +structdevice_node*prev; +structdevice_node*next; +structdevice_interface*devInfo; +structdevice_resource*devRec; +chartype; +intminor; +}; + +structdevice_resource{ +uInt8irq; +}; + +structdevice_interface{ +uInt8initialized; +uInt32size; +intmajor; +void*info; +void(*read)(void*,void*,uInt32,uInt32); +void(*write)(void*,void*,uInt32,uInt32); +void(*reset)(void*); +int(*init)(void*); +void(*ioctl)(void*); +void(*stop)(void*); +void(*start)(void*); +void(*standby)(void*); +}; + + +intdevice_add(int,char,structdevice_interface*); +structdevice_node*device_find(intmajor,intminor); +intdevice_remove(structdevice_node*); +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:51reddawg +nomessage + +Revision1.142004/08/1500:33:02reddawg +Wowtheidedriverworksagain + +Revision1.132004/08/1421:56:44reddawg +Addedinitializedbytetothedevicesystemtomakeiteasytoaddchilddeviceswhichuseparenthardware. + +Revision1.122004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.112004/05/2202:40:04ionix + + +fixedtypoindevice.handinitializedpreviousindevice.c:) + +Revision1.102004/05/2202:34:03ionix + + +Addedproto + +Revision1.92004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + + diff --git a/doc/xml/include_2ubixfs_2ubixfs_8h.xml b/doc/xml/include_2ubixfs_2ubixfs_8h.xml new file mode 100644 index 0000000..9fcf3fb --- /dev/null +++ b/doc/xml/include_2ubixfs_2ubixfs_8h.xml @@ -0,0 +1,954 @@ + + + + ubixfs.h + ubixos/types.h + vfs/vfs.h + sys/device.h + mpi/mpi.h + ubixfs/dirCache.h + src/sys/include/pci/hd.h + src/sys/include/ubixos/init.h + src/sys/kernel/syscall.c + src/sys/ubixfs/block.c + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/directory.c + src/sys/ubixfs/thread.c + src/sys/ubixfs/ubixfs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + blockAllocationTableEntry + bootSect + directoryEntry + directoryList + partitionInformation + ubixDiskLabel + ubixDiskLabel::ubixPartitions + ubixFSInfo + + + blockSize + 8 + + + + + + + + ubixfs_loadData + ubixFSmkDir + writeUbixFS + + + EOBC + -1 + + + + + + + + writeUbixFS + + + MAXUBIXPARTITIONS + 16 + + + + + + + + + + typeContainer + 2 + + + + + + + + + + typeDeleted + 8 + + + + + + + + ubixFSUnlink + + + typeDirectory + 4 + + + + + + + + ubixFSmkDir + + + typeFile + 1 + + + + + + + + ubixfs_cacheFind + + + UBIXDISKMAGIC + ((uInt32)0x45) + + + + + + + + ubixfs_initialize + + + UBIXFS_ALIGN + size + (size + ((((size) % (UBIXFS_BLOCKSIZE_BYTES)) == 0)? 0 : ((UBIXFS_BLOCKSIZE_BYTES) - ((size) % (UBIXFS_BLOCKSIZE_BYTES))))) + + + + + + + + openFileUbixFS + ubixfs_loadData + + + UBIXFS_BLOCKSIZE_BYTES + blockSize*512 + + + + + + + + ubixfs_loadData + ubixFSmkDir + + + + + directoryList * + typedef struct directoryList* dirList_t + + dirList_t + + + + + + + + + + + + int + int addDirEntry + (struct directoryEntry *dir, fileDescriptor *fd) + addDirEntry + + struct directoryEntry * + dir + + + fileDescriptor * + fd + + + + + + + + + kmalloc + kprintf + memcpy + fileDescriptor::offset + readUbixFS + fileDescriptor::size + writeUbixFS + x1000 + ubixFSmkDir + + + int + int freeBlocks + (int block, fileDescriptor *fd) + freeBlocks + + int + block + + + fileDescriptor * + fd + + + + + + + + + blockAllocationTableEntry::attributes + ubixFSInfo::blockAllocationTable + blockAllocationTableEntry::nextBlock + syncBat + + + int + int getFreeBlocks + (int count, fileDescriptor *fd) + getFreeBlocks + + int + count + + + fileDescriptor * + fd + + + + + + + + + blockAllocationTableEntry::attributes + ubixFSInfo::batEntries + ubixFSInfo::blockAllocationTable + blockAllocationTableEntry::nextBlock + syncBat + x1 + ubixFSmkDir + writeUbixFS + + + int + int readFile + (char *file) + readFile + + char * + file + + + + + + + + + + + int + int readUbixFS + (fileDescriptor *fd, char *data, uInt32, long size) + readUbixFS + + fileDescriptor * + fd + + + char * + data + + + uInt32 + + + long + size + + + + + + + + + assert + buffer + fdEof + kpanic + NULL + fileDescriptor::size + addDirEntry + ubixfs_init + + + void + void syncBat + (struct vfs_mountPoint *mp) + syncBat + + struct vfs_mountPoint * + mp + + + + + + + + + ubixFSInfo::blockAllocationTable + vfs_mountPoint::device + device_node::devInfo + vfs_mountPoint::diskLabel + vfs_mountPoint::fsInfo + device_interface::info + vfs_mountPoint::partition + ubixDiskLabel::partitions + device_interface::write + freeBlocks + getFreeBlocks + + + int + int ubixfs_init + () + ubixfs_init + + + + + + + + kpanic + NULL + openFileUbixFS + readUbixFS + ubixfs_initialize + ubixFSmkDir + ubixFSUnlink + vfsRegisterFS + writeUbixFS + x1 + + + int + int ubixfs_initialize + () + ubixfs_initialize + + + + + + + + ubixfs_init + + + void + void ubixfs_thread + () + ubixfs_thread + + + + + + + + + + dirList_t + dirList_t ubixFSLoadDir + (char *) + ubixFSLoadDir + + char * + + + + + + + + + directoryList::dirCache + dirList + directoryList::dirName + kmalloc + directoryList::next + directoryList::prev + sprintf + strcmp + + + int + int ubixFSmkDir + (char *dir, fileDescriptor *fd) + ubixFSmkDir + + char * + dir + + + fileDescriptor * + fd + + + + + + + + + addDirEntry + directoryEntry::attributes + ubixFSInfo::blockAllocationTable + blockSize + directoryEntry::fileName + getFreeBlocks + kfree + kmalloc + directoryEntry::permissions + blockAllocationTableEntry::realSector + directoryEntry::size + sprintf + directoryEntry::startCluster + typeDirectory + UBIXFS_BLOCKSIZE_BYTES + ubixfs_init + + + void + void ubixFSUnlink + (char *path, struct vfs_mountPoint *mp) + ubixFSUnlink + + char * + path + + + struct vfs_mountPoint * + mp + + + + + + + + + ubixFSInfo::blockAllocationTable + vfs_mountPoint::device + device_node::devInfo + vfs_mountPoint::diskLabel + directoryEntry::fileName + vfs_mountPoint::fsInfo + device_interface::info + kmalloc + kprintf + vfs_mountPoint::partition + ubixDiskLabel::partitions + device_interface::read + ubixFSInfo::rootDir + strcmp + typeDeleted + device_interface::write + x1000 + ubixfs_init + + + int + int writeFileByte + (int ch, fileDescriptor *fd, long offset) + writeFileByte + + int + ch + + + fileDescriptor * + fd + + + long + offset + + + + + + + + + assert + ubixFSInfo::blockAllocationTable + fdOpen + fdRead + blockAllocationTableEntry::nextBlock + NULL + + + int + int writeUbixFS + (fileDescriptor *fd, char *data, long offset, long size) + writeUbixFS + + fileDescriptor * + fd + + + char * + data + + + long + offset + + + long + size + + + + + + + + + assert + ubixFSInfo::blockAllocationTable + blockSize + EOBC + directoryEntry::fileName + getFreeBlocks + kfree + kmalloc + blockAllocationTableEntry::nextBlock + NULL + blockAllocationTableEntry::realSector + fileDescriptor::size + directoryEntry::size + directoryEntry::startCluster + strcmp + x1000 + addDirEntry + ubixfs_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_UBIXFS_H +#define_UBIXFS_H + +#include<ubixos/types.h> +#include<vfs/vfs.h> +#include<sys/device.h> +#include<mpi/mpi.h> +#include<ubixfs/dirCache.h> + + +#defineUBIXFS_BLOCKSIZE_BYTESblockSize*512 +#defineUBIXFS_ALIGN(size)(size+((((size)%(UBIXFS_BLOCKSIZE_BYTES))==0)?0:((UBIXFS_BLOCKSIZE_BYTES)-((size)%(UBIXFS_BLOCKSIZE_BYTES))))) + +#defineUBIXDISKMAGIC((uInt32)0x45)/*Thediskmagicnumber*/ +#defineMAXUBIXPARTITIONS16 +#defineblockSize8 + + +#defineEOBC-1 + + +#definetypeFile1 +#definetypeContainer2 +#definetypeDirectory4 +#definetypeDeleted8 + +/*Start*/ +structdirectoryList{ +chardirName[256]; +char*dirCache; +uInt32dirBlock; +structdirectoryList*next; +structdirectoryList*prev; +}; + +typedefstructdirectoryList*dirList_t; + +dirList_tubixFSLoadDir(char*); +/*End*/ + +//PartitionInformation +structubixDiskLabel{ +uInt32magicNum; +uInt32magicNum2; +uInt16driveType; +uInt16numPartitions; +structubixPartitions{//thepartitiontable +uInt32pSize;//numberofsectorsinpartition +uInt32pOffset;//startingsector +uInt32pFsSize;//filesystembasicfragmentsize +uInt32pBatSize;//BATsize +uInt8pFsType;//filesystemtype,seebelow +uInt8pFrag;//filesystemfragmentsperblock +}partitions[MAXUBIXPARTITIONS]; +}; + + +structpartitionInformation{ +uInt32size;//SizeInSectors +uInt32startSector;//BaseSectorOfPartition +uInt32blockAllocationTable;//BaseSectorOfBAT +uInt32rootDirectory;//BaseSectorOfRootDirectory +}; + +//BlockAllocationTableEntry +structblockAllocationTableEntry{ +longattributes;//BlockAttributes +longrealSector;//RealSector +longnextBlock;//SectorOfNextBlock +longreserved;//Reserved +}; + +//UbixFSDirectoryEntry +structdirectoryEntry{ +uInt32startCluster;//StartingClusterOfFile +uInt32size;//SizeOfFile +uInt32creationDate;//DateCreated +uInt32lastModified;//DateLastModified +uInt32uid;//UIDOfOwner +uInt32gid;//GIDOfOwner +uInt16attributes;//FilesAttributes +uInt16permissions;//FilesPermissions +charfileName[256];//FileName +}; + +structbootSect{ +uInt8jmp[4]; +uInt8id[6]; +uInt16version; +uInt16tmp; +uInt16fsStart; +uInt16tmp2; +uInt32krnl_start; +uIntBytesPerSector; +uIntSectersPerTrack; +uIntTotalHeads; +uInt32TotalSectors; +uInt8code[479]; +}; + +structubixFSInfo{ +structblockAllocationTableEntry*blockAllocationTable; +structcacheNode*dirCache; +uInt32batEntries; +uInt32rootDir; +};/*ubixFSInfo*/ + +intreadFile(char*file); +intwriteFileByte(intch,fileDescriptor*fd,longoffset); +//intopenFileUbixFS(char*file,fileDescriptor*fd); +intgetFreeBlocks(intcount,fileDescriptor*fd); +//externstructubixDiskLabel*diskLabel; + +//GoodFunctions +//voidinitUbixFS(structmountPoints*mp); + +intreadUbixFS(fileDescriptor*fd,char*data,uInt32,longsize); +intwriteUbixFS(fileDescriptor*fd,char*data,longoffset,longsize); +voidsyncBat(structvfs_mountPoint*mp); +intfreeBlocks(intblock,fileDescriptor*fd); +intaddDirEntry(structdirectoryEntry*dir,fileDescriptor*fd); +voidubixFSUnlink(char*path,structvfs_mountPoint*mp); +intubixFSmkDir(char*dir,fileDescriptor*fd); + +intubixfs_init(); +intubixfs_initialize(); +voidubixfs_thread(); + + +#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:53reddawg +nomessage + +Revision1.212004/09/1420:57:01reddawg +Bugfixes:macroproblemoveroptamultiply + +Revision1.202004/08/0117:58:39flameshadow +chg:fixedstringallocationbuginubixfs_cacheNew() + +Revision1.192004/07/2712:02:01reddawg +chg:fixedmarksbugreadFiledidalookupwhichiswhyitlookedlikeitwaslooppingsomuch + +Revision1.182004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.172004/07/2222:37:03reddawg +CachingisworkingnowtheFSisextremelyfastbutneedstobeoptimizedtodo32bitcopiesover8bit + +Revision1.162004/07/2021:28:16flameshadow +oops + +Revision1.142004/07/2019:36:49reddawg +UBUTags + +Revision1.132004/07/1412:21:49reddawg +ubixfs:enableUbixFstoubixfs_init +ChangedStartupRoutines + +END +***/ + + + + diff --git a/doc/xml/include_2ubixos_2types_8h.xml b/doc/xml/include_2ubixos_2types_8h.xml new file mode 100644 index 0000000..bd991bd --- /dev/null +++ b/doc/xml/include_2ubixos_2types_8h.xml @@ -0,0 +1,2613 @@ + + + + types.h + sys/_types.h + src/sys/devfs/devfs.c + src/sys/include/devfs/devfs.h + src/sys/include/isa/8259.h + src/sys/include/isa/fdc.h + src/sys/include/isa/ne2k.h + src/sys/include/lib/bioscall.h + src/sys/include/lib/kmalloc.h + src/sys/include/lib/kprint.h + src/sys/include/lib/kprintf.h + src/sys/include/lib/libcpp.h + src/sys/include/lib/string.h + src/sys/include/math.h + src/sys/include/mpi/mpi.h + src/sys/include/net/err.h + src/sys/include/net/mem.h + src/sys/include/net/memp.h + src/sys/include/net/net.h + src/sys/include/net/sockets.h + src/sys/include/pci/lnc.h + src/sys/include/pci/pci.h + src/sys/include/sde/sde.h + src/sys/include/string.h + src/sys/include/sys/buf.h + src/sys/include/sys/cdefs.h + src/sys/include/sys/device.h + src/sys/include/sys/device.old.h + src/sys/include/sys/dma.h + src/sys/include/sys/driver.h + src/sys/include/sys/idt.h + src/sys/include/sys/signal.h + src/sys/include/sys/thread.h + src/sys/include/sys/tss.h + src/sys/include/sys/video.h + src/sys/include/ubixfs/dirCache.h + src/sys/include/ubixfs/ubixfs.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 + src/sys/include/ubixos/kmod.h + src/sys/include/ubixos/ld.h + src/sys/include/ubixos/sched.h + src/sys/include/ubixos/smp.h + src/sys/include/ubixos/spinlock.h + src/sys/include/ubixos/syscall.h + src/sys/include/ubixos/systemtask.h + src/sys/include/ubixos/time.h + src/sys/include/ubixos/times.h + src/sys/include/ubixos/tty.h + src/sys/include/ubixos/ubthread.h + src/sys/include/ubixos/vitals.h + src/sys/include/ufs/ffs.h + src/sys/include/ufs/ufs.h + src/sys/include/vfs/file.h + src/sys/include/vfs/mount.h + src/sys/include/vfs/vfs.h + src/sys/include/vmm/paging.h + src/sys/include/vmm/vmm.h + src/sys/isa/8259.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/kernel/endtask.c + src/sys/kernel/fork.c + src/sys/kernel/gen_calls.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/ld.c + src/sys/kernel/pipe.c + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + src/sys/kernel/time.c + src/sys/kmods/kmod.c + src/sys/lib/bcopy.c + src/sys/lib/net.c + src/sys/lib/strtok.c + src/sys/net/api/api_lib.c + src/sys/net/api/api_msg.c + src/sys/net/api/sockets.c + src/sys/net/net/init.c + src/sys/net/net/sys_arch.c + src/sys/net/net/udpecho.c + src/sys/net/netif/arp.c + src/sys/net/netif/ethernetif.c + src/sys/pci/lnc.c + src/sys/pci/pci.c + src/sys/sys/dma.c + src/sys/sys/video.c + src/sys/ubixfs/directory.c + src/sys/ubixfs/ubixfs.c + src/sys/vmm/paging.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NULL + 0x0 + + + + + + + + + + + + __blkcnt_t + typedef __blkcnt_t blkcnt_t + + blkcnt_t + + + + + + + + + + __blksize_t + typedef __blksize_t blksize_t + + blksize_t + + + + + + + + + + char * + typedef char* caddr_t + + caddr_t + + + + + + + + + + __fflags_t + typedef __fflags_t fflags_t + + fflags_t + + + + + + + + + + __gid_t + typedef __gid_t gid_t + + gid_t + + + + + + + + + + __ino_t + typedef __ino_t ino_t + + ino_t + + + + + + + + + + short + typedef short Int16 + + Int16 + + + + + + + + + + __int16_t + typedef __int16_t int16_t + + int16_t + + + + + + + + + + long + typedef long Int32 + + Int32 + + + + + + + + + + __int32_t + typedef __int32_t int32_t + + int32_t + + + + + + + + + + __int64_t + typedef __int64_t int64_t + + int64_t + + + + + + + + + + char + typedef char Int8 + + Int8 + + + + + + + + + + __int8_t + typedef __int8_t int8_t + + int8_t + + + + + + + + + + __int64_t + typedef __int64_t off_t + + off_t + + + + + + + + + + int + typedef int pid_t + + pid_t + + + + + + + + + + int + typedef int pidType + + pidType + + + + + + + + + + __uint64_t + typedef __uint64_t quad_t + + quad_t + + + + + + + + + + int + typedef int size_t + + size_t + + + + + + + + + + __ssize_t + typedef __ssize_t ssize_t + + ssize_t + + + + + + + + + + __time_t + typedef __time_t time_t + + time_t + + + + + + + + + + unsigned char + typedef unsigned char u_char + + u_char + + + + + + + + + + unsigned int + typedef unsigned int u_int + + u_int + + + + + + + + + + __uint16_t + typedef __uint16_t u_int16_t + + u_int16_t + + + + + + + + + + __uint32_t + typedef __uint32_t u_int32_t + + u_int32_t + + + + + + + + + + __uint64_t + typedef __uint64_t u_int64_t + + u_int64_t + + + + + + + + + + __uint8_t + typedef __uint8_t u_int8_t + + u_int8_t + + + + + + + + + + unsigned long + typedef unsigned long u_long + + u_long + + + + + + + + + + unsigned short + typedef unsigned short u_short + + u_short + + + + + + + + + + __uid_t + typedef __uid_t uid_t + + uid_t + + + + + + + + + + unsigned int + typedef unsigned int uInt + + uInt + + + + + + + + + + unsigned short + typedef unsigned short uInt16 + + uInt16 + + + + + + + + + + unsigned int + typedef unsigned int uInt32 + + uInt32 + + + + + + + + + + unsigned char + typedef unsigned char uInt8 + + uInt8 + + + + + + + + + + __uint32_t + typedef __uint32_t vm_offset_t + + vm_offset_t + + + + + + + + + + + + bool + + FALSE + 0 + + + + + + + TRUE + 1 + + + + + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TYPES_H +#define_TYPES_H + +#include<sys/_types.h> + +#ifndefNULL +#defineNULL0x0 +#endif + +typedefunsignedcharuInt8; +typedefunsignedshortuInt16; +typedefunsignedintuInt32; +typedefunsignedintuInt; +typedefcharInt8; +typedefshortInt16; +typedeflongInt32; + +typedef__uint8_tu_int8_t;/*unsignedintegrals(deprecated)*/ +typedef__uint16_tu_int16_t; +typedef__uint32_tu_int32_t; +typedef__uint64_tu_int64_t; +//typedeflonglongintquad_t; +typedef__uint64_tquad_t; + +typedefunsignedcharu_char; +typedefunsignedshortu_short; +typedefunsignedintu_int; +typedefunsignedlongu_long; + + +typedefintpidType; + +typedefintpid_t; +typedefintsize_t;/*standart*/ + +#ifndefNOBOOL +#ifndef__cplusplus +typedefenum{FALSE=0,TRUE=1}bool; +#endif +#endif + +#ifndef_INO_T_DECLARED +typedef__ino_tino_t;/*inodenumber*/ +#define_INO_T_DECLARED +#endif + +#ifndef_INT8_T_DECLARED +typedef__int8_tint8_t; +#define_INT8_T_DECLARED +#endif + +#ifndef_INT16_T_DECLARED +typedef__int16_tint16_t; +#define_INT16_T_DECLARED +#endif + +#ifndef_INT32_T_DECLARED +typedef__int32_tint32_t; +#define_INT32_T_DECLARED +#endif + +#ifndef_INT64_T_DECLARED +typedef__int64_tint64_t; +#define_INT64_T_DECLARED +#endif + +typedef__ssize_tssize_t; +typedefchar*caddr_t; +typedef__int64_toff_t; +typedef__uint32_tvm_offset_t; + +typedef__uid_tuid_t;/*userid*/ +typedef__gid_tgid_t;/*groupid*/ +typedef__blkcnt_tblkcnt_t; +typedef__blksize_tblksize_t; +typedef__fflags_tfflags_t; + +#ifndef_TIME_T_DECLARED +typedef__time_ttime_t; +#define_TIME_T_DECLARED +#endif + + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/include_2vfs_2file_8h.xml b/doc/xml/include_2vfs_2file_8h.xml new file mode 100644 index 0000000..94ab8a7 --- /dev/null +++ b/doc/xml/include_2vfs_2file_8h.xml @@ -0,0 +1,1146 @@ + + + + file.h + ubixos/types.h + ubixfs/dirCache.h + vfs/mount.h + src/sys/include/devfs/devfs.h + src/sys/include/ubixos/sched.h + src/sys/include/ubixos/syscalls.h + src/sys/include/vfs/vfs.h + src/sys/kernel/syscall.c + src/sys/net/netif/tcpdump.c + src/sys/ubixfs/block.c + src/sys/ubixfs/directory.c + src/sys/vfs/file.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dmadat + fileDescriptorStruct + userFileDescriptorStruct + + + DEV_BSHIFT + 9 + + + + + + + + + + DEV_BSIZE + (1<<DEV_BSHIFT) + + + + + + + + + + SBLOCKSIZE + 8192 + + + + + + + + + + SEEK_SET + 0x0 + + + + + + + + DiskFS::read + DiskFS::write + + + VBLKSHIFT + 12 + + + + + + + + fsread + + + VBLKSIZE + (1 << VBLKSHIFT) + + + + + + + + fsread + + + + + fileDescriptorStruct + typedef struct fileDescriptorStruct fileDescriptor + + fileDescriptor + + + + + + + + + + userFileDescriptorStruct + typedef struct userFileDescriptorStruct userFileDescriptor + + userFileDescriptor + + + + + + + + + + + + void + void chDir + (const char *path) + chDir + + const char * + path + + + + + + + + + + + int + int fclose + (fileDescriptor *) + fclose + + fileDescriptor * + + + + + + + + + assert + fdTable + fdTable_lock + kfree + fileDescriptor::next + NULL + vitalsStruct::openFiles + fileDescriptor::prev + spinLock + spinUnlock + systemVitals + x1 + dev_ramDestroy + dev_ramDrive + execFile + kmod_load + ldEnable + bTree::Save + sysExec + sysFclose + sysMkDir + systemTask + + + int + int feof + (fileDescriptor *fd) + feof + + fileDescriptor * + fd + + + + + + + + + fdEof + + + int + int fgetc + (fileDescriptor *fd) + fgetc + + fileDescriptor * + fd + + + + + + + + + fileDescriptor::offset + sysFgetc + + + fileDescriptor * + fileDescriptor* fopen + (const char *, const char *) + fopen + + const char * + + + const char * + + + + + + + + + fdOpen + fdTable + fdTable_lock + fileAppend + fileBinary + fileRead + fileWrite + kfree + kmalloc + kprintf + fileDescriptor::next + NULL + fileDescriptor::offset + vitalsStruct::openFiles + fileDescriptor::prev + spinLock + spinUnlock + sprintf + strstr + strtok + systemVitals + vfs_findMount + dev_ramDestroy + dev_ramDrive + DiskFS::DiskFS + execFile + kmod_load + ldEnable + bTree::Save + sysExec + sysFopen + sysMkDir + tcpdump_init + + + size_t + size_t fread + (void *ptr, size_t size, size_t nmemb, fileDescriptor *fd) + fread + + void * + ptr + + + size_t + size + + + size_t + nmemb + + + fileDescriptor * + fd + + + + + + + + + assert + fileDescriptor::offset + dev_ramDrive + execFile + kmod_load + ldEnable + DiskFS::read + sysExec + sysFread + + + int + int fseek + (fileDescriptor *, long, int) + fseek + + fileDescriptor * + + + long + + + int + + + + + + + + + fileDescriptor::offset + execFile + kmod_load + ldEnable + DiskFS::read + sysExec + DiskFS::write + + + size_t + size_t fwrite + (void *ptr, int size, int nmemb, fileDescriptor *fd) + fwrite + + void * + ptr + + + int + size + + + int + nmemb + + + fileDescriptor * + fd + + + + + + + + + fileDescriptor::offset + dev_ramDestroy + bTree::Save + sysFwrite + DiskFS::write + + + void + void sysChDir + (const char *path) + sysChDir + + const char * + path + + + + + + + + + _current + osInfo::cwd + taskStruct::oInfo + sprintf + strstr + + + void + void sysFseek + (userFileDescriptor *, long, int) + sysFseek + + userFileDescriptor * + + + long + + + int + + + + + + + + + userFileDescriptorStruct::fd + NULL + fileDescriptorStruct::offset + + + int + int unlink + (const char *path) + unlink + + const char * + path + + + + + + + + + vfs_mountPoint::fs + vfs_mountPoint::mountPoint + NULL + strtok + vfs_findMount + fileSystem::vfsUnlink + sysUnlink + + + char * + char* verifyDir + (const char *path) + verifyDir + + const char * + path + + + + + + + + + + + + + fileDescriptor * + fileDescriptor* fdTable + + fdTable + + + + + + + + fclose + fopen + + + + + + + +/************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,arepermittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors. +Redistributionsinbinaryformmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors +inthedocumentationand/orothermaterialsprovidedwiththedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftwarewithoutspecificpriorwrittenpermission. + +THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANYEXPRESSORIMPLIED +WARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULAR +PURPOSEAREDISCLAIMED.INNOEVENTSHALLTHECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT, +INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTE +GOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY +OFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. + +$Id$ + +**************************************************************************************/ + +#ifndef_FILE_H +#define_FILE_H + +#include<ubixos/types.h> +#include<ubixfs/dirCache.h> +#include<vfs/mount.h> + +#defineSEEK_SET0x0 + +#defineVBLKSHIFT12 +#defineVBLKSIZE(1<<VBLKSHIFT) +#defineSBLOCKSIZE8192 +#defineDEV_BSHIFT9/*log2(DEV_BSIZE)*/ +#defineDEV_BSIZE(1<<DEV_BSHIFT) + +structdmadat{ +charblkbuf[VBLKSIZE];/*filesystemblocks*/ +charindbuf[VBLKSIZE];/*indirblocks*/ +charsbbuf[SBLOCKSIZE];/*superblock*/ +charsecbuf[DEV_BSIZE];/*forMBR/disklabel*/ +}; + +typedefstructfileDescriptorStruct{ +structfileDescriptorStruct*prev; +structfileDescriptorStruct*next; +structvfs_mountPoint*mp; +uInt16status; +uInt16mode; +uInt32offset; +uInt32size; +uInt16length; +uInt32start; +charfileName[512]; +char*buffer; +uInt32ino; +structcacheNode*cacheNode; +uInt32perms; +structdmadat*dmadat; +intdsk_meta; +uInt32resid; +}fileDescriptor; + + +typedefstructuserFileDescriptorStruct{ +structfileDescriptorStruct*fd; +uInt32fdSize; +}userFileDescriptor; + +externfileDescriptor*fdTable; + +fileDescriptor*fopen(constchar*,constchar*); +intfclose(fileDescriptor*); + +/*UBU*/ + + +intunlink(constchar*path); +intfeof(fileDescriptor*fd); +intfgetc(fileDescriptor*fd); +size_tfread(void*ptr,size_tsize,size_tnmemb,fileDescriptor*fd); +size_tfwrite(void*ptr,intsize,intnmemb,fileDescriptor*fd); +intfseek(fileDescriptor*,long,int); + +voidsysFseek(userFileDescriptor*,long,int); + +//Good +voidsysChDir(constchar*path); +voidchDir(constchar*path); +char*verifyDir(constchar*path); + +#endif + + + + diff --git a/doc/xml/include_2vfs_2vfs_8h.xml b/doc/xml/include_2vfs_2vfs_8h.xml new file mode 100644 index 0000000..267d52b --- /dev/null +++ b/doc/xml/include_2vfs_2vfs_8h.xml @@ -0,0 +1,863 @@ + + + + vfs.h + ubixos/types.h + vfs/file.h + vfs/mount.h + src/sys/devfs/devfs.c + src/sys/include/sys/buf.h + src/sys/include/ubixfs/ubixfs.h + src/sys/include/ubixos/init.h + src/sys/include/ubixos/vitals.h + src/sys/include/ufs/ffs.h + src/sys/include/ufs/ufs.h + src/sys/include/vfs/mount.h + src/sys/kernel/ld.c + src/sys/kmods/kmod.c + src/sys/ubixfs/thread.c + src/sys/ubixfs/ubixfs.c + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + src/sys/vfs/file.c + src/sys/vfs/vfs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fileSystem + + + fdAvail + 1 + + + + + + + + + + fdEof + 4 + + + + + + + + feof + readUbixFS + + + fdOpen + 2 + + + + + + + + fopen + writeFileByte + + + fdRead + 3 + + + + + + + + writeFileByte + + + fileAppend + 0x0008 + + + + + + + + fopen + + + fileBinary + 0x0004 + + + + + + + + fopen + + + fileRead + 0x0001 + + + + + + + + fopen + openFileUbixFS + + + fileWrite + 0x0002 + + + + + + + + fopen + openFileUbixFS + + + maxFd + 32 + + + + + + + + + + + + fileSystem * + struct fileSystem* vfs_findFS + (int) + vfs_findFS + + int + + + + + + + + + + + int + int vfs_init + () + vfs_init + + + + + + + + vitalsStruct::fileSystems + kprintf + systemVitals + + + int + int vfsRegisterFS + (struct fileSystem) + vfsRegisterFS + + struct + fileSystem + + + + + + + + + vitalsStruct::fileSystems + kmalloc + kprintf + memcpy + fileSystem::next + NULL + fileSystem::prev + systemVitals + vfsFindFS + fileSystem::vfsType + x1 + devfs_init + ubixfs_init + ufs_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_VFS_H +#define_VFS_H + +#include<ubixos/types.h> +#include<vfs/file.h> +#include<vfs/mount.h> + +#definemaxFd32 +#definefdAvail1 +#definefdOpen2 +#definefdRead3 +#definefdEof4 + + +#definefileRead0x0001 +#definefileWrite0x0002 +#definefileBinary0x0004 +#definefileAppend0x0008 + +structfileSystem{ +structfileSystem*prev; +structfileSystem*next; +int(*vfsInitFS)(void*); +int(*vfsRead)(void*,char*,long,long); +int(*vfsWrite)(void*,char*,long,long); +int(*vfsOpenFile)(void*,void*); +int(*vfsUnlink)(char*,void*); +int(*vfsMakeDir)(char*,void*); +int(*vfsRemDir)(char*); +int(*vfsSync)(void); +intvfsType; +}; + + +/*VFSFunctions*/ +intvfs_init(); +/* +*intvfsRegisterFS(int,void*,void*,void*,void*,void*,void*,void*,void*); +*/ +intvfsRegisterFS(structfileSystem); +structfileSystem*vfs_findFS(int); + + +//FileIO +//fileDescriptor*fopen(constchar*file,constchar*flags); + + +#endif + +/*** +END +***/ + + + + diff --git a/doc/xml/index.xml b/doc/xml/index.xml new file mode 100644 index 0000000..08c2431 --- /dev/null +++ b/doc/xml/index.xml @@ -0,0 +1,4558 @@ + + + __sigset + __bits + + __timespec + tv_nsec + tv_sec + + _item_t + data + Next + Previous + + _list_t + First + Last + + _UbixUser + gid + home + password + shell + uid + username + + api_msg + msg + type + + api_msg_msg + bc + conn + conntype + copy + dataptr + ipaddr + len + mbox + msg + p + port + w + + arp_entry + ctime + ethaddr + ipaddr + + arp_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + + arpcom + ac_enaddr + ac_multicnt + ac_netgraph + + blockAllocationTableEntry + attributes + nextBlock + realSector + reserved + + blockRun + __attribute__ + __attribute__ + __attribute__ + + bNode + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + bootSect + BytesPerSector + code + fsStart + id + jmp + krnl_start + SectersPerTrack + tmp + tmp2 + TotalHeads + TotalSectors + version + + bsd_disklabel + d_acylinders + d_bbsize + d_checksum + d_cylskew + d_drivedata + d_flags + d_headswitch + d_interleave + d_magic + d_magic2 + d_ncylinders + d_npartitions + d_nsectors + d_ntracks + d_packname + d_partitions + d_rpm + d_sbsize + d_secpercyl + d_secperunit + d_secsize + d_spare + d_sparespercyl + d_sparespertrack + d_subtype + d_trackskew + d_trkseek + d_type + d_typename + + bsd_disklabel::partition + p_cpg + p_frag + p_fsize + p_fstype + p_offset + p_size + + bTree + bTree + bTree + Delete + Find + GetFirstNode + GetFirstNode + Info + Info + Insert + Load + Print + PrintWholeTree + Save + Verify + ~bTree + allocEmptyNode + findLeafNode + inodeSearch + insertNode + Print + saveNode + splitNode + treeSearch + fd + fs + header + root + tag + UbixFS + + bTreeHeader + firstDeleted + firstNodeOffset + paddington + treeDepth + treeLeafCount + treeWidth + + buf + + cacheNode + attributes + dirty + fileListHead + fileListTail + info + name + next + parent + permissions + present + prev + size + startCluster + + close_args + fd + fd_l_ + fd_r_ + + confadd + bus + dev + enable + func + reg + rsvd + + cpuinfo_t + apic_id + apic_ver + brand + feature + id + ident + max + ok + signature + + csum + cs_nbfree + cs_ndir + cs_nffree + cs_nifree + + csum_total + cs_nbfree + cs_ndir + cs_nffree + cs_nifree + cs_numclusters + cs_spare + + dataStream + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + descriptorTableUnion + descriptor + dummy + gate + + devfs_devices + devMajor + devMinor + devName + devType + next + prev + + devfs_info + deviceList + + device + ioAddr + irq + mtu + net + priv + + device_interface + info + init + initialized + ioctl + major + read + reset + size + standby + start + stop + write + + device_node + devInfo + devInfo + devRec + devRec + minor + next + next + prev + prev + type + + device_resource + irq + + device_t + info + init + ioctl + major + read + reset + sectors + standby + start + stop + write + + devMethodType + + directoryEntry + attributes + creationDate + fileName + gid + lastModified + permissions + size + startCluster + uid + + directoryList + dirBlock + dirCache + dirName + next + prev + + dirent + d_fileno + d_name + d_namlen + d_reclen + d_type + + DiskFS + DiskFS + read + write + ~DiskFS + diskFile + + diskSuperBlock + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + dmadat + blkbuf + indbuf + sbbuf + secbuf + + dos_partition + dp_ecyl + dp_ehd + dp_esect + dp_flag + dp_scyl + dp_shd + dp_size + dp_ssect + dp_start + dp_type + + dp_rcvhdr + dr_next + dr_rbch + dr_rbcl + dr_status + + driveInfo + diskLabel + hdCalc + hdDev + hdEnable + hdFlags + hdMask + hdMulti + hdPort + hdSector + hdShift + hdSize + parOffset + + driverType + devName + methods + + DrvGeom + heads + spt + tracks + + ei_device + currentPage + pingPong + rxStartPage + stopPage + tx1 + tx2 + txStartPage + word16 + + elfDynamic + dynPtr + dynVal + + elfDynSym + dynInfo + dynName + dynSize + dynValue + + elfHeader + eEhsize + eEntry + eFlags + eIdent + eMachine + ePhentsize + ePhnum + ePhoff + eShentsize + eShnum + eShoff + eShstrndx + eType + eVersion + + elfPltInfo + pltInfo + pltOffset + + elfProgramHeader + phAlign + phFilesz + phFlags + phMemsz + phOffset + phPaddr + phType + phVaddr + + elfSectionHeader + shAddr + shAddralign + shEntsize + shFlags + shInfo + shLink + shName + shOffset + shSize + shType + + eth_addr + PACK_STRUCT_FIELD + + eth_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + + etheraddr + bytes + shorts + + ethernetif + ethaddr + + ethip_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + + fcntl_args + arg + arg_l_ + arg_r_ + cmd + cmd_l_ + cmd_r_ + fd + fd_l_ + fd_r_ + + file + f_flag + + fileDescriptor + inode + next + offset + prev + size + + fileDescriptorStruct + buffer + cacheNode + dmadat + dsk_meta + fileName + ino + length + mode + mp + next + offset + perms + prev + resid + size + start + status + + fileSystem + next + prev + vfsInitFS + vfsMakeDir + vfsOpenFile + vfsRead + vfsRemDir + vfsSync + vfsType + vfsUnlink + vfsWrite + + FileSystemAbstract + read + write + ~FileSystemAbstract + + fs + fs_active + fs_avgfilesize + fs_avgfpdir + fs_bmask + fs_bshift + fs_bsize + fs_cblkno + fs_cgrotor + fs_cgsize + fs_clean + fs_contigdirs + fs_contigsumsize + fs_csaddr + fs_csp + fs_cssize + fs_cstotal + fs_dblkno + fs_dsize + fs_firstfield + fs_flags + fs_fmask + fs_fmod + fs_fpg + fs_frag + fs_fragshift + fs_fsbtodb + fs_fshift + fs_fsize + fs_fsmnt + fs_iblkno + fs_id + fs_inopb + fs_ipg + fs_magic + fs_maxbpg + fs_maxbsize + fs_maxcluster + fs_maxcontig + fs_maxfilesize + fs_maxsymlinklen + fs_minfree + fs_ncg + fs_nindir + fs_ocsp + fs_old_cgmask + fs_old_cgoffset + fs_old_cpc + fs_old_cpg + fs_old_csaddr + fs_old_cstotal + fs_old_dsize + fs_old_flags + fs_old_inodefmt + fs_old_interleave + fs_old_ncyl + fs_old_npsect + fs_old_nrpos + fs_old_nsect + fs_old_nspf + fs_old_postblformat + fs_old_rotdelay + fs_old_rps + fs_old_size + fs_old_spc + fs_old_time + fs_old_trackskew + fs_optim + fs_pad + fs_pendingblocks + fs_pendinginodes + fs_qbmask + fs_qfmask + fs_ronly + fs_save_cgsize + fs_sblkno + fs_sblockloc + fs_sbsize + fs_size + fs_snapinum + fs_spare1 + fs_spare2 + fs_spare5 + fs_sparecon32 + fs_sparecon64 + fs_state + fs_swuid + fs_time + fs_unused_1 + fs_volname + + fstat_args + fd + fd_l_ + fd_r_ + sb + sb_l_ + sb_r_ + + gdt_descr + __attribute__ + limit + + gdtDescriptor + access + baseHigh + baseLow + baseMed + granularity + limitHigh + limitLow + + gdtGate + access + offsetHigh + offsetLow + selector + + getdtablesize_args + dummy + + getgid_args + dummy + + getpid_args + dummy + + gettimeofday_args + tp + tp_l_ + tp_r_ + tzp + tzp_l_ + tzp_r_ + + getuid_args + dummy + + hostRingEntry + buff + data + md + + i386_frame + cs + ds + eax + ebp + ebx + ecx + edi + edx + eip + es + esi + esp + flags + fs + gs + ss + user_esp + user_ss + + i387Struct + cwd + fcs + fip + foo + fos + st_space + swd + twd + + icmp_dur_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + chksum + icode + type + unused + + icmp_echo_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + chksum + icode + id + seqno + type + + icmp_te_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + chksum + icode + type + unused + + in_addr + s_addr + + initBlock + ladrf + mode + padr + rdra + rlen + tdra + tlen + + ioctl_args + com + com_l_ + com_r_ + data + data_l_ + data_r_ + fd + fd_l_ + fd_r_ + + ip_addr + PACK_STRUCT_FIELD + addr + + ip_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + dest + flow1 + flow2 + hoplim + len + nexthdr + tclass1 + tclass2 + v + + issetugid_args + dummy + + kmod_struct + address + id + name + next + prev + refs + + lncInfo + arpcom + bdp + initBloack + nic + nrdre + ntdre + rap + rdp + recvRing + transRings + + lwip_socket + conn + lastdata + lastoffset + + mds + md0 + md1 + md2 + md3 + + memDescriptor + baseAddr + limit + next + prev + + mMap + cowCounter + pageAddr + pid + reserved + status + + mmap_args + addr + addr_l_ + addr_r_ + fd + fd_l_ + fd_r_ + flags + flags_l_ + flags_r_ + len + len_l_ + len_r_ + pad + pad_l_ + pad_r_ + pos + pos_l_ + pos_r_ + prot + prot_l_ + prot_r_ + + mpi_mbox + msg + msgLast + name + next + pid + prev + + mpi_message + data + header + next + pid + + munmap_args + addr + addr_l_ + addr_r_ + len + len_l_ + len_r_ + + net + broadcast + mac + + netbuf + err + fromaddr + fromport + p + ptr + + netconn + acceptmbox + err + mbox + pcb + recvmbox + sem + state + tcp + type + udp + + netif + gw + hwaddr + input + ip_addr + linkoutput + name + netmask + next + num + output + state + + nicBuffer + buffer + length + next + + nicInfo + ic + ident + iobase + memMode + mode + + obreak_args + nsize + nsize_l_ + nsize_r_ + + ogDisplay_UbixOS + ogAlias + ogClone + ogCopyPalette + ogCreate + ogDisplay_UbixOS + ogLoadPalette + ogSetPalette + ogSetPalette + ogSetPalette + ~ogDisplay_UbixOS + FindMode + GetModeInfo + GetVESAInfo + SetMode + SetPal + activePage + modeInfo + pages + VESAInfo + visualPage + + ogDisplay_VESA + ogAlias + ogAvail + ogClear + ogClone + ogCopyLineFrom + ogCopyLineTo + ogCopyPal + ogCreate + ogDisplay_VESA + ogGetPixel + ogGetPtr + ogHLine + ogLoadPal + ogSetPixel + ogSetRGBPalette + ogVFlip + ogVLine + ~ogDisplay_VESA + findMode + getModeInfo + getVESAInfo + rawGetPixel + rawLine + rawSetPixel + setMode + setPal + InGraphics + ModeRec + ScreenSelector + VESARec + + ogModeInfo + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + ogVESAInfo + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + osInfo + controlKeys + cwd + stdin + stdinSize + timer + v86If + v86Task + vmStart + + partitionInformation + blockAllocationTable + rootDirectory + size + startSector + + pbuf + flags + len + next + payload + ref + tot_len + + pciConfig + base + baseClass + bist + bus + cacheLineSize + command + dev + deviceId + func + headerType + interface + irq + latencyTimer + revisionId + size + status + subClass + subsys + subsysVendor + vendorId + + pipe_args + dummy + + readlink_args + buf + buf_l_ + buf_r_ + count + count_l_ + count_r_ + path + path_l_ + path_r_ + + sdeWindows + buf + next + pid + prev + status + + sigaction_args + act + act_l_ + act_r_ + oact + oact_l_ + oact_r_ + sig + sig_l_ + sig_r_ + + sigprocmask_args + how + how_l_ + how_r_ + oset + oset_l_ + oset_r_ + set + set_l_ + set_r_ + + sockaddr + sa_data + sa_family + sa_len + + sockaddr_in + sin_addr + sin_family + sin_len + sin_port + sin_zero + + stat + __st_atimensec + __st_ctimensec + __st_mtimensec + int + st_atime + st_birthtime + st_birthtimensec + st_blksize + st_blocks + st_ctime + st_dev + st_flags + st_gen + st_gid + st_ino + st_lspare + st_mode + st_mtime + st_nlink + st_rdev + st_size + st_uid + + sys_mbox + first + last + mail + msgs + mutex + + sys_mbox_msg + msg + next + + sys_sem + c + cond + mutex + + sys_thread + next + timeouts + ubthread + + sys_timeout + arg + h + next + time + + sys_timeouts + next + + sysctl_args + name + name_l_ + name_r_ + namelen + namelen_l_ + namelen_r_ + new + new_l_ + new_r_ + newlen + newlen_l_ + newlen_r_ + old + old_l_ + old_r_ + oldlenp + oldlenp_l_ + oldlenp_r_ + + sysctl_entry + children + id + name + next + prev + val_len + value + + taskStruct + gid + i387 + id + imageFd + next + oInfo + prev + state + td + term + tss + uid + usedMath + + tcp_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + + tcp_pcb + accept + acked + callback_arg + connected + cwnd + dupacks + errf + flags + lastack + local_ip + local_port + mss + next + nrtx + poll + pollinterval + polltmr + rcv_nxt + rcv_wnd + recv + recv_data + remote_ip + remote_port + rtime + rto + rtseq + rttest + sa + sent + snd_buf + snd_lbb + snd_max + snd_nxt + snd_queuelen + snd_wl1 + snd_wl2 + snd_wnd + ssthresh + state + sv + tmr + unacked + unsent + + tcp_pcb_listen + accept + callback_arg + local_ip + local_port + next + state + + tcp_seg + dataptr + len + next + p + tcphdr + + tcpip_msg + apimsg + inp + msg + netif + p + sem + type + + thread + o_files + td_retval + vm_daddr + vm_dsize + + thread_start_param + arg + function + thread + + timespec + tv_nsec + tv_sec + + timeStruct + day + hour + min + mon + sec + year + + timeval + tv_sec + tv_usec + + timezone + tz_dsttime + tz_minuteswest + + TMode_Rec + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + tms + tms_cstime + tms_cutime + tms_stime + tms_utime + + trapframe + tf_cs + tf_ds + tf_eax + tf_ebp + tf_ebx + tf_ecx + tf_edi + tf_edx + tf_eflags + tf_eip + tf_err + tf_es + tf_esi + tf_esp + tf_fs + tf_isp + tf_ss + tf_trapno + + tssStruct + back_link + back_link_reserved + cr3 + cs + cs_reserved + ds + ds_reserved + eax + ebp + ebx + ecx + edi + edx + eflags + eip + es + es_reserved + esi + esp + esp0 + esp1 + esp2 + fs + fs_reserved + gs + gs_reserved + io_map + io_space + ldt + ldt_reserved + ss + ss0 + ss0_reserved + ss1 + ss1_reserved + ss2 + ss2_reserved + ss_reserved + trace_bitmap + + tty_termNode + owner + stdin + stdinSize + tty_buffer + tty_colour + tty_pointer + tty_x + tty_y + + TVESA_Rec + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + ubixDiskLabel + driveType + magicNum + magicNum2 + numPartitions + partitions + + ubixDiskLabel::ubixPartitions + pBatSize + pFrag + pFsSize + pFsType + pOffset + pSize + + UbixFS + UbixFS + UbixFS + vfs_format + vfs_init + vfs_mkdir + vfs_mknod + vfs_open + vfs_read + vfs_stop + vfs_sync + vfs_write + ~UbixFS + get8FreeBlocks + getFreeBlock + getFreeBlock + getFreeBlock + getNextAG + mknod + printFreeBlockList + printSuperBlock + setFreeBlock + freeBlockList + root + superBlock + bTree + + ubixFSInfo + batEntries + blockAllocationTable + dirCache + rootDir + + ubixfsInode + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + __attribute__ + + ubthread + task + + ubthread_cond + id + locked + + ubthread_cond_list + cond + next + + ubthread_list + next + thread + + ubthread_mutex + id + locked + pid + + ubthread_mutex_list + mutex + next + + udp_hdr + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + PACK_STRUCT_FIELD + + udp_pcb + chksum_len + flags + local_port + next + recv + recv_arg + remote_ip + remote_port + + ufs1_dinode + di_atime + di_atimensec + di_blocks + di_ctime + di_ctimensec + di_db + di_flags + di_gen + di_gid + di_ib + di_mode + di_mtime + di_mtimensec + di_nlink + di_size + di_spare + di_u + di_uid + oldids + + ufs2_dinode + di_atime + di_atimensec + di_birthnsec + di_birthtime + di_blksize + di_blocks + di_ctime + di_ctimensec + di_db + di_extb + di_extsize + di_flags + di_gen + di_gid + di_ib + di_kernflags + di_mode + di_mtime + di_mtimensec + di_nlink + di_size + di_spare + di_uid + + uPtr + bPtr + btPtr + iAddr + iPtr + offset + vPtr + + userFileDescriptorStruct + fd + fdSize + + vfs_abstract + vfs_close + vfs_closedir + vfs_format + vfs_init + vfs_mkdir + vfs_mknod + vfs_open + vfs_opendir + vfs_purge + vfs_read + vfs_readdir + vfs_rename + vfs_rmdir + vfs_stop + vfs_sync + vfs_unlink + vfs_write + ~vfs_abstract + device + next + prev + + vfs_mountPoint + device + diskLabel + fs + fsInfo + mountPoint + next + partition + perms + prev + + vitalsStruct + dQuantum + fileSystems + font + freePages + mountPoints + openFiles + packet + packetLength + quantum + screen + sysTicks + sysUptime + timeStart + + write_args + buf + buf_l_ + buf_r_ + fd + fd_l_ + fd_r_ + nbyte + nbyte_l_ + nbyte_r_ + + std + + devfs.c + devfs_init + devfs_initialize + devfs_makeNode + devfs_open + devfs_read + devfs_write + devfs_len + devfsSpinLock + + assert.h + __BEGIN_DECLS + __END_DECLS + _assert + assert + __assert + + devfs.h + devfs_init + devfs_makeNode + + 8259.h + eoi + icw1 + icw4 + mImr + mPic + mVec + ocw3Irr + ocw3Isr + sImr + sPic + sVec + i8259_init + irqDisable + irqEnable + + atkbd.h + altKey + controlKey + ledCapslock + ledNumlock + ledScrolllock + shiftKey + atkbd_init + atkbd_isr + keyboardHandler + setLED + + fdc.h + cmdRead + cmdRecal + cmdSeek + cmdSensei + cmdSpecify + cmdWrite + dg144Gap3rw + dg144Heads + dg144Spt + dg144Tracks + dg168Gap3rw + fdcCcr + fdcData + fdcDir + fdcDor + fdcDrs + fdcMsr + drvGeom + block2Hts + fdc_init + fdcRead + fdcRw + fdcWrite + floppyIsr + floppyIsrhndlr + getByte + motorOff + motorOn + readBlock + recalibrate + reset + seek + sendByte + waitFdc + writeBlock + + mouse.h + _MOUSE_H + mouseHandler + mouseInit + mouseISR + + ne2k.h + DEF_ENABLED + DP_CNTR0 + DP_CNTR1 + DP_CNTR2 + DP_CURR + DP_MAR0 + DP_MAR1 + DP_MAR2 + DP_MAR3 + DP_MAR4 + DP_MAR5 + DP_MAR6 + DP_MAR7 + DP_PAGESIZE + E8390_CMD + E8390_NODMA + E8390_PAGE0 + E8390_PAGE1 + E8390_RREAD + E8390_RWRITE + E8390_RXCONFIG + E8390_RXOFF + E8390_START + E8390_STOP + E8390_TXCONFIG + E8390_TXOFF + EN0_BOUNDARY + EN0_COUNTER0 + EN0_DCFG + EN0_IMR + EN0_ISR + EN0_RCNTHI + EN0_RCNTLO + EN0_RSARHI + EN0_RSARLO + EN0_RXCR + EN0_STARTPG + EN0_STOPPG + EN0_TPSR + EN0_TXCR + EN1_CURPAG + EN1_MULT + EN1_PHYS + ENDCFG_WTS + ENISR_ALL + ether_addr + NE1SM_START_PG + NE1SM_STOP_PG + NE_BNRY + NE_CMD + NE_CURRENT + NE_DATAPORT + NE_DCR + NE_DCR_AR + NE_DCR_FT0 + NE_DCR_FT1 + NE_DCR_LS + NE_DCR_WTS + NE_IMR + NE_ISR + NE_PSTART + NE_PSTOP + NE_RBCR0 + NE_RBCR1 + NE_RCR + NE_TCR + NE_TPSR + NESM_START_PG + NESM_STOP_PG + OK + RSR_FO + RSR_PRX + startPage + stopPage + TX_1X_PAGES + TX_2X_PAGES + TX_PAGES + dp_rcvhdr_t + ether_addr + ne2k_init + ne2kAllocBuffer + ne2kDevInit + ne2kFreeBuffer + ne2kGetBuffer + ne2kHandler + ne2kISR + ne2kProbe + NICtoPC + NS8390_init + PCtoNIC + nicPacket + packetLength + + pit.h + PIT_TIMER + pit_init + + bioscall.h + EFLAG_IF + EFLAG_IOPL3 + EFLAG_TF + EFLAG_VM + bios16Code + biosCall + + kmalloc.h + MALLOC_ALIGN + MALLOC_ALIGN_SIZE + sysID + kfree + kmalloc + + kprint.h + kprintf + printOff + + kprintf.h + kprintf + ogPrintf + ogprintOff + printOff + + libcpp.h + operator delete + operator delete[] + operator new + operator new[] + + string.h + memcmp + memcpy + memset + sprintf + strcmp + strcpy + strlen + strncmp + strncpy + strstr + strtok + strtok_r + + string.h + memcpy + memset + sprintf + strcmp + strlen + strtol + + math.h + u_quad_t + __divdi3 + __udivdi3 + atan + sqrt + + mpi.h + MESSAGE_LENGTH + mpi_mbox_t + mpi_message_t + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + + api.h + NETCONN_COPY + NETCONN_NOCOPY + netconn_state + NETCONN_NONE + NETCONN_WRITE + NETCONN_ACCEPT + NETCONN_RECV + NETCONN_CONNECT + NETCONN_CLOSE + netconn_type + NETCONN_TCP + NETCONN_UDP + NETCONN_UDPLITE + NETCONN_UDPNOCHKSUM + netbuf_alloc + netbuf_chain + netbuf_copy + netbuf_copy_partial + netbuf_data + netbuf_delete + netbuf_first + netbuf_free + netbuf_fromaddr + netbuf_fromport + netbuf_len + netbuf_new + netbuf_next + netbuf_ref + netconn_accept + netconn_addr + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_err + netconn_listen + netconn_new + netconn_peer + netconn_recv + netconn_send + netconn_type + netconn_write + + api_msg.h + api_msg_type + API_MSG_NEWCONN + API_MSG_DELCONN + API_MSG_BIND + API_MSG_CONNECT + API_MSG_LISTEN + API_MSG_ACCEPT + API_MSG_SEND + API_MSG_RECV + API_MSG_WRITE + API_MSG_CLOSE + API_MSG_MAX + api_msg_input + api_msg_post + + arch.h + BIG_ENDIAN + LITTLE_ENDIAN + + cc.h + PACK_STRUCT_BEGIN + PACK_STRUCT_END + PACK_STRUCT_FIELD + PACK_STRUCT_STRUCT + + cpu.h + BYTE_ORDER + + init.h + TCPIP_INIT_DONE + + init.h + intFunctionPTR + init_tasks + init_tasksTotal + + lib.h + bcopy + bzero + strlen + strncmp + + perf.h + PERF_START + PERF_STOP + perf_init + perf_print + perf_print_times + + sys_arch.h + SYS_MBOX_NULL + SYS_SEM_NULL + sys_mbox_t + sys_sem_t + sys_thread_t + + debug.h + API_LIB_DEBUG + API_MSG_DEBUG + ARP_DEBUG + ASSERT + DEBUGF + DELIF_DEBUG + DEMO_DEBUG + DHCP_DEBUG + DROPIF_DEBUG + ICMP_DEBUG + INET_DEBUG + IP_DEBUG + IP_REASS_DEBUG + MEM_DEBUG + MEMP_DEBUG + NETIF_DEBUG + PBUF_DEBUG + SOCKETS_DEBUG + SYS_DEBUG + TAPIF_DEBUG + TCP_CWND_DEBUG + TCP_DEBUG + TCP_FR_DEBUG + TCP_INPUT_DEBUG + TCP_OUTPUT_DEBUG + TCP_QLEN_DEBUG + TCP_REXMIT_DEBUG + TCP_RST_DEBUG + TCP_RTO_DEBUG + TCP_WND_DEBUG + TCPDUMP_DEBUG + TCPIP_DEBUG + TUNIF_DEBUG + UDP_DEBUG + UNIXIF_DEBUG + + def.h + NULL + UMAX + + err.h + ERR_ABRT + ERR_ARG + ERR_BUF + ERR_CLSD + ERR_CONN + ERR_MEM + ERR_OK + ERR_RST + ERR_RTE + ERR_USE + ERR_VAL + lwip_strerr + err_t + + icmp.h + ICMP_DUR + ICMP_ECHO + ICMP_ER + ICMP_IR + ICMP_IRQ + ICMP_PP + ICMP_RD + ICMP_SQ + ICMP_TE + ICMP_TS + ICMP_TSR + ICMPH_CODE + ICMPH_CODE_SET + ICMPH_TYPE + ICMPH_TYPE_SET + icmp_dur_type + ICMP_DUR_NET + ICMP_DUR_HOST + ICMP_DUR_PROTO + ICMP_DUR_PORT + ICMP_DUR_FRAG + ICMP_DUR_SR + icmp_te_type + ICMP_TE_TTL + ICMP_TE_FRAG + icmp_dest_unreach + icmp_input + icmp_time_exceeded + PACK_STRUCT_STRUCT + PACK_STRUCT_STRUCT + PACK_STRUCT_STRUCT + + icmp.h + ICMP6_DUR + ICMP6_ECHO + ICMP6_ER + ICMP6_TE + icmp_dur_type + ICMP_DUR_NET + ICMP_DUR_HOST + ICMP_DUR_PROTO + ICMP_DUR_PORT + ICMP_DUR_FRAG + ICMP_DUR_SR + icmp_te_type + ICMP_TE_TTL + ICMP_TE_FRAG + icmp_dest_unreach + icmp_input + icmp_time_exceeded + + inet.h + htonl + HTONL + htons + HTONS + ntohl + NTOHL + ntohs + NTOHS + htonl + htons + inet_chksum + inet_chksum_pbuf + inet_chksum_pseudo + + inet.h + htonl + htons + inet_chksum + inet_chksum_pbuf + inet_chksum_pseudo + ntohl + ntohs + + ip.h + IP_DF + IP_HDRINCL + IP_HLEN + IP_MF + IP_OFFMASK + IP_PROTO_ICMP + IP_PROTO_TCP + IP_PROTO_UDP + IP_PROTO_UDPLITE + IP_RF + IPH_CHKSUM + IPH_CHKSUM_SET + IPH_HL + IPH_ID + IPH_ID_SET + IPH_LEN + IPH_LEN_SET + IPH_OFFSET + IPH_OFFSET_SET + IPH_PROTO + IPH_PROTO_SET + IPH_TOS + IPH_TTL + IPH_TTL_SET + IPH_V + IPH_VHLTOS_SET + ip_init + ip_input + ip_lookup + ip_output + ip_output_if + ip_route + PACK_STRUCT_STRUCT + + ip.h + IP_HDRINCL + IP_HLEN + IP_PROTO_ICMP + IP_PROTO_TCP + IP_PROTO_UDP + IP_PROTO_UDPLITE + ip_init + ip_input + ip_output + ip_output_if + ip_route + + ip_addr.h + IP4_ADDR + ip4_addr1 + ip4_addr2 + ip4_addr3 + ip4_addr4 + IP_ADDR_ANY + IP_ADDR_BROADCAST + ip_addr_cmp + ip_addr_debug_print + ip_addr_isany + ip_addr_isbroadcast + ip_addr_ismulticast + ip_addr_maskcmp + ip_addr_set + ip_addr_broadcast + PACK_STRUCT_STRUCT + + ip_addr.h + IP6_ADDR + IP_ADDR_ANY + ip_addr_cmp + ip_addr_isany + ip_addr_maskcmp + ip_addr_set + + list.h + list_delete + list_elems + list_first + list_map + list_new + list_pop + list_push + list_remove + + lwipopts.h + ARP_TABLE_SIZE + DHCP_DOES_ARP_CHECK + ICMP_STATS + ICMP_TTL + IP_FORWARD + IP_OPTIONS + IP_STATS + LINK_STATS + LWIP_DHCP + LWIP_TCP + LWIP_UDP + MEM_ALIGNMENT + MEM_RECLAIM + MEM_SIZE + MEM_STATS + MEMP_NUM_API_MSG + MEMP_NUM_NETBUF + MEMP_NUM_NETCONN + MEMP_NUM_PBUF + MEMP_NUM_SYS_TIMEOUT + MEMP_NUM_TCP_PCB + MEMP_NUM_TCP_PCB_LISTEN + MEMP_NUM_TCP_SEG + MEMP_NUM_TCPIP_MSG + MEMP_NUM_UDP_PCB + MEMP_RECLAIM + MEMP_STATS + PBUF_LINK_HLEN + PBUF_POOL_BUFSIZE + PBUF_POOL_SIZE + PBUF_STATS + STATS + SYS_STATS + TCP_MAXRTX + TCP_MSS + TCP_QUEUE_OOSEQ + TCP_SND_BUF + TCP_SND_QUEUELEN + TCP_STATS + TCP_SYNMAXRTX + TCP_TTL + TCP_WND + UDP_STATS + UDP_TTL + + mem.h + MEM_ALIGN + MEM_ALIGN_SIZE + mem_register_reclaim + mem_size_t + mem_free + mem_init + mem_malloc + mem_malloc2 + mem_realloc + mem_reallocm + + memp.h + memp_register_reclaim + memp_t + MEMP_PBUF + MEMP_UDP_PCB + MEMP_TCP_PCB + MEMP_TCP_PCB_LISTEN + MEMP_TCP_SEG + MEMP_NETBUF + MEMP_NETCONN + MEMP_API_MSG + MEMP_TCPIP_MSG + MEMP_SYS_TIMEOUT + MEMP_MAX + memp_free + memp_freep + memp_init + memp_malloc + memp_malloc2 + memp_mallocp + memp_realloc + + net.h + net_init + + netif.h + netif_add + netif_find + netif_init + netif_set_default + netif_set_gw + netif_set_ipaddr + netif_set_netmask + netif_default + netif_list + + opt.h + ICMP_TTL + LWIP_TCP + LWIP_UDP + MEM_ALIGNMENT + PBUF_LINK_HLEN + PBUF_POOL_BUFSIZE + PBUF_POOL_SIZE + TCP_MAXRTX + TCP_MSS + TCP_SYNMAXRTX + TCP_TTL + TCP_WND + UDP_TTL + + pbuf.h + PBUF_FLAG_POOL + PBUF_FLAG_RAM + PBUF_FLAG_ROM + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN + pbuf_flag + PBUF_RAM + PBUF_ROM + PBUF_POOL + pbuf_layer + PBUF_TRANSPORT + PBUF_IP + PBUF_LINK + PBUF_RAW + pbuf_alloc + pbuf_chain + pbuf_clen + pbuf_dechain + pbuf_free + pbuf_header + pbuf_init + pbuf_realloc + pbuf_ref + + sockets.h + AF_INET + INADDR_ANY + INADDR_BROADCAST + IPPROTO_TCP + IPPROTO_UDP + PF_INET + SOCK_DGRAM + SOCK_STREAM + lwip_accept + lwip_bind + lwip_close + lwip_connect + lwip_listen + lwip_read + lwip_recv + lwip_recvfrom + lwip_send + lwip_sendto + lwip_socket + lwip_write + + stats.h + stats_init + + sys.h + sys_timeout_handler + sys_arch_mbox_fetch + sys_arch_sem_wait + sys_arch_timeouts + sys_init + sys_mbox_fetch + sys_mbox_free + sys_mbox_new + sys_mbox_post + sys_now + sys_sem_free + sys_sem_new + sys_sem_signal + sys_sem_wait + sys_thread_new + sys_timeout + + tcp.h + tcp_ack + TCP_ACK + tcp_ack_now + TCP_FAST_INTERVAL + TCP_FIN + TCP_FIN_WAIT_TIMEOUT + TCP_HLEN + TCP_MSL + TCP_OOSEQ_TIMEOUT + tcp_pcbs_sane + TCP_PSH + TCP_REG + TCP_RMV + TCP_RST + TCP_SEQ_GEQ + TCP_SEQ_GT + TCP_SEQ_LEQ + TCP_SEQ_LT + TCP_SLOW_INTERVAL + tcp_sndbuf + TCP_SYN + TCP_SYN_RCVD_TIMEOUT + TCP_TCPLEN + TCP_TMR_INTERVAL + TCP_URG + TCPH_FLAGS + TCPH_FLAGS_SET + TCPH_OFFSET + TCPH_OFFSET_SET + TF_ACK_DELAY + TF_ACK_NOW + TF_CLOSED + TF_GOT_FIN + TF_INFR + TF_RESET + tcp_state + CLOSED + LISTEN + SYN_SENT + SYN_RCVD + ESTABLISHED + FIN_WAIT_1 + FIN_WAIT_2 + CLOSE_WAIT + CLOSING + LAST_ACK + TIME_WAIT + tcp_abort + tcp_accept + tcp_arg + tcp_bind + tcp_close + tcp_connect + tcp_enqueue + tcp_err + tcp_fasttmr + tcp_init + tcp_input + tcp_listen + tcp_new + tcp_next_iss + tcp_output + tcp_pcb_copy + tcp_pcb_purge + tcp_pcb_remove + tcp_poll + tcp_recv + tcp_recved + tcp_rexmit_seg + tcp_rst + tcp_seg_copy + tcp_seg_free + tcp_segs_free + tcp_send_ctrl + tcp_sent + tcp_slowtmr + tcp_tmr + tcp_write + PACK_STRUCT_STRUCT + tcp_active_pcbs + tcp_listen_pcbs + tcp_ticks + tcp_tmp_pcb + tcp_tw_pcbs + + tcpip.h + tcpip_msg_type + TCPIP_MSG_API + TCPIP_MSG_INPUT + tcpip_apimsg + tcpip_init + tcpip_input + + udp.h + udp_flags + UDP_FLAGS_NOCHKSUM + UDP_FLAGS_UDPLITE + UDP_HLEN + udp_setflags + udp_bind + udp_connect + udp_init + udp_input + udp_lookup + udp_new + udp_recv + udp_remove + udp_send + PACK_STRUCT_STRUCT + + arp.h + ARP_TMR_INTERVAL + ETHTYPE_ARP + ETHTYPE_IP + arp_arp_input + arp_init + arp_ip_input + arp_lookup + arp_query + arp_tmr + PACK_STRUCT_STRUCT + PACK_STRUCT_STRUCT + + ethernetif.h + ethernetif_init + + loopif.h + loopif_init + + tcpdump.h + tcpdump + tcpdump_init + + ogDisplay_VESA.h + + hd.h + hdCmd + hdCylHi + hdCylLow + hdData + hdError + hdHead + hdSecCount + hdSecNum + hdStat + MAXPARTITIONS + NDDATA + NSPARE + hdInit + hdIoctl + hdRead + hdReset + hdStandby + hdStart + hdStop + hdWrite + initHardDisk + fstypenames + + lnc.h + Am79C960 + Am79C961 + Am79C961A + Am79C965 + Am79C970 + Am79C970A + Am79C971 + Am79C972 + Am79C973 + Am79C978 + AMD_MASK + BABL + C_LANCE + CERR + CSR0 + CSR1 + CSR2 + CSR3 + CSR88 + CSR89 + DMA_FIXED + DMA_MBUF + ERR + ETHER_ADDR_LEN + IDON + INEA + INIT + INTR + LANCE + MEM_SLEW + MERR + MISS + NDESC + NE2100 + NE2100_IOSIZE + NORMAL + NRDRE + NTDRE + PART_MASK + PCnet_32 + PCNET_BDP + PCnet_FAST + PCnet_FASTplus + PCnet_Home + PCnet_ISA + PCnet_ISA_II + PCnet_ISAplus + PCnet_PCI + PCnet_PCI_II + PCNET_RAP + PCNET_RDP + PCNET_RESET + PCNET_VSW + RECVBUFSIZE + RINT + RXON + SHMEM + STOP + STRT + TDMD + TINT + TRANSBUFSIZE + TXON + UNKNOWN + _lncInt + initLNC + lanceProbe + lncAttach + lncInt + probe + readBcr + readCsr + writeBcr + writeCsr + lnc + + pci.h + countof + pci_init + pciProbe + pciRead + pciWrite + + ogDisplay_UbixOS.h + + sde.h + drawWindow + killWindow + registerWindow + windowReady + sdeThread + sysSDE + windows + + stdarg.h + vaArg + vaEnd + vaStart + vaList + vsprintf + + _types.h + __blkcnt_t + __blksize_t + __clock_t + __dev_t + __fflags_t + __gid_t + __ino_t + __int16_t + __int32_t + __int64_t + __int8_t + __mode_t + __nlink_t + __ssize_t + __time_t + __uid_t + __uint16_t + __uint32_t + __uint64_t + __uint8_t + + buf.h + + cdefs.h + __dead2 + _CDRES_H + + device.h + device_add + device_find + device_remove + + device.h + + device.old.h + + dma.h + _dmaXfer + dmaXfer + + driver.h + devMethod + + gdt.h + dAcc + dBig + dBiglim + dBusy + dCall + dCode + dConform + dData + dDpl0 + dDpl1 + dDpl2 + dDpl3 + dEexdown + dInt + dLdt + dNpresent + dPresent + dRead + dTask + dTrap + dTss + dWrite + ubixDescriptorTable + ubixGateDescriptor + ubixStandardDescriptor + packed + packed + ubixGDT + + gen_calls.h + getgid + getpid + gettimeofday_new + getuid + issetugid + readlink + sys_write + + idt.h + EFLAG_IF + EFLAG_IOPL3 + EFLAG_TF + EFLAG_VM + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int7 + _int8 + _int9 + idt_init + intNull + setTaskVector + setVector + timerInt + + io.h + inportByte + inportDWord + inportWord + outportByte + outportByteP + outportDWord + outportWord + + kern_descrip.h + F_DUPFD + F_GETFD + F_GETFL + F_GETLK + F_GETOWN + F_SETFD + F_SETFL + F_SETLK + F_SETLKW + F_SETOWN + FAPPEND + FASYNC + FCNTLFLAGS + FFLAGS + FFSYNC + FHASLOCK + FNDELAY + FNONBLOCK + FPOSIXSHM + FREAD + FWRITE + O_ACCMODE + O_APPEND + O_ASYNC + O_CREAT + O_DIRECT + O_EXCL + O_EXLOCK + O_FSYNC + O_NDELAY + O_NOFOLLOW + O_NONBLOCK + O_RDONLY + O_RDWR + O_SHLOCK + O_SYNC + O_TRUNC + O_WRONLY + OFLAGS + mode_t + nlink_t + close + falloc + fcntl + fstat + getdtablesize + ioctl + + kern_sig.h + sigaction + sigprocmask + + kern_sysctl.h + CTL_DEBUG + CTL_HW + CTL_KERN + CTL_KERN_OPENFILES + CTL_MACHDEP + CTL_MAXNAME + CTL_NET + CTL_P1003_1B + CTL_UBIX + CTL_UNSPEC + CTL_USER + CTL_VFS + CTL_VM + EINVAL + kern_sysctl + sysctl_add + sysctl_init + sysctl_enabled + + pipe.h + pipe + + signal.h + _SIG_BIT + _SIG_IDX + _SIG_MAXSIG + _SIG_VALID + _SIG_WORD + _SIG_WORDS + _SIGNALL_H + __sigset_t + sigset_t + + sysproto.h + PAD_ + PADL_ + PADR_ + register_t + + thread.h + + trap.h + + tss.h + + video.h + defaultColor + backSpace + clearScreen + kprint + printColor + + dirCache.h + ubixfs_cacheAdd + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + + ubixfs.h + blockSize + EOBC + MAXUBIXPARTITIONS + typeContainer + typeDeleted + typeDirectory + typeFile + UBIXDISKMAGIC + UBIXFS_ALIGN + UBIXFS_BLOCKSIZE_BYTES + dirList_t + addDirEntry + freeBlocks + getFreeBlocks + readFile + readUbixFS + syncBat + ubixfs_init + ubixfs_initialize + ubixfs_thread + ubixFSLoadDir + ubixFSmkDir + ubixFSUnlink + writeFileByte + writeUbixFS + + ubixfs.h + ATTR_INODE + INODE_DELETED + INODE_DIRECTORY + INODE_IN_USE + INODE_LOGGED + INODE_NO_CACHE + INODE_WAS_WRITTEN + MAX_FILENAME_LENGTH + NO_TRANSACTION + NUM_DIRECT_BLOCKS + PERMANENT_FLAGS + UBIXFS_CLEAN + UBIXFS_DIRTY + UBIXFS_INODE_MAGIC + UBIXFS_MAGIC1 + UBIXFS_MAGIC2 + UBIXFS_MAGIC3 + inodeAddr + + elf.h + ELF32_R_INFO + ELF32_R_SYM + ELF32_R_TYPE + elfExecutable + elfLibrary + EM_386 + EM_68K + EM_860 + EM_88K + EM_M32 + EM_MIPS + EM_NONE + EM_SPARC + ET_CORE + ET_DYN + ET_EXEC + ET_HIPROC + ET_LOPROC + ET_NONE + ET_REL + EV_CURRENT + EV_NONE + PT_DYNAMIC + PT_GNU_EH_FRAME + PT_GNU_RELRO + PT_GNU_STACK + PT_HIOS + PT_HIPROC + PT_INTERP + PT_LOAD + PT_LOOS + PT_LOPROC + PT_NOTE + PT_NULL + PT_PAX_FLAGS + PT_PHDR + PT_SHLIB + R_386_32 + R_386_COPY + R_386_GLOB_DAT + R_386_GOT32 + R_386_GOTOFF + R_386_GOTPC + R_386_JMP_SLOT + R_386_NONE + R_386_PC32 + R_386_PLT32 + R_386_RELATIVE + elfGetPhType + elfGetRelType + elfGetShType + + endtask.h + endTask + + exec.h + execFile + execThread + + fork.h + sysFork + + kmod.h + LD_START + kmod_t + kmod_add + kmod_load + + kpanic.h + K_PANIC + kpanic + + ld.h + LD_START + ldEnable + + lists.h + IN + STATUS_FAILURE + STATUS_SUCCESS + Item_t + List_t + CreateItem + DestroyItemList + DestroyItemsInList + GetFirstItem + GetLastItem + InitializeList + InsertItemAtFront + InsertItemBetweenItems + InsertItemListBetweenItems + RemoveItem + RemoveItemListBetweenItems + + sched.h + kTask_t + tState + PLACEHOLDER + DEAD + NEW + READY + RUNNING + IDLE + FORK + WAIT + sched + sched_addDelTask + sched_deleteTask + sched_getDelTask + sched_init + sched_setStatus + sched_yield + schedEndTask + schedFindTask + schedNewTask + _current + _usedMath + + sem.h + + smp.h + apicMagic + cpuid + cpuidDetect + cpuInfo + getEflags + setEflags + smpInit + + spinlock.h + SPIN_LOCK_INITIALIZER + spinLock_t + spinLock + spinLock_scheduler + spinLockInit + spinLockLocked + spinTryLock + spinUnlock + Master + + static.h + static_constructors + + syscall.h + _sysCall + _sysCall_new + invalidCall + + syscalls.h + functionPTR + sysAddModule + sysAuth + sysChDir + sysCheckPid + sysExec + sysExit + sysFclose + sysFgetc + sysFopen + sysFork + sysFread + sysFseek + sysFwrite + sysGetCwd + sysGetDrives + sysGetFreePage + sysGetGid + sysGetpid + sysGetTime + sysGetUid + sysGetUptime + sysMkDir + sysMpiCreateMbox + sysMpiDestroyMbox + sysMpiFetchMessage + sysMpiPostMessage + sysMpiSpam + sysPasswd + sysRmDir + sysRmModule + sysSchedYield + sysSDE + sysSetGid + sysSetUid + sysStartSDE + sysUnlink + systemCalls + totalCalls + + syscalls_new.h + EJUSTRETURN + ERESTART + invalid_call + PSL_C + functionPTR + __sysctl + close + fcntl + fstat + getdtablesize + getgid + getpid + gettimeofday_new + getuid + ioctl + issetugid + mmap + munmap + obreak + pipe + readlink + sigaction + sigprocmask + sys_write + sysExit + systemCalls_new + totalCalls_new + + systemtask.h + systemTask + + time.h + BCD_TO_BIN + DAY + HOUR + MINUTE + YEAR + suseconds_t + time_t + gettimeofday + time_init + timeMake + + times.h + clock_t + + tty.h + TTY_MAX_TERMS + tty_term + tty_change + tty_find + tty_init + tty_print + tty_foreground + + types.h + NULL + blkcnt_t + blksize_t + caddr_t + fflags_t + gid_t + ino_t + Int16 + int16_t + Int32 + int32_t + int64_t + Int8 + int8_t + off_t + pid_t + pidType + quad_t + size_t + ssize_t + time_t + u_char + u_int + u_int16_t + u_int32_t + u_int64_t + u_int8_t + u_long + u_short + uid_t + uInt + uInt16 + uInt32 + uInt8 + vm_offset_t + bool + FALSE + TRUE + + types.h + int32 + int64 + int8 + uInt32 + uInt64 + uInt8 + + ubthread.h + ETIMEDOUT + LOCKED + UNLOCKED + ubthread_cond_t + ubthread_mutex_t + ubthread_t + ubthread_cond_destroy + ubthread_cond_init + ubthread_cond_signal + ubthread_cond_timedwait + ubthread_cond_wait + ubthread_create + ubthread_mutex_destroy + ubthread_mutex_init + ubthread_mutex_lock + ubthread_mutex_unlock + ubthread_self + + vitals.h + vitalsNode + vitals_init + systemVitals + + ffs.h + ffs_read + + ufs.h + blkoff + cgbase + cgdmin + cgimin + cgsblock + cgstart + cgtod + dbtofsb + DEV_BSHIFT + DEV_BSIZE + DT_DIR + DT_REG + fragroundup + FS_UFS1_MAGIC + FS_UFS2_MAGIC + fsbtodb + FSMAXSNAP + ino_to_cg + ino_to_fsba + ino_to_fsbo + lblkno + MAXBSIZE + MAXMNTLEN + MAXNAMLEN + MAXVOLLEN + NDADDR + NIADDR + NINDIR + NOCSPTRS + NXADDR + ROOTINO + sblksize + SBLOCK_FLOPPY + SBLOCK_PIGGY + SBLOCK_UFS1 + SBLOCK_UFS2 + SBLOCKSEARCH + SBLOCKSIZE + daddr_t + ufs1_daddr_t + ufs2_daddr_t + ufs_lbn_t + ufs_time_t + ufs_init + ufs_initialize + + file.h + DEV_BSHIFT + DEV_BSIZE + SBLOCKSIZE + SEEK_SET + VBLKSHIFT + VBLKSIZE + fileDescriptor + userFileDescriptor + chDir + fclose + feof + fgetc + fopen + fread + fseek + fwrite + sysChDir + sysFseek + unlink + verifyDir + fdTable + + file.h + + mount.h + vfs_addMount + vfs_findMount + vfs_mount + + vfs.h + fdAvail + fdEof + fdOpen + fdRead + fileAppend + fileBinary + fileRead + fileWrite + maxFd + vfs_findFS + vfs_init + vfsRegisterFS + + vfs.h + + paging.h + btoc + ctob + KERNEL_PAGE_DEFAULT + PAGE_COW + PAGE_DEFAULT + PAGE_MASK + PAGE_PRESENT + PAGE_SHIFT + PAGE_SIZE + PAGE_STACK + PAGE_USER + PAGE_WIRED + PAGE_WRITE + pageEntries + pageLength + pageSize + parentPageDirAddr + round_page + tablesBaseAddress + trunc_page + VM_TASK + VM_THRD + _vmm_pageFault + mmap + munmap + obreak + vmm_getFreeMallocPage + vmm_getPhysicalAddr + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmm_setPageAttributes + vmmClearVirtualPage + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + vmmMapFromTask + vmmUnmapPage + vmmUnmapPages + kernelPageDirectory + + vmm.h + memAvail + memNotavail + vmmID + vmmMemoryMapAddr + adjustCowCounter + countMemory + freePage + vmm_init + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + numPages + vmmMemoryMap + + main.c + B_ADAPTOR + B_ADAPTORMASK + B_ADAPTORSHIFT + B_CONTROLLER + B_CONTROLLERMASK + B_CONTROLLERSHIFT + B_PARTITION + B_PARTITIONMASK + B_PARTITIONSHIFT + B_SLICE + B_SLICEMASK + B_SLICESHIFT + B_TYPE + B_TYPEMASK + B_TYPESHIFT + B_UNIT + B_UNITMASK + B_UNITSHIFT + kmain + ubixDescriptorTable + loadGDT + + start.S + lgdtl + movl + movl + $kStack + _start + eax + eax + eax + eax + eax + eax + eax + eax + edi + esp + esp + start_next + x08 + x18 + x20 + x2000 + + static.c + static_constructors + + 8259.c + i8259_init + irqDisable + irqEnable + irqMask + + atkbd.c + asm + atkbd_init + atkbd_scan + getch + keyboardHandler + setLED + atkbdSpinLock + controlKeys + keyboardMap + keyMap + ledStatus + stdinBuffer + stdinSize + + fdc.c + asm + block2Hts + fdc_init + fdcInit2 + fdcRead + fdcRw + fdcWrite + floppyIsrhndlr + getByte + motorOff + motorOn + readBlock + recalibrate + reset + seek + sendByte + waitFdc + writeBlock + diskChange + done + fdcSpinLock + fdcTrack + geometry + motor + sr0 + statSize + status + tbaddr + timeOut + + mouse.c + asm + kbdRead + kbdWrite + kbdWriteRead + mouseHandler + mouseInit + + ne2k.c + asm + dp_pkt2user + dp_recv + getblock + ne2k_init + ne2kAllocBuffer + ne2kFreeBuffer + ne2kGetBuffer + ne2kHandler + NICtoPC + PCtoNIC + mDev + ne2k_spinLock + ne2kBuffer + + pit.c + pit_init + + rs232.c + rs232Init + + ap-boot.S + xchgl + al + al + al + al + al + ap_spl + ap_trampoline_32 + ap_trampoline_epoint + ap_trampoline_start + ap_trampoline_start + ap_trampoline_start + ap_trampoline_start + ap_trampoline_start + ax + ax + ax + ax + ax + ax + ax + ax + cmp + cr0 + eax + ebx + ebx + mov + x08 + x1 + x10 + x1000 + x30 + x31 + x31 + x33 + xe9 + xe9 + xe9 + xe9 + xe9 + + bioscall.c + asm + biosCall + + elf.c + elfGetPhType + elfGetRelType + elfGetShType + elfPhType + elfRelType + elfShType + elfType + elfTypeName + id + id + id + id + phTypeName + relTypeName + shTypeName + + endtask.c + endTask + + exec.c + STACK_ADDR + execFile + execThread + sysExec + + fork.c + asm + fork_copyProcess + + gen_calls.c + getgid + getpid + gettimeofday_new + getuid + issetugid + readlink + sys_write + + kern_descrip.c + close + falloc + fcntl + fstat + getdtablesize + ioctl + + kern_sig.c + sigaction + sigprocmask + + kern_sysctl.c + __sysctl + def_ctls + sysctl_add + sysctl_find + sysctl_init + ctls + + kpanic.c + kpanic + + ld.c + ldEnable + + pipe.c + pipe + + sched.c + sched + sched_addDelTask + sched_deleteTask + sched_getDelTask + sched_init + sched_setStatus + sched_yield + schedEndTask + schedFindTask + schedNewTask + _current + _usedMath + delList + nextID + schedulerSpinLock + taskList + + schedyield.S + sched_yield_new + + sem.c + + smp.c + ap_trampoline_end + ap_trampoline_start + apicMagic + apicRead + apicWrite + asm + c_ap_boot + cpu0_thread + cpu1_thread + cpu2_thread + cpu3_thread + cpuidDetect + cpuInfo + GDT_fixer + getDr3 + getEflags + kernel_function + setDr3 + setEflags + smpInit + bkl + cpuinfo + cpuInfoLock + cpus + initSpinLock + vram + + spinlock.c + spinLock + spinLock_scheduler + spinLockInit + spinLockLocked + spinTryLock + spinUnlock + + sys_call.S + _sysCall + + sys_call_new.S + FAKE_MCOUNT + _sysCall_new + addl + eax + eax + eax + invalidSysCall + x10 + + syscall.c + UbixUser + asm + fuword + invalidCall + InvalidSystemCall + sdeTestThread + sysAddModule + sysAuth + sysCheckPid + sysExit + sysGetCwd + sysGetDrives + sysGetFreePage + sysGetGid + sysGetpid + sysGetTime + sysGetUid + sysGetUptime + sysPasswd + sysRmModule + sysSchedYield + sysSetGid + sysSetUid + sysStartSDE + + syscall_new.c + syscall + Master + + systemtask.c + systemTask + videoBuffer + + time.c + gettimeofday + time_init + timeCmosRead + timeMake + month + + timer.S + incl + al + edx + edx + movl + systemVitals + timerInt + x20 + + tty.c + tty_change + tty_find + tty_init + tty_print + terms + tty_foreground + tty_spinLock + + ubthread.c + ubthread_cond_destroy + ubthread_cond_init + ubthread_cond_signal + ubthread_cond_timedwait + ubthread_cond_wait + ubthread_create + ubthread_mutex_destroy + ubthread_mutex_init + ubthread_mutex_lock + ubthread_mutex_unlock + ubthread_self + conds + mutex + + vitals.c + vitals_init + systemVitals + + kmod.c + kmod_add + kmod_load + List + + assert.c + __assert + + atan.c + atan + + bcopy.c + TLOOP + TLOOP1 + wmask + wsize + uintptr_t + word + bcopy + + divdi3.c + __divdi3 + __udivdi3 + + kmalloc.c + getEmptyDesc + insertFreeDesc + kfree + kmalloc + mergeMemBlocks + emptyDescSpinLock + emptyKernDesc + freeKernDesc + mallocSpinLock + usedKernDesc + + kprintf.c + kprintf + sprintf + ogprintOff + printOff + + libcpp.cc + __cxa_atexit + __cxa_pure_virtual + __dso_handle + __pure_virtual + operator delete + operator delete[] + operator new + operator new[] + + memcpy.c + MEMCOPY + + memset.c + VAL + WIDEVAL + wmask + wsize + memset + + net.c + in_addr_t + bcopy + bzero + htonl + htons + inet_aton + + ogprintf.cc + ogPrintf + screenCol + screenRow + + sqrt.c + sqrt + + string.c + memcmp + memcpyold + strcmp + strcpy + strlen + strncmp + strncpy + strstr + + strtok.c + strtok + strtok_r + + strtol.c + LONG_MAX + LONG_MIN + strtol + + vsprintf.c + do_div + is_digit + LEFT + PLUS + SIGN + SMALL + SPACE + SPECIAL + ZEROPAD + number + skip_atoi + vsprintf + + Makefile.inc + + message.c + sysMpiCreateMbox + sysMpiDestroyMbox + sysMpiFetchMessage + sysMpiPostMessage + sysMpiSpam + + system.c + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_findMbox + mpi_postMessage + mpi_spam + mboxList + mpiSpinLock + + api_lib.c + netbuf_alloc + netbuf_chain + netbuf_copy + netbuf_copy_partial + netbuf_data + netbuf_delete + netbuf_first + netbuf_free + netbuf_fromaddr + netbuf_fromport + netbuf_len + netbuf_new + netbuf_next + netbuf_ref + netconn_accept + netconn_addr + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_err + netconn_listen + netconn_new + netconn_peer + netconn_recv + netconn_send + netconn_type + netconn_write + + api_msg.c + api_msg_decode + accept_function + api_msg_input + api_msg_post + do_accept + do_bind + do_close + do_connect + do_connected + do_delconn + do_listen + do_newconn + do_recv + do_send + do_write + err_tcp + poll_tcp + recv_tcp + recv_udp + sent_tcp + setup_tcp + decode + + err.c + + sockets.c + NUM_SOCKETS + alloc_socket + get_socket + lwip_accept + lwip_bind + lwip_close + lwip_connect + lwip_listen + lwip_read + lwip_recv + lwip_recvfrom + lwip_send + lwip_sendto + lwip_socket + lwip_write + sockets + + tcpip.c + tcpip_apimsg + tcpip_init + tcpip_input + tcpip_tcp_timer + tcpip_thread + mbox + tcpip_init_done + tcpip_init_done_arg + + bot.c + bot_init + bot_thread + + init.c + net_init + netMainThread + tcpip_init_done + + shell.c + ECLOSED + ESUCCESS + ESYNTAX + ETOOFEW + ETOOMANY + NCONNS + prompt + sendstr + shell_init + shell_main + shell_thread + buffer + + shell.h + shell_init + + sys_arch.c + SYS_MBOX_SIZE + UMAX + cond_wait + current_thread + sys_arch_mbox_fetch + sys_arch_sem_wait + sys_arch_timeouts + sys_init + sys_mbox_free + sys_mbox_new + sys_mbox_post + sys_sem_free + sys_sem_free_ + sys_sem_new + sys_sem_new_ + sys_sem_signal + sys_thread_new + sys_unix_now + netThreadSpinlock + starttime + threads + + udpecho.c + udpecho_init + udpecho_thread + + udpecho.h + udpecho_init + + arp.c + ARP_MAXAGE + ARP_REPLY + ARP_REQUEST + ARPH_HWLEN + ARPH_HWLEN_SET + ARPH_PROTOLEN + ARPH_PROTOLEN_SET + HWTYPE_ETHERNET + add_arp_entry + arp_arp_input + arp_init + arp_ip_input + arp_lookup + arp_query + arp_tmr + arp_table + ctime + PACK_STRUCT_STRUCT + + ethernetif.c + IFNAME0 + IFNAME1 + arp_timer + ethernetif_init + ethernetif_input + ethernetif_output + ethernetif_thread + ethernetif_thread + low_level_init + low_level_input + low_level_output + dev + ethbroadcast + tmpBuf + + loopif.c + loopif_init + loopif_output + + tcpdump.c + tcpdump + tcpdump_init + file + + hd.c + hdInit + hdIoctl + hdRead + hdReset + hdStandby + hdStart + hdStop + hdWrite + initHardDisk + + lnc.c + asm + initLNC + lanceProbe + lncAttach + lncInt + probe + readBcr + readCsr + writeBcr + writeCsr + icIdent + lnc + nicIdent + + pci.c + pci_init + pciProbe + pciRead + pciWrite + baseClass + interface + name + pciClasses + subClass + + device.c + device_add + device_find + device_remove + devices + deviceSpinLock + + dma.c + highByte + lowByte + _dmaXfer + dmaXfer + addrPort + clearReg + countPort + maskReg + modeReg + pagePort + + idt.c + FP_TO_LINEAR + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int7 + _int8 + _int9 + asm + idt_init + intNull + mathStateRestore + setTaskVector + setVector + ubixDescriptorTable + loadidt + + io.c + inportByte + inportDWord + inportWord + outportByte + outportByteP + outportDWord + outportWord + + video.c + backSpace + clearScreen + kprint + printColor + videoBuffer + + block.c + freeBlocks + getFreeBlocks + syncBat + + dirCache.c + ubixfs_cacheAdd + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_findName + dca_spinLock + + directory.c + addDirEntry + ubixFSLoadDir + ubixFSmkDir + dirList + + thread.c + ubixfs_thread + mounts + ubixFS_Info + + ubixfs.c + openFileUbixFS + readUbixFS + ubixfs_init + ubixfs_initialize + ubixfs_loadData + ubixFSUnlink + writeFileByte + writeUbixFS + + btree.cpp + VERIFY + + btree.h + B_MAX_CHILD_COUNT + B_MAX_KEYS + B_MAX_NAME_LENGTH + B_NODE_MAGIC_1 + B_NODE_MAGIC_2 + + btreeheader.h + + fsAbstract.h + + main.cpp + main + + ramdrive.cpp + RAM_DRIVE_SIZE + dev_ramDestroy + dev_ramDrive + ramDrive_read + ramDrive_write + ram_data + + ramdrive.h + dev_ramDestroy + dev_ramDrive + + ubixfs.cpp + + vfs.cpp + + ffs.c + ffs_read + + ufs.c + DBPERVBLK + DIP + INDIRPERVBLK + INO_TO_VBA + INO_TO_VBO + INOPB + IPERVBLK + VBLKMASK + VBLKSHIFT + VBLKSIZE + dskread + fsfind + fsread + lookup + ufs_init + ufs_initialize + ufs_openFile + ufs_readFile + ufs_writeFile + sblock_try + + file.c + fclose + feof + fgetc + fopen + fputc + fread + fseek + fwrite + sysChDir + sysFclose + sysFgetc + sysFopen + sysFread + sysFseek + sysFwrite + sysMkDir + sysRmDir + sysUnlink + unlink + fdTable + fdTable_lock + + mount.c + vfs_addMount + vfs_findMount + vfs_mount + + vfs.c + vfs_init + vfsFindFS + vfsRegisterFS + + copyvirtualspace.c + vmmCopyVirtualSpace + cvsSpinLock + + createvirtualspace.c + vmmCreateVirtualSpace + + getfreepage.c + vmmGetFreePage + vmmGFPlock + + getfreevirtualpage.c + vmmGetFreeVirtualPage + fvpSpinLock + + getphysicaladdr.c + vmm_getPhysicalAddr + + page_fault.S + movl + _vmm_pageFault + cr2 + xC + + pagefault.c + vmm_pageFault + pageFaultSpinLock + + paging.c + mmap + munmap + obreak + vmm_cleanVirtualSpace + vmm_getFreeMallocPage + vmm_pagingInit + vmm_remapPage + vmmClearVirtualPage + vmmGetFreeKernelPage + vmmMapFromTask + fkpSpinLock + kernelPageDirectory + rmpSpinLock + + setpageattributes.c + vmm_setPageAttributes + + unmappage.c + vmmUnmapPage + vmmUnmapPages + + vmm_init.c + vmm_init + + vmm_memory.c + adjustCowCounter + countMemory + freePage + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + freePages + numPages + vmmCowSpinLock + vmmMemoryMap + vmmSpinLock + + src/sys/net/api/ + + src/sys/include/net/arch/ + + src/sys/include/devfs/ + + src/sys/devfs/ + + src/sys/include/ + + src/sys/init/ + + src/sys/include/net/ipv4/ + + src/sys/include/net/ipv6/ + + src/sys/isa/ + + src/sys/include/isa/ + + src/sys/kernel/ + + src/sys/kmods/ + + src/sys/lib/ + + src/sys/include/lib/ + + src/sys/mpi/ + + src/sys/include/mpi/ + + src/sys/net/net/ + + src/sys/net/ + + src/sys/include/net/ + + src/sys/net/netif/ + + src/sys/include/netif/ + + src/sys/include/objgfx/ + + src/sys/pci/ + + src/sys/include/pci/ + + src/sys/include/sde/ + + src/ + + src/sys/sys/ + + src/sys/include/sys/ + + src/sys/ + + src/sys/ubixfs/ + + src/sys/include/ubixfs/ + + src/sys/ubixfsv2/ + + src/sys/include/ubixos/ + + src/sys/ufs/ + + src/sys/include/ufs/ + + src/sys/vfs/ + + src/sys/include/vfs/ + + src/sys/vmm/ + + src/sys/include/vmm/ + + diff --git a/doc/xml/index.xsd b/doc/xml/index.xsd new file mode 100644 index 0000000..d7ab2a9 --- /dev/null +++ b/doc/xml/index.xsd @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/xml/init_8c.xml b/doc/xml/init_8c.xml new file mode 100644 index 0000000..b9e4361 --- /dev/null +++ b/doc/xml/init_8c.xml @@ -0,0 +1,592 @@ + + + + init.c + ubixos/types.h + ubixos/sched.h + ubixos/endtask.h + net/sys.h + net/mem.h + net/memp.h + net/tcpip.h + netif/loopif.h + netif/tcpdump.h + netif/ethernetif.h + ubixos/exec.h + lib/kmalloc.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int net_init + () + net_init + + + + + + + + mem_init + memp_init + netMainThread + pbuf_init + sys_init + sys_thread_new + + + void + void netMainThread + () + netMainThread + + + + + + + + _current + endTask + ethernetif_init + taskStruct::id + IP4_ADDR + kprintf + loopif_init + netif_add + netif_init + netif_set_default + shell_init + sys_sem_free + sys_sem_new + sys_sem_wait + tcpip_init + tcpip_init_done + tcpip_input + net_init + + + void + static void tcpip_init_done + (void *arg) + tcpip_init_done + + void * + arg + + + + + + + + + sys_sem_signal + + + + + + + +/***************************************************************************************** +Copyright(c)2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<ubixos/sched.h> +#include<ubixos/endtask.h> + +#include<net/sys.h> +#include<net/mem.h> +#include<net/memp.h> +#include<net/tcpip.h> + +#include<netif/loopif.h> +#include<netif/tcpdump.h> +#include<netif/ethernetif.h> + +#include<ubixos/exec.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> + +voidnetMainThread(); +staticvoidtcpip_init_done(void*arg); + +intnet_init(){ +sys_init(); +mem_init(); +memp_init(); +pbuf_init(); + +/* +*thread=(void*)execThread((void*)start_routine,0x0,arg); +*/ + +sys_thread_new((void*)(netMainThread),0x0); + +return(0x0); +} + + +voidnetMainThread(){ +structip_addripaddr,netmask,gw; +sys_sem_tsem; + +netif_init(); +sem=sys_sem_new(0); +tcpip_init(tcpip_init_done,&sem); +sys_sem_wait(sem); +sys_sem_free(sem); + +kprintf("TCP/IPinitialized.\n"); + +IP4_ADDR(&gw,10,4,0,1); +IP4_ADDR(&ipaddr,10,4,0,69); +IP4_ADDR(&netmask,255,255,255,0); +netif_set_default(netif_add(&ipaddr,&netmask,&gw,ethernetif_init,tcpip_input)); + +IP4_ADDR(&gw,127,0,0,1); +IP4_ADDR(&ipaddr,127,0,0,1); +IP4_ADDR(&netmask,255,0,0,0); +netif_add(&ipaddr,&netmask,&gw,loopif_init,tcpip_input); + +//udpecho_init(); +shell_init(); +//bot_init(); +endTask(_current->id); +} + + +staticvoidtcpip_init_done(void*arg){ +sys_sem_t*sem=0x0; +sem=arg; +sys_sem_signal(*sem); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/io_8c.xml b/doc/xml/io_8c.xml new file mode 100644 index 0000000..fabaa7a --- /dev/null +++ b/doc/xml/io_8c.xml @@ -0,0 +1,395 @@ + + + + io.c + sys/io.h + + + + + + + + + + + + + + + unsigned char + unsigned char inportByte + (unsigned int port) + inportByte + + unsigned int + port + + + + + + + + + _int13 + atkbd_scan + backSpace + countMemory + dp_recv + fdcRw + getByte + hdInit + hdRead + hdWrite + initLNC + kbdRead + kbdWrite + keyboardHandler + kprint + ne2k_init + ne2kHandler + pciRead + PCtoNIC + sendByte + setLED + systemTask + timeCmosRead + tty_init + waitFdc + + + unsigned long + unsigned long inportDWord + (unsigned int port) + inportDWord + + unsigned int + port + + + + + + + + + pciRead + + + unsigned short + unsigned short inportWord + (unsigned int port) + inportWord + + unsigned int + port + + + + + + + + + _int13 + getblock + hdInit + hdRead + lanceProbe + lncInt + NICtoPC + pciRead + readBcr + readCsr + + + void + void outportByte + (unsigned int port, unsigned char value) + outportByte + + unsigned int + port + + + unsigned char + value + + + + + + + + + _dmaXfer + _int13 + atkbd_scan + backSpace + c_ap_boot + clearScreen + countMemory + dp_recv + fdcRw + floppyIsrhndlr + getblock + hdInit + hdRead + hdWrite + i8259_init + irqDisable + irqEnable + kbdWrite + keyboardHandler + kprint + lncInt + motorOn + mouseHandler + mouseInit + ne2k_init + ne2kHandler + NICtoPC + pciWrite + PCtoNIC + pit_init + reset + sendByte + setLED + systemTask + tty_change + tty_init + tty_print + + + void + void outportByteP + (unsigned int port, unsigned char value) + outportByteP + + unsigned int + port + + + unsigned char + value + + + + + + + + + pit_init + timeCmosRead + + + void + void outportDWord + (unsigned int port, unsigned long value) + outportDWord + + unsigned int + port + + + unsigned long + value + + + + + + + + + pciRead + pciWrite + + + void + void outportWord + (unsigned int port, unsigned short value) + outportWord + + unsigned int + port + + + unsigned short + value + + + + + + + + + _int13 + hdWrite + lncInt + pciWrite + PCtoNIC + readBcr + readCsr + writeBcr + writeCsr + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/io.h> + +/************************************************************************ + +Function:inlineunsignedcharinportByte(unsignedintport); +Description:ThisFuncitonWillInputOneByteFromAPort +Notes: + +************************************************************************/ +unsignedcharinportByte(unsignedintport){ +unsignedcharretVal; +asmvolatile( +"inb%%dx,%%al" +:"=a"(retVal) +:"d"(port) +); +return(retVal); +} + +/************************************************************************ + +Function:inlineunsignedcharinportWord(unsignedintport); +Description:ThisFuncitonWillInputOneWordFromAPort +Notes: + +************************************************************************/ +unsignedshortinportWord(unsignedintport){ +unsignedshortretVal; +asmvolatile( +"inw%%dx,%%ax" +:"=a"(retVal) +:"d"(port) +); +return(retVal); +} + +/************************************************************************ + +Function:inlinevoidoutportByte(unsignedintport,unsignedcharvalue); +Description:ThisFuncitonWillOutpututOneByteToAPort +Notes: + +************************************************************************/ +voidoutportByte(unsignedintport,unsignedcharvalue){ +asmvolatile( +"outb%%al,%%dx" +: +:"d"(port),"a"(value) +); +} + +/************************************************************************ + +Function:inlinevoidoutportByteP(unsignedintport,unsignedcharvalue); +Description:ThisFuncitonWillOutpututOneByteToAPortWithADelay +Notes: + +************************************************************************/ +voidoutportByteP(unsignedintport,unsignedcharvalue){ +asmvolatile( +"outb%%al,%%dx\n" +"outb%%al,$0x80\n" +: +:"d"(port),"a"(value) +); +} + +/************************************************************************ + +Function:inlinevoidoutportWord(unsignedintport,unsignedcharvalue); +Description:ThisFuncitonWillOutpututOneWordToAPort +Notes: + +************************************************************************/ +voidoutportWord(unsignedintport,unsignedshortvalue){ +asmvolatile( +"outw%%ax,%%dx" +: +:"d"(port),"a"(value) +); +} + +/************************************************************************ + +Function:inlinevoidoutportDWord(unsignedintport,unsignedcharvalue); +Description:ThisFuncitonWillOutpututOneDWordToAPort +Notes: + +************************************************************************/ +voidoutportDWord(unsignedintport,unsignedlongvalue){ +asmvolatile( +"outl%%eax,%%dx" +: +:"d"(port),"a"(value) +); +} + +/************************************************************************ + +Function:inlineunsignedcharinportDWord(unsignedintport); +Description:ThisFuncitonWillInputOneDWordFromAPort +Notes: + +************************************************************************/ +unsignedlonginportDWord(unsignedintport){ +unsignedlongretVal; +asmvolatile( +"inl%%dx,%%eax" +:"=a"(retVal) +:"d"(port) +); +return(retVal); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/io_8h.xml b/doc/xml/io_8h.xml new file mode 100644 index 0000000..7906be3 --- /dev/null +++ b/doc/xml/io_8h.xml @@ -0,0 +1,536 @@ + + + + io.h + src/sys/include/ubixos/time.h + src/sys/isa/8259.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/isa/ne2k.c + src/sys/isa/pit.c + src/sys/kernel/smp.c + src/sys/kernel/systemtask.c + src/sys/kernel/tty.c + src/sys/pci/hd.c + src/sys/pci/lnc.c + src/sys/pci/pci.c + src/sys/sys/dma.c + src/sys/sys/idt.c + src/sys/sys/io.c + src/sys/sys/video.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unsigned char + unsigned char inportByte + (unsigned int) + inportByte + + unsigned + int + + + + + + + + + _int13 + atkbd_scan + backSpace + countMemory + dp_recv + fdcRw + getByte + hdInit + hdRead + hdWrite + initLNC + kbdRead + kbdWrite + keyboardHandler + kprint + ne2k_init + ne2kHandler + pciRead + PCtoNIC + sendByte + setLED + systemTask + timeCmosRead + tty_init + waitFdc + + + unsigned long + unsigned long inportDWord + (unsigned int) + inportDWord + + unsigned + int + + + + + + + + + pciRead + + + unsigned short + unsigned short inportWord + (unsigned int) + inportWord + + unsigned + int + + + + + + + + + _int13 + getblock + hdInit + hdRead + lanceProbe + lncInt + NICtoPC + pciRead + readBcr + readCsr + + + void + void outportByte + (unsigned int, unsigned char) + outportByte + + unsigned + int + + + unsigned + char + + + + + + + + + _dmaXfer + _int13 + atkbd_scan + backSpace + c_ap_boot + clearScreen + countMemory + dp_recv + fdcRw + floppyIsrhndlr + getblock + hdInit + hdRead + hdWrite + i8259_init + irqDisable + irqEnable + kbdWrite + keyboardHandler + kprint + lncInt + motorOn + mouseHandler + mouseInit + ne2k_init + ne2kHandler + NICtoPC + pciWrite + PCtoNIC + pit_init + reset + sendByte + setLED + systemTask + tty_change + tty_init + tty_print + + + void + void outportByteP + (unsigned int port, unsigned char value) + outportByteP + + unsigned int + port + + + unsigned char + value + + + + + + + + + pit_init + timeCmosRead + + + void + void outportDWord + (unsigned int port, unsigned long value) + outportDWord + + unsigned int + port + + + unsigned long + value + + + + + + + + + pciRead + pciWrite + + + void + void outportWord + (unsigned int, unsigned short) + outportWord + + unsigned + int + + + unsigned + short + + + + + + + + + _int13 + hdWrite + lncInt + pciWrite + PCtoNIC + readBcr + readCsr + writeBcr + writeCsr + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_IO_H +#define_IO_H + +unsignedcharinportByte(unsignedint); +unsignedshortinportWord(unsignedint); +unsignedlonginportDWord(unsignedint); +voidoutportByte(unsignedint,unsignedchar); +voidoutportByteP(unsignedintport,unsignedcharvalue); +voidoutportWord(unsignedint,unsignedshort); +voidoutportDWord(unsignedintport,unsignedlongvalue); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:52reddawg +nomessage + +Revision1.32004/07/2220:14:34reddawg +stillworkinghere + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/ipv4_2icmp_8h.xml b/doc/xml/ipv4_2icmp_8h.xml new file mode 100644 index 0000000..9900627 --- /dev/null +++ b/doc/xml/ipv4_2icmp_8h.xml @@ -0,0 +1,692 @@ + + + + icmp.h + net/arch.h + net/opt.h + net/pbuf.h + net/netif.h + src/sys/include/net/tcp.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + icmp_dur_hdr + icmp_echo_hdr + icmp_te_hdr + + + ICMP_DUR + 3 + + + + + + + + + + ICMP_ECHO + 8 + + + + + + + + + + ICMP_ER + 0 + + + + + + + + + + ICMP_IR + 16 + + + + + + + + + + ICMP_IRQ + 15 + + + + + + + + + + ICMP_PP + 12 + + + + + + + + + + ICMP_RD + 5 + + + + + + + + + + ICMP_SQ + 4 + + + + + + + + + + ICMP_TE + 11 + + + + + + + + + + ICMP_TS + 13 + + + + + + + + + + ICMP_TSR + 14 + + + + + + + + + + ICMPH_CODE + hdr + (NTOHS((hdr)->_type_code) & 0xff) + + + + + + + + + + ICMPH_CODE_SET + hdr + code + ((hdr)->_type_code = HTONS((code) | (ICMPH_TYPE(hdr) << 8))) + + + + + + + + + + ICMPH_TYPE + hdr + (NTOHS((hdr)->_type_code) >> 8) + + + + + + + + + + ICMPH_TYPE_SET + hdr + type + ((hdr)->_type_code = HTONS(ICMPH_CODE(hdr) | ((type) << 8))) + + + + + + + + + + + + icmp_dur_type + + ICMP_DUR_NET + 0 + + + + + + + ICMP_DUR_HOST + 1 + + + + + + + ICMP_DUR_PROTO + 2 + + + + + + + ICMP_DUR_PORT + 3 + + + + + + + ICMP_DUR_FRAG + 4 + + + + + + + ICMP_DUR_SR + 5 + + + + + + + + + + + + + + + icmp_te_type + + ICMP_TE_TTL + 0 + + + + + + + ICMP_TE_FRAG + 1 + + + + + + + + + + + + + + + + + void + void icmp_dest_unreach + (struct pbuf *p, enum icmp_dur_type t) + icmp_dest_unreach + + struct pbuf * + p + + + enum icmp_dur_type + t + + + + + + + + + + + void + void icmp_input + (struct pbuf *p, struct netif *inp) + icmp_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + + + void + void icmp_time_exceeded + (struct pbuf *p, enum icmp_te_type t) + icmp_time_exceeded + + struct pbuf * + p + + + enum icmp_te_type + t + + + + + + + + + + + + + icmp_te_hdr + struct icmp_te_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + icmp_dur_hdr + struct icmp_dur_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + icmp_echo_hdr + struct icmp_echo_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_ICMP_H__ +#define__LWIP_ICMP_H__ + +#include"net/arch.h" + +#include"net/opt.h" +#include"net/pbuf.h" + +#include"net/netif.h" + +#defineICMP_ER0/*echoreply*/ +#defineICMP_DUR3/*destinationunreachable*/ +#defineICMP_SQ4/*sourcequench*/ +#defineICMP_RD5/*redirect*/ +#defineICMP_ECHO8/*echo*/ +#defineICMP_TE11/*timeexceeded*/ +#defineICMP_PP12/*parameterproblem*/ +#defineICMP_TS13/*timestamp*/ +#defineICMP_TSR14/*timestampreply*/ +#defineICMP_IRQ15/*informationrequest*/ +#defineICMP_IR16/*informationreply*/ + +enumicmp_dur_type{ +ICMP_DUR_NET=0,/*netunreachable*/ +ICMP_DUR_HOST=1,/*hostunreachable*/ +ICMP_DUR_PROTO=2,/*protocolunreachable*/ +ICMP_DUR_PORT=3,/*portunreachable*/ +ICMP_DUR_FRAG=4,/*fragmentationneededandDFset*/ +ICMP_DUR_SR=5/*sourceroutefailed*/ +}; + +enumicmp_te_type{ +ICMP_TE_TTL=0,/*timetoliveexceededintransit*/ +ICMP_TE_FRAG=1/*fragmentreassemblytimeexceeded*/ +}; + +voidicmp_input(structpbuf*p,structnetif*inp); + +voidicmp_dest_unreach(structpbuf*p,enumicmp_dur_typet); +voidicmp_time_exceeded(structpbuf*p,enumicmp_te_typet); + +structicmp_echo_hdr{ +PACK_STRUCT_FIELD(uInt16_type_code); +PACK_STRUCT_FIELD(uInt16chksum); +PACK_STRUCT_FIELD(uInt16id); +PACK_STRUCT_FIELD(uInt16seqno); +}PACK_STRUCT_STRUCT; + + + +structicmp_dur_hdr{ +PACK_STRUCT_FIELD(uInt16_type_code); +PACK_STRUCT_FIELD(uInt16chksum); +PACK_STRUCT_FIELD(uInt32unused); +}PACK_STRUCT_STRUCT; + +structicmp_te_hdr{ +PACK_STRUCT_FIELD(uInt16_type_code); +PACK_STRUCT_FIELD(uInt16chksum); +PACK_STRUCT_FIELD(uInt32unused); +}PACK_STRUCT_STRUCT; + +#defineICMPH_TYPE(hdr)(NTOHS((hdr)->_type_code)>>8) +#defineICMPH_CODE(hdr)(NTOHS((hdr)->_type_code)&0xff) + +#defineICMPH_TYPE_SET(hdr,type)((hdr)->_type_code=HTONS(ICMPH_CODE(hdr)|((type)<<8))) +#defineICMPH_CODE_SET(hdr,code)((hdr)->_type_code=HTONS((code)|(ICMPH_TYPE(hdr)<<8))) + +#endif/*__LWIP_ICMP_H__*/ + + + + + diff --git a/doc/xml/ipv4_2inet_8h.xml b/doc/xml/ipv4_2inet_8h.xml new file mode 100644 index 0000000..158f1af --- /dev/null +++ b/doc/xml/ipv4_2inet_8h.xml @@ -0,0 +1,596 @@ + + + + inet.h + net/arch.h + net/opt.h + net/pbuf.h + net/ipv4/ip_addr.h + src/sys/include/net/netif.h + src/sys/include/net/udp.h + src/sys/net/netif/arp.c + src/sys/net/netif/tcpdump.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + htonl + n + HTONL(n) + + + + + + + + inet_aton + + + HTONL + n + (n) + + + + + + + + + + htons + n + HTONS(n) + + + + + + + + arp_arp_input + arp_query + ethernetif_input + ethernetif_output + lwip_recvfrom + + + HTONS + n + (n) + + + + + + + + + + ntohl + htonl + + + + + + + + + + NTOHL + HTONL + + + + + + + + + + ntohs + htons + + + + + + + + lwip_bind + lwip_connect + + + NTOHS + HTONS + + + + + + + + + + + + uInt32 + uInt32 htonl + (uInt32 n) + htonl + + uInt32 + n + + + + + + + + + + + uInt16 + uInt16 htons + (uInt16 n) + htons + + uInt16 + n + + + + + + + + + + + uInt16 + uInt16 inet_chksum + (void *dataptr, uInt16 len) + inet_chksum + + void * + dataptr + + + uInt16 + len + + + + + + + + + + + uInt16 + uInt16 inet_chksum_pbuf + (struct pbuf *p) + inet_chksum_pbuf + + struct pbuf * + p + + + + + + + + + + + uInt16 + uInt16 inet_chksum_pseudo + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, uInt8 proto, uInt16 proto_len) + inet_chksum_pseudo + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + uInt8 + proto + + + uInt16 + proto_len + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_INET_H__ +#define__LWIP_INET_H__ + +#include"net/arch.h" + +#include"net/opt.h" +#include"net/pbuf.h" +#include"net/ipv4/ip_addr.h" + +uInt16inet_chksum(void*dataptr,uInt16len); +uInt16inet_chksum_pbuf(structpbuf*p); +uInt16inet_chksum_pseudo(structpbuf*p, +structip_addr*src,structip_addr*dest, +uInt8proto,uInt16proto_len); + +#ifdefHTONS +#undefHTONS +#endif/*HTONS*/ +#ifdefNTOHS +#undefNTOHS +#endif/*NTOHS*/ +#ifdefHTONL +#undefHTONL +#endif/*HTONL*/ +#ifdefNTOHL +#undefNTOHL +#endif/*NTOHL*/ + +#ifndefHTONS +#ifBYTE_ORDER==BIG_ENDIAN +#defineHTONS(n)(n) +#definehtons(n)HTONS(n) +#else/*BYTE_ORDER==BIG_ENDIAN*/ +#defineHTONS(n)(((((uInt16)(n)&0xff))<<8)|(((uInt16)(n)&0xff00)>>8)) +#endif/*BYTE_ORDER==BIG_ENDIAN*/ +#endif/*HTONS*/ + +#ifdefNTOHS +#undefNTOHS +#endif/*NTOHS*/ + +#ifdefntohs +#undefntohs +#endif/*ntohs*/ + +#defineNTOHSHTONS +#definentohshtons + + +#ifndefHTONL +#ifBYTE_ORDER==BIG_ENDIAN +#defineHTONL(n)(n) +#definehtonl(n)HTONL(n) +#else/*BYTE_ORDER==BIG_ENDIAN*/ +#defineHTONL(n)(((((uInt32)(n)&0xff))<<24)|\ +((((uInt32)(n)&0xff00))<<8)|\ +((((uInt32)(n)&0xff0000))>>8)|\ +((((uInt32)(n)&0xff000000))>>24)) +#endif/*BYTE_ORDER==BIG_ENDIAN*/ +#endif/*HTONL*/ + +#ifdefntohl +#undefntohl +#endif/*ntohl*/ + +#ifdefNTOHL +#undefNTOHL +#endif/*NTOHL*/ + +#defineNTOHLHTONL +#definentohlhtonl + +#ifndef_MACHINE_ENDIAN_H_ +#ifndef_NETINET_IN_H +#ifndef_LINUX_BYTEORDER_GENERIC_H + +#ifBYTE_ORDER==LITTLE_ENDIAN +uInt16htons(uInt16n); +uInt32htonl(uInt32n); +#else +#endif/*BYTE_ORDER==LITTLE_ENDIAN*/ + +#endif/*_LINUX_BYTEORDER_GENERIC_H*/ +#endif/*_NETINET_IN_H*/ +#endif/*_MACHINE_ENDIAN_H_*/ + +#endif/*__LWIP_INET_H__*/ + + + + + diff --git a/doc/xml/ipv4_2ip_8h.xml b/doc/xml/ipv4_2ip_8h.xml new file mode 100644 index 0000000..ebc859d --- /dev/null +++ b/doc/xml/ipv4_2ip_8h.xml @@ -0,0 +1,871 @@ + + + + ip.h + net/arch.h + net/def.h + net/pbuf.h + net/ipv4/ip_addr.h + net/netif.h + net/err.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/include/net/tcp.h + src/sys/include/net/udp.h + src/sys/net/api/tcpip.c + src/sys/net/netif/arp.c + src/sys/net/netif/loopif.c + src/sys/net/netif/tcpdump.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ip_hdr + + + IP_DF + 0x4000 + + + + + + + + + + IP_HDRINCL + NULL + + + + + + + + + + IP_HLEN + 20 + + + + + + + + + + IP_MF + 0x2000 + + + + + + + + + + IP_OFFMASK + 0x1fff + + + + + + + + + + IP_PROTO_ICMP + 1 + + + + + + + + + + IP_PROTO_TCP + 6 + + + + + + + + + + IP_PROTO_UDP + 17 + + + + + + + + + + IP_PROTO_UDPLITE + 170 + + + + + + + + + + IP_RF + 0x8000 + + + + + + + + + + IPH_CHKSUM + hdr + ((hdr)->_chksum) + + + + + + + + + + IPH_CHKSUM_SET + hdr + chksum + (hdr)->_chksum = (chksum) + + + + + + + + + + IPH_HL + hdr + ((NTOHS((hdr)->_v_hl_tos) >> 8) & 0x0f) + + + + + + + + + + IPH_ID + hdr + ((hdr)->_id) + + + + + + + + + + IPH_ID_SET + hdr + id + (hdr)->_id = (id) + + + + + + + + + + IPH_LEN + hdr + ((hdr)->_len) + + + + + + + + + + IPH_LEN_SET + hdr + len + (hdr)->_len = (len) + + + + + + + + + + IPH_OFFSET + hdr + ((hdr)->_offset) + + + + + + + + + + IPH_OFFSET_SET + hdr + off + (hdr)->_offset = (off) + + + + + + + + + + IPH_PROTO + hdr + (NTOHS((hdr)->_ttl_proto) & 0xff) + + + + + + + + + + IPH_PROTO_SET + hdr + proto + (hdr)->_ttl_proto = HTONS((proto) | (IPH_TTL(hdr) << 8)) + + + + + + + + + + IPH_TOS + hdr + HTONS((NTOHS((hdr)->_v_hl_tos) & 0xff)) + + + + + + + + + + IPH_TTL + hdr + (NTOHS((hdr)->_ttl_proto) >> 8) + + + + + + + + + + IPH_TTL_SET + hdr + ttl + (hdr)->_ttl_proto = HTONS(IPH_PROTO(hdr) | ((ttl) << 8)) + + + + + + + + + + IPH_V + hdr + (NTOHS((hdr)->_v_hl_tos) >> 12) + + + + + + + + + + IPH_VHLTOS_SET + hdr + v + hl + tos + (hdr)->_v_hl_tos = HTONS(((v) << 12) | ((hl) << 8) | (tos)) + + + + + + + + + + + + void + void ip_init + (void) + ip_init + + void + + + + + + + + + tcpip_thread + + + err_t + err_t ip_input + (struct pbuf *p, struct netif *inp) + ip_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + tcpip_thread + + + uInt8 + uInt8 ip_lookup + (void *header, struct netif *inp) + ip_lookup + + void * + header + + + struct netif * + inp + + + + + + + + + + + err_t + err_t ip_output + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, uInt8 ttl, uInt8 proto) + ip_output + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + uInt8 + ttl + + + uInt8 + proto + + + + + + + + + + + err_t + err_t ip_output_if + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, uInt8 ttl, uInt8 proto, struct netif *netif) + ip_output_if + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + uInt8 + ttl + + + uInt8 + proto + + + struct netif * + netif + + + + + + + + + + + netif * + struct netif* ip_route + (struct ip_addr *dest) + ip_route + + struct ip_addr * + dest + + + + + + + + + + + + + ip_hdr + struct ip_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_IP_H__ +#define__LWIP_IP_H__ + +#include"net/arch.h" + +#include"net/def.h" +#include"net/pbuf.h" +#include"net/ipv4/ip_addr.h" +#include"net/netif.h" + +#include"net/err.h" + +voidip_init(void); +uInt8ip_lookup(void*header,structnetif*inp); +structnetif*ip_route(structip_addr*dest); +err_tip_input(structpbuf*p,structnetif*inp); +err_tip_output(structpbuf*p,structip_addr*src,structip_addr*dest, +uInt8ttl,uInt8proto); +err_tip_output_if(structpbuf*p,structip_addr*src,structip_addr*dest, +uInt8ttl,uInt8proto, +structnetif*netif); + +#defineIP_HLEN20 + +#defineIP_PROTO_ICMP1 +#defineIP_PROTO_UDP17 +#defineIP_PROTO_UDPLITE170 +#defineIP_PROTO_TCP6 + +/*Thisispassedasthedestinationaddresstoip_output_if(not +toip_output),meaningthatanIPheaderalreadyisconstructed +inthepbuf.ThisisusedwhenTCPretransmits.*/ +#ifdefIP_HDRINCL +#undefIP_HDRINCL +#endif/*IP_HDRINCL*/ +#defineIP_HDRINCLNULL + +structip_hdr{ +/*version/headerlength/typeofservice*/ +PACK_STRUCT_FIELD(uInt16_v_hl_tos); +/*totallength*/ +PACK_STRUCT_FIELD(uInt16_len); +/*identification*/ +PACK_STRUCT_FIELD(uInt16_id); +/*fragmentoffsetfield*/ +PACK_STRUCT_FIELD(uInt16_offset); +#defineIP_RF0x8000/*reservedfragmentflag*/ +#defineIP_DF0x4000/*dontfragmentflag*/ +#defineIP_MF0x2000/*morefragmentsflag*/ +#defineIP_OFFMASK0x1fff/*maskforfragmentingbits*/ +/*timetolive/protocol*/ +PACK_STRUCT_FIELD(uInt16_ttl_proto); +/*checksum*/ +PACK_STRUCT_FIELD(uInt16_chksum); +/*sourceanddestinationIPaddresses*/ +PACK_STRUCT_FIELD(structip_addrsrc); +PACK_STRUCT_FIELD(structip_addrdest); +}PACK_STRUCT_STRUCT; + +#defineIPH_V(hdr)(NTOHS((hdr)->_v_hl_tos)>>12) +#defineIPH_HL(hdr)((NTOHS((hdr)->_v_hl_tos)>>8)&0x0f) +#defineIPH_TOS(hdr)HTONS((NTOHS((hdr)->_v_hl_tos)&0xff)) +#defineIPH_LEN(hdr)((hdr)->_len) +#defineIPH_ID(hdr)((hdr)->_id) +#defineIPH_OFFSET(hdr)((hdr)->_offset) +#defineIPH_TTL(hdr)(NTOHS((hdr)->_ttl_proto)>>8) +#defineIPH_PROTO(hdr)(NTOHS((hdr)->_ttl_proto)&0xff) +#defineIPH_CHKSUM(hdr)((hdr)->_chksum) + +#defineIPH_VHLTOS_SET(hdr,v,hl,tos)(hdr)->_v_hl_tos=HTONS(((v)<<12)|((hl)<<8)|(tos)) +#defineIPH_LEN_SET(hdr,len)(hdr)->_len=(len) +#defineIPH_ID_SET(hdr,id)(hdr)->_id=(id) +#defineIPH_OFFSET_SET(hdr,off)(hdr)->_offset=(off) +#defineIPH_TTL_SET(hdr,ttl)(hdr)->_ttl_proto=HTONS(IPH_PROTO(hdr)|((ttl)<<8)) +#defineIPH_PROTO_SET(hdr,proto)(hdr)->_ttl_proto=HTONS((proto)|(IPH_TTL(hdr)<<8)) +#defineIPH_CHKSUM_SET(hdr,chksum)(hdr)->_chksum=(chksum) + + + +#ifIP_DEBUG +voidip_debug_print(structpbuf*p); +#endif/*IP_DEBUG*/ + +#endif/*__LWIP_IP_H__*/ + + + + + + diff --git a/doc/xml/ipv4_2ip__addr_8h.xml b/doc/xml/ipv4_2ip__addr_8h.xml new file mode 100644 index 0000000..15baa90 --- /dev/null +++ b/doc/xml/ipv4_2ip__addr_8h.xml @@ -0,0 +1,573 @@ + + + + ip_addr.h + net/arch.h + src/sys/include/net/ipv4/inet.h + src/sys/include/net/ipv4/ip.h + src/sys/include/net/netif.h + src/sys/include/netif/arp.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ip_addr + + + IP4_ADDR + ipaddr + a + b + c + d + (ipaddr)->addr = htonl(((uInt32)(a & 0xff) << 24) | ((uInt32)(b & 0xff) << 16) | \ + ((uInt32)(c & 0xff) << 8) | (uInt32)(d & 0xff)) + + + + + + + + bot_thread + netMainThread + + + ip4_addr1 + ipaddr + ((uInt8)(ntohl((ipaddr)->addr) >> 24) & 0xff) + + + + + + + + + + ip4_addr2 + ipaddr + ((uInt8)(ntohl((ipaddr)->addr) >> 16) & 0xff) + + + + + + + + ethernetif_output + + + ip4_addr3 + ipaddr + ((uInt8)(ntohl((ipaddr)->addr) >> 8) & 0xff) + + + + + + + + ethernetif_output + + + ip4_addr4 + ipaddr + ((uInt8)(ntohl((ipaddr)->addr)) & 0xff) + + + + + + + + ethernetif_output + + + IP_ADDR_ANY + 0 + + + + + + + + arp_init + arp_tmr + + + IP_ADDR_BROADCAST + (&ip_addr_broadcast) + + + + + + + + + + ip_addr_cmp + addr1 + addr2 + ((addr1)->addr == (addr2)->addr) + + + + + + + + add_arp_entry + arp_arp_input + arp_lookup + + + ip_addr_debug_print + ipaddr + kprintf("%d.%d.%d.%d", \ + (uInt8)(ntohl((ipaddr)->addr) >> 24) & 0xff, \ + (uInt8)(ntohl((ipaddr)->addr) >> 16) & 0xff, \ + (uInt8)(ntohl((ipaddr)->addr) >> 8) & 0xff, \ + (uInt8)ntohl((ipaddr)->addr) & 0xff) + + + + + + + + + + ip_addr_isany + addr1 + ((addr1) == NULL || (addr1)->addr == 0) + + + + + + + + add_arp_entry + arp_tmr + ethernetif_output + + + ip_addr_isbroadcast + addr1 + mask + (((((addr1)->addr) & ~((mask)->addr)) == \ + (0xffffffff & ~((mask)->addr))) || \ + ((addr1)->addr == 0xffffffff) || \ + ((addr1)->addr == 0x00000000)) + + + + + + + + ethernetif_output + + + ip_addr_ismulticast + addr1 + (((addr1)->addr & ntohl(0xf0000000)) == ntohl(0xe0000000)) + + + + + + + + ethernetif_output + + + ip_addr_maskcmp + addr1 + addr2 + mask + (((addr1)->addr & \ + (mask)->addr) == \ + ((addr2)->addr & \ + (mask)->addr)) + + + + + + + + arp_ip_input + ethernetif_output + + + ip_addr_set + dest + src + (dest)->addr = \ + ((src) == IP_ADDR_ANY? IP_ADDR_ANY:\ + ((struct ip_addr *)src)->addr) + + + + + + + + add_arp_entry + arp_arp_input + arp_init + arp_query + arp_tmr + + + + + PACK_STRUCT_END struct ip_addr + PACK_STRUCT_END struct ip_addr ip_addr_broadcast + + ip_addr_broadcast + + + + + + + + + + PACK_STRUCT_BEGIN struct ip_addr + PACK_STRUCT_BEGIN struct ip_addr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_IP_ADDR_H__ +#define__LWIP_IP_ADDR_H__ + +#include"net/arch.h" + +#defineIP_ADDR_ANY0 + +#defineIP_ADDR_BROADCAST(&ip_addr_broadcast) + +PACK_STRUCT_BEGIN +structip_addr{ +PACK_STRUCT_FIELD(uInt32addr); +}PACK_STRUCT_STRUCT; +PACK_STRUCT_END + +externstructip_addrip_addr_broadcast; + +#defineIP4_ADDR(ipaddr,a,b,c,d)(ipaddr)->addr=htonl(((uInt32)(a&0xff)<<24)|((uInt32)(b&0xff)<<16)|\ +((uInt32)(c&0xff)<<8)|(uInt32)(d&0xff)) + +#defineip_addr_set(dest,src)(dest)->addr=\ +((src)==IP_ADDR_ANY?IP_ADDR_ANY:\ +((structip_addr*)src)->addr) +#defineip_addr_maskcmp(addr1,addr2,mask)(((addr1)->addr&\ +(mask)->addr)==\ +((addr2)->addr&\ +(mask)->addr)) +#defineip_addr_cmp(addr1,addr2)((addr1)->addr==(addr2)->addr) + +#defineip_addr_isany(addr1)((addr1)==NULL||(addr1)->addr==0) + +#defineip_addr_isbroadcast(addr1,mask)(((((addr1)->addr)&~((mask)->addr))==\ +(0xffffffff&~((mask)->addr)))||\ +((addr1)->addr==0xffffffff)||\ +((addr1)->addr==0x00000000)) + + +#defineip_addr_ismulticast(addr1)(((addr1)->addr&ntohl(0xf0000000))==ntohl(0xe0000000)) + + +#defineip_addr_debug_print(ipaddr)kprintf("%d.%d.%d.%d",\ +(uInt8)(ntohl((ipaddr)->addr)>>24)&0xff,\ +(uInt8)(ntohl((ipaddr)->addr)>>16)&0xff,\ +(uInt8)(ntohl((ipaddr)->addr)>>8)&0xff,\ +(uInt8)ntohl((ipaddr)->addr)&0xff) + + +#defineip4_addr1(ipaddr)((uInt8)(ntohl((ipaddr)->addr)>>24)&0xff) +#defineip4_addr2(ipaddr)((uInt8)(ntohl((ipaddr)->addr)>>16)&0xff) +#defineip4_addr3(ipaddr)((uInt8)(ntohl((ipaddr)->addr)>>8)&0xff) +#defineip4_addr4(ipaddr)((uInt8)(ntohl((ipaddr)->addr))&0xff) +#endif/*__LWIP_IP_ADDR_H__*/ + + + + + + + + + + diff --git a/doc/xml/ipv6_2icmp_8h.xml b/doc/xml/ipv6_2icmp_8h.xml new file mode 100644 index 0000000..211d207 --- /dev/null +++ b/doc/xml/ipv6_2icmp_8h.xml @@ -0,0 +1,336 @@ + + + + icmp.h + lwip/arch.h + lwip/opt.h + lwip/pbuf.h + lwip/netif.h + + + + + + + + + + + + + + + + + + + + + + + + + + + icmp_dur_hdr + icmp_echo_hdr + icmp_te_hdr + + + ICMP6_DUR + 1 + + + + + + + + + + ICMP6_ECHO + 128 + + + + + + + + + + ICMP6_ER + 129 + + + + + + + + + + ICMP6_TE + 3 + + + + + + + + + + + + icmp_dur_type + + ICMP_DUR_NET + 0 + + + + + + + ICMP_DUR_HOST + 1 + + + + + + + ICMP_DUR_PROTO + 2 + + + + + + + ICMP_DUR_PORT + 3 + + + + + + + ICMP_DUR_FRAG + 4 + + + + + + + ICMP_DUR_SR + 5 + + + + + + + + + + + + + + + icmp_te_type + + ICMP_TE_TTL + 0 + + + + + + + ICMP_TE_FRAG + 1 + + + + + + + + + + + + + + + + + void + void icmp_dest_unreach + (struct pbuf *p, enum icmp_dur_type t) + icmp_dest_unreach + + struct pbuf * + p + + + enum icmp_dur_type + t + + + + + + + + + + + void + void icmp_input + (struct pbuf *p, struct netif *inp) + icmp_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + + + void + void icmp_time_exceeded + (struct pbuf *p, enum icmp_te_type t) + icmp_time_exceeded + + struct pbuf * + p + + + enum icmp_te_type + t + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_ICMP_H__ +#define__LWIP_ICMP_H__ + +#include"lwip/arch.h" + +#include"lwip/opt.h" +#include"lwip/pbuf.h" + +#include"lwip/netif.h" + +#defineICMP6_DUR1 +#defineICMP6_TE3 +#defineICMP6_ECHO128/*echo*/ +#defineICMP6_ER129/*echoreply*/ + + +enumicmp_dur_type{ +ICMP_DUR_NET=0,/*netunreachable*/ +ICMP_DUR_HOST=1,/*hostunreachable*/ +ICMP_DUR_PROTO=2,/*protocolunreachable*/ +ICMP_DUR_PORT=3,/*portunreachable*/ +ICMP_DUR_FRAG=4,/*fragmentationneededandDFset*/ +ICMP_DUR_SR=5/*sourceroutefailed*/ +}; + +enumicmp_te_type{ +ICMP_TE_TTL=0,/*timetoliveexceededintransit*/ +ICMP_TE_FRAG=1/*fragmentreassemblytimeexceeded*/ +}; + +voidicmp_input(structpbuf*p,structnetif*inp); + +voidicmp_dest_unreach(structpbuf*p,enumicmp_dur_typet); +voidicmp_time_exceeded(structpbuf*p,enumicmp_te_typet); + +structicmp_echo_hdr{ +u8_ttype; +u8_ticode; +u16_tchksum; +u16_tid; +u16_tseqno; +}; + +structicmp_dur_hdr{ +u8_ttype; +u8_ticode; +u16_tchksum; +u32_tunused; +}; + +structicmp_te_hdr{ +u8_ttype; +u8_ticode; +u16_tchksum; +u32_tunused; +}; + +#endif/*__LWIP_ICMP_H__*/ + + + + + diff --git a/doc/xml/ipv6_2inet_8h.xml b/doc/xml/ipv6_2inet_8h.xml new file mode 100644 index 0000000..8a3042f --- /dev/null +++ b/doc/xml/ipv6_2inet_8h.xml @@ -0,0 +1,279 @@ + + + + inet.h + net/arch.h + net/opt.h + net/pbuf.h + net/ipv6/ip_addr.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u32_t + u32_t htonl + (u32_t n) + htonl + + u32_t + n + + + + + + + + + + + u16_t + u16_t htons + (u16_t n) + htons + + u16_t + n + + + + + + + + + + + u16_t + u16_t inet_chksum + (void *data, u16_t len) + inet_chksum + + void * + data + + + u16_t + len + + + + + + + + + + + u16_t + u16_t inet_chksum_pbuf + (struct pbuf *p) + inet_chksum_pbuf + + struct pbuf * + p + + + + + + + + + + + u16_t + u16_t inet_chksum_pseudo + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u32_t proto_len) + inet_chksum_pseudo + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + u8_t + proto + + + u32_t + proto_len + + + + + + + + + + + u32_t + u32_t ntohl + (u32_t n) + ntohl + + u32_t + n + + + + + + + + + + + u16_t + u16_t ntohs + (u16_t n) + ntohs + + u16_t + n + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_INET_H__ +#define__LWIP_INET_H__ + +#include"net/arch.h" + +#include"net/opt.h" +#include"net/pbuf.h" +#include"net/ipv6/ip_addr.h" + +u16_tinet_chksum(void*data,u16_tlen); +u16_tinet_chksum_pbuf(structpbuf*p); +u16_tinet_chksum_pseudo(structpbuf*p, +structip_addr*src,structip_addr*dest, +u8_tproto,u32_tproto_len); + + +#ifndef_MACHINE_ENDIAN_H_ +#ifndef_NETINET_IN_H +#ifndef_LINUX_BYTEORDER_GENERIC_H +u16_thtons(u16_tn); +u16_tntohs(u16_tn); +u32_thtonl(u32_tn); +u32_tntohl(u32_tn); +#endif/*_LINUX_BYTEORDER_GENERIC_H*/ +#endif/*_NETINET_IN_H*/ +#endif/*_MACHINE_ENDIAN_H_*/ + +#endif/*__LWIP_INET_H__*/ + + + + + diff --git a/doc/xml/ipv6_2ip_8h.xml b/doc/xml/ipv6_2ip_8h.xml new file mode 100644 index 0000000..bb7be54 --- /dev/null +++ b/doc/xml/ipv6_2ip_8h.xml @@ -0,0 +1,349 @@ + + + + ip.h + lwip/debug.h + lwip/def.h + lwip/pbuf.h + lwip/ip_addr.h + lwip/err.h + lwip/netif.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ip_hdr + + + IP_HDRINCL + NULL + + + + + + + + + + IP_HLEN + 40 + + + + + + + + + + IP_PROTO_ICMP + 58 + + + + + + + + + + IP_PROTO_TCP + 6 + + + + + + + + + + IP_PROTO_UDP + 17 + + + + + + + + + + IP_PROTO_UDPLITE + 170 + + + + + + + + + + + + void + void ip_init + (void) + ip_init + + void + + + + + + + + + + + void + void ip_input + (struct pbuf *p, struct netif *inp) + ip_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + + + err_t + err_t ip_output + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, unsigned char ttl, unsigned char proto) + ip_output + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + unsigned char + ttl + + + unsigned char + proto + + + + + + + + + + + err_t + err_t ip_output_if + (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, unsigned char ttl, unsigned char proto, struct netif *netif) + ip_output_if + + struct pbuf * + p + + + struct ip_addr * + src + + + struct ip_addr * + dest + + + unsigned char + ttl + + + unsigned char + proto + + + struct netif * + netif + + + + + + + + + + + netif * + struct netif* ip_route + (struct ip_addr *dest) + ip_route + + struct ip_addr * + dest + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_IP_H__ +#define__LWIP_IP_H__ + +#include"lwip/debug.h" +#include"lwip/def.h" +#include"lwip/pbuf.h" +#include"lwip/ip_addr.h" + +#include"lwip/err.h" + +#defineIP_HLEN40 + +#defineIP_PROTO_ICMP58 +#defineIP_PROTO_UDP17 +#defineIP_PROTO_UDPLITE170 +#defineIP_PROTO_TCP6 + +/*Thisispassedasthedestinationaddresstoip_output_if(not +toip_output),meaningthatanIPheaderalreadyisconstructed +inthepbuf.ThisisusedwhenTCPretransmits.*/ +#ifdefIP_HDRINCL +#undefIP_HDRINCL +#endif/*IP_HDRINCL*/ +#defineIP_HDRINCLNULL + + +/*TheIPv6header.*/ +structip_hdr{ +#ifBYTE_ORDER==LITTLE_ENDIAN +u8_ttclass1:4,v:4; +u8_tflow1:4,tclass2:4; +#else +u8_tv:4,tclass1:4; +u8_ttclass2:8,flow1:4; +#endif +u16_tflow2; +u16_tlen;/*payloadlength*/ +u8_tnexthdr;/*nextheader*/ +u8_thoplim;/*hoplimit(TTL)*/ +structip_addrsrc,dest;/*sourceanddestinationIPaddresses*/ +}; + +voidip_init(void); + +#include"lwip/netif.h" + +structnetif*ip_route(structip_addr*dest); + +voidip_input(structpbuf*p,structnetif*inp); + +/*sourceanddestinationaddressesinnetworkbyteorder,please*/ +err_tip_output(structpbuf*p,structip_addr*src,structip_addr*dest, +unsignedcharttl,unsignedcharproto); + +err_tip_output_if(structpbuf*p,structip_addr*src,structip_addr*dest, +unsignedcharttl,unsignedcharproto, +structnetif*netif); + +#ifIP_DEBUG +voidip_debug_print(structpbuf*p); +#endif/*IP_DEBUG*/ + +#endif/*__LWIP_IP_H__*/ + + + + + + diff --git a/doc/xml/ipv6_2ip__addr_8h.xml b/doc/xml/ipv6_2ip__addr_8h.xml new file mode 100644 index 0000000..f7e86b2 --- /dev/null +++ b/doc/xml/ipv6_2ip__addr_8h.xml @@ -0,0 +1,236 @@ + + + + ip_addr.h + net/arch.h + src/sys/include/net/ipv6/inet.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ip_addr + + + IP6_ADDR + ipaddr + a + b + c + d + e + f + g + h + do { (ipaddr)->addr[0] = htonl((u32_t)((a & 0xffff) << 16) | (b & 0xffff)); \ + (ipaddr)->addr[1] = htonl(((c & 0xffff) << 16) | (d & 0xffff)); \ + (ipaddr)->addr[2] = htonl(((e & 0xffff) << 16) | (f & 0xffff)); \ + (ipaddr)->addr[3] = htonl(((g & 0xffff) << 16) | (h & 0xffff)); } while(0) + + + + + + + + + + IP_ADDR_ANY + 0 + + + + + + + + + + + + int + int ip_addr_cmp + (struct ip_addr *addr1, struct ip_addr *addr2) + ip_addr_cmp + + struct ip_addr * + addr1 + + + struct ip_addr * + addr2 + + + + + + + + + + + int + int ip_addr_isany + (struct ip_addr *addr) + ip_addr_isany + + struct ip_addr * + addr + + + + + + + + + + + int + int ip_addr_maskcmp + (struct ip_addr *addr1, struct ip_addr *addr2, struct ip_addr *mask) + ip_addr_maskcmp + + struct ip_addr * + addr1 + + + struct ip_addr * + addr2 + + + struct ip_addr * + mask + + + + + + + + + + + void + void ip_addr_set + (struct ip_addr *dest, struct ip_addr *src) + ip_addr_set + + struct ip_addr * + dest + + + struct ip_addr * + src + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_IP_ADDR_H__ +#define__LWIP_IP_ADDR_H__ + +#include"net/arch.h" + +#defineIP_ADDR_ANY0 + +structip_addr{ +u32_taddr[4]; +}; + +#defineIP6_ADDR(ipaddr,a,b,c,d,e,f,g,h)do{(ipaddr)->addr[0]=htonl((u32_t)((a&0xffff)<<16)|(b&0xffff));\ +(ipaddr)->addr[1]=htonl(((c&0xffff)<<16)|(d&0xffff));\ +(ipaddr)->addr[2]=htonl(((e&0xffff)<<16)|(f&0xffff));\ +(ipaddr)->addr[3]=htonl(((g&0xffff)<<16)|(h&0xffff));}while(0) + +intip_addr_maskcmp(structip_addr*addr1,structip_addr*addr2, +structip_addr*mask); +intip_addr_cmp(structip_addr*addr1,structip_addr*addr2); +voidip_addr_set(structip_addr*dest,structip_addr*src); +intip_addr_isany(structip_addr*addr); + + +#ifIP_DEBUG +voidip_addr_debug_print(structip_addr*addr); +#endif/*IP_DEBUG*/ + +#endif/*__LWIP_IP_ADDR_H__*/ + + + + diff --git a/doc/xml/kern__descrip_8c.xml b/doc/xml/kern__descrip_8c.xml new file mode 100644 index 0000000..dbb0316 --- /dev/null +++ b/doc/xml/kern__descrip_8c.xml @@ -0,0 +1,444 @@ + + + + kern_descrip.c + sys/kern_descrip.h + ubixos/types.h + sys/sysproto.h + sys/thread.h + lib/kprintf.h + ubixos/endtask.h + lib/kmalloc.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int close + (struct thread *td, struct close_args *uap) + close + + struct thread * + td + + + struct close_args * + uap + + + + + + + + + close_args::fd + kfree + thread::o_files + thread::td_retval + + + int + int falloc + (struct thread *td, struct file **resultfp, int *resultfd) + falloc + + struct thread * + td + + + struct file ** + resultfp + + + int * + resultfd + + + + + + + + + kmalloc + thread::o_files + pipe + + + int + int fcntl + (struct thread *td, struct fcntl_args *uap) + fcntl + + struct thread * + td + + + struct fcntl_args * + uap + + + + + + + + + fcntl_args::arg + fcntl_args::cmd + file::f_flag + FCNTLFLAGS + fcntl_args::fd + FFLAGS + kprintf + O_ACCMODE + thread::o_files + thread::td_retval + + + int + int fstat + (struct thread *td, struct fstat_args *uap) + fstat + + struct thread * + td + + + struct fstat_args * + uap + + + + + + + + + _current + fstat_args::fd + thread::o_files + fstat_args::sb + stat::st_blksize + stat::st_mode + taskStruct::td + + + int + int getdtablesize + (struct thread *td, struct getdtablesize_args *uap) + getdtablesize + + struct thread * + td + + + struct getdtablesize_args * + uap + + + + + + + + + thread::td_retval + + + int + int ioctl + (struct thread *td, struct ioctl_args *uap) + ioctl + + struct thread * + td + + + struct ioctl_args * + uap + + + + +HACK + + + + thread::td_retval + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/kern_descrip.h> +#include<ubixos/types.h> +#include<sys/sysproto.h> +#include<sys/thread.h> +#include<lib/kprintf.h> +#include<ubixos/endtask.h> +#include<lib/kmalloc.h> +#include<assert.h> + +intfcntl(structthread*td,structfcntl_args*uap){ +structfile*fp=0x0; + +if(td->o_files[uap->fd]==0x0){ +kprintf("ERROR!!!\n"); +return(-1); +} + +fp=(structfile*)td->o_files[uap->fd]; +switch(uap->cmd){ +case3: +td->td_retval[0]=fp->f_flag; +break; +case4: +fp->f_flag&=~FCNTLFLAGS; +fp->f_flag|=FFLAGS(uap->arg&~O_ACCMODE)&FCNTLFLAGS; +break; +default: +kprintf("ERRORDEFAULT"); +} + +return(0x0); +} + +intfalloc(structthread*td,structfile**resultfp,int*resultfd){ +structfile*fp=0x0; +inti=0; + +fp=(structfile*)kmalloc(sizeof(structfile)); +/*First5DescriptorsAreReserved*/ +for(i=5;i<1024;i++){ +if(td->o_files[i]==0x0){ +td->o_files[i]=(uInt32)fp; +if(resultfd) +*resultfd=i; +if(resultfp) +*resultfp=fp; +break; +} +} +return(0x0); +} + +intclose(structthread*td,structclose_args*uap){ +kfree((void*)td->o_files[uap->fd]); +td->o_files[uap->fd]=0x0; +td->td_retval[0]=0x0; +return(0x0); +} + +/*HACK*/ +intgetdtablesize(structthread*td,structgetdtablesize_args*uap){ +td->td_retval[0]=20; +return(0); +} + +/*HACK*/ +intfstat(structthread*td,structfstat_args*uap){ +structfile*fp=0x0; + +fp=_current->td.o_files[uap->fd]; +uap->sb->st_mode=0x2180; +uap->sb->st_blksize=0x1000; +return(0x0); +} + +intioctl(structthread*td,structioctl_args*uap){ +td->td_retval[0]=0x0; +return(0x0); +} + + + +/*** +END +***/ + + + + + diff --git a/doc/xml/kern__descrip_8h.xml b/doc/xml/kern__descrip_8h.xml new file mode 100644 index 0000000..780b009 --- /dev/null +++ b/doc/xml/kern__descrip_8h.xml @@ -0,0 +1,834 @@ + + + + kern_descrip.h + sys/thread.h + sys/sysproto.h + src/sys/kernel/kern_descrip.c + src/sys/kernel/pipe.c + src/sys/kernel/sched.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + __timespec + file + stat + + + F_DUPFD + 0 + + + + + + + + + + F_GETFD + 1 + + + + + + + + + + F_GETFL + 3 + + + + + + + + + + F_GETLK + 7 + + + + + + + + + + F_GETOWN + 5 + + + + + + + + + + F_SETFD + 2 + + + + + + + + + + F_SETFL + 4 + + + + + + + + + + F_SETLK + 8 + + + + + + + + + + F_SETLKW + 9 + + + + + + + + + + F_SETOWN + 6 + + + + + + + + + + FAPPEND + O_APPEND + + + + + + + + + + FASYNC + O_ASYNC + + + + + + + + + + FCNTLFLAGS + (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FPOSIXSHM|O_DIRECT) + + + + + + + + fcntl + + + FFLAGS + oflags + ((oflags) + 1) + + + + + + + + fcntl + + + FFSYNC + O_FSYNC + + + + + + + + + + FHASLOCK + 0x4000 + + + + + + + + + + FNDELAY + O_NONBLOCK + + + + + + + + + + FNONBLOCK + O_NONBLOCK + + + + + + + + + + FPOSIXSHM + O_NOFOLLOW + + + + + + + + + + FREAD + 0x0001 + + + + + + + + pipe + + + FWRITE + 0x0002 + + + + + + + + pipe + + + O_ACCMODE + 0x0003 + + + + + + + + fcntl + + + O_APPEND + 0x0008 + + + + + + + + + + O_ASYNC + 0x0040 + + + + + + + + + + O_CREAT + 0x0200 + + + + + + + + + + O_DIRECT + 0x00010000 + + + + + + + + + + O_EXCL + 0x0800 + + + + + + + + + + O_EXLOCK + 0x0020 + + + + + + + + + + O_FSYNC + 0x0080 + + + + + + + + + + O_NDELAY + O_NONBLOCK + + + + + + + + + + O_NOFOLLOW + 0x0100 + + + + + + + + + + O_NONBLOCK + 0x0004 + + + + + + + + + + O_RDONLY + 0x0000 + + + + + + + + + + O_RDWR + 0x0002 + + + + + + + + + + O_SHLOCK + 0x0010 + + + + + + + + + + O_SYNC + 0x0080 + + + + + + + + + + O_TRUNC + 0x0400 + + + + + + + + + + O_WRONLY + 0x0001 + + + + + + + + + + OFLAGS + fflags + ((fflags) - 1) + + + + + + + + + + + + __mode_t + typedef __mode_t mode_t + + mode_t + + + + + + + + + + __nlink_t + typedef __nlink_t nlink_t + + nlink_t + + + + + + + + + + + + int + int close + (struct thread *, struct close_args *) + close + + struct thread * + + + struct close_args * + + + + + + + + + + + int + int falloc + (struct thread *, struct file **, int *) + falloc + + struct thread * + + + struct file ** + + + int * + + + + + + + + + kmalloc + thread::o_files + pipe + + + int + int fcntl + (struct thread *, struct fcntl_args *) + fcntl + + struct thread * + + + struct fcntl_args * + + + + + + + + + + + int + int fstat + (struct thread *, struct fstat_args *) + fstat + + struct thread * + + + struct fstat_args * + + + + + + + + + + + int + int getdtablesize + (struct thread *, struct getdtablesize_args *) + getdtablesize + + struct thread * + + + struct getdtablesize_args * + + + + + + + + + + + int + int ioctl + (struct thread *, struct ioctl_args *) + ioctl + + struct thread * + td + + + struct ioctl_args * + uap + + + + +HACK + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KERN_DESCRIP_H +#define_KERN_DESCRIP_H + +#include<sys/thread.h> +#include<sys/sysproto.h> + +typedef__mode_tmode_t; +typedef__nlink_tnlink_t; + +/*commandvalues*/ +#defineF_DUPFD0/*duplicatefiledescriptor*/ +#defineF_GETFD1/*getfiledescriptorflags*/ +#defineF_SETFD2/*setfiledescriptorflags*/ +#defineF_GETFL3/*getfilestatusflags*/ +#defineF_SETFL4/*setfilestatusflags*/ +#defineF_GETOWN5/*getSIGIO/SIGURGproc/pgrp*/ +#defineF_SETOWN6/*setSIGIO/SIGURGproc/pgrp*/ +#defineF_GETLK7/*getrecordlockinginformation*/ +#defineF_SETLK8/*setrecordlockinginformation*/ +#defineF_SETLKW9/*F_SETLK;waitifblocked*/ + +/*FlagValues*/ +#defineFREAD0x0001 +#defineFWRITE0x0002 +#defineO_NONBLOCK0x0004/*nodelay*/ +#defineO_APPEND0x0008/*setappendmode*/ +#defineO_SHLOCK0x0010/*openwithsharedfilelock*/ +#defineO_EXLOCK0x0020/*openwithexclusivefilelock*/ +#defineO_ASYNC0x0040/*signalpgrpwhendataready*/ +#defineO_FSYNC0x0080/*synchronouswrites*/ +#defineO_SYNC0x0080/*POSIXsynonymforO_FSYNC*/ +#defineO_NOFOLLOW0x0100/*don'tfollowsymlinks*/ +#defineO_CREAT0x0200/*createifnonexistent*/ +#defineO_TRUNC0x0400/*truncatetozerolength*/ +#defineO_EXCL0x0800/*errorifalreadyexists*/ +#defineO_DIRECT0x00010000 +#defineO_RDONLY0x0000/*openforreadingonly*/ +#defineO_WRONLY0x0001/*openforwritingonly*/ +#defineO_RDWR0x0002/*openforreadingandwriting*/ +#defineO_ACCMODE0x0003/*maskforabovemodes*/ + + +#defineFHASLOCK0x4000/*descriptorholdsadvisorylock*/ + + +/*FMAPPERS*/ +#defineFAPPENDO_APPEND/*kernel/compat*/ +#defineFASYNCO_ASYNC/*kernel/compat*/ +#defineFFSYNCO_FSYNC/*kernel*/ +#defineFNONBLOCKO_NONBLOCK/*kernel*/ +#defineFNDELAYO_NONBLOCK/*compat*/ +#defineO_NDELAYO_NONBLOCK/*compat*/ +#defineFPOSIXSHMO_NOFOLLOW + + + +#defineFCNTLFLAGS(FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FPOSIXSHM|O_DIRECT) + +#defineFFLAGS(oflags)((oflags)+1) +#defineOFLAGS(fflags)((fflags)-1) + +structfile{ +intf_flag; +}; + +/*TEMP*/ +struct__timespec{ +__time_ttv_sec;/*seconds*/ +longtv_nsec;/*andnanoseconds*/ +}; + +structstat{ +__dev_tst_dev;/*inode'sdevice*/ +ino_tst_ino;/*inode'snumber*/ +mode_tst_mode;/*inodeprotectionmode*/ +nlink_tst_nlink;/*numberofhardlinks*/ +uid_tst_uid;/*userIDofthefile'sowner*/ +gid_tst_gid;/*groupIDofthefile'sgroup*/ +__dev_tst_rdev;/*devicetype*/ +#if__BSD_VISIBLE +structtimespecst_atimespec;/*timeoflastaccess*/ +structtimespecst_mtimespec;/*timeoflastdatamodification*/ +structtimespecst_ctimespec;/*timeoflastfilestatuschange*/ +#else +time_tst_atime;/*timeoflastaccess*/ +long__st_atimensec;/*nsecoflastaccess*/ +time_tst_mtime;/*timeoflastdatamodification*/ +long__st_mtimensec;/*nsecoflastdatamodification*/ +time_tst_ctime;/*timeoflastfilestatuschange*/ +long__st_ctimensec;/*nsecoflastfilestatuschange*/ +#endif +off_tst_size;/*filesize,inbytes*/ +blkcnt_tst_blocks;/*blocksallocatedforfile*/ +blksize_tst_blksize;/*optimalblocksizeforI/O*/ +fflags_tst_flags;/*userdefinedflagsforfile*/ +__uint32_tst_gen;/*filegenerationnumber*/ +__int32_tst_lspare; +#if__BSD_VISIBLE +structtimespecst_birthtimespec;/*timeoffilecreation*/ +/* +*Explicitlypadst_birthtimespecto16bytessothatthesizeof +*structstatisbackwardscompatible.Weusebitfieldsinstead +*ofanarrayofcharssothatthisdoesn'trequireaC99compiler +*tocompileifthesizeofthepaddingis0.Weuse2bitfields +*tocoverupto64bitson32-bitmachines.Weassumethat +*CHAR_BITis8... +*/ +unsignedint:(8/2)*(16-(int)sizeof(structtimespec)); +unsignedint:(8/2)*(16-(int)sizeof(structtimespec)); +#else +time_tst_birthtime;/*timeoffilecreation*/ +longst_birthtimensec;/*nsecoffilecreation*/ +unsignedint:(8/2)*(16-(int)sizeof(struct__timespec)); +unsignedint:(8/2)*(16-(int)sizeof(struct__timespec)); +#endif +}; + + +intfcntl(structthread*,structfcntl_args*); +intclose(structthread*,structclose_args*); +intfalloc(structthread*,structfile**,int*); +intgetdtablesize(structthread*,structgetdtablesize_args*); +intfstat(structthread*,structfstat_args*); +intioctl(structthread*,structioctl_args*); + + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/kern__sig_8c.xml b/doc/xml/kern__sig_8c.xml new file mode 100644 index 0000000..6dfa008 --- /dev/null +++ b/doc/xml/kern__sig_8c.xml @@ -0,0 +1,267 @@ + + + + kern_sig.c + ubixos/types.h + sys/sysproto.h + sys/thread.h + sys/kern_sig.h + lib/kprintf.h + ubixos/endtask.h + lib/kmalloc.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int sigaction + (struct thread *td, register struct sigaction_args *uap) + sigaction + + struct thread * + td + + + register struct sigaction_args * + uap + + + + + + + + + + + int + int sigprocmask + (register struct thread *td, struct sigprocmask_args *uap) + sigprocmask + + register struct thread * + td + + + struct sigprocmask_args * + uap + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<sys/sysproto.h> +#include<sys/thread.h> +#include<sys/kern_sig.h> +#include<lib/kprintf.h> +#include<ubixos/endtask.h> +#include<lib/kmalloc.h> +#include<assert.h> + +intsigaction(structthread*td,registerstructsigaction_args*uap){ +return(0x0); +} + +intsigprocmask(registerstructthread*td,structsigprocmask_args*uap){ +return(0x0); +} + + + +/*** +END +***/ + + + + + diff --git a/doc/xml/kern__sig_8h.xml b/doc/xml/kern__sig_8h.xml new file mode 100644 index 0000000..54e73e6 --- /dev/null +++ b/doc/xml/kern__sig_8h.xml @@ -0,0 +1,150 @@ + + + + kern_sig.h + sys/thread.h + sys/sysproto.h + src/sys/kernel/kern_sig.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int sigaction + (struct thread *, struct sigaction_args *) + sigaction + + struct thread * + + + struct sigaction_args * + + + + + + + + + + + int + int sigprocmask + (struct thread *, struct sigprocmask_args *) + sigprocmask + + struct thread * + + + struct sigprocmask_args * + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KERN_SIG_H +#define_KERN_SIG_H + +#include<sys/thread.h> +#include<sys/sysproto.h> + +intsigaction(structthread*,structsigaction_args*); +intsigprocmask(structthread*,structsigprocmask_args*); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/kern__sysctl_8c.xml b/doc/xml/kern__sysctl_8c.xml new file mode 100644 index 0000000..f5c8173 --- /dev/null +++ b/doc/xml/kern__sysctl_8c.xml @@ -0,0 +1,622 @@ + + + + kern_sysctl.c + ubixos/types.h + sys/sysproto.h + sys/thread.h + sys/kern_sysctl.h + ubixos/endtask.h + ubixos/kpanic.h + lib/kprintf.h + lib/kmalloc.h + assert.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int __sysctl + (struct thread *td, struct sysctl_args *uap) + __sysctl + + struct thread * + td + + + struct sysctl_args * + uap + + + + + + + + + _current + ctls + endTask + taskStruct::id + K_PANIC + kprintf + memcpy + sysctl_args::name + sysctl_args::namelen + sysctl_args::newlen + sysctl_args::old + sysctl_args::oldlenp + sysctl_find + thread::td_retval + sysctl_entry::val_len + sysctl_entry::value + + + void + static void def_ctls + () + def_ctls + + + + + + + + CTL_MAXNAME + name + sysctl_add + sysctl_init + + + int + int sysctl_add + (int *name, int namelen, char *str_name, void *buf, int buf_size) + sysctl_add + + int * + name + + + int + namelen + + + char * + str_name + + + void * + buf + + + int + buf_size + + + + + + + + + sysctl_entry::children + sysctl_entry::id + kmalloc + kprintf + memcpy + sysctl_entry::name + sysctl_entry::next + sysctl_entry::prev + sprintf + sysctl_find + sysctl_entry::val_len + sysctl_entry::value + def_ctls + + + struct sysctl_entry * + static struct sysctl_entry * sysctl_find + (int *, int) + sysctl_find + + int * + name + + + int + namelen + + + + + + + + + sysctl_entry::children + ctls + sysctl_entry::id + sysctl_entry::next + __sysctl + sysctl_add + + + int + int sysctl_init + () + sysctl_init + + + + + + + + sysctl_entry::children + CTL_DEBUG + CTL_HW + CTL_KERN + CTL_MACHDEP + CTL_NET + CTL_P1003_1B + CTL_UBIX + CTL_UNSPEC + CTL_USER + CTL_VFS + CTL_VM + ctls + def_ctls + sysctl_entry::id + kmalloc + kprintf + sysctl_entry::name + sysctl_entry::next + sysctl_entry::prev + sprintf + + + + + struct sysctl_entry * + struct sysctl_entry* ctls + + ctls + 0x0 + + + + + + + + __sysctl + sysctl_find + sysctl_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<sys/sysproto.h> +#include<sys/thread.h> +#include<sys/kern_sysctl.h> +#include<ubixos/endtask.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<assert.h> +#include<string.h> + +staticstructsysctl_entry*ctls=0x0; + +staticstructsysctl_entry*sysctl_find(int*,int); + +/*Thisisacheatfornow*/ +staticvoiddef_ctls(){ +intname[CTL_MAXNAME],name_len; +uInt32page_val=0x1000; +name[0]=6; +name[1]=7; +name_len=2; +sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +/*ClockRate*/ +name[0]=1; +name[1]=12; +page_val=0x3E8; +sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +/*UserStack*/ +name[0]=1; +name[1]=33; +page_val=0xCBE8000; +sysctl_add(name,name_len,"page_size",&page_val,sizeof(uInt32)); +} + +intsysctl_init(){ +structsysctl_entry*tmpCtl=0x0; +if(ctls!=0x0){ +kprintf("sysctlalreadyInitialized\n"); +while(1); +} + +ctls=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +ctls->prev=0x0; +ctls->id=CTL_UNSPEC; +ctls->children=0x0; +sprintf(ctls->name,"unspec"); + +tmpCtl=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->prev=ctls; +tmpCtl->id=CTL_KERN; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"kern"); +ctls->next=tmpCtl; + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_VM; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"vm"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_VFS; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"vfs"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_NET; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"net"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_DEBUG; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"debug"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_HW; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"hw"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_MACHDEP; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"machdep"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_USER; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"user"); + +tmpCtl->next=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_P1003_1B; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"p1003_1b"); + +tmpCtl->next=(structsysctl_enctry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->next->prev=tmpCtl; +tmpCtl=tmpCtl->next; +tmpCtl->id=CTL_UBIX; +tmpCtl->children=0x0; +sprintf(tmpCtl->name,"ubix"); + +def_ctls(); + +return(0x0); +} + +int__sysctl(structthread*td,structsysctl_args*uap){ +structsysctl_entry*tmpCtl=0x0; +inti=0; + +if(ctls==0x0) +K_PANIC("sysctlnotinitialized"); + +if(uap->newlen<0){ +kprintf("ChangingNotsupportedyet.\n"); +endTask(_current->id); +} + +tmpCtl=sysctl_find(uap->name,uap->namelen); +if(tmpCtl==0x0){ +kprintf("InvalidCTL\n"); +for(i=0;i<uap->namelen;i++) +kprintf("(%i)",uap->name[i]); +kprintf("\n"); +endTask(_current->id); +} + +if((u_int32_t)uap->oldlenp<tmpCtl->val_len) +memcpy(uap->old,tmpCtl->value,(uInt32)uap->oldlenp); +else +memcpy(uap->old,tmpCtl->value,tmpCtl->val_len); + +td->td_retval[0]=0x0; + +return(0x0); +} + +staticstructsysctl_entry*sysctl_find(int*name,intnamelen){ +inti=0x0; +structsysctl_entry*tmpCtl=0x0; +structsysctl_entry*lCtl=ctls; + +/*LoopNameLen*/ +for(i=0;i<namelen;i++){ +for(tmpCtl=lCtl;tmpCtl!=0x0;tmpCtl=tmpCtl->next){ +//kprintf("ctlName:[%s],ctlId;[%i]\n",tmpCtl->name,tmpCtl->id); +if(tmpCtl->id==name[i]){ +if((i+1)==namelen){ +return(tmpCtl); +} +lCtl=tmpCtl->children; +break; +} +} +} +return(0x0); +} + +intsysctl_add(int*name,intnamelen,char*str_name,void*buf,intbuf_size){ +structsysctl_entry*tmpCtl=0x0; +structsysctl_entry*newCtl=0x0; + +/*Checkifitexists*/ +tmpCtl=sysctl_find(name,namelen); +if(tmpCtl!=0x0){ +kprintf("NodeExists!\n"); +while(1); +} + +/*GetParentNode*/ +tmpCtl=sysctl_find(name,namelen-1); +if(tmpCtl==0x0){ +kprintf("ParentNodeNonExistant\n"); +return(-1); +} +if(tmpCtl->children==0x0){ +tmpCtl->children=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +tmpCtl->children->children=0x0; +tmpCtl->children->prev=0x0; +tmpCtl->children->next=0x0; +tmpCtl->children->id=name[namelen-1]; +sprintf(tmpCtl->children->name,str_name); +tmpCtl->children->value=(void*)kmalloc(buf_size); +memcpy(tmpCtl->children->value,buf,buf_size); +tmpCtl->children->val_len=buf_size; +} +else{ +newCtl=(structsysctl_entry*)kmalloc(sizeof(structsysctl_entry)); +newCtl->prev=0x0; +newCtl->next=tmpCtl->children; +newCtl->children=0x0; +newCtl->id=name[namelen-1]; +sprintf(newCtl->name,str_name); +newCtl->value=(void*)kmalloc(buf_size); +memcpy(newCtl->value,buf,buf_size); +newCtl->val_len=buf_size; +tmpCtl->children->prev=newCtl; +tmpCtl->children=newCtl; +} + +return(0x0); +} + + +/*** +END +***/ + + + + diff --git a/doc/xml/kern__sysctl_8h.xml b/doc/xml/kern__sysctl_8h.xml new file mode 100644 index 0000000..9ec48ab --- /dev/null +++ b/doc/xml/kern__sysctl_8h.xml @@ -0,0 +1,469 @@ + + + + kern_sysctl.h + sys/sysproto.h + sys/thread.h + src/sys/include/ubixos/init.h + src/sys/kernel/kern_sysctl.c + src/sys/vmm/copyvirtualspace.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sysctl_entry + + + CTL_DEBUG + 5 + + + + + + + + sysctl_init + + + CTL_HW + 6 + + + + + + + + sysctl_init + + + CTL_KERN + 1 + + + + + + + + sysctl_init + + + CTL_KERN_OPENFILES + 1 + + + + + + + + + + CTL_MACHDEP + 7 + + + + + + + + sysctl_init + + + CTL_MAXNAME + 24 + + + + + + + + def_ctls + + + CTL_NET + 4 + + + + + + + + sysctl_init + + + CTL_P1003_1B + 9 + + + + + + + + sysctl_init + + + CTL_UBIX + 10 + + + + + + + + sysctl_init + + + CTL_UNSPEC + 0 + + + + + + + + sysctl_init + + + CTL_USER + 8 + + + + + + + + sysctl_init + + + CTL_VFS + 3 + + + + + + + + sysctl_init + + + CTL_VM + 2 + + + + + + + + sysctl_init + + + EINVAL + -1 + + + + + + + + + + + + int + int kern_sysctl + (int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen, size_t *retval, int flags) + kern_sysctl + + int * + name + + + u_int + namelen + + + void * + old + + + size_t * + oldlenp + + + void * + new + + + size_t + newlen + + + size_t * + retval + + + int + flags + + + + + + + + + + + int + int sysctl_add + (int *, int, char *, void *, int) + sysctl_add + + int * + + + int + + + char * + + + void * + + + int + + + + + + + + + sysctl_entry::children + sysctl_entry::id + kmalloc + kprintf + memcpy + sysctl_entry::name + sysctl_entry::next + sysctl_entry::prev + sprintf + sysctl_find + sysctl_entry::val_len + sysctl_entry::value + def_ctls + + + int + int sysctl_init + () + sysctl_init + + + + + + + + sysctl_entry::children + CTL_DEBUG + CTL_HW + CTL_KERN + CTL_MACHDEP + CTL_NET + CTL_P1003_1B + CTL_UBIX + CTL_UNSPEC + CTL_USER + CTL_VFS + CTL_VM + ctls + def_ctls + sysctl_entry::id + kmalloc + kprintf + sysctl_entry::name + sysctl_entry::next + sysctl_entry::prev + sprintf + + + + + bool + bool sysctl_enabled + + sysctl_enabled + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KERNSYSCTL_H +#define_KERNSYSCTL_H + +#include<sys/sysproto.h> +#include<sys/thread.h> + +#defineCTL_MAXNAME24/*largestnumberofcomponentssupported*/ + +/* +*Top-levelidentifiers +*/ +#defineCTL_UNSPEC0/*unused*/ +#defineCTL_KERN1/*"highkernel":proc,limits*/ +#defineCTL_VM2/*virtualmemory*/ +#defineCTL_VFS3/*filesystem,mounttypeisnext*/ +#defineCTL_NET4/*network,seesocket.h*/ +#defineCTL_DEBUG5/*debuggingparameters*/ +#defineCTL_HW6/*genericcpu/io*/ +#defineCTL_MACHDEP7/*machinedependent*/ +#defineCTL_USER8/*user-level*/ +#defineCTL_P1003_1B9/*POSIX1003.1B*/ +#defineCTL_UBIX10/*ubixos*/ + +#defineCTL_KERN_OPENFILES1/*kernelopenfiles*/ + +#defineEINVAL-1/**/ + +structsysctl_entry{ +structsysctl_entry*prev; +structsysctl_entry*next; +structsysctl_entry*children; +charname[32]; +intid; +void*value; +intval_len; +}; + +intkern_sysctl(int*name,u_intnamelen,void*old,size_t*oldlenp,void*new,size_tnewlen,size_t*retval,intflags); +intsysctl_add(int*,int,char*,void*,int); +intsysctl_init(); + +externboolsysctl_enabled; +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/kmalloc_8c.xml b/doc/xml/kmalloc_8c.xml new file mode 100644 index 0000000..55feee1 --- /dev/null +++ b/doc/xml/kmalloc_8c.xml @@ -0,0 +1,1025 @@ + + + + kmalloc.c + lib/kmalloc.h + lib/kprintf.h + ubixos/kpanic.h + ubixos/sched.h + ubixos/spinlock.h + vmm/vmm.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + static void* getEmptyDesc + () + getEmptyDesc + + + + + + + + emptyDescSpinLock + emptyKernDesc + kpanic + memset + memDescriptor::next + memDescriptor::prev + spinLock + spinUnlock + vmm_getFreeMallocPage + x1 + kmalloc + + + int + static int insertFreeDesc + (struct memDescriptor *freeDesc) + insertFreeDesc + + struct memDescriptor * + freeDesc + + + + + + + + + assert + freeKernDesc + kpanic + memDescriptor::limit + memDescriptor::next + memDescriptor::prev + kfree + kmalloc + + + void + void kfree + (void *baseAddr) + kfree + + void * + baseAddr + + + + + + + + + assert + memDescriptor::baseAddr + insertFreeDesc + kprintf + memDescriptor::limit + mallocSpinLock + memset + memDescriptor::next + memDescriptor::prev + spinLock + spinUnlock + usedKernDesc + close + device_remove + execFile + fclose + fopen + kmod_load + ldEnable + mpi_destroyMbox + mpi_fetchMessage + ne2kFreeBuffer + operator delete + operator delete[] + sys_mbox_free + sys_sem_free_ + sys_write + sysExec + systemTask + ubixfs_cacheDelete + ubixFSmkDir + ubthread_cond_destroy + ubthread_mutex_destroy + vfs_mount + writeUbixFS + + + void * + void* kmalloc + (uInt32 len) + kmalloc + + uInt32 + len + + + + + + + + + assert + memDescriptor::baseAddr + freeKernDesc + getEmptyDesc + insertFreeDesc + kprintf + memDescriptor::limit + MALLOC_ALIGN + mallocSpinLock + memDescriptor::next + memDescriptor::prev + spinLock + spinUnlock + usedKernDesc + addDirEntry + biosCall + devfs_initialize + devfs_makeNode + device_add + execFile + falloc + fdc_init + fopen + initHardDisk + initLNC + kmain + kmod_add + kmod_load + ldEnable + lncAttach + low_level_init + mpi_createMbox + mpi_postMessage + mpi_spam + ne2k_init + ne2kAllocBuffer + openFileUbixFS + operator new + operator new[] + sched_init + schedNewTask + shell_thread + sys_mbox_new + sys_sem_new_ + sys_thread_new + sys_write + sysctl_add + sysctl_init + sysExec + tty_init + ubixfs_cacheNew + ubixfs_initialize + ubixFSLoadDir + ubixFSmkDir + ubixFSUnlink + ubthread_cond_init + ubthread_create + ubthread_mutex_init + ufs_openFile + vfs_mount + vfsRegisterFS + vitals_init + writeUbixFS + + + void + static void mergeMemBlocks + () + mergeMemBlocks + + + + + + + + memDescriptor::baseAddr + emptyKernDesc + freeKernDesc + memDescriptor::limit + memDescriptor::next + memDescriptor::prev + + + + + spinLock_t + spinLock_t emptyDescSpinLock + + emptyDescSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + getEmptyDesc + + + struct memDescriptor * + struct memDescriptor* emptyKernDesc + + emptyKernDesc + 0x0 + + + + + + + + getEmptyDesc + mergeMemBlocks + + + struct memDescriptor * + struct memDescriptor* freeKernDesc + + freeKernDesc + 0x0 + + + + + + + + insertFreeDesc + kmalloc + mergeMemBlocks + + + spinLock_t + spinLock_t mallocSpinLock + + mallocSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + kfree + kmalloc + + + struct memDescriptor * + struct memDescriptor* usedKernDesc + + usedKernDesc + 0x0 + + + + + + + + kfree + kmalloc + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<ubixos/kpanic.h> +#include<ubixos/sched.h> +#include<ubixos/spinlock.h> +#include<vmm/vmm.h> +#include<string.h> +#include<assert.h> + +/* +Setupthreedescriptortables: + +kernDesc-Theinusedescriptortable +freeKernDesc-Thefreedescriptortable(descriptorswithmemorybackingjustnotinuse) +emptyKernDesc-Theemptydescriptortable(descriptorswithoutamemorybacking) + +*/ +staticstructmemDescriptor*usedKernDesc=0x0; +staticstructmemDescriptor*freeKernDesc=0x0; +staticstructmemDescriptor*emptyKernDesc=0x0; + +/* +Setupourspinlockssowedonotcorruptlinkedlistsifwehavere-entrancy +*/ +staticspinLock_tmallocSpinLock=SPIN_LOCK_INITIALIZER; +staticspinLock_temptyDescSpinLock=SPIN_LOCK_INITIALIZER; + +/************************************************************************ + +Function:void*getEmptyDesc() +Description:FindAnEmptyDescriptor + +Notes: + +02/17/03-IsThisEfficient? + +************************************************************************/ +staticvoid*getEmptyDesc(){ +inti=0x0; +structmemDescriptor*tmpDesc=0x0; + +spinLock(&emptyDescSpinLock); + +tmpDesc=emptyKernDesc; + +if(tmpDesc!=0x0){ +emptyKernDesc=tmpDesc->next; +if(emptyKernDesc!=0x0) +emptyKernDesc->prev=0x0; + + +tmpDesc->next=0x0; +tmpDesc->prev=0x0; +spinUnlock(&emptyDescSpinLock); +return(tmpDesc); +} +if((emptyKernDesc=(structmemDescriptor*)vmm_getFreeMallocPage(4))==0x0) +kpanic("Error:vmmGetFreeKernelPagereturnedNULL\n"); + +/*zerooutthememorysoweknowthereisnogarbage*/ +memset(emptyKernDesc,0x0,0x4000); + +emptyKernDesc[0].next=&emptyKernDesc[1]; + +for(i=0x1;i<((0x4000/sizeof(structmemDescriptor)));i++){ +if(i+1<(0x4000/sizeof(structmemDescriptor))) +emptyKernDesc[i].next=&emptyKernDesc[i+1]; +else +emptyKernDesc[i].next=0x0; +emptyKernDesc[i].prev=&emptyKernDesc[i-1]; +} + +tmpDesc=&emptyKernDesc[0]; + +emptyKernDesc=tmpDesc->next; +emptyKernDesc->prev=0x0; +tmpDesc->next=0x0; +tmpDesc->prev=0x0; +spinUnlock(&emptyDescSpinLock); +return(tmpDesc); +} + +/************************************************************************ + +Function:voidinsertFreeDesc(structmemDescriptor*freeDesc) +Description:ThisFunctionInsertsAFreeDescriptorOnTheListWhichIs +KeptInSizeOrder + +Notes: + +02/17/03-ThisWasInspiredByTCA'sGreatWisdom- +"[20:20:59]<TCA>Youshouldjustinsertitinorder" + +************************************************************************/ +staticintinsertFreeDesc(structmemDescriptor*freeDesc){ +structmemDescriptor*tmpDesc=0x0; +assert(freeDesc); + +if(freeDesc->limit<=0x0) +kpanic("InsertingDescriptorwithnolimit\n"); + +if(freeKernDesc!=0x0){ + +#if0 +freeDesc->next=freeKernDesc; +freeDesc->prev=0x0; +freeKernDesc->prev=freeDesc; +freeKernDesc=freeDesc; +#endif + +for(tmpDesc=freeKernDesc;tmpDesc!=0x0;tmpDesc=tmpDesc->next){ +if(freeDesc->limit<=tmpDesc->limit){ + +freeDesc->prev=tmpDesc->prev; +if(tmpDesc->prev!=0x0) +tmpDesc->prev->next=freeDesc; + + +tmpDesc->prev=freeDesc; +freeDesc->next=tmpDesc; + +if(tmpDesc==freeKernDesc) +freeKernDesc=freeDesc; +return(0x0); +} +if(tmpDesc->next==0x0){ +tmpDesc->next=freeDesc; +freeDesc->prev=tmpDesc; +freeDesc->next=0x0; +return(0x0); +} +} +kpanic("didntInsert\n"); +return(0x0); +} +else{ +freeDesc->prev=0x0; +freeDesc->next=0x0; +freeKernDesc=freeDesc; +return(0x0); +} + +return(0x1); +} + +/************************************************************************ + +Function:voidmergeMemBlocks() +Description:ThisFunctionWillMergeFreeBlocksAndFreePages + +Notes: + +03/05/03-WeHaveAProblemItSeemsTheFirstBlockIsLimit0x0 + +************************************************************************/ +staticvoidmergeMemBlocks(){ +structmemDescriptor*tmpDesc1=0x0; +structmemDescriptor*tmpDesc2=0x0; +uInt32baseAddr=0x0; + +return; + +//LoopTheFreeDescriptorsSeeIfWeCanMergeThem +mergeStart: +for(tmpDesc1=freeKernDesc;tmpDesc1!=0x0;tmpDesc1=tmpDesc1->next){ +/* +CompareTheBaseAddrWithTheOtherDescriptorsIfYouFindTheOne +ThatYouAreLookingForLetsMergeThem +*/ +if(tmpDesc1->limit!=0x0){ +baseAddr=(uInt32)tmpDesc1->baseAddr+(uInt32)tmpDesc1->limit; +for(tmpDesc2=freeKernDesc;tmpDesc2;tmpDesc2=tmpDesc2->next){ +if((uInt32)tmpDesc2->baseAddr==baseAddr){ +tmpDesc1->limit+=tmpDesc2->limit; +tmpDesc2->baseAddr=0x0; +tmpDesc2->limit=0x0; +if(tmpDesc2->prev){ +tmpDesc2->prev->next=tmpDesc2->next; +} +if(tmpDesc2->next){ +tmpDesc2->next->prev=tmpDesc2->prev; +} +tmpDesc2->prev=0x0; +tmpDesc2->next=emptyKernDesc; +emptyKernDesc->prev=tmpDesc2; +emptyKernDesc=tmpDesc2; +if(tmpDesc1->prev){ +tmpDesc1->prev->next=tmpDesc1->next; +} +if(tmpDesc1->next){ +tmpDesc1->next->prev=tmpDesc1->prev; +} +tmpDesc1->prev=0x0; +tmpDesc1->next=0x0; +kprintf("mergememBlocks:[%i]\n",tmpDesc1->limit); +insertFreeDesc(tmpDesc1); +//tmpDesc1=freeKernDesc; +gotomergeStart; +break; +} +} +} +} +return; +} + + +/************************************************************************ + +Function:void*kmalloc(uInt32len) +Description:AllocateKernelMemory + +Notes: + +02/17/03-DoIStillNeedToPassInThePid? + +************************************************************************/ +void*kmalloc(uInt32len){ +structmemDescriptor*tmpDesc1=0x0; +structmemDescriptor*tmpDesc2=0x0; +char*buf=0x0; +inti=0x0; +uInt16pages=0x0; + + +spinLock(&mallocSpinLock); + +len=MALLOC_ALIGN(len); + + +if(len==0x0){ +spinUnlock(&mallocSpinLock); +kprintf("kmalloc:len=0!\n"); +return(0x0); +} +for(tmpDesc1=freeKernDesc;tmpDesc1!=0x0;tmpDesc1=tmpDesc1->next){ +assert(tmpDesc1); +if(tmpDesc1->limit>=len){ +if(tmpDesc1->prev!=0x0) +tmpDesc1->prev->next=tmpDesc1->next; +if(tmpDesc1->next!=0x0) +tmpDesc1->next->prev=tmpDesc1->prev; + +if(tmpDesc1==freeKernDesc) +freeKernDesc=tmpDesc1->next; + +tmpDesc1->prev=0x0; +tmpDesc1->next=usedKernDesc; +if(usedKernDesc!=0x0) +usedKernDesc->prev=tmpDesc1; +usedKernDesc=tmpDesc1; +if(tmpDesc1->limit>len){ +tmpDesc2=getEmptyDesc(); +assert(tmpDesc2); +tmpDesc2->limit=tmpDesc1->limit-len; +tmpDesc1->limit=len; +tmpDesc2->baseAddr=tmpDesc1->baseAddr+len; +tmpDesc2->next=0x0; +tmpDesc2->prev=0x0; +insertFreeDesc(tmpDesc2); +} +buf=(char*)tmpDesc1->baseAddr; +for(i=0;i<tmpDesc1->limit;i++){ +(char)buf[i]=(char)0x0; +} +spinUnlock(&mallocSpinLock); +//kprintf("m1[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); +assert(tmpDesc1->baseAddr); +return(tmpDesc1->baseAddr); +} +} +tmpDesc1=getEmptyDesc(); +//kprintf("noemptydesc\n"); +if(tmpDesc1!=0x0){ +pages=((len+4095)/4096); +tmpDesc1->baseAddr=(structmemDescriptor*)vmm_getFreeMallocPage(pages); +tmpDesc1->limit=len; +tmpDesc1->next=usedKernDesc; +tmpDesc1->prev=0x0; +if(usedKernDesc!=0x0) +usedKernDesc->prev=tmpDesc1; +usedKernDesc=tmpDesc1; + +if(((pages*4096)-len)>0x0){ +tmpDesc2=getEmptyDesc(); +assert(tmpDesc2); +tmpDesc2->baseAddr=tmpDesc1->baseAddr+tmpDesc1->limit; +tmpDesc2->limit=((pages*4096)-len); +tmpDesc2->prev=0x0; +tmpDesc2->next=0x0; +if(tmpDesc2->limit<=0x0) +kprintf("kmalloc-2tmpDesc2:[%i]\n",tmpDesc2->limit); +insertFreeDesc(tmpDesc2); +} + +buf=(char*)tmpDesc1->baseAddr; +for(i=0;i<tmpDesc1->limit;i++){ +(char)buf[i]=(char)0x0; +} +spinUnlock(&mallocSpinLock); +//kprintf("baseAddr2[0x%X:0x%X]",tmpDesc1,tmpDesc1->baseAddr); +//kprintf("m2[%i:%i:0x%X]",tmpDesc1->limit,len,tmpDesc1->baseAddr); +assert(tmpDesc1->baseAddr); +return(tmpDesc1->baseAddr); +} +//ReturnNullIfUnableToMalloc +spinUnlock(&mallocSpinLock); +//kprintf("baseAddr3[0x0]"); +return(0x0); +} + +/************************************************************************ + +Function:voidkfree(void*baseAddr) +Description:ThisWillFindTheDescriptorAndFreeIt + +Notes: + +02/17/03-IneedToMakeItJoinDescriptors + +************************************************************************/ +voidkfree(void*baseAddr){ +structmemDescriptor*tmpDesc=0x0; + +if(baseAddr==0x0)return; +assert(baseAddr); + +assert(usedKernDesc); +spinLock(&mallocSpinLock); + +for(tmpDesc=usedKernDesc;tmpDesc!=0x0;tmpDesc=tmpDesc->next){ + +if(tmpDesc->baseAddr==baseAddr){ +memset(tmpDesc->baseAddr,0xBE,tmpDesc->limit); + +if(usedKernDesc==tmpDesc) +usedKernDesc=tmpDesc->next; + +if(tmpDesc->prev!=0x0) +tmpDesc->prev->next=tmpDesc->next; + +if(tmpDesc->next!=0x0) +tmpDesc->next->prev=tmpDesc->prev; + + +tmpDesc->next=0x0; +tmpDesc->prev=0x0; + +if(tmpDesc->limit<=0x0) +kprintf("kfreetmpDesc1:[%i]\n",tmpDesc->limit); +//kprintf("{0x%X}",tmpDesc->baseAddr); +insertFreeDesc(tmpDesc); + +//mergeMemBlocks(); +spinUnlock(&mallocSpinLock); +return; +} +} +spinUnlock(&mallocSpinLock); +kprintf("Kernel:ErrorFreeingDescriptor![0x%X]\n",(uInt32)baseAddr); +return; +} + +/*** +$Log$ +Revision1.32006/12/0514:10:21reddawg +WorkignDistro + +Revision1.22006/10/0615:48:01reddawg +StartingtomakeubixosworkwithUFS2 + +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.42006/06/0112:42:09reddawg +Gettingbacktothebasics + +Revision1.32006/06/0103:58:33reddawg +wonderingaboutthisstuffhere + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:11reddawg +nomessage + +Revision1.352005/08/0418:32:59fsdfs + +addederrorreporting + +Revision1.342005/08/0418:23:41reddawg +BUG:Asserthasissuesthatmustbelookedinto + +Revision1.332005/08/0417:11:11fsdfs + +---------------------------------------- + +------------------- + +Revision1.322004/09/2821:50:04reddawg +kmalloc:nowwhenwekfreememoryisfilledwith0xBEsoitiseasytodebugifwecontinuetousefree'dmemory + +Revision1.312004/09/1916:17:25reddawg +fixedmemoryleakwenowlosenomemory.... + +Revision1.302004/09/1421:51:24reddawg +Debuginfo + +Revision1.292004/09/1123:39:31reddawg +oktimeforbed + +Revision1.282004/09/1123:21:26reddawg +runnowdoyougetfegfaultswithBB? + +Revision1.272004/09/1122:49:28reddawg +patlookatlines276-285doesthemathseemright? + +Revision1.262004/09/1122:33:13reddawg +minorchanges + +Revision1.252004/09/1112:11:11reddawg +CleaninguptheVFSmorechangestofollow... + +Revision1.242004/09/0823:19:58reddawg +hmm + +Revision1.232004/09/0615:13:25reddawg +LastcommitbeforeFreeBSD6.0 + +Revision1.222004/08/2622:51:18reddawg +TCAtouchedme:(ithinkhelikesmen.... + + +sched.h:kTask_taddedparentPid +endtask.c:fixedtermbacktoparentPid +exec.c:cleanedwarnings +fork.c:fixedtermtochildPid +sched.c:cleanupfordeadtasks +systemtask.c:cleanupdeadtasks +kmalloc.c:cleanedupwarnings +udp.c:cleanedupwarnings +bot.c:cleanedupwarnings +shell.c:cleanedupwarnings +tcpdump.c:tookadump +hd.c:cleanedupwarnings +ubixfs.c:stoppedprningdebuginfo + +Revision1.212004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.202004/07/2800:17:05reddawg +Major: +Disconnectedpage0x0fromthesystem...Unfortunatelythisbrokemanythings +allofwhichhavebeenfixed.ThiswasgoodbecausenothingdeferencesNULL +anymore. + +Thingsaffected: +malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file + +Revision1.192004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.182004/07/2616:52:45reddawg +herewego + +Revision1.172004/07/2423:04:44reddawg +Changes...markletmeknowifyoufaultatpid185whenyoutypestress + +Revision1.162004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.152004/07/2023:20:50reddawg +kmalloc:forgottoremoveanassert + +Revision1.142004/07/2023:18:11reddawg +Mademallocalittlemorerobustbutwehaveaseriousmemoryleaksomewhere + +Revision1.132004/07/2022:29:55reddawg +assert:remadeassert + +Revision1.122004/07/2018:58:24reddawg +Fewfixes + +Revision1.112004/07/1805:24:15reddawg +Fixens + +Revision1.102004/07/1718:00:47reddawg +kmalloc:addedassert() + +Revision1.92004/07/1715:54:52reddawg +kmalloc:addedassert() +bioscall:fixedsomepotentialproblembynotmaking16bitcode +paging:addedassert() + +Revision1.82004/06/1714:50:32reddawg +kmalloc:convertedsomevariablestostatic + +Revision1.72004/06/1702:54:54flameshadow +chg:fixedcast + +Revision1.62004/05/2611:56:51reddawg +kmalloc:fixedmemrgeMemBlockshopefullyitwillpreventfuturesegfaultissues +bynothavinganymoreoverlappingblocks + +Revision1.52004/05/2514:01:14reddawg +ImplimentedBetterSpinlockingNoMoreIssuesWithKMALLOCwhichactually +wascausingbizzareproblems + +END +***/ + + + + + diff --git a/doc/xml/kmalloc_8h.xml b/doc/xml/kmalloc_8h.xml new file mode 100644 index 0000000..5987388 --- /dev/null +++ b/doc/xml/kmalloc_8h.xml @@ -0,0 +1,597 @@ + + + + kmalloc.h + ubixos/types.h + src/sys/devfs/devfs.c + src/sys/init/main.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/ne2k.c + src/sys/kernel/bioscall.c + src/sys/kernel/exec.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/ld.c + src/sys/kernel/sched.c + src/sys/kernel/syscall.c + src/sys/kernel/systemtask.c + src/sys/kernel/tty.c + src/sys/kernel/ubthread.c + src/sys/kernel/vitals.c + src/sys/kmods/kmod.c + src/sys/lib/kmalloc.c + src/sys/lib/libcpp.cc + src/sys/mpi/system.c + src/sys/net/api/tcpip.c + src/sys/net/net/bot.c + src/sys/net/net/init.c + src/sys/net/net/shell.c + src/sys/net/net/sys_arch.c + src/sys/net/netif/ethernetif.c + src/sys/pci/hd.c + src/sys/pci/lnc.c + src/sys/sys/device.c + src/sys/sys/idt.c + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/directory.c + src/sys/ubixfs/ubixfs.c + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + src/sys/vfs/file.c + src/sys/vfs/mount.c + src/sys/vfs/vfs.c + src/sys/vmm/paging.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + memDescriptor + + + MALLOC_ALIGN + size + (size + ((((size) % (MALLOC_ALIGN_SIZE)) == 0)? 0 : ((MALLOC_ALIGN_SIZE) - ((size) % (MALLOC_ALIGN_SIZE))))) + + + + + + + + kmalloc + + + MALLOC_ALIGN_SIZE + 32 + + + + + + + + + + sysID + -2 + + + + + + + + vmm_getFreeMallocPage + vmm_pagingInit + vmmFindFreePage + + + + + void + void kfree + (void *baseAddr) + kfree + + void * + baseAddr + + + + + + + + + assert + memDescriptor::baseAddr + insertFreeDesc + kprintf + memDescriptor::limit + mallocSpinLock + memset + memDescriptor::next + memDescriptor::prev + spinLock + spinUnlock + usedKernDesc + close + device_remove + execFile + fclose + fopen + kmod_load + ldEnable + mpi_destroyMbox + mpi_fetchMessage + ne2kFreeBuffer + operator delete + operator delete[] + sys_mbox_free + sys_sem_free_ + sys_write + sysExec + systemTask + ubixfs_cacheDelete + ubixFSmkDir + ubthread_cond_destroy + ubthread_mutex_destroy + vfs_mount + writeUbixFS + + + void * + void* kmalloc + (uInt32 len) + kmalloc + + uInt32 + len + + + + + + + + + assert + memDescriptor::baseAddr + freeKernDesc + getEmptyDesc + insertFreeDesc + kprintf + memDescriptor::limit + MALLOC_ALIGN + mallocSpinLock + memDescriptor::next + memDescriptor::prev + spinLock + spinUnlock + usedKernDesc + addDirEntry + biosCall + devfs_initialize + devfs_makeNode + device_add + execFile + falloc + fdc_init + fopen + initHardDisk + initLNC + kmain + kmod_add + kmod_load + ldEnable + lncAttach + low_level_init + mpi_createMbox + mpi_postMessage + mpi_spam + ne2k_init + ne2kAllocBuffer + openFileUbixFS + operator new + operator new[] + sched_init + schedNewTask + shell_thread + sys_mbox_new + sys_sem_new_ + sys_thread_new + sys_write + sysctl_add + sysctl_init + sysExec + tty_init + ubixfs_cacheNew + ubixfs_initialize + ubixFSLoadDir + ubixFSmkDir + ubixFSUnlink + ubthread_cond_init + ubthread_create + ubthread_mutex_init + ufs_openFile + vfs_mount + vfsRegisterFS + vitals_init + writeUbixFS + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KMALLOC_H +#define_KMALLOC_H + +#include<ubixos/types.h> + +#ifdef__cplusplus +extern"C"{ +#endif + +#definesysID-2 +#defineMALLOC_ALIGN_SIZE32 +#defineMALLOC_ALIGN(size)(size+((((size)%(MALLOC_ALIGN_SIZE))==0)?0:((MALLOC_ALIGN_SIZE)-((size)%(MALLOC_ALIGN_SIZE))))) + +structmemDescriptor{ +structmemDescriptor*prev;//4 +structmemDescriptor*next;//4 +void*baseAddr;//4 +uInt32limit;//4 +/*uInt8status;//1*/ +/*charreserved[11];//11*/ +}; + +voidkfree(void*baseAddr); +void*kmalloc(uInt32len); + +#ifdef__cplusplus +} +#endif + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.72004/09/1420:57:01reddawg +Bugfixes:macroproblemoveroptamultiply + +Revision1.62004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.52004/07/1902:08:27reddawg +Cleanedouttherestofdebugingcodealsotemporarilydisabledtheipstacktoimproveboottime + +Revision1.42004/07/1805:24:15reddawg +Fixens + +Revision1.32004/05/2115:00:27reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/kmod_8c.xml b/doc/xml/kmod_8c.xml new file mode 100644 index 0000000..bac4e00 --- /dev/null +++ b/doc/xml/kmod_8c.xml @@ -0,0 +1,533 @@ + + + + kmod.c + ubixos/types.h + ubixos/kmod.h + ubixos/sched.h + ubixos/elf.h + ubixos/kpanic.h + ubixos/lists.h + ubixos/spinlock.h + lib/kprintf.h + lib/kmalloc.h + vfs/vfs.h + vmm/vmm.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uInt32 + uInt32 kmod_add + (const char *kmod_file, const char *name) + kmod_add + + const char * + kmod_file + + + const char * + name + + + + + + + + + CreateItem + _item_t::data + InitializeList + InsertItemAtFront + kmalloc + kmod_load + kprintf + List + NULL + + + uInt32 + uInt32 kmod_load + (const char *kmod_file) + kmod_load + + const char * + kmod_file + + + + + + + + + _current + assert + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx + fclose + fopen + fread + fseek + taskStruct::id + kfree + kmalloc + 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 + strcmp + vmm_remapPage + vmmFindFreePage + x1000 + kmod_add + + + + + List_t * + List_t* List + + List + 0x0 + + + + + + + + kmod_add + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<ubixos/kmod.h> +#include<ubixos/sched.h> +#include<ubixos/elf.h> +#include<ubixos/kpanic.h> +#include<ubixos/lists.h> +#include<ubixos/spinlock.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<vfs/vfs.h> +#include<vmm/vmm.h> +#include<string.h> +#include<assert.h> + +List_t*List=0x0; + +uInt32kmod_add(constchar*kmod_file,constchar*name) +{ +uInt32addr=0x0; +Item_t*tmp; +kmod_t*kmods; + + +addr=kmod_load(kmod_file); +if(addr==0x0) +return0x0; + +if(List==0x0) +{ +List=InitializeList(); +} + +tmp=CreateItem(); +InsertItemAtFront(List,tmp); +kmods=kmalloc(sizeof*kmods); +tmp->data=kmods; +if(kmods==NULL) +{ +kprintf("kmod_add:unabletoallocatememory!\n"); +return0x0; +} + +return0x0; +} + +uInt32kmod_load(constchar*kmod_file){ +inti=0x0; +intx=0x0; +intrel=0x0; +intsym=0x0; +char*newLoc=0x0; +char*shStr=0x0; +char*dynStr=0x0; +uInt32*reMap=0x0; +fileDescriptor*kmod_fd=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +elfSectionHeader*sectionHeader=0x0; +elfDynSym*relSymTab=0x0; +elfPltInfo*elfRel=0x0; + +/*Openkernelmodule*/ +kmod_fd=fopen(kmod_file,"rb"); +if(kmod_fd==0x0){ +kprintf("Cannotopen%s\n",kmod_file); +return0x0; +} + +/*loadmoduleheader*/ +fseek(kmod_fd,0x0,0x0); +binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)); +if(binaryHeader==0x0) +{ +kprintf("kmod:outofmemory\n"); +return0x0; +} + +assert(binaryHeader); +fread(binaryHeader,sizeof(elfHeader),1,kmod_fd); + +programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum); +assert(programHeader); +fseek(kmod_fd,binaryHeader->ePhoff,0); +fread(programHeader,sizeof(elfSectionHeader),binaryHeader->ePhnum,kmod_fd); + +sectionHeader=(elfSectionHeader*)kmalloc(sizeof(elfSectionHeader)*binaryHeader->eShnum); +assert(sectionHeader); +fseek(kmod_fd,binaryHeader->eShoff,0); +fread(sectionHeader,sizeof(elfSectionHeader),binaryHeader->eShnum,kmod_fd); + +shStr=(char*)kmalloc(sectionHeader[binaryHeader->eShstrndx].shSize); +fseek(kmod_fd,sectionHeader[binaryHeader->eShstrndx].shOffset,0); +fread(shStr,sectionHeader[binaryHeader->eShstrndx].shSize,1,kmod_fd); + +for(i=0;i<binaryHeader->ePhnum;i++){ +switch(programHeader[i].phType){ +casePT_LOAD: +casePT_DYNAMIC: +newLoc=(char*)programHeader[i].phVaddr+LD_START; +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0;x<((programHeader[i].phMemsz)+4095);x+=0x1000){ +/*maker/worro*/ +if((vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x+LD_START),PAGE_DEFAULT))==0x0) +kpanic("vmmRemapPage:ld\n"); +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x+LD_START),0x0,0x1000); +} +/*NowLoadSectionToMemory*/ +fseek(kmod_fd,programHeader[i].phOffset,0x0); +fread(newLoc,programHeader[i].phFilesz,1,kmod_fd); +break; +casePT_GNU_STACK: +/*Tellsusifthestackshouldbeexecutable.Failsafetoexecutable +untilweaddchecking*/ +break; +casePT_PAX_FLAGS: +/*Notsure...*/ +break; +default: +kprintf("UnhandledHeader:%08x\n",programHeader[i].phType); +break; +} +} + +for(i=0x0;i<binaryHeader->eShnum;i++){ +switch(sectionHeader[i].shType){ +case3: +if(!strcmp((shStr+sectionHeader[i].shName),".dynstr")){ +dynStr=(char*)kmalloc(sectionHeader[i].shSize); +fseek(kmod_fd,sectionHeader[i].shOffset,0x0); +fread(dynStr,sectionHeader[i].shSize,1,kmod_fd); +} +break; +case9: +elfRel=(elfPltInfo*)kmalloc(sectionHeader[i].shSize); +fseek(kmod_fd,sectionHeader[i].shOffset,0x0); +fread(elfRel,sectionHeader[i].shSize,1,kmod_fd); + +for(x=0x0;x<sectionHeader[i].shSize/sizeof(elfPltInfo);x++){ +rel=ELF32_R_SYM(elfRel[x].pltInfo); +reMap=(uInt32*)((uInt32)LD_START+elfRel[x].pltOffset); +switch(ELF32_R_TYPE(elfRel[x].pltInfo)){ +caseR_386_32: +*reMap+=((uInt32)LD_START+relSymTab[rel].dynValue); +break; +caseR_386_PC32: +*reMap+=((uInt32)LD_START+relSymTab[rel].dynValue)-(uInt32)reMap; +break; +caseR_386_RELATIVE: +*reMap+=(uInt32)LD_START; +break; +default: +kprintf("[0x%X][0x%X](%i)[%s]\n",elfRel[x].pltOffset,elfRel[x].pltInfo,rel,elfGetRelType(ELF32_R_TYPE(elfRel[x].pltInfo))); +kprintf("relTab[%s][0x%X][0x%X]\n",dynStr+relSymTab[rel].dynName,relSymTab[rel].dynValue,relSymTab[rel].dynName); +break; +} +} +kfree(elfRel); +break; +case11: +relSymTab=(elfDynSym*)kmalloc(sectionHeader[i].shSize); +fseek(kmod_fd,sectionHeader[i].shOffset,0x0); +fread(relSymTab,sectionHeader[i].shSize,1,kmod_fd); +sym=i; +break; +} +} + +i=binaryHeader->eEntry+LD_START; + +kfree(dynStr); +kfree(shStr); +kfree(relSymTab); +kfree(sectionHeader); +kfree(programHeader); +kfree(binaryHeader); +fclose(kmod_fd); + +return((uInt32)i); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/kmod_8h.xml b/doc/xml/kmod_8h.xml new file mode 100644 index 0000000..97fc52c --- /dev/null +++ b/doc/xml/kmod_8h.xml @@ -0,0 +1,241 @@ + + + + kmod.h + ubixos/types.h + src/sys/kmods/kmod.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + kmod_struct + + + LD_START + 0x1000000 + + + + + + + + kmod_load + ldEnable + + + + + kmod_struct + typedef struct kmod_struct kmod_t + + kmod_t + + + + + + + + + + + + uInt32 + uInt32 kmod_add + (const char *, const char *name) + kmod_add + + const char * + + + const char * + name + + + + + + + + + CreateItem + _item_t::data + InitializeList + InsertItemAtFront + kmalloc + kmod_load + kprintf + List + NULL + + + uInt32 + uInt32 kmod_load + (const char *) + kmod_load + + const char * + + + + + + + + + _current + assert + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx + fclose + fopen + fread + fseek + taskStruct::id + kfree + kmalloc + 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 + strcmp + vmm_remapPage + vmmFindFreePage + x1000 + kmod_add + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KMOD_H +#define_KMOD_H + +#include<ubixos/types.h> + +#defineLD_START0x1000000 + +typedefstructkmod_struct{ +structkmod_struct*next; +structkmod_struct*prev; +uInt16id; +uInt16refs; +uInt32address; +charname[128]; +}kmod_t; + + +uInt32kmod_load(constchar*); +uInt32kmod_add(constchar*,constchar*name); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:55reddawg +nomessage + +Revision1.52005/08/0420:35:19fsdfs + +variousupdates.mostlykprints,tabbingcodetolookcleaner + +Revision1.42004/09/2620:46:13reddawg +oktimeforbedaddedkmod_addkeepsmoduleslistednow + +Revision1.32004/09/2620:40:51reddawg +AddedbaseAddrtothekmod_t + +Revision1.22004/09/2620:39:19reddawg +Addedkmodstructtypekmod_t + +Revision1.12004/09/2007:33:10reddawg +Startofkernelmoduleswillmakeitmuchmoreflexable-Thesemodulescanbeeitherinkernelthreadsorsystemservices... + +END +***/ + + + + diff --git a/doc/xml/kpanic_8c.xml b/doc/xml/kpanic_8c.xml new file mode 100644 index 0000000..5af6386 --- /dev/null +++ b/doc/xml/kpanic_8c.xml @@ -0,0 +1,222 @@ + + + + kpanic.c + ubixos/kpanic.h + sys/video.h + isa/8259.h + lib/kprintf.h + stdarg.h + ubixos/tty.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void kpanic + (const char *fmt,...) + kpanic + + const char * + fmt + + + ... + + + + + + + + + irqDisable + kprintf + NULL + tty_foreground + vaEnd + vaStart + vsprintf + __assert + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int8 + _int9 + cpuidDetect + cpuInfo + devfs_initialize + dp_recv + execFile + execThread + getEmptyDesc + insertFreeDesc + kmain + kmod_load + PCtoNIC + readUbixFS + sched_init + schedNewTask + sys_thread_new + sysExec + systemTask + tcpdump_init + tty_change + tty_init + ubixfs_init + ubixfs_thread + ufs_init + vitals_init + vmm_pageFault + vmm_setPageAttributes + vmmCopyVirtualSpace + vmmFindFreePage + vmmGetFreePage + vmmGetFreeVirtualPage + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/kpanic.h> +#include<sys/video.h> +#include<isa/8259.h> +#include<lib/kprintf.h> +#include<stdarg.h> + +#include<ubixos/tty.h> + +/************************************************************************ + +Function:voidkpanic(constchar*fmt,...) + +Description:Thisfunctionisusedtocauseakernelpanic + +Notes: + +************************************************************************/ +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 new file mode 100644 index 0000000..54a9d03 --- /dev/null +++ b/doc/xml/kpanic_8h.xml @@ -0,0 +1,391 @@ + + + + kpanic.h + src/sys/devfs/devfs.c + src/sys/init/main.c + src/sys/isa/ne2k.c + src/sys/kernel/exec.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/kpanic.c + src/sys/kernel/ld.c + src/sys/kernel/sched.c + src/sys/kernel/smp.c + src/sys/kernel/systemtask.c + src/sys/kernel/tty.c + src/sys/kernel/vitals.c + src/sys/kmods/kmod.c + src/sys/lib/assert.c + src/sys/lib/kmalloc.c + src/sys/lib/kprintf.c + src/sys/net/net/sys_arch.c + src/sys/net/netif/tcpdump.c + src/sys/sys/idt.c + src/sys/ubixfs/thread.c + src/sys/ubixfs/ubixfs.c + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + src/sys/vfs/file.c + src/sys/vfs/mount.c + src/sys/vmm/copyvirtualspace.c + src/sys/vmm/getfreepage.c + src/sys/vmm/getfreevirtualpage.c + src/sys/vmm/pagefault.c + src/sys/vmm/paging.c + src/sys/vmm/setpageattributes.c + src/sys/vmm/vmm_init.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + K_PANIC + msg + kpanic("Error: (%s), File: %s, Line: %i\n",msg ,__FILE__,__LINE__); + + + + + + + + __sysctl + execFile + ldEnable + obreak + sysExec + vmm_getFreeMallocPage + vmm_init + vmm_pagingInit + vmm_remapPage + vmmGetFreeKernelPage + vmmGetFreeVirtualPage + vmmMapFromTask + + + + + void + void kpanic + (const char *fmt,...) + kpanic + + const char * + fmt + + + ... + + + + + + + + + irqDisable + kprintf + NULL + tty_foreground + vaEnd + vaStart + vsprintf + __assert + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int8 + _int9 + cpuidDetect + cpuInfo + devfs_initialize + dp_recv + execFile + execThread + getEmptyDesc + insertFreeDesc + kmain + kmod_load + PCtoNIC + readUbixFS + sched_init + schedNewTask + sys_thread_new + sysExec + systemTask + tcpdump_init + tty_change + tty_init + ubixfs_init + ubixfs_thread + ufs_init + vitals_init + vmm_pageFault + vmm_setPageAttributes + vmmCopyVirtualSpace + vmmFindFreePage + vmmGetFreePage + vmmGetFreeVirtualPage + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KPANIC_H +#define_KPANIC_H + +#defineK_PANIC(msg)kpanic("Error:(%s),File:%s,Line:%i\n",msg,__FILE__,__LINE__); + +voidkpanic(constchar*fmt,...); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/kprint_8h.xml b/doc/xml/kprint_8h.xml new file mode 100644 index 0000000..6e19f19 --- /dev/null +++ b/doc/xml/kprint_8h.xml @@ -0,0 +1,230 @@ + + + + kprint.h + ubixos/types.h + src/sys/vmm/getfreevirtualpage.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int kprintf + (const char *fmt,...) + kprintf + + const char * + fmt + + + ... + + + + + + + + + __assert + __sysctl + _int13 + addDirEntry + apicMagic + arp_arp_input + atkbd_init + bot_thread + devfs_makeNode + devfs_open + devfs_read + device_add + dp_pkt2user + dp_recv + execFile + fcntl + fdcRw + ffs_read + fopen + fsread + hdInit + hdRead + hdWrite + i8259_init + idt_init + inet_aton + initHardDisk + initLNC + intNull + invalidCall + InvalidSystemCall + keyboardHandler + kfree + kmain + kmalloc + kmod_add + kmod_load + kpanic + ldEnable + lncAttach + lncInt + lookup + low_level_init + mmap + mouseHandler + mouseInit + munmap + ne2k_init + ne2kHandler + netconn_connect + netMainThread + openFileUbixFS + pci_init + pciProbe + pit_init + readlink + sched_init + seek + shell_main + shell_thread + sys_thread_new + sys_write + sysAuth + syscall + sysctl_add + sysctl_init + sysExec + sysFopen + sysMkDir + sysPasswd + systemTask + time_init + tty_init + ubixfs_initialize + ubixfs_thread + ubixFSUnlink + ubthread_mutex_lock + udpecho_thread + ufs_writeFile + vfs_init + vfs_mount + vfsRegisterFS + vitals_init + vmm_cleanVirtualSpace + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmmGetFreeVirtualPage + vmmMemMapInit + + + + + int + int printOff + + printOff + + + + + + + + kprintf + systemTask + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KPRINT_H +#define_KPRINT_H + +#include<ubixos/types.h> + +intkprintf(constchar*fmt,...); + +externintprintOff; + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.22004/05/2115:00:27reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/kprintf_8c.xml b/doc/xml/kprintf_8c.xml new file mode 100644 index 0000000..07a325b --- /dev/null +++ b/doc/xml/kprintf_8c.xml @@ -0,0 +1,208 @@ + + + + kprintf.c + lib/kprintf.h + sys/video.h + ubixos/kpanic.h + stdarg.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int kprintf + (const char *fmt,...) + kprintf + + const char * + fmt + + + ... + + + + + + + + + kprint + printOff + vaEnd + vaStart + vsprintf + + + int + int sprintf + (char *buf, const char *fmt,...) + sprintf + + char * + buf + + + const char * + fmt + + + ... + + + + + + + + + vaEnd + vaStart + vsprintf + + + + + int + int ogprintOff + + ogprintOff + 0x1 + + + + + + + + + + int + int printOff + + printOff + 0x0 + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<lib/kprintf.h> +#include<sys/video.h> +#include<ubixos/kpanic.h> +#include<stdarg.h> + +intprintOff=0x0; +intogprintOff=0x1; + +intkprintf(constchar*fmt,...){ +charbuf[512]; +vaListargs; +inti=0x0; +vaStart(args,fmt); +i=vsprintf(buf,fmt,args); +vaEnd(args); +if(printOff==0x0) +kprint(buf); + +return(i); +} + +intsprintf(char*buf,constchar*fmt,...){ +vaListargs; +inti; +vaStart(args,fmt); +i=vsprintf(buf,fmt,args); +vaEnd(args); +return(i); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/kprintf_8h.xml b/doc/xml/kprintf_8h.xml new file mode 100644 index 0000000..b25b955 --- /dev/null +++ b/doc/xml/kprintf_8h.xml @@ -0,0 +1,570 @@ + + + + kprintf.h + ubixos/types.h + src/sys/devfs/devfs.c + src/sys/init/main.c + src/sys/init/static.c + src/sys/isa/8259.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/mouse.c + src/sys/isa/ne2k.c + src/sys/isa/pit.c + src/sys/kernel/endtask.c + src/sys/kernel/exec.c + src/sys/kernel/gen_calls.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/kpanic.c + src/sys/kernel/ld.c + src/sys/kernel/pipe.c + src/sys/kernel/sched.c + src/sys/kernel/smp.c + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + src/sys/kernel/systemtask.c + src/sys/kernel/time.c + src/sys/kernel/tty.c + src/sys/kernel/ubthread.c + src/sys/kernel/vitals.c + src/sys/kmods/kmod.c + src/sys/lib/assert.c + src/sys/lib/kmalloc.c + src/sys/lib/kprintf.c + src/sys/lib/net.c + src/sys/net/api/api_lib.c + src/sys/net/net/bot.c + src/sys/net/net/init.c + src/sys/net/net/shell.c + src/sys/net/net/sys_arch.c + src/sys/net/net/udpecho.c + src/sys/net/netif/arp.c + src/sys/net/netif/ethernetif.c + src/sys/pci/hd.c + src/sys/pci/lnc.c + src/sys/pci/pci.c + src/sys/sys/device.c + src/sys/sys/idt.c + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/directory.c + src/sys/ubixfs/thread.c + src/sys/ubixfs/ubixfs.c + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + src/sys/vfs/file.c + src/sys/vfs/mount.c + src/sys/vfs/vfs.c + src/sys/vmm/pagefault.c + src/sys/vmm/paging.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int kprintf + (const char *fmt,...) + kprintf + + const char * + fmt + + + ... + + + + + + + + + kprint + printOff + vaEnd + vaStart + vsprintf + + + int + int ogPrintf + (char *) + ogPrintf + + char * + + + + + + + + + vitalsStruct::font + vitalsStruct::screen + systemVitals + + + + + int + int ogprintOff + + ogprintOff + + + + + + + + + + int + int printOff + + printOff + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_KPRINTF_H +#define_KPRINTF_H + +#include<ubixos/types.h> + +intkprintf(constchar*fmt,...); +intogPrintf(char*); + +externintprintOff; +externintogprintOff; + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.22004/05/2115:00:27reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/ld_8c.xml b/doc/xml/ld_8c.xml new file mode 100644 index 0000000..1152171 --- /dev/null +++ b/doc/xml/ld_8c.xml @@ -0,0 +1,432 @@ + + + + ld.c + ubixos/types.h + ubixos/ld.h + ubixos/sched.h + ubixos/elf.h + ubixos/kpanic.h + lib/kprintf.h + lib/kmalloc.h + vfs/vfs.h + vmm/vmm.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uInt32 + uInt32 ldEnable + () + ldEnable + + + + + + + + _current + assert + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx + fclose + fopen + fread + fseek + taskStruct::id + K_PANIC + kfree + kmalloc + 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 + strcmp + vmm_remapPage + vmmFindFreePage + x1000 + sysExec + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<ubixos/ld.h> +#include<ubixos/sched.h> +#include<ubixos/elf.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<vfs/vfs.h> +#include<vmm/vmm.h> +#include<string.h> +#include<assert.h> + +uInt32ldEnable(){ +inti=0x0; +intx=0x0; +intrel=0x0; +intsym=0x0; +char*newLoc=0x0; +char*shStr=0x0; +char*dynStr=0x0; +uInt32*reMap=0x0; +fileDescriptor*ldFd=0x0; +elfHeader*binaryHeader=0x0; +elfProgramHeader*programHeader=0x0; +elfSectionHeader*sectionHeader=0x0; +elfDynSym*relSymTab=0x0; +elfPltInfo*elfRel=0x0; + +/*Openourdynamiclinker*/ +ldFd=fopen("sys:/lib/ld.so","rb"); + +if(ldFd==0x0){ +kprintf("Cannotopenld.so\n"); +} + +fseek(ldFd,0x0,0x0); +binaryHeader=(elfHeader*)kmalloc(sizeof(elfHeader)); +assert(binaryHeader); +fread(binaryHeader,sizeof(elfHeader),1,ldFd); + +programHeader=(elfProgramHeader*)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum); +assert(programHeader); +fseek(ldFd,binaryHeader->ePhoff,0); +fread(programHeader,sizeof(elfSectionHeader),binaryHeader->ePhnum,ldFd); + +sectionHeader=(elfSectionHeader*)kmalloc(sizeof(elfSectionHeader)*binaryHeader->eShnum); +assert(sectionHeader); +fseek(ldFd,binaryHeader->eShoff,0); +fread(sectionHeader,sizeof(elfSectionHeader),binaryHeader->eShnum,ldFd); + +shStr=(char*)kmalloc(sectionHeader[binaryHeader->eShstrndx].shSize); +fseek(ldFd,sectionHeader[binaryHeader->eShstrndx].shOffset,0); +fread(shStr,sectionHeader[binaryHeader->eShstrndx].shSize,1,ldFd); + +for(i=0x0;i<binaryHeader->ePhnum;i++){ +switch(programHeader[i].phType){ +casePT_LOAD: +newLoc=(char*)programHeader[i].phVaddr+LD_START; +/* +AllocateMemoryImGoingToHaveToMakeThisLoadMemoryWithCorrect +Settingssoithelpsusinthefuture +*/ +for(x=0;x<(programHeader[i].phMemsz);x+=0x1000){ +/*maker/worro*/ +if((vmm_remapPage(vmmFindFreePage(_current->id),((programHeader[i].phVaddr&0xFFFFF000)+x+LD_START),PAGE_DEFAULT))==0x0) +K_PANIC("vmmRemapPage:ld"); +memset((void*)((programHeader[i].phVaddr&0xFFFFF000)+x+LD_START),0x0,0x1000); +} +/*NowLoadSectionToMemory*/ +fseek(ldFd,programHeader[i].phOffset,0x0); +fread(newLoc,programHeader[i].phFilesz,1,ldFd); + +break; +casePT_DYNAMIC: +/*NowLoadSectionToMemory*/ +fseek(ldFd,programHeader[i].phOffset,0x0); +fread(newLoc,programHeader[i].phFilesz,1,ldFd); +break; +casePT_GNU_STACK: +/*Tellsusifthestackshouldbeexecutable.Failsafetoexecutable +untilweaddchecking*/ +break; +casePT_PAX_FLAGS: +/*Notsure...*/ +break; +default: +kprintf("UnhandledHeader(kernel):%08x\n",programHeader[i].phType); +break; +} +} + +for(i=0x0;i<binaryHeader->eShnum;i++){ +switch(sectionHeader[i].shType){ +case3: +if(!strcmp((shStr+sectionHeader[i].shName),".dynstr")){ +dynStr=(char*)kmalloc(sectionHeader[i].shSize); +fseek(ldFd,sectionHeader[i].shOffset,0x0); +fread(dynStr,sectionHeader[i].shSize,1,ldFd); +} +break; +case9: +elfRel=(elfPltInfo*)kmalloc(sectionHeader[i].shSize); +fseek(ldFd,sectionHeader[i].shOffset,0x0); +fread(elfRel,sectionHeader[i].shSize,1,ldFd); + +for(x=0x0;x<sectionHeader[i].shSize/sizeof(elfPltInfo);x++){ +rel=ELF32_R_SYM(elfRel[x].pltInfo); +reMap=(uInt32*)((uInt32)LD_START+elfRel[x].pltOffset); +switch(ELF32_R_TYPE(elfRel[x].pltInfo)){ +caseR_386_32: +*reMap+=((uInt32)LD_START+relSymTab[rel].dynValue); +break; +caseR_386_PC32: +*reMap+=((uInt32)LD_START+relSymTab[rel].dynValue)-(uInt32)reMap; +break; +caseR_386_RELATIVE: +*reMap+=(uInt32)LD_START; +break; +default: +kprintf("[0x%X][0x%X](%i)[%s]\n",elfRel[x].pltOffset,elfRel[x].pltInfo,rel,elfGetRelType(ELF32_R_TYPE(elfRel[x].pltInfo))); +kprintf("relTab[%s][0x%X][0x%X]\n",dynStr+relSymTab[rel].dynName,relSymTab[rel].dynValue,relSymTab[rel].dynName); +break; +} +} +kfree(elfRel); +break; +case11: +relSymTab=(elfDynSym*)kmalloc(sectionHeader[i].shSize); +fseek(ldFd,sectionHeader[i].shOffset,0x0); +fread(relSymTab,sectionHeader[i].shSize,1,ldFd); +sym=i; +break; +} +} + +i=binaryHeader->eEntry+LD_START; + +kfree(dynStr); +kfree(shStr); +kfree(relSymTab); +kfree(sectionHeader); +kfree(programHeader); +kfree(binaryHeader); +fclose(ldFd); + +return((uInt32)i); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/ld_8h.xml b/doc/xml/ld_8h.xml new file mode 100644 index 0000000..142d41b --- /dev/null +++ b/doc/xml/ld_8h.xml @@ -0,0 +1,192 @@ + + + + ld.h + ubixos/types.h + src/sys/kernel/exec.c + src/sys/kernel/ld.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LD_START + 0x1000000 + + + + + + + + + + + + uInt32 + uInt32 ldEnable + () + ldEnable + + + + + + + + _current + assert + elfHeader::eEntry + ELF32_R_SYM + ELF32_R_TYPE + elfGetRelType + elfHeader::ePhnum + elfHeader::ePhoff + elfHeader::eShnum + elfHeader::eShoff + elfHeader::eShstrndx + fclose + fopen + fread + fseek + taskStruct::id + K_PANIC + kfree + kmalloc + 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 + strcmp + vmm_remapPage + vmmFindFreePage + x1000 + sysExec + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_LD_H +#define_LD_H + +#include<ubixos/types.h> + +#defineLD_START0x1000000 + +uInt32ldEnable(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:55reddawg +nomessage + +Revision1.102004/06/1712:20:32reddawg +Trythisnowsolarwind + +Revision1.92004/06/1702:19:29reddawg +Cleaningoutdeadcode + +Revision1.82004/06/1617:32:14reddawg +RemovedDeadLDCodenowpartofld.so + +Revision1.72004/06/1617:04:13reddawg +ld.so:restofthecommit + +Revision1.42004/06/1303:05:15reddawg +wenowhaveadynamiclinker + +Revision1.32004/06/1201:27:26reddawg +sharedobjects:yeswealmostfullysupportsharedobjects + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/lib_2string_8h.xml b/doc/xml/lib_2string_8h.xml new file mode 100644 index 0000000..11cbed4 --- /dev/null +++ b/doc/xml/lib_2string_8h.xml @@ -0,0 +1,629 @@ + + + + string.h + ubixos/types.h + src/sys/devfs/devfs.c + src/sys/kernel/bioscall.c + src/sys/kernel/exec.c + src/sys/kernel/smp.c + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + src/sys/lib/string.c + src/sys/lib/strtok.c + src/sys/lib/vsprintf.c + src/sys/mpi/system.c + src/sys/ubixfs/dirCache.c + src/sys/ubixfs/directory.c + src/sys/ubixfs/ubixfs.c + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + src/sys/vfs/file.c + src/sys/vfs/mount.c + src/sys/vfs/vfs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int memcmp + (const void *dst, const void *src, size_t length) + memcmp + + const void * + dst + + + const void * + src + + + size_t + length + + + + + + + + + + + void * + void* memcpy + (const void *dst, const void *src, size_t length) + memcpy + + const void * + dst + + + const void * + src + + + size_t + length + + + + + + + + + __sysctl + addDirEntry + apicMagic + bcopy + fork_copyProcess + fsread + initHardDisk + lookup + mpi_fetchMessage + mpi_postMessage + mpi_spam + ramDrive_read + ramDrive_write + bTree::saveNode + bTree::splitNode + sys_write + syscall + sysctl_add + tty_change + vfsRegisterFS + + + void * + void* memset + (void *dst, int c, size_t length) + memset + + void * + dst + + + int + c + + + size_t + length + + + + + + + + + bTree::allocEmptyNode + bTree::bTree + bzero + execFile + getEmptyDesc + idt_init + bTree::Insert + bTree::insertNode + kfree + kmod_load + ldEnable + main + UbixFS::mknod + bTree::Save + schedNewTask + bTree::splitNode + sysExec + UbixFS::vfs_format + UbixFS::vfs_init + UbixFS::vfs_mkdir + vitals_init + vmm_pagingInit + vmmCopyVirtualSpace + + + int + int sprintf + (char *buf, const char *fmt,...) + sprintf + + char * + buf + + + const char * + fmt + + + ... + + + + + + + + + devfs_makeNode + fopen + initHardDisk + mpi_createMbox + sysChDir + sysctl_add + sysctl_init + sysGetCwd + sysMkDir + ubixFSLoadDir + ubixFSmkDir + vfs_mount + + + int + int strcmp + (const char *str1, const char *str2) + strcmp + + const char * + str1 + + + const char * + str2 + + + + + + + + + devfs_open + bTree::findLeafNode + fsfind + bTree::inodeSearch + bTree::Insert + bTree::insertNode + kmod_load + ldEnable + mpi_destroyMbox + mpi_findMbox + shell_main + systemTask + bTree::treeSearch + ubixfs_cacheFind + ubixfs_findName + ubixFSLoadDir + ubixFSUnlink + bTree::Verify + vfs_findMount + UbixFS::vfs_init + writeUbixFS + + + char * + char* strcpy + (char *, const char *) + strcpy + + char * + + + const char * + + + + + + + + + main + ubixfs_cacheNew + UbixFS::vfs_format + + + int + int strlen + (const char *string) + strlen + + const char * + string + + + + + + + + + devfs_makeNode + sendstr + strstr + ubixfs_cacheNew + UbixFS::vfs_mkdir + vsprintf + + + int + int strncmp + (const char *a, const char *b, size_t c) + strncmp + + const char * + a + + + const char * + b + + + size_t + c + + + + + + + + + strstr + + + void + void strncpy + (char *dest, const char *src, size_t size) + strncpy + + char * + dest + + + const char * + src + + + size_t + size + + + + + + + + + bTree::bTree + bTree::Insert + bTree::insertNode + UbixFS::mknod + bTree::splitNode + UbixFS::vfs_mkdir + + + char * + char* strstr + (const char *s, char *find) + strstr + + const char * + s + + + char * + find + + + + + + + + + NULL + strlen + strncmp + fopen + sysChDir + sysMkDir + + + char * + char* strtok + (char *str, const char *sep) + strtok + + char * + str + + + const char * + sep + + + + + + + + + strtok_r + fopen + sysMkDir + unlink + + + char * + char* strtok_r + (char *str, const char *sep, char **last) + strtok_r + + char * + str + + + const char * + sep + + + char ** + last + + + + + + + + + NULL + strtok + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_STRING_H +#define_STRING_H + +#include<ubixos/types.h> + +#ifdef__cplusplus +extern"C"{ +#endif + +char*strcpy(char*,constchar*); +intstrcmp(constchar*str1,constchar*str2); +intstrncmp(constchar*a,constchar*b,size_tc); +void*memcpy(constvoid*dst,constvoid*src,size_tlength); +void*memset(void*dst,intc,size_tlength); +intstrlen(constchar*string); +intmemcmp(constvoid*dst,constvoid*src,size_tlength); +voidstrncpy(char*dest,constchar*src,size_tsize); +char*strtok(char*str,constchar*sep); +char*strtok_r(char*str,constchar*sep,char**last); +char*strstr(constchar*s,char*find); + +intsprintf(char*buf,constchar*fmt,...); + +#ifdef__cplusplus +} +#endif + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:41reddawg +nomessage + +Revision1.52004/07/2019:09:40flameshadow +chg:putstrcpy()declarationintheright.hfile +add:prototypesforthedirCachingfunctionsindirCache.h +chg:renameddirCachingfunctions + +Revision1.42004/07/0623:26:12reddawg +FixedACompilationError + +Revision1.32004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.22004/05/2115:00:27reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/lib_8h.xml b/doc/xml/lib_8h.xml new file mode 100644 index 0000000..593b924 --- /dev/null +++ b/doc/xml/lib_8h.xml @@ -0,0 +1,306 @@ + + + + lib.h + src/sys/include/net/def.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void bcopy + (const void *src, void *dest, int len) + bcopy + + const void * + src + + + void * + dest + + + int + len + + + + + + + + + memcpy + loopif_output + low_level_input + low_level_output + + + void + void bzero + (void *data, int n) + bzero + + void * + data + + + int + n + + + + + + + + + memset + + + int + int strlen + (const char *str) + strlen + + const char * + str + + + + + + + + + + + int + int strncmp + (const char *str1, const char *str2, int len) + strncmp + + const char * + str1 + + + const char * + str2 + + + int + len + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_LIB_H__ +#define__ARCH_LIB_H__ + +#ifndef_STRING_H_ +#ifndef_STRING_H +intstrlen(constchar*str); +intstrncmp(constchar*str1,constchar*str2,intlen); +voidbcopy(constvoid*src,void*dest,intlen); +voidbzero(void*data,intn); +#endif/*_STRING_H*/ +#endif/*_STRING_H_*/ + +#endif/*__ARCH_LIB_H__*/ + + + + diff --git a/doc/xml/libcpp_8cc.xml b/doc/xml/libcpp_8cc.xml new file mode 100644 index 0000000..f42d400 --- /dev/null +++ b/doc/xml/libcpp_8cc.xml @@ -0,0 +1,294 @@ + + + + libcpp.cc + lib/kmalloc.h + sys/video.h + lib/libcpp.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int __cxa_atexit + (void(*func)(void *), void *arg, void *d) + __cxa_atexit + + void(*)(void *) + func + + + void * + arg + + + void * + d + + + + + + + + + + + void + void __cxa_pure_virtual + () + __cxa_pure_virtual + + + + + + + + + + void + void __dso_handle + () + __dso_handle + + + + + + + + + + void + void __pure_virtual + () + __pure_virtual + + + + + + + + + + void + void operator delete + (void *ptr) + operator delete + + void * + ptr + + + + + + + + + kfree + + + void + void operator delete[] + (void *ptr) + operator delete[] + + void * + ptr + + + + + + + + + kfree + + + void * + void* operator new + (unsigned size) + operator new + + unsigned + size + + + + + + + + + kmalloc + + + void * + void* operator new[] + (unsigned size) + operator new[] + + unsigned + size + + + + + + + + + kmalloc + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +extern"C" +{ +#include<lib/kmalloc.h> +#include<sys/video.h> +void__pure_virtual(){while(1);} + +void__cxa_pure_virtual(){while(1);} + +/*Don'tplanonexitingthekernel...sodonothing.*/ +int__cxa_atexit(void(*func)(void*),void*arg,void*d){return0;} + +void__dso_handle(){while(1);} +} + +#include<lib/libcpp.h> + +void*operator new[](unsignedsize) +{ +returnkmalloc(size); +} + +voidoperator delete[](void*ptr) +{ +kfree(ptr); + +return; +} + +void*operator new(unsignedsize) +{ +void*ptr=kmalloc(size); +returnptr; +} + +voidoperator delete(void*ptr) +{ +kfree(ptr); +return; +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:12reddawg +nomessage + +Revision1.52004/09/0822:04:10apwillia +Addedcallingofstaticconstructors,commentedouttty_printfinkprintf(duetodeadlock) + +Revision1.42004/07/2022:58:33reddawg +retiringtothelaptopforthenightmustsyncinworktoresumefromthere + +Revision1.32004/07/0212:28:24reddawg +Changesfornewlibc,someonepleasetestthatthekernelstillworks + +Revision1.22004/05/1904:07:43reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.1.1.12004/04/1512:07:10reddawg +UbixOSv1.0 + +Revision1.22004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/libcpp_8h.xml b/doc/xml/libcpp_8h.xml new file mode 100644 index 0000000..100087d --- /dev/null +++ b/doc/xml/libcpp_8h.xml @@ -0,0 +1,177 @@ + + + + libcpp.h + ubixos/types.h + src/sys/lib/libcpp.cc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void operator delete + (void *ptr) + operator delete + + void * + ptr + + + + + + + + + kfree + + + void + void operator delete[] + (void *ptr) + operator delete[] + + void * + ptr + + + + + + + + + kfree + + + void * + void* operator new + (unsigned size) + operator new + + unsigned + size + + + + + + + + + kmalloc + + + void * + void* operator new[] + (unsigned size) + operator new[] + + unsigned + size + + + + + + + + + kmalloc + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef__LIBCPP_H +#define__LIBCPP_H + +#include<ubixos/types.h> + +void*operator new(unsignedsize); +voidoperator delete(void*ptr); +void*operator new[](unsignedsize); +voidoperator delete[](void*ptr); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.22004/05/2115:00:27reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/list_8h.xml b/doc/xml/list_8h.xml new file mode 100644 index 0000000..08476f5 --- /dev/null +++ b/doc/xml/list_8h.xml @@ -0,0 +1,213 @@ + + + + list.h + + + void + void list_delete + (struct list *list) + list_delete + + struct list * + list + + + + + + + + + + + int + int list_elems + (struct list *list) + list_elems + + struct list * + list + + + + + + + + + + + void * + void* list_first + (struct list *list) + list_first + + struct list * + list + + + + + + + + + + + void + void list_map + (struct list *list, void(*func)(void *arg)) + list_map + + struct list * + list + + + void(*)(void *arg) + func + + + + + + + + + + + list * + struct list* list_new + (int size) + list_new + + int + size + + + + + + + + + + + void * + void* list_pop + (struct list *list) + list_pop + + struct list * + list + + + + + + + + + + + int + int list_push + (struct list *list, void *elem) + list_push + + struct list * + list + + + void * + elem + + + + + + + + + + + int + int list_remove + (struct list *list, void *elem) + list_remove + + struct list * + list + + + void * + elem + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_LIST_H__ +#define__LWIP_LIST_H__ + +structlist; + +structlist*list_new(intsize); +intlist_push(structlist*list,void*elem); +void*list_pop(structlist*list); +intlist_remove(structlist*list,void*elem); +void*list_first(structlist*list); +intlist_elems(structlist*list); +voidlist_delete(structlist*list); + +voidlist_map(structlist*list,void(*func)(void*arg)); + +#endif/*__LWIP_LIST_H__*/ + + + + diff --git a/doc/xml/lists_8h.xml b/doc/xml/lists_8h.xml new file mode 100644 index 0000000..8e5a9a1 --- /dev/null +++ b/doc/xml/lists_8h.xml @@ -0,0 +1,357 @@ + + + + lists.h + src/sys/kmods/kmod.c + + + + + + + + + + + + + _item_t + _list_t + + + IN + + + + + + + + + + STATUS_FAILURE + -1 + + + + + + + + + + STATUS_SUCCESS + 0 + + + + + + + + + + + + _item_t + typedef struct _item_t Item_t + + Item_t + + + + + + + + + + _list_t + typedef struct _list_t List_t + + List_t + + + + + + + + + + + + Item_t * + Item_t* CreateItem + () + CreateItem + + + + + + + + kmod_add + + + int + int DestroyItemList + (IN List_t *ItemList) + DestroyItemList + + IN List_t * + ItemList + + + + + + + + + + + int + int DestroyItemsInList + (IN List_t *ItemList) + DestroyItemsInList + + IN List_t * + ItemList + + + + + + + + + + + Item_t * + Item_t* GetFirstItem + (IN List_t *kItem) + GetFirstItem + + IN List_t * + kItem + + + + + + + + + + + Item_t * + Item_t* GetLastItem + (IN List_t *kItem) + GetLastItem + + IN List_t * + kItem + + + + + + + + + + + List_t * + List_t* InitializeList + () + InitializeList + + + + + + + + kmod_add + + + int + int InsertItemAtFront + (IN List_t *TList, IN Item_t *kItem) + InsertItemAtFront + + IN List_t * + TList + + + IN Item_t * + kItem + + + + + + + + + kmod_add + + + int + int InsertItemBetweenItems + (IN List_t *TList, IN Item_t *Previous, IN Item_t *Next, IN Item_t *Insert) + InsertItemBetweenItems + + IN List_t * + TList + + + IN Item_t * + Previous + + + IN Item_t * + Next + + + IN Item_t * + Insert + + + + + + + + + + + void + void InsertItemListBetweenItems + (IN Item_t *Previous, IN Item_t *Next, IN List_t *Insert) + InsertItemListBetweenItems + + IN Item_t * + Previous + + + IN Item_t * + Next + + + IN List_t * + Insert + + + + + + + + + + + int + int RemoveItem + (IN List_t *TList, IN Item_t *kItem) + RemoveItem + + IN List_t * + TList + + + IN Item_t * + kItem + + + + + + + + + + + List_t * + List_t* RemoveItemListBetweenItems + (IN Item_t *Previous, IN Item_t *Next) + RemoveItemListBetweenItems + + IN Item_t * + Previous + + + IN Item_t * + Next + + + + + + + + + + + + + + + +#defineIN +#defineSTATUS_FAILURE-1 +#defineSTATUS_SUCCESS0 + +typedefstruct_item_tItem_t; +typedefstruct_list_tList_t; +struct_item_t +{ +Item_t*Previous; +Item_t*Next; +void*data; +}; + +struct_list_t +{ +Item_t*First; +Item_t*Last; +}; + +List_t* +InitializeList(); +Item_t* +CreateItem(); +int +InsertItemAtFront(INList_t*TList, +INItem_t*kItem); +int +InsertItemBetweenItems(INList_t*TList, +INItem_t*Previous, +INItem_t*Next, +INItem_t*Insert); +int +RemoveItem(INList_t*TList, +INItem_t*kItem); +int +DestroyItemsInList(INList_t*ItemList); +int +DestroyItemList(INList_t*ItemList); +Item_t* +GetFirstItem(INList_t*kItem); + +Item_t* +GetLastItem(INList_t*kItem); +List_t* +RemoveItemListBetweenItems(INItem_t*Previous, +INItem_t*Next); + +void +InsertItemListBetweenItems(INItem_t*Previous, +INItem_t*Next, +INList_t*Insert); + + + + diff --git a/doc/xml/lnc_8c.xml b/doc/xml/lnc_8c.xml new file mode 100644 index 0000000..f772073 --- /dev/null +++ b/doc/xml/lnc_8c.xml @@ -0,0 +1,819 @@ + + + + lnc.c + pci/lnc.h + sys/io.h + ubixos/types.h + sys/idt.h + sys/gdt.h + lib/kmalloc.h + lib/kprintf.h + sys/video.h + isa/8259.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".global _lncInt \n""_lncInt : \n"" pusha \n"" pushw %ds \n"" pushw %es \n"" pushw %ss \n"" pushw %ss \n"" popw %ds \n"" popw %es \n"" call lncInt \n"" popw %es \n"" popw %ds \n"" popa \n"" iret \n") + asm + + ".global _lncInt \n""_lncInt : \n"" pusha \n"" pushw %ds \n"" pushw %es \n"" pushw %ss \n"" pushw %ss \n"" popw %ds \n"" popw %es \n"" call lncInt \n"" popw %es \n"" popw %ds \n"" popa \n"" iret \n" + + + + + + + + + + + void + void initLNC + () + initLNC + + + + + + + + _lncInt + arpcom::ac_enaddr + lncInfo::arpcom + lncInfo::bdp + CSR0 + CSR3 + dDpl3 + dInt + DMA_FIXED + dPresent + ETHER_ADDR_LEN + nicInfo::ic + nicInfo::ident + IDON + INEA + INIT + inportByte + kmalloc + kprintf + lnc + lncAttach + nicInfo::memMode + mVec + NE2100 + lncInfo::nic + NRDRE + lncInfo::nrdre + NTDRE + lncInfo::ntdre + PCnet_32 + PCNET_BDP + PCNET_RAP + PCNET_RDP + probe + lncInfo::rap + lncInfo::rdp + readCsr + setVector + STRT + writeCsr + x1000 + + + int + int lanceProbe + (struct lncInfo *lnc) + lanceProbe + + struct lncInfo * + lnc + + + + + + + + + C_LANCE + CSR0 + CSR3 + INEA + inportWord + LANCE + lnc + lncInfo::rdp + readCsr + STOP + UNKNOWN + writeCsr + probe + + + int + int lncAttach + (struct lncInfo *lnc, int unit) + lncAttach + + struct lncInfo * + lnc + + + int + unit + + + + + + + + + arpcom::ac_enaddr + lncInfo::arpcom + C_LANCE + DMA_FIXED + nicInfo::ic + icIdent + nicInfo::ident + kmalloc + kprintf + LANCE + lnc + MEM_SLEW + nicInfo::memMode + nicInfo::mode + NDESC + lncInfo::nic + nicIdent + NORMAL + lncInfo::nrdre + lncInfo::ntdre + PCnet_32 + RECVBUFSIZE + lncInfo::recvRing + SHMEM + TRANSBUFSIZE + initLNC + + + void + void lncInt + () + lncInt + + + + + + + + ERR + inportWord + INTR + kprintf + lnc + outportByte + outportWord + lncInfo::rdp + RINT + TINT + x20 + + + int + int probe + (struct lncInfo *lnc) + probe + + struct lncInfo * + lnc + + + + + + + + + Am79C960 + Am79C961 + Am79C961A + Am79C965 + Am79C970 + Am79C970A + Am79C971 + Am79C972 + Am79C973 + Am79C978 + AMD_MASK + CSR88 + CSR89 + lanceProbe + lnc + PART_MASK + PCnet_32 + PCnet_FAST + PCnet_FASTplus + PCnet_Home + PCnet_ISA + PCnet_ISA_II + PCnet_ISAplus + PCnet_PCI + PCnet_PCI_II + readCsr + initLNC + + + uInt16 + uInt16 readBcr + (struct lncInfo *sc, uInt16 port) + readBcr + + struct lncInfo * + sc + + + uInt16 + port + + + + + + + + + lncInfo::bdp + inportWord + outportWord + lncInfo::rap + + + uInt16 + uInt16 readCsr + (struct lncInfo *lnc, uInt16 port) + readCsr + + struct lncInfo * + lnc + + + uInt16 + port + + + + + + + + + inportWord + lnc + outportWord + lncInfo::rap + lncInfo::rdp + initLNC + lanceProbe + probe + + + void + void writeBcr + (struct lncInfo *lnc, uInt16 port, uInt16 val) + writeBcr + + struct lncInfo * + lnc + + + uInt16 + port + + + uInt16 + val + + + + + + + + + lncInfo::bdp + lnc + outportWord + lncInfo::rap + + + void + void writeCsr + (struct lncInfo *lnc, uInt16 port, uInt16 val) + writeCsr + + struct lncInfo * + lnc + + + uInt16 + port + + + uInt16 + val + + + + + + + + + lnc + outportWord + lncInfo::rap + lncInfo::rdp + initLNC + lanceProbe + + + + + char const *const + char const* const icIdent[] + [] + icIdent + { + "Unknown", + "LANCE", + "C-LANCE", + "PCnet-ISA", + "PCnet-ISA+", + "PCnet-ISA II", + "PCnet-32 VL-Bus", + "PCnet-PCI", + "PCnet-PCI II", + "PCnet-FAST", + "PCnet-FAST+", + "PCnet-Home", + } + + + + + + + + lncAttach + + + lncInfo * + struct lncInfo* lnc + + lnc + 0x0 + + + + + + + + initLNC + lanceProbe + lncAttach + lncInt + probe + readCsr + writeBcr + writeCsr + + + char const *const + char const* const nicIdent[] + [] + nicIdent + { + "Unknown", + "BICC", + "NE2100", + "DEPCA", + "CNET98S", + } + + + + + + + + lncAttach + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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. + +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:35reddawg +nomessage + +Revision1.1.1.12004/04/1512:07:15reddawg +UbixOSv1.0 + +Revision1.42004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + + +$Id$ + +*****************************************************************************************/ + +#include<pci/lnc.h> +#include<sys/io.h> +#include<ubixos/types.h> +#include<sys/idt.h> +#include<sys/gdt.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<sys/video.h> +#include<isa/8259.h> + +structlncInfo*lnc=0x0; + +staticcharconst*constnicIdent[]={ +"Unknown", +"BICC", +"NE2100", +"DEPCA", +"CNET98S",/*PC-98*/ +}; + +staticcharconst*consticIdent[]={ +"Unknown", +"LANCE", +"C-LANCE", +"PCnet-ISA", +"PCnet-ISA+", +"PCnet-ISAII", +"PCnet-32VL-Bus", +"PCnet-PCI", +"PCnet-PCIII", +"PCnet-FAST", +"PCnet-FAST+", +"PCnet-Home", +}; + +voidwriteCsr(structlncInfo*lnc,uInt16port,uInt16val){ +outportWord(lnc->rap,port); +outportWord(lnc->rdp,val); +} + +uInt16readCsr(structlncInfo*lnc,uInt16port){ +outportWord(lnc->rap,port); +return(inportWord(lnc->rdp)); +} + +voidwriteBcr(structlncInfo*lnc,uInt16port,uInt16val){ +outportWord(lnc->rap,port); +outportWord(lnc->bdp,val); +} + +uInt16readBcr(structlncInfo*sc,uInt16port){ +outportWord(sc->rap,port); +return(inportWord(sc->bdp)); +} + + +voidinitLNC(){ +inti=0x0; +lnc=kmalloc(sizeof(structlncInfo),-2); + +lnc->rap=0x1000+PCNET_RAP; +lnc->rdp=0x1000+PCNET_RDP; +lnc->bdp=0x1000+PCNET_BDP; + +lnc->nic.ic=probe(lnc); +if((lnc->nic.ic>0)&&(lnc->nic.ic>=PCnet_32)){ +lnc->nic.ident=NE2100; +lnc->nic.memMode=DMA_FIXED; + +lnc->nrdre=NRDRE; +lnc->ntdre=NTDRE; + +/*ExtractMACaddressfromPROM*/ +for(i=0;i<ETHER_ADDR_LEN;i++){ +lnc->arpcom.ac_enaddr[i]=inportByte(0x1000+i); +kprintf("[0x%X]",lnc->arpcom.ac_enaddr[i]); +} +} +else{ +kprintf("LNCInitError\n"); +return; +} +lncAttach(lnc,0); +writeCsr(lnc,CSR3,0); +writeCsr(lnc,CSR0,INIT); +for(i=0;i<1000;i++) +if(readCsr(lnc,CSR0)&IDON) +break; + +if(readCsr(lnc,CSR0)&IDON){ +writeCsr(lnc,CSR0,STRT|INEA); +setVector(_lncInt,mVec+9,(dInt+dPresent+dDpl3)); +enableIrq(9); +/* +*sc->arpcom.ac_if.if_flags|=IFF_RUNNING; +*sc->arpcom.ac_if.if_flags&=~IFF_OACTIVE; +*lnc_start(&sc->arpcom.ac_if); +*/ +} +else{ +kprintf("LNCinitError\n"); +return; +} +return; +} + +intprobe(structlncInfo*lnc){ +uInt32chipId=0x0; +inttype=0x0; + +if((type=lanceProbe(lnc))){ +chipId=readCsr(lnc,CSR89); +chipId<<=16; +chipId|=readCsr(lnc,CSR88); +if(chipId&AMD_MASK){ +chipId>>=12; +switch(chipId&PART_MASK){ +caseAm79C960: +return(PCnet_ISA); +caseAm79C961: +return(PCnet_ISAplus); +caseAm79C961A: +return(PCnet_ISA_II); +caseAm79C965: +return(PCnet_32); +caseAm79C970: +return(PCnet_PCI); +caseAm79C970A: +return(PCnet_PCI_II); +caseAm79C971: +return(PCnet_FAST); +caseAm79C972: +caseAm79C973: +return(PCnet_FASTplus); +caseAm79C978: +return(PCnet_Home); +default: +break; +} +} +} +return(type); +} + +intlanceProbe(structlncInfo*lnc){ +writeCsr(lnc,CSR0,STOP); +if((inportWord(lnc->rdp)&STOP)&&!(readCsr(lnc,CSR3))){ +writeCsr(lnc,CSR0,INEA); +if(readCsr(lnc,CSR0)&INEA){ +return(C_LANCE); +} +else{ +return(LANCE); +} +} +else{ +return(UNKNOWN); +} +} + +voidlncInt(){ +uInt16csr0=0x0; +while((csr0=inportWord(lnc->rdp))&INTR){ +outportWord(lnc->rdp,csr0); +kprintf("CSR0:[0x%X]\n",csr0); +if(csr0&ERR){ +kprintf("Error:[0x%X]\n",csr0); +} +if(csr0&RINT){ +kprintf("RINT\n"); +} +if(csr0&TINT){ +kprintf("TINT\n"); +} +} +kprintf("Finished!!!\n"); +outportByte(0x20,0x20); +return; +} + +asm( +".global_lncInt\n" +"_lncInt:\n" + +"pusha\n"/*Saveallregisters*/ +"pushw%ds\n"/*Setupthedatasegment*/ +"pushw%es\n" +"pushw%ss\n"/*Notethatssisalwaysvalid*/ +"pushw%ss\n" +"popw%ds\n" +"popw%es\n" +"calllncInt\n" +"popw%es\n" +"popw%ds\n"/*Restoreregisters*/ +"popa\n" +"iret\n"/*Exitinterrupt*/ +); + +intlncAttach(structlncInfo*lnc,intunit){ +intlncMemSize=0x0; + +lncMemSize=((NDESC(lnc->nrdre)+NDESC(lnc->ntdre))*sizeof(structhostRingEntry)); + +if(lnc->nic.memMode!=SHMEM) +lncMemSize+=sizeof(structinitBlock)+(sizeof(structmds)*(NDESC(lnc->nrdre)+NDESC(lnc->ntdre)))+MEM_SLEW; + +if(lnc->nic.memMode==DMA_FIXED) +lncMemSize+=(NDESC(lnc->nrdre)*RECVBUFSIZE)+(NDESC(lnc->ntdre)*TRANSBUFSIZE); + +if(lnc->nic.memMode!=SHMEM){ +if(lnc->nic.ic<PCnet_32){ +/*ISAbasedcards*/ +kprintf("ISABoard\n"); +/*sc->recv_ring=contigmalloc(lnc_mem_size,M_DEVBUF,M_NOWAIT,0ul,0xfffffful,4ul,0x1000000);*/ +} +else{ +/* +*Fornowitstillneedstobebelow16MBbecausethe +*descriptor'scanonlyhold16bitaddresses. +*/ +/*sc->recv_ring=contigmalloc(lnc_mem_size,M_DEVBUF,M_NOWAIT,0ul,0xfffffful,4ul,0x1000000);*/ +lnc->recvRing=kmalloc(lncMemSize,-2); +kprintf("PCIBoard\n"); +} +} + +if(!lnc->recvRing){ +kprintf("lnc%d:Couldn'tallocatememoryforNIC\n",unit); +return(0); +} + +lnc->nic.mode=NORMAL; + +/*Fillinarpcomstructureentries*/ +/* +lnc->arpcom.ac_if.if_softc=sc; +lnc->arpcom.ac_if.if_name=lncdriver.name; +lnc->arpcom.ac_if.if_unit=unit; +lnc->arpcom.ac_if.if_mtu=ETHERMTU; +lnc->arpcom.ac_if.if_flags=IFF_BROADCAST|IFF_SIMPLEX|IFF_MULTICAST; +lnc->arpcom.ac_if.if_timer=0; +lnc->arpcom.ac_if.if_output=ether_output; +lnc->arpcom.ac_if.if_start=lnc_start; +lnc->arpcom.ac_if.if_ioctl=lnc_ioctl; +lnc->arpcom.ac_if.if_watchdog=lnc_watchdog; +lnc->arpcom.ac_if.if_init=lnc_init; +lnc->arpcom.ac_if.if_type=IFT_ETHER; +lnc->arpcom.ac_if.if_addrlen=ETHER_ADDR_LEN; +lnc->arpcom.ac_if.if_hdrlen=ETHER_HDR_LEN; +lnc->arpcom.ac_if.if_snd.ifq_maxlen=IFQ_MAXLEN; +*/ +/*ether_ifattach(&sc->arpcom.ac_if,ETHER_BPF_SUPPORTED);*/ + +kprintf("lnc%d:",unit); +if(lnc->nic.ic==LANCE||lnc->nic.ic==C_LANCE) +kprintf("%s(%s)",nicIdent[lnc->nic.ident],icIdent[lnc->nic.ic]); +else +kprintf("%s",icIdent[lnc->nic.ic]); +kprintf("address0x%X\n",lnc->arpcom.ac_enaddr); +return(1); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/lnc_8h.xml b/doc/xml/lnc_8h.xml new file mode 100644 index 0000000..64478ec --- /dev/null +++ b/doc/xml/lnc_8h.xml @@ -0,0 +1,1372 @@ + + + + lnc.h + ubixos/types.h + src/sys/pci/lnc.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + arpcom + hostRingEntry + initBlock + lncInfo + mds + nicInfo + + + Am79C960 + 0x0003 + + + + + + + + probe + + + Am79C961 + 0x2260 + + + + + + + + probe + + + Am79C961A + 0x2261 + + + + + + + + probe + + + Am79C965 + 0x2430 + + + + + + + + probe + + + Am79C970 + 0x0242 + + + + + + + + probe + + + Am79C970A + 0x2621 + + + + + + + + probe + + + Am79C971 + 0x2623 + + + + + + + + probe + + + Am79C972 + 0x2624 + + + + + + + + probe + + + Am79C973 + 0x2625 + + + + + + + + probe + + + Am79C978 + 0x2626 + + + + + + + + probe + + + AMD_MASK + 0x003 + + + + + + + + probe + + + BABL + 0x4000 + + + + + + + + + + C_LANCE + 2 + + + + + + + + lanceProbe + lncAttach + + + CERR + 0x2000 + + + + + + + + + + CSR0 + 0x0000 + + + + + + + + initLNC + lanceProbe + + + CSR1 + 1 + + + + + + + + + + CSR2 + 2 + + + + + + + + + + CSR3 + 3 + + + + + + + + initLNC + lanceProbe + + + CSR88 + 88 + + + + + + + + probe + + + CSR89 + 89 + + + + + + + + probe + + + DMA_FIXED + 1 + + + + + + + + initLNC + lncAttach + + + DMA_MBUF + 2 + + + + + + + + + + ERR + 0x8000 + + + + + + + + lncInt + + + ETHER_ADDR_LEN + 6 + + + + + + + + initLNC + + + IDON + 0x0100 + + + + + + + + initLNC + + + INEA + 0x0040 + + + + + + + + initLNC + lanceProbe + + + INIT + 0x0001 + + + + + + + + initLNC + + + INTR + 0x0080 + + + + + + + + lncInt + + + LANCE + 1 + + + + + + + + lanceProbe + lncAttach + + + MEM_SLEW + 8 + + + + + + + + lncAttach + + + MERR + 0x0800 + + + + + + + + + + MISS + 0x1000 + + + + + + + + + + NDESC + len2 + (1 << len2) + + + + + + + + lncAttach + + + NE2100 + 2 + + + + + + + + initLNC + + + NE2100_IOSIZE + 24 + + + + + + + + + + NORMAL + 0 + + + + + + + + lncAttach + + + NRDRE + 3 + + + + + + + + initLNC + + + NTDRE + 3 + + + + + + + + initLNC + + + PART_MASK + 0xffff + + + + + + + + probe + + + PCnet_32 + 6 + + + + + + + + initLNC + lncAttach + probe + + + PCNET_BDP + 0x16 + + + + + + + + initLNC + + + PCnet_FAST + 9 + + + + + + + + probe + + + PCnet_FASTplus + 10 + + + + + + + + probe + + + PCnet_Home + 11 + + + + + + + + probe + + + PCnet_ISA + 3 + + + + + + + + probe + + + PCnet_ISA_II + 5 + + + + + + + + probe + + + PCnet_ISAplus + 4 + + + + + + + + probe + + + PCnet_PCI + 7 + + + + + + + + probe + + + PCnet_PCI_II + 8 + + + + + + + + probe + + + PCNET_RAP + 0x12 + + + + + + + + initLNC + + + PCNET_RDP + 0x10 + + + + + + + + initLNC + + + PCNET_RESET + 0x14 + + + + + + + + + + PCNET_VSW + 0x18 + + + + + + + + + + RECVBUFSIZE + 1518 + + + + + + + + lncAttach + + + RINT + 0x0400 + + + + + + + + lncInt + + + RXON + 0x0020 + + + + + + + + + + SHMEM + 4 + + + + + + + + lncAttach + + + STOP + 0x0004 + + + + + + + + lanceProbe + + + STRT + 0x0002 + + + + + + + + initLNC + + + TDMD + 0x0008 + + + + + + + + + + TINT + 0x0200 + + + + + + + + lncInt + + + TRANSBUFSIZE + 1518 + + + + + + + + lncAttach + + + TXON + 0x0010 + + + + + + + + + + UNKNOWN + 0 + + + + + + + + lanceProbe + + + + + void + void _lncInt + () + _lncInt + + + + + + + + initLNC + + + void + void initLNC + () + initLNC + + + + + + + + _lncInt + arpcom::ac_enaddr + lncInfo::arpcom + lncInfo::bdp + CSR0 + CSR3 + dDpl3 + dInt + DMA_FIXED + dPresent + ETHER_ADDR_LEN + nicInfo::ic + nicInfo::ident + IDON + INEA + INIT + inportByte + kmalloc + kprintf + lnc + lncAttach + nicInfo::memMode + mVec + NE2100 + lncInfo::nic + lncInfo::nrdre + NRDRE + lncInfo::ntdre + NTDRE + PCnet_32 + PCNET_BDP + PCNET_RAP + PCNET_RDP + probe + lncInfo::rap + lncInfo::rdp + readCsr + setVector + STRT + writeCsr + x1000 + + + int + int lanceProbe + (struct lncInfo *lnc) + lanceProbe + + struct lncInfo * + lnc + + + + + + + + + C_LANCE + CSR0 + CSR3 + INEA + inportWord + LANCE + lnc + lncInfo::rdp + readCsr + STOP + UNKNOWN + writeCsr + probe + + + int + int lncAttach + (struct lncInfo *lnc, int unit) + lncAttach + + struct lncInfo * + lnc + + + int + unit + + + + + + + + + arpcom::ac_enaddr + lncInfo::arpcom + C_LANCE + DMA_FIXED + nicInfo::ic + icIdent + nicInfo::ident + kmalloc + kprintf + LANCE + lnc + MEM_SLEW + nicInfo::memMode + nicInfo::mode + NDESC + lncInfo::nic + nicIdent + NORMAL + lncInfo::nrdre + lncInfo::ntdre + PCnet_32 + RECVBUFSIZE + lncInfo::recvRing + SHMEM + TRANSBUFSIZE + initLNC + + + void + void lncInt + () + lncInt + + + + + + + + ERR + inportWord + INTR + kprintf + lnc + outportByte + outportWord + lncInfo::rdp + RINT + TINT + x20 + + + int + int probe + (struct lncInfo *lnc) + probe + + struct lncInfo * + lnc + + + + + + + + + Am79C960 + Am79C961 + Am79C961A + Am79C965 + Am79C970 + Am79C970A + Am79C971 + Am79C972 + Am79C973 + Am79C978 + AMD_MASK + CSR88 + CSR89 + lanceProbe + lnc + PART_MASK + PCnet_32 + PCnet_FAST + PCnet_FASTplus + PCnet_Home + PCnet_ISA + PCnet_ISA_II + PCnet_ISAplus + PCnet_PCI + PCnet_PCI_II + readCsr + initLNC + + + uInt16 + uInt16 readBcr + (struct lncInfo *lnc, uInt16 port) + readBcr + + struct lncInfo * + lnc + + + uInt16 + port + + + + + + + + + lncInfo::bdp + inportWord + outportWord + lncInfo::rap + + + uInt16 + uInt16 readCsr + (struct lncInfo *lnc, uInt16 port) + readCsr + + struct lncInfo * + lnc + + + uInt16 + port + + + + + + + + + inportWord + lnc + outportWord + lncInfo::rap + lncInfo::rdp + initLNC + lanceProbe + probe + + + void + void writeBcr + (struct lncInfo *lnc, uInt16 port, uInt16 val) + writeBcr + + struct lncInfo * + lnc + + + uInt16 + port + + + uInt16 + val + + + + + + + + + lncInfo::bdp + lnc + outportWord + lncInfo::rap + + + void + void writeCsr + (struct lncInfo *lnc, uInt16 port, uInt16 val) + writeCsr + + struct lncInfo * + lnc + + + uInt16 + port + + + uInt16 + val + + + + + + + + + lnc + outportWord + lncInfo::rap + lncInfo::rdp + initLNC + lanceProbe + + + + + lncInfo * + struct lncInfo* lnc + + lnc + + + + + + + + initLNC + lanceProbe + lncAttach + lncInt + probe + readCsr + writeBcr + writeCsr + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_LNC_H +#define_LNC_H + +#include<ubixos/types.h> + +#defineNDESC(len2)(1<<len2) +#defineNORMAL0 +#defineMEM_SLEW8 +#defineTRANSBUFSIZE1518 +#defineRECVBUFSIZE1518 +#defineNRDRE3 +#defineNTDRE3 +#defineETHER_ADDR_LEN6 +#defineNE2100_IOSIZE24 +#definePCNET_RDP0x10/*RegisterDataPort*/ +#definePCNET_RAP0x12/*RegisterAddressPort*/ +#definePCNET_RESET0x14 +#definePCNET_BDP0x16 +#definePCNET_VSW0x18 +#defineNE21002 + +/*mem_modevalues*/ +#defineDMA_FIXED1 +#defineDMA_MBUF2 +#defineSHMEM4 + + +/**********ChipTypes**********/ +#defineUNKNOWN0/*Unknown*/ +#defineLANCE1/*Am7990*/ +#defineC_LANCE2/*Am79C90*/ +#definePCnet_ISA3/*Am79C960*/ +#definePCnet_ISAplus4/*Am79C961*/ +#definePCnet_ISA_II5/*Am79C961A*/ +#definePCnet_326/*Am79C965*/ +#definePCnet_PCI7/*Am79C970*/ +#definePCnet_PCI_II8/*Am79C970A*/ +#definePCnet_FAST9/*Am79C971*/ +#definePCnet_FASTplus10/*Am79C972*/ +#definePCnet_Home11/*Am79C978*/ + +/********AM7990Specifics**************/ +#defineCSR00x0000 +#defineCSR11 +#defineCSR22 +#defineCSR33 +#defineCSR8888 +#defineCSR8989 + +#defineERR0x8000 +#defineBABL0x4000 +#defineCERR0x2000 +#defineMISS0x1000 +#defineMERR0x0800 +#defineRINT0x0400 +#defineTINT0x0200 +#defineIDON0x0100 +#defineINTR0x0080 +#defineINEA0x0040 +#defineRXON0x0020 +#defineTXON0x0010 +#defineTDMD0x0008 +#defineSTOP0x0004 +#defineSTRT0x0002 +#defineINIT0x0001 + + +/*CSR88-89:ChipIDmasks*/ +#defineAMD_MASK0x003 +#definePART_MASK0xffff +#defineAm79C9600x0003 +#defineAm79C9610x2260 +#defineAm79C961A0x2261 +#defineAm79C9650x2430 +#defineAm79C9700x0242 +#defineAm79C970A0x2621 +#defineAm79C9710x2623 +#defineAm79C9720x2624 +#defineAm79C9730x2625 +#defineAm79C9780x2626 + +/**********Structs**********/ + + + + +structinitBlock{ +uInt16mode;/*Moderegister*/ +uInt8padr[6];/*Ethernetaddress*/ +uInt8ladrf[8];/*Logicaladdressfilter(multicast)*/ +uInt16rdra;/*Loworderpointertoreceivering*/ +uInt16rlen;/*Highorderpointerandno.rings*/ +uInt16tdra;/*Loworderpointertotransmitring*/ +uInt16tlen;/*Highorderpointerandnorings*/ +}; + +structmds{ +uInt16md0; +uInt16md1; +shortmd2; +uInt16md3; +}; + +structhostRingEntry{ +structmds*md; +union{ +//structmbuf*mbuf; +char*data; +}buff; +}; + +structarpcom{ +//structifnetac_if;/*network-visibleinterface*/ +uInt8ac_enaddr[6];/*ethernethardwareaddress*/ +intac_multicnt;/*lengthofac_multiaddrslist*/ +void*ac_netgraph;/*ng_ether(4)netgraphnodeinfo*/ +}; + +structnicInfo{ +intident;/*Typeofcard*/ +intic;/*Typeofic,Am7990,Am79C960etc.*/ +intmemMode; +intiobase; +intmode;/*Modesettingatinitialization*/ +}; + +structlncInfo{ +structarpcomarpcom; +structnicInfonic; +structhostRingEntry*recvRing; +structhostRingEntry*transRings; +structinitBlock*initBloack; +intrap; +intrdp; +intbdp; +intnrdre; +intntdre; +}; + +externstructlncInfo*lnc; + +voidwriteCsr(structlncInfo*lnc,uInt16port,uInt16val); +uInt16readCsr(structlncInfo*lnc,uInt16port); +voidwriteBcr(structlncInfo*lnc,uInt16port,uInt16val); +uInt16readBcr(structlncInfo*lnc,uInt16port); + +voidinitLNC(); +intprobe(structlncInfo*lnc); +intlanceProbe(structlncInfo*lnc); +intlncAttach(structlncInfo*lnc,intunit); + + +voidlncInt(); +void_lncInt(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:50reddawg +nomessage + +Revision1.22004/05/2115:05:07reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/loopif_8c.xml b/doc/xml/loopif_8c.xml new file mode 100644 index 0000000..259090b --- /dev/null +++ b/doc/xml/loopif_8c.xml @@ -0,0 +1,368 @@ + + + + loopif.c + net/debug.h + net/mem.h + net/opt.h + netif/loopif.h + netif/tcpdump.h + net/tcp.h + net/ipv4/ip.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void loopif_init + (struct netif *netif) + loopif_init + + struct netif * + netif + + + + + + + + + loopif_output + netif::name + netif::output + netMainThread + + + err_t + static err_t loopif_output + (struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) + loopif_output + + struct netif * + netif + + + struct pbuf * + p + + + struct ip_addr * + ipaddr + + + + + + + + + bcopy + ERR_MEM + ERR_OK + netif::input + pbuf::len + pbuf::next + NULL + pbuf::payload + pbuf_alloc + PBUF_RAM + PBUF_RAW + tcpdump + pbuf::tot_len + loopif_init + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#include"net/debug.h" +#include"net/mem.h" +#include"net/opt.h" +#include"netif/loopif.h" +#include"netif/tcpdump.h" + +#include"net/tcp.h" +#include"net/ipv4/ip.h" + +/*-----------------------------------------------------------------------------------*/ +staticerr_t +loopif_output(structnetif*netif,structpbuf*p, +structip_addr*ipaddr) +{ +structpbuf*q,*r; +char*ptr; + +#ifdefLWIP_DEBUG +tcpdump(p); +#endif/*LWIP_DEBUG*/ + +r=pbuf_alloc(PBUF_RAW,p->tot_len,PBUF_RAM); +if(r!=NULL){ +ptr=r->payload; + +for(q=p;q!=NULL;q=q->next){ +bcopy(q->payload,ptr,q->len); +ptr+=q->len; +} +netif->input(r,netif); +returnERR_OK; +} +returnERR_MEM; +} +/*-----------------------------------------------------------------------------------*/ +void +loopif_init(structnetif*netif) +{ +netif->name[0]='l'; +netif->name[1]='o'; +netif->output=loopif_output; +} +/*-----------------------------------------------------------------------------------*/ + + + + + + + + + + + diff --git a/doc/xml/loopif_8h.xml b/doc/xml/loopif_8h.xml new file mode 100644 index 0000000..af82bf6 --- /dev/null +++ b/doc/xml/loopif_8h.xml @@ -0,0 +1,197 @@ + + + + loopif.h + net/netif.h + src/sys/net/net/init.c + src/sys/net/netif/loopif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void loopif_init + (struct netif *netif) + loopif_init + + struct netif * + netif + + + + + + + + + loopif_output + netif::name + netif::output + netMainThread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__NETIF_LOOPIF_H__ +#define__NETIF_LOOPIF_H__ + +#include"net/netif.h" + +voidloopif_init(structnetif*netif); + +#endif/*__NETIF_LOOPIF_H__*/ + + + + diff --git a/doc/xml/lwipopts_8h.xml b/doc/xml/lwipopts_8h.xml new file mode 100644 index 0000000..bcc3aa1 --- /dev/null +++ b/doc/xml/lwipopts_8h.xml @@ -0,0 +1,941 @@ + + + + lwipopts.h + src/sys/include/net/memp.h + src/sys/include/net/opt.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARP_TABLE_SIZE + 10 + + + + + + + + add_arp_entry + arp_init + arp_lookup + arp_tmr + + + DHCP_DOES_ARP_CHECK + 1 + + + + + + + + + + ICMP_STATS + + + + + + + + + + ICMP_TTL + 255 + + + + + + + + + + IP_FORWARD + 1 + + + + + + + + + + IP_OPTIONS + 1 + + + + + + + + + + IP_STATS + + + + + + + + + + LINK_STATS + + + + + + + + + + LWIP_DHCP + 0 + + + + + + + + + + LWIP_TCP + 1 + + + + + + + + + + LWIP_UDP + 1 + + + + + + + + + + MEM_ALIGNMENT + 2 + + + + + + + + + + MEM_RECLAIM + 1 + + + + + + + + + + MEM_SIZE + 1000 + + + + + + + + + + MEM_STATS + + + + + + + + + + MEMP_NUM_API_MSG + 8 + + + + + + + + + + MEMP_NUM_NETBUF + 2 + + + + + + + + + + MEMP_NUM_NETCONN + 4 + + + + + + + + + + MEMP_NUM_PBUF + 8 + + + + + + + + + + MEMP_NUM_SYS_TIMEOUT + 3 + + + + + + + + + + MEMP_NUM_TCP_PCB + 5 + + + + + + + + + + MEMP_NUM_TCP_PCB_LISTEN + 8 + + + + + + + + + + MEMP_NUM_TCP_SEG + 8 + + + + + + + + + + MEMP_NUM_TCPIP_MSG + 8 + + + + + + + + + + MEMP_NUM_UDP_PCB + 4 + + + + + + + + + + MEMP_RECLAIM + 1 + + + + + + + + + + MEMP_STATS + + + + + + + + + + PBUF_LINK_HLEN + 16 + + + + + + + + + + PBUF_POOL_BUFSIZE + 128 + + + + + + + + + + PBUF_POOL_SIZE + 6 + + + + + + + + + + PBUF_STATS + + + + + + + + + + STATS + + + + + + + + + + SYS_STATS + + + + + + + + + + TCP_MAXRTX + 12 + + + + + + + + + + TCP_MSS + 128 + + + + + + + + + + TCP_QUEUE_OOSEQ + 1 + + + + + + + + + + TCP_SND_BUF + 256 + + + + + + + + + + TCP_SND_QUEUELEN + 4 * TCP_SND_BUF/TCP_MSS + + + + + + + + + + TCP_STATS + + + + + + + + + + TCP_SYNMAXRTX + 4 + + + + + + + + + + TCP_TTL + 255 + + + + + + + + + + TCP_WND + 1024 + + + + + + + + + + UDP_STATS + + + + + + + + + + UDP_TTL + 255 + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIPOPTS_H__ +#define__LWIPOPTS_H__ + +/*----------Memoryoptions----------*/ +/*MEM_ALIGNMENT:shouldbesettothealignmentoftheCPUforwhich +lwIPiscompiled.4bytealignment->defineMEM_ALIGNMENTto4,2 +bytealignment->defineMEM_ALIGNMENTto2.*/ +#defineMEM_ALIGNMENT2 + +/*MEM_SIZE:thesizeoftheheapmemory.Iftheapplicationwillsend +alotofdatathatneedstobecopied,thisshouldbesethigh.*/ +#defineMEM_SIZE1000 + +/*MEMP_NUM_PBUF:thenumberofmempstructpbufs.Iftheapplication +sendsalotofdataoutofROM(orotherstaticmemory),this +shouldbesethigh.*/ +#defineMEMP_NUM_PBUF8 +/*MEMP_NUM_UDP_PCB:thenumberofUDPprotocolcontrolblocks.One +peractiveUDP"connection".*/ +#defineMEMP_NUM_UDP_PCB4 +/*MEMP_NUM_TCP_PCB:thenumberofsimulatenouslyactiveTCP +connections.*/ +#defineMEMP_NUM_TCP_PCB5 +/*MEMP_NUM_TCP_PCB_LISTEN:thenumberoflisteningTCP +connections.*/ +#defineMEMP_NUM_TCP_PCB_LISTEN8 +/*MEMP_NUM_TCP_SEG:thenumberofsimultaneouslyqueuedTCP +segments.*/ +#defineMEMP_NUM_TCP_SEG8 +/*MEMP_NUM_SYS_TIMEOUT:thenumberofsimulateouslyactive +timeouts.*/ +#defineMEMP_NUM_SYS_TIMEOUT3 + + +/*ThefollowingfourareusedonlywiththesequentialAPIandcanbe +setto0iftheapplicationonlywillusetherawAPI.*/ +/*MEMP_NUM_NETBUF:thenumberofstructnetbufs.*/ +#defineMEMP_NUM_NETBUF2 +/*MEMP_NUM_NETCONN:thenumberofstructnetconns.*/ +#defineMEMP_NUM_NETCONN4 +/*MEMP_NUM_APIMSG:thenumberofstructapi_msg,usedfor +communicationbetweentheTCP/IPstackandthesequential +programs.*/ +#defineMEMP_NUM_API_MSG8 +/*MEMP_NUM_TCPIPMSG:thenumberofstructtcpip_msg,whichisused +forsequentialAPIcommunicationandincomingpackets.Usedin +src/api/tcpip.c.*/ +#defineMEMP_NUM_TCPIP_MSG8 + +/*Thesetwocontrolisreclaimerfunctionsshouldbecompiled +in.Shouldalwaysbeturnedon(1).*/ +#defineMEM_RECLAIM1 +#defineMEMP_RECLAIM1 + +/*----------Pbufoptions----------*/ +/*PBUF_POOL_SIZE:thenumberofbuffersinthepbufpool.*/ +#definePBUF_POOL_SIZE6 + +/*PBUF_POOL_BUFSIZE:thesizeofeachpbufinthepbufpool.*/ +#definePBUF_POOL_BUFSIZE128 + +/*PBUF_LINK_HLEN:thenumberofbytesthatshouldbeallocatedfora +linklevelheader.*/ +#definePBUF_LINK_HLEN16 + +/*----------TCPoptions----------*/ +#defineLWIP_TCP1 +#defineTCP_TTL255 + +/*ControlsifTCPshouldqueuesegmentsthatarriveoutof +order.Defineto0ifyourdeviceislowonmemory.*/ +#defineTCP_QUEUE_OOSEQ1 + +/*TCPMaximumsegmentsize.*/ +#defineTCP_MSS128 + +/*TCPsenderbufferspace(bytes).*/ +#defineTCP_SND_BUF256 + +/*TCPsenderbufferspace(pbufs).Thismustbeatleast=2* +TCP_SND_BUF/TCP_MSSforthingstowork.*/ +#defineTCP_SND_QUEUELEN4*TCP_SND_BUF/TCP_MSS + +/*TCPreceivewindow.*/ +#defineTCP_WND1024 + +/*Maximumnumberofretransmissionsofdatasegments.*/ +#defineTCP_MAXRTX12 + +/*MaximumnumberofretransmissionsofSYNsegments.*/ +#defineTCP_SYNMAXRTX4 + +/*----------ARPoptions----------*/ +#defineARP_TABLE_SIZE10 + +/*----------IPoptions----------*/ +/*DefineIP_FORWARDto1ifyouwishtohavetheabilitytoforward +IPpacketsacrossnetworkinterfaces.IfyouaregoingtorunlwIP +onadevicewithonlyonenetworkinterface,definethisto0.*/ +#defineIP_FORWARD1 + +/*Ifdefinedto1,IPoptionsareallowed(butnotparsed).If +definedto0,allpacketswithIPoptionsaredropped.*/ +#defineIP_OPTIONS1 + +/*----------ICMPoptions----------*/ +#defineICMP_TTL255 + + +/*----------DHCPoptions----------*/ +/*DefineLWIP_DHCPto1ifyouwantDHCPconfigurationof +interfaces.DHCPisnotimplementedinlwIP0.5.1,however,so +turningthisondoescurrentlynotwork.*/ +#defineLWIP_DHCP0 + +/*1ifyouwanttodoanARPcheckontheofferedaddress +(recommended).*/ +#defineDHCP_DOES_ARP_CHECK1 + +/*----------UDPoptions----------*/ +#defineLWIP_UDP1 +#defineUDP_TTL255 + + +/*----------Statisticsoptions----------*/ +#defineSTATS + +#ifdefSTATS +#defineLINK_STATS +#defineIP_STATS +#defineICMP_STATS +#defineUDP_STATS +#defineTCP_STATS +#defineMEM_STATS +#defineMEMP_STATS +#definePBUF_STATS +#defineSYS_STATS +#endif/*STATS*/ + +#endif/*__LWIPOPTS_H__*/ + + + + diff --git a/doc/xml/main_8c.xml b/doc/xml/main_8c.xml new file mode 100644 index 0000000..2a93ef8 --- /dev/null +++ b/doc/xml/main_8c.xml @@ -0,0 +1,859 @@ + + + + main.c + ubixos/init.h + sys/gdt.h + sys/video.h + sys/tss.h + ubixos/exec.h + ubixos/kpanic.h + ubixos/systemtask.h + vfs/mount.h + lib/kprintf.h + lib/kmalloc.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + B_ADAPTOR + val + (((val) >> B_ADAPTORSHIFT) & B_ADAPTORMASK) + + + + + + + + kmain + + + B_ADAPTORMASK + 0x0f + + + + + + + + + + B_ADAPTORSHIFT + 24 + + + + + + + + + + B_CONTROLLER + val + (((val)>>B_CONTROLLERSHIFT) & B_CONTROLLERMASK) + + + + + + + + kmain + + + B_CONTROLLERMASK + 0xf + + + + + + + + + + B_CONTROLLERSHIFT + 20 + + + + + + + + + + B_PARTITION + val + (((val) >> B_PARTITIONSHIFT) & B_PARTITIONMASK) + + + + + + + + kmain + + + B_PARTITIONMASK + 0xff + + + + + + + + + + B_PARTITIONSHIFT + 8 + + + + + + + + + + B_SLICE + val + (((val)>>B_SLICESHIFT) & B_SLICEMASK) + + + + + + + + kmain + + + B_SLICEMASK + 0xff + + + + + + + + + + B_SLICESHIFT + 20 + + + + + + + + + + B_TYPE + val + (((val) >> B_TYPESHIFT) & B_TYPEMASK) + + + + + + + + kmain + + + B_TYPEMASK + 0xff + + + + + + + + + + B_TYPESHIFT + 0 + + + + + + + + + + B_UNIT + val + (((val) >> B_UNITSHIFT) & B_UNITMASK) + + + + + + + + kmain + + + B_UNITMASK + 0xf + + + + + + + + + + B_UNITSHIFT + 16 + + + + + + + + + + + + int + int kmain + (uInt32 rootdev) + kmain + + uInt32 + rootdev + + + + + + + + + B_ADAPTOR + B_CONTROLLER + B_PARTITION + B_SLICE + B_TYPE + B_UNIT + clearScreen + execFile + execThread + vitalsStruct::freePages + init_tasks + init_tasksTotal + irqEnable + kmalloc + kpanic + kprint + kprintf + NULL + systemTask + systemVitals + vfs_mount + vmmMemoryMap + x1 + x2000 + + + + ubixDescriptorTable + (ubixGDT, 9) + ubixDescriptorTable + + ubixGDT + + + 9 + + + + + + + + + dBig + dBiglim + dCode + dData + dDpl3 + dLdt + dRead + dTss + dWrite + ubixStandardDescriptor + + + + + @8 + struct @8 loadGDT + + loadGDT + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004,2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/init.h> +#include<sys/gdt.h> +#include<sys/video.h> +#include<sys/tss.h> +#include<ubixos/exec.h> +#include<ubixos/kpanic.h> +#include<ubixos/systemtask.h> +#include<vfs/mount.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> + +#defineB_ADAPTORSHIFT24 +#defineB_ADAPTORMASK0x0f +#defineB_ADAPTOR(val)(((val)>>B_ADAPTORSHIFT)&B_ADAPTORMASK) +#defineB_CONTROLLERSHIFT20 +#defineB_CONTROLLERMASK0xf +#defineB_CONTROLLER(val)(((val)>>B_CONTROLLERSHIFT)&B_CONTROLLERMASK) +#defineB_SLICESHIFT20 +#defineB_SLICEMASK0xff +#defineB_SLICE(val)(((val)>>B_SLICESHIFT)&B_SLICEMASK) +#defineB_UNITSHIFT16 +#defineB_UNITMASK0xf +#defineB_UNIT(val)(((val)>>B_UNITSHIFT)&B_UNITMASK) +#defineB_PARTITIONSHIFT8 +#defineB_PARTITIONMASK0xff +#defineB_PARTITION(val)(((val)>>B_PARTITIONSHIFT)&B_PARTITIONMASK) +#defineB_TYPESHIFT0 +#defineB_TYPEMASK0xff +#defineB_TYPE(val)(((val)>>B_TYPESHIFT)&B_TYPEMASK) + + +/***************************************************************************************** +Desc:TheKernelsDescriptortable: +0x00-DummyEntry +0x08-Ring0CS +0x10-Ring0DS +0x18-DummyLDT +0x20-SchedulerTSS +0x28-Ring3CS +0x30-Ring3DS +0x38-GPFTSS +0x40-StackFaultTSS + +Notes: + +*****************************************************************************************/ +ubixDescriptorTable(ubixGDT,9){ +{dummy:0}, +ubixStandardDescriptor(0x0000,0xFFFFF,(dCode+dRead+dBig+dBiglim)), +ubixStandardDescriptor(0x0000,0xFFFFF,(dData+dWrite+dBig+dBiglim)), +ubixStandardDescriptor(0x0000,0xFFFFF,(dLdt)), +ubixStandardDescriptor(0x4200,(sizeof(structtssStruct)),(dTss+dDpl3)), +ubixStandardDescriptor(0x0000,0xFFFFF,(dCode+dWrite+dBig+dBiglim+dDpl3)), +ubixStandardDescriptor(0x0000,0xFFFFF,(dData+dWrite+dBig+dBiglim+dDpl3)), +ubixStandardDescriptor(0x4200,(sizeof(structtssStruct)),(dTss)), +ubixStandardDescriptor(0x6200,(sizeof(structtssStruct)),(dTss)), +}; +struct{ +unsignedshortlimit__attribute__((packed)); +uniondescriptorTableUnion*gdt__attribute__((packed)); +}loadGDT={(9*sizeof(uniondescriptorTableUnion)-1),ubixGDT}; + +/***************************************************************************************** +Functoin:intmain() + +Desc:Thisistheentrypointintotheoswhereallofthekernelssubsystemsare +startedup. + +Notes: + +*****************************************************************************************/ +intkmain(uInt32rootdev){ +/*Setupcounterforstartuproutine*/ +inti=0x0; +uInt32*sysTask=0x0; + +/*DoAClearScreenJustToMakeTheTEXTBufferNiceAndEmpty*/ +clearScreen(); +kprint("AAA"); +kprint("BBB"); +kprintf("TEST"); +/*Modifysrc/sys/include/ubixos/init.htoaddastartuproutine*/ +for(i=0x0;i<init_tasksTotal;i++){ +if(init_tasks[i]()!=0x0){ +kpanic("Error:InitializingSystem.\n"); +} +} + +/*NewRootMountPoint*/ +//Old2new10 +kprintf("[0xX][0x%X:0x%X:0x%X:0x%X:0x%X:0x%X]\n",B_ADAPTOR(rootdev),B_CONTROLLER(rootdev),B_SLICE(rootdev),B_UNIT(rootdev),B_PARTITION(rootdev),B_TYPE(rootdev)); +if(vfs_mount(0x1,B_PARTITION(rootdev)+2,0x0,0xAA,"sys","rw")!=0x0){ +kprintf("ProblemMountingsysMountPoint\n"); +} + +/*Doourmounting*/ +/* +if(vfs_mount(0x0,0x0,0x0,0x0,"sys","rw")!=0x0){ +kprintf("ProblemMountingsysMountPoint\n"); +} +if(vfs_mount(0x0,0x0,0x1,0x0,"tmp","rw")!=0x0){ +kprintf("ProblemMountingtmpMountPoint\n"); +} +*/ + +/*Initializethesystem*/ +kprintf("FreePages:[%i]\n",systemVitals->freePages); + +kprintf("MemoryMap:[0x%X]\n",vmmMemoryMap); +kprintf("StartingOS\n"); + +sysTask=kmalloc(0x2000); +if(sysTask==NULL) +kprintf("OS:Unabletoallocatememory\n"); + +execThread(systemTask,(uInt32)sysTask+0x2000,0x0); + +execFile("sys:/bin/init",0x0,0x0,0x0);/*OSInitializer*/ + +irqEnable(0x0); + +while(0x1) +asm("hlt");/*Keephaultinguntiltheschedulerreacts*/ + +/*Returntostarthoweverweshouldnevergetthisfar*/ +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/main_8cpp.xml b/doc/xml/main_8cpp.xml new file mode 100644 index 0000000..1568124 --- /dev/null +++ b/doc/xml/main_8cpp.xml @@ -0,0 +1,236 @@ + + + + main.cpp + iostream + vector + stdlib.h + vfs.h + btree.h + ubixfs.h + device.h + ramdrive.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int main + (void) + main + + void + + + + + + + + + dev_ramDestroy + dev_ramDrive + bTree::GetFirstNode + bTree::Insert + memset + name + NULL + bTree::Save + strcpy + UbixFS::vfs_format + UbixFS::vfs_init + UbixFS::vfs_mkdir + UbixFS::vfs_stop + + + + + + + +#include<iostream> +#include<vector> +#include<stdlib.h> +#include"vfs.h" +#include"btree.h" +#include"ubixfs.h" +#include"device.h" +#include"ramdrive.h" +usingnamespacestd; + +int +main(void){ + +device_t*ramDrive=dev_ramDrive(); +UbixFS*fs=newUbixFS(ramDrive); +fs->vfs_format(ramDrive); +fs->vfs_init(); +fs->vfs_mkdir("/testdir",0); +fs->vfs_stop(); +dev_ramDestroy(); + +#if0 +inti=0; +ubixfsInode*inode=(ubixfsInode*)malloc(sizeof(ubixfsInode)); +memset(inode,0,sizeof(ubixfsInode)); +strcpy(inode->name,"50"); +bTree*tree=newbTree(".",inode); + +for(i=0;i<100;i++){ +//while(tree->Verify()){ +//if(i%1000==0)cout<<"-_-i="<<i<<"-_-"<<endl; +inode=(ubixfsInode*)malloc(sizeof(ubixfsInode)); +if(inode==NULL)break; +memset(inode,0,sizeof(ubixfsInode)); +for(intk=0;k<(random()%100)+5;k++){ +//for(intk=0;k<100;k++){ +inode->name[k]=(char)((random()%26)+'a'); +}//fork +//tree->Insert(inode); +if(!tree->Insert(inode->name,inode))cout<<"Insert("<<inode->name<<")failed"<<endl; +//++i; +}//fori +//cout<<"imadeitto:"<<i<<endl; + +i=0; +ubixfsInode*tmpInode=tmpInode=tree->GetFirstNode(); +if(tmpInode==NULL)cout<<"GetFirstNode()returnsnull"<<endl; +while(tmpInode!=NULL){ +//cout<<"node["<<i++<<"]:"<<tmpInode->name<<endl; +cout<<tmpInode->name<<endl; +tmpInode=tmpInode->next.iPtr; +}//while + + +//tree->Info(); +tree->Save("tree.dat"); +free(inode); +deletetree; +#endif +cout<<"sizeof(bNode):"<<sizeof(structbNode)<<endl; +cout<<"sizeof(ubixfsInode):"<<sizeof(structubixfsInode)<<endl; +cout<<"sizeof(diskSuperBlock):"<<sizeof(structdiskSuperBlock)<<endl; +cout<<"sizeof(bTreeHeader):"<<sizeof(structbTreeHeader)<<endl; +return0; +} + + + + diff --git a/doc/xml/math_8h.xml b/doc/xml/math_8h.xml new file mode 100644 index 0000000..60bda4e --- /dev/null +++ b/doc/xml/math_8h.xml @@ -0,0 +1,209 @@ + + + + math.h + ubixos/types.h + src/sys/lib/atan.c + src/sys/lib/divdi3.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unsigned long long int + typedef unsigned long long int u_quad_t + + u_quad_t + + + + + + + + + + + + quad_t + quad_t __divdi3 + (quad_t a, quad_t b) + __divdi3 + + quad_t + a + + + quad_t + b + + + + + + + + + + + u_quad_t + u_quad_t __udivdi3 + (u_quad_t a, u_quad_t b) + __udivdi3 + + u_quad_t + a + + + u_quad_t + b + + + + + + + + + + + double + double atan + (double x) + atan + + double + x + + + + + + + + + + + double + double sqrt + (double x) + sqrt + + double + x + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef__MATH_H +#define__MATH_H + +#include<ubixos/types.h> + +//typedeflonglongintquad_t; +typedefunsignedlonglongintu_quad_t; + +doubleatan(doublex); +doublesqrt(doublex); +u_quad_t__udivdi3(u_quad_ta,u_quad_tb); +quad_t__divdi3(quad_ta,quad_tb); + +#endif + +/*** +$Log$ +Revision1.22006/10/3120:41:16reddawg +Includes + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:38reddawg +nomessage + +Revision1.22004/05/2115:22:35reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/mem_8h.xml b/doc/xml/mem_8h.xml new file mode 100644 index 0000000..af2d99c --- /dev/null +++ b/doc/xml/mem_8h.xml @@ -0,0 +1,437 @@ + + + + mem.h + ubixos/types.h + net/debug.h + net/opt.h + net/arch.h + src/sys/include/net/tcp.h + src/sys/net/net/bot.c + src/sys/net/net/init.c + src/sys/net/net/shell.c + src/sys/net/netif/ethernetif.c + src/sys/net/netif/loopif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MEM_ALIGN + addr + (void *)MEM_ALIGN_SIZE((uInt32)addr) + + + + + + + + + + MEM_ALIGN_SIZE + size + (size + \ + ((((size) % (MEM_ALIGNMENT)) == 0)? 0 : \ + ((MEM_ALIGNMENT) - ((size) % (MEM_ALIGNMENT))))) + + + + + + + + + + mem_register_reclaim + f + arg + + + + + + + + + + + + uInt16 + typedef uInt16 mem_size_t + + mem_size_t + + + + + + + + + + + + void + void mem_free + (void *mem) + mem_free + + void * + mem + + + + + + + + + + + void + void mem_init + (void) + mem_init + + void + + + + + + + + + net_init + + + void * + void* mem_malloc + (mem_size_t size) + mem_malloc + + mem_size_t + size + + + + + + + + + ethernetif_init + + + void * + void* mem_malloc2 + (mem_size_t size) + mem_malloc2 + + mem_size_t + size + + + + + + + + + + + void * + void* mem_realloc + (void *mem, mem_size_t size) + mem_realloc + + void * + mem + + + mem_size_t + size + + + + + + + + + + + void * + void* mem_reallocm + (void *mem, mem_size_t size) + mem_reallocm + + void * + mem + + + mem_size_t + size + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_MEM_H__ +#define__LWIP_MEM_H__ + +#include<ubixos/types.h> + +#include"net/debug.h" +#include"net/opt.h" +#include"net/arch.h" + +#ifMEM_SIZE>64000l +typedefuInt32mem_size_t; +#else +typedefuInt16mem_size_t; +#endif/*MEM_SIZE>64000*/ + + +voidmem_init(void); + +void*mem_malloc(mem_size_tsize); +void*mem_malloc2(mem_size_tsize); +voidmem_free(void*mem); +void*mem_realloc(void*mem,mem_size_tsize); +void*mem_reallocm(void*mem,mem_size_tsize); + +#ifdefMEM_PERF +voidmem_perf_start(void); +voidmem_perf_init(char*fname); +#endif/*MEM_PERF*/ + +#ifdefMEM_RECLAIM +typedefmem_size_t(*mem_reclaim_func)(void*arg,mem_size_tsize); +voidmem_register_reclaim(mem_reclaim_funcf,void*arg); +voidmem_reclaim(unsignedintsize); +#else +#definemem_register_reclaim(f,arg) +#endif/*MEM_RECLAIM*/ + + +#defineMEM_ALIGN_SIZE(size)(size+\ +((((size)%(MEM_ALIGNMENT))==0)?0:\ +((MEM_ALIGNMENT)-((size)%(MEM_ALIGNMENT))))) + +#defineMEM_ALIGN(addr)(void*)MEM_ALIGN_SIZE((uInt32)addr) + +#endif/*__LWIP_MEM_H__*/ + + + + + diff --git a/doc/xml/memp_8h.xml b/doc/xml/memp_8h.xml new file mode 100644 index 0000000..d307f4b --- /dev/null +++ b/doc/xml/memp_8h.xml @@ -0,0 +1,461 @@ + + + + memp.h + ubixos/types.h + net/debug.h + net/arch/cc.h + net/lwipopts.h + src/sys/include/net/stats.h + src/sys/net/api/api_lib.c + src/sys/net/api/api_msg.c + src/sys/net/api/tcpip.c + src/sys/net/net/init.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + memp_register_reclaim + t + f + arg + + + + + + + + + + + + memp_t + + MEMP_PBUF + + + + + + + MEMP_UDP_PCB + + + + + + + MEMP_TCP_PCB + + + + + + + MEMP_TCP_PCB_LISTEN + + + + + + + MEMP_TCP_SEG + + + + + + + MEMP_NETBUF + + + + + + + MEMP_NETCONN + + + + + + + MEMP_API_MSG + + + + + + + MEMP_TCPIP_MSG + + + + + + + MEMP_SYS_TIMEOUT + + + + + + + MEMP_MAX + + + + + + + + + + + + + + + + + void + void memp_free + (memp_t type, void *mem) + memp_free + + memp_t + type + + + void * + mem + + + + + + + + + accept_function + netconn_delete + tcpip_apimsg + + + void + void memp_freep + (memp_t type, void *mem) + memp_freep + + memp_t + type + + + void * + mem + + + + + + + + + netbuf_chain + netbuf_delete + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_new + netconn_recv + netconn_send + netconn_write + tcpip_thread + + + void + void memp_init + (void) + memp_init + + void + + + + + + + + + net_init + + + void * + void* memp_malloc + (memp_t type) + memp_malloc + + memp_t + type + + + + + + + + + + + void * + void* memp_malloc2 + (memp_t type) + memp_malloc2 + + memp_t + type + + + + + + + + + + + void * + void* memp_mallocp + (memp_t type) + memp_mallocp + + memp_t + type + + + + + + + + + accept_function + netbuf_new + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_new + netconn_recv + netconn_send + netconn_write + recv_udp + tcpip_apimsg + tcpip_input + + + void * + void* memp_realloc + (memp_t fromtype, memp_t totype, void *mem) + memp_realloc + + memp_t + fromtype + + + memp_t + totype + + + void * + mem + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#ifndef__LWIP_MEMP_H__ +#define__LWIP_MEMP_H__ + +#include<ubixos/types.h> + +#include"net/debug.h" +#include"net/arch/cc.h" +#include"net/lwipopts.h" + +typedefenum{ +MEMP_PBUF, +MEMP_UDP_PCB, +MEMP_TCP_PCB, +MEMP_TCP_PCB_LISTEN, +MEMP_TCP_SEG, + +MEMP_NETBUF, +MEMP_NETCONN, +MEMP_API_MSG, +MEMP_TCPIP_MSG, + +MEMP_SYS_TIMEOUT, + +MEMP_MAX +}memp_t; + +voidmemp_init(void); + +void*memp_malloc(memp_ttype); +void*memp_mallocp(memp_ttype); +void*memp_malloc2(memp_ttype); +void*memp_realloc(memp_tfromtype,memp_ttotype,void*mem); +voidmemp_free(memp_ttype,void*mem); +voidmemp_freep(memp_ttype,void*mem); + +#ifMEMP_RECLAIM +typedefuInt8(*memp_reclaim_func)(void*arg,memp_ttype); +voidmemp_register_reclaim(memp_ttype,memp_reclaim_funcf,void*arg); +#else +#definememp_register_reclaim(t,f,arg) +#endif/*MEMP_RECLAIM*/ + +#endif/*__LWIP_MEMP_H__*/ + + + + + diff --git a/doc/xml/memset_8c.xml b/doc/xml/memset_8c.xml new file mode 100644 index 0000000..c97c787 --- /dev/null +++ b/doc/xml/memset_8c.xml @@ -0,0 +1,216 @@ + + + + memset.c + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + VAL + c0 + + + + + + + + memset + + + WIDEVAL + c + + + + + + + + memset + + + wmask + (wsize - 1) + + + + + + + + + + wsize + sizeof(uInt) + + + + + + + + + + + + void * + void* memset + (void *dst0, int c0, size_t length) + memset + + void * + dst0 + + + int + c0 + + + size_t + length + + + + + + + + + VAL + WIDEVAL + wmask + wsize + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<string.h> + +#definewsizesizeof(uInt) +#definewmask(wsize-1) +#defineVALc0 +#defineWIDEVALc + +void*memset(void*dst0,intc0,size_tlength){ +size_tt; +uIntc; +uInt8*dst; + +dst=dst0; + +if(length<3*wsize){ +while(length!=0){ +*dst++=VAL; +--length; +} +return(dst0); +} + +if((c=(uInt8)c0)!=0){/*Filltheword.*/ +c=(c<<8)|c;/*u_intis16bits.*/ +c=(c<<16)|c;/*u_intis32bits.*/ +} + +/*Aligndestinationbyfillinginbytes.*/ +if((t=(long)dst&wmask)!=0){ +t=wsize-t; +length-=t; +do{ +*dst++=VAL; +}while(--t!=0); +} + +/*Fillwords.Lengthwas>=2*wordssoweknowt>=1here.*/ +t=length/wsize; +do{ +*(u_int*)dst=WIDEVAL; +dst+=wsize; +}while(--t!=0); + +/*Mopuptrailingbytes,ifany.*/ +t=length&wmask; +if(t!=0) +do{ +*dst++=VAL; +}while(--t!=0); +return(dst0); +} + + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:12reddawg +nomessage + +Revision1.12004/07/2816:20:10reddawg +forgotthisfile + +END +***/ + + + + + diff --git a/doc/xml/message_8c.xml b/doc/xml/message_8c.xml new file mode 100644 index 0000000..f8e326a --- /dev/null +++ b/doc/xml/message_8c.xml @@ -0,0 +1,319 @@ + + + + message.c + mpi/mpi.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void sysMpiCreateMbox + (uInt32 *status, char *name) + sysMpiCreateMbox + + uInt32 * + status + + + char * + name + + + + + + + + + mpi_createMbox + + + void + void sysMpiDestroyMbox + (uInt32 *status, char *name) + sysMpiDestroyMbox + + uInt32 * + status + + + char * + name + + + + + + + + + mpi_destroyMbox + + + void + void sysMpiFetchMessage + (char *name, mpi_message_t *msg, uInt32 *status) + sysMpiFetchMessage + + char * + name + + + mpi_message_t * + msg + + + uInt32 * + status + + + + + + + + + mpi_fetchMessage + + + void + void sysMpiPostMessage + (char *name, uInt32 *type, mpi_message_t *data) + sysMpiPostMessage + + char * + name + + + uInt32 * + type + + + mpi_message_t * + data + + + + + + + + + mpi_postMessage + + + void + void sysMpiSpam + (uInt32 type, void *data, uInt32 *status) + sysMpiSpam + + uInt32 + type + + + void * + data + + + uInt32 * + status + + + + + + + + + mpi_spam + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<mpi/mpi.h> + +voidsysMpiCreateMbox(uInt32*status,char*name){ +if(status&&name) +*status=mpi_createMbox(name); +return; +} + +voidsysMpiDestroyMbox(uInt32*status,char*name){ +if(status&&name) +*status=mpi_destroyMbox(name); +return; +} + +voidsysMpiPostMessage(char*name,uInt32*type,mpi_message_t*data){ +if(type&&name&&data) +*type=mpi_postMessage(name,*type,data); +return; +} + +voidsysMpiFetchMessage(char*name,mpi_message_t*msg,uInt32*status){ +if(status&&name&&msg) +*status=mpi_fetchMessage(name,msg); +return; +} + +voidsysMpiSpam(uInt32type,void*data,uInt32*status){ +if(status&&data) +*status=mpi_spam(type,data); +return; +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:14reddawg +nomessage + +Revision1.122004/08/1411:23:02reddawg +Changes + +Revision1.112004/07/2817:07:25reddawg +MPI:movedthesyscalls + +END +***/ + + + + + diff --git a/doc/xml/mount_8c.xml b/doc/xml/mount_8c.xml new file mode 100644 index 0000000..06624ad --- /dev/null +++ b/doc/xml/mount_8c.xml @@ -0,0 +1,437 @@ + + + + mount.c + vfs/mount.h + ubixos/vitals.h + ubixos/kpanic.h + lib/kmalloc.h + lib/kprintf.h + lib/string.h + sys/device.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int vfs_addMount + (struct vfs_mountPoint *mp) + vfs_addMount + + struct vfs_mountPoint * + mp + + + + + + + + + vitalsStruct::mountPoints + vfs_mountPoint::next + vfs_mountPoint::prev + systemVitals + vfs_mount + + + vfs_mountPoint * + struct vfs_mountPoint* vfs_findMount + (char *mountPoint) + vfs_findMount + + char * + mountPoint + + + + + + + + + vfs_mountPoint::mountPoint + vitalsStruct::mountPoints + vfs_mountPoint::next + NULL + strcmp + systemVitals + devfs_makeNode + fopen + unlink + + + int + int vfs_mount + (int major, int minor, int partition, int vfsType, char *mountPoint, char *perms) + vfs_mount + + int + major + + + int + minor + + + int + partition + + + int + vfsType + + + char * + mountPoint + + + char * + perms + + + + + + + + + vfs_mountPoint::device + device_find + vfs_mountPoint::fs + kfree + kmalloc + kprintf + vfs_mountPoint::mountPoint + NULL + vfs_mountPoint::partition + vfs_mountPoint::perms + sprintf + vfs_addMount + vfsFindFS + fileSystem::vfsInitFS + x1 + devfs_init + kmain + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vfs/mount.h> +#include<ubixos/vitals.h> +#include<ubixos/kpanic.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/string.h> +#include<sys/device.h> + +/************************************************************************ + +Function:mount(intdriveId,intpartition,intfsType,char*mountPoint,char*perms) + +Description:mountaddsamountpointandreturns0ifsuccessful1ifitfails + +Notes: + +************************************************************************/ +intvfs_mount(intmajor,intminor,intpartition,intvfsType,char*mountPoint,char*perms){ +structvfs_mountPoint*mp=0x0; +structdevice_node*device=0x0; + +/*AllocateMemoryForMountPoint*/ +if((mp=(structvfs_mountPoint*)kmalloc(sizeof(structvfs_mountPoint)))==NULL) +kprintf("vfs_mount:failedtoallocatemp\n"); + +/*CopyMountPointIntoBuffer*/ +sprintf(mp->mountPoint,mountPoint); + +/*SetPointerToPhysicalDrive*/ +device=device_find(major,minor); + +/*SetUpMpDefaults*/ +mp->device=device; +mp->fs=vfsFindFS(vfsType); +mp->partition=partition; +mp->perms=*perms; + +if(mp->fs==0x0){ +/*sysErr(systemErr,"FileSystemType:%iNotFound\n",fsType);*/ +kprintf("FileSystemType:%iNotFound\n",vfsType); +return(0x1); +} +/*Whatisthisfor?10/6/2006*/ +/* +if(device!=0x0){ +mp->diskLabel=(structubixDiskLabel*)kmalloc(512); +mp->device->devInfo->read(mp->device->devInfo->info,mp->diskLabel,1,1); +kprintf("READINGSECTOR"); +} +*/ + +/*AddMountpointIfItFailsFreeAndReturn*/ +if(vfs_addMount(mp)!=0x0){ +kfree(mp); +return(0x1); +} + +/*InitializeTheFileSystemIfItFailsReturn*/ +if(mp->fs->vfsInitFS(mp)==0x0){ +kfree(mp); +return(0x1); +} +/*Return*/ +return(0x0); +} + +/************************************************************************ + +Function:vfs_addMount(structvfs_mountPoint*mp) + +Description:Thisfunctionaddsamountpointtothesystem + +Notes: + +************************************************************************/ +intvfs_addMount(structvfs_mountPoint*mp){ + +/*IfThereAreNoExistingMountsMakeItTheFirst*/ +if(systemVitals->mountPoints==0x0){ +mp->prev=0x0; +mp->next=0x0; +systemVitals->mountPoints=mp; +} +else{ +mp->next=systemVitals->mountPoints; +systemVitals->mountPoints->prev=mp; +mp->prev=0x0; +systemVitals->mountPoints=mp; +} +/*Return*/ +return(0x0); +} + +/************************************************************************ + +Function:vfs_findMount(char*mountPoint) + +Description:Thisfunctionfindsaparticularmountpoint + +Notes: + +************************************************************************/ +structvfs_mountPoint*vfs_findMount(char*mountPoint){ +structvfs_mountPoint*tmpMp=0x0; + +for(tmpMp=systemVitals->mountPoints;tmpMp;tmpMp=tmpMp->next){ +if(strcmp(tmpMp->mountPoint,mountPoint)==0x0){ +return(tmpMp); +} +} +/*ReturnNULLIfMountPointNotFound*/ +returnNULL; +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/mount_8h.xml b/doc/xml/mount_8h.xml new file mode 100644 index 0000000..495cd6f --- /dev/null +++ b/doc/xml/mount_8h.xml @@ -0,0 +1,756 @@ + + + + mount.h + ubixos/types.h + vfs/vfs.h + src/sys/include/ubixos/vitals.h + src/sys/include/vfs/file.h + src/sys/include/vfs/vfs.h + src/sys/init/main.c + src/sys/kernel/sched.c + src/sys/ubixfs/block.c + src/sys/ubixfs/directory.c + src/sys/vfs/mount.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vfs_mountPoint + + + int + int vfs_addMount + (struct vfs_mountPoint *mp) + vfs_addMount + + struct vfs_mountPoint * + mp + + + + + + + + + vitalsStruct::mountPoints + vfs_mountPoint::next + vfs_mountPoint::prev + systemVitals + vfs_mount + + + vfs_mountPoint * + struct vfs_mountPoint* vfs_findMount + (char *mountPoint) + vfs_findMount + + char * + mountPoint + + + + + + + + + vfs_mountPoint::mountPoint + vitalsStruct::mountPoints + vfs_mountPoint::next + NULL + strcmp + systemVitals + devfs_makeNode + fopen + unlink + + + int + int vfs_mount + (int major, int minor, int partition, int fsType, char *mountPoint, char *perms) + vfs_mount + + int + major + + + int + minor + + + int + partition + + + int + fsType + + + char * + mountPoint + + + char * + perms + + + + + + + + + vfs_mountPoint::device + device_find + vfs_mountPoint::fs + kfree + kmalloc + kprintf + vfs_mountPoint::mountPoint + NULL + vfs_mountPoint::partition + vfs_mountPoint::perms + sprintf + vfs_addMount + vfsFindFS + fileSystem::vfsInitFS + x1 + devfs_init + kmain + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_MOUNT_H +#define_MOUNT_H + +#include<ubixos/types.h> +#include<vfs/vfs.h> + +structvfs_mountPoint{ +structvfs_mountPoint*prev; +structvfs_mountPoint*next; +structfileSystem*fs; +structdevice_node*device; +structubixDiskLabel*diskLabel; +void*fsInfo; +intpartition; +charmountPoint[1024]; +charperms; +}; + +intvfs_mount(intmajor,intminor,intpartition,intfsType,char*mountPoint,char*perms); +intvfs_addMount(structvfs_mountPoint*mp); +structvfs_mountPoint*vfs_findMount(char*mountPoint); + +#endif + +/*** +END +***/ + + + + diff --git a/doc/xml/mouse_8c.xml b/doc/xml/mouse_8c.xml new file mode 100644 index 0000000..b78c46c --- /dev/null +++ b/doc/xml/mouse_8c.xml @@ -0,0 +1,387 @@ + + + + mouse.c + isa/mouse.h + isa/8259.h + sys/idt.h + sys/gdt.h + sys/io.h + lib/kprintf.h + ubixos/types.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl mouseISR \n""mouseISR: \n"" pusha \n"" call mouseHandler \n"" popa \n"" iret \n") + asm + + ".globl mouseISR \n""mouseISR: \n"" pusha \n"" call mouseHandler \n"" popa \n"" iret \n" + + + + + + + + + + + uInt8 + static uInt8 kbdRead + () + kbdRead + + + + + + + + inportByte + kbdWriteRead + mouseInit + + + void + static void kbdWrite + (uInt16 port, uInt8 data) + kbdWrite + + uInt16 + port + + + uInt8 + data + + + + + + + + + inportByte + outportByte + kbdWriteRead + mouseInit + + + uInt8 + static uInt8 kbdWriteRead + (uInt16 port, uInt8 data, const char *expect) + kbdWriteRead + + uInt16 + port + + + uInt8 + data + + + const char * + expect + + + + + + + + + kbdRead + kbdWrite + mouseInit + + + void + void mouseHandler + () + mouseHandler + + + + + + + + eoi + kprintf + mPic + outportByte + sPic + + + int + int mouseInit + () + mouseInit + + + + + + + + dDpl3 + dInt + dPresent + eoi + irqEnable + kbdRead + kbdWrite + kbdWriteRead + kprintf + mouseISR + mPic + mVec + outportByte + setVector + sPic + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<isa/mouse.h> +#include<isa/8259.h> +#include<sys/idt.h> +#include<sys/gdt.h> +#include<sys/io.h> +#include<lib/kprintf.h> +#include<ubixos/types.h> + +staticuInt8kbdRead(){ +unsignedlongTimeout; +uInt8Stat,Data; + +for(Timeout=50000L;Timeout!=0;Timeout--){ +Stat=inportByte(0x64); + +/*loopuntil8042outputbufferfull*/ +if((Stat&0x01)!=0) +{ +Data=inportByte(0x60); + +/*loopifparityerrororreceivetimeout*/ +if((Stat&0xC0)==0) +returnData; +} +} + +return-1; +} + +staticvoidkbdWrite(uInt16port,uInt8data){ +uInt32timeout; +uInt8stat; + +for(timeout=500000L;timeout!=0;timeout--) +{ +stat=inportByte(0x64); + +if((stat&0x02)==0) +break; +} + +if(timeout!=0) +outportByte(port,data); +} + +staticuInt8kbdWriteRead(uInt16port,uInt8data,constchar*expect) +{ +intRetVal; + +kbdWrite(port,data); +for(;*expect;expect++) +{ +RetVal=kbdRead(); +if((uInt8)*expect!=RetVal) +{ +returnRetVal; +} +} + +return0; +} + + + +intmouseInit(){ +staticuInt8s1[]={0xF3,0xC8,0xF3,0x64,0xF3,0x50,0}; +staticuInt8s2[]={0xF6,0xE6,0xF4,0xF3,0x64,0xE8,0x03,0}; +constuInt8*ch; +Int8cmd=0x0; + +kbdWrite(0x64,0xA8); +for(ch=s1;*ch;ch++){ +kbdWrite(0x64,0xD4); +kbdWriteRead(0x60,*ch,"\xFA"); +} +for(ch=s2;*ch;ch++){ +kbdWrite(0x64,0xD4); +kbdWriteRead(0x60,*ch,"\xFA"); +} +kbdWrite(0x64,0xD4); +if(kbdWriteRead(0x60,0xF2,"\xFA")!=0x0){ +kprintf("ErrorWithMouse\n"); +} +cmd=kbdRead(); +kprintf("CMD:[0x%X]\n",cmd); +kbdWrite(0x64,0xD4); +kbdWriteRead(0x60,0xF4,"\xFA"); + +setVector(&mouseISR,mVec+12,dPresent+dInt+dDpl3); + +outportByte(mPic,eoi); +outportByte(sPic,eoi); +irqEnable(12); +outportByte(mPic,eoi); +outportByte(sPic,eoi); + +kprintf("psm0-Address:[0x%X]\n",&mouseISR); + +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +} + +asm( +".globlmouseISR\n" +"mouseISR:\n" +"pusha\n"/*Saveallregisters*/ +"callmouseHandler\n" +"popa\n" +"iret\n"/*Exitinterrupt*/ +); + +voidmouseHandler(){ +kprintf("MOUSE!!!\n"); + +outportByte(mPic,eoi); +outportByte(sPic,eoi); +/*Return*/ +return; +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:02reddawg +nomessage + +Revision1.32004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.22004/09/0615:13:25reddawg +LastcommitbeforeFreeBSD6.0 + +Revision1.12004/06/0410:20:53reddawg +mousedrive:fixedafewbugsworksabitbetternow + +END +***/ + + + + + diff --git a/doc/xml/mouse_8h.xml b/doc/xml/mouse_8h.xml new file mode 100644 index 0000000..18fd7b9 --- /dev/null +++ b/doc/xml/mouse_8h.xml @@ -0,0 +1,154 @@ + + + + mouse.h + src/sys/isa/mouse.c + + + + + + + + + + + + + + + _MOUSE_H + + + + + + + + + + + + void + void mouseHandler + () + mouseHandler + + + + + + + + eoi + kprintf + mPic + outportByte + sPic + + + int + int mouseInit + () + mouseInit + + + + + + + + dDpl3 + dInt + dPresent + eoi + irqEnable + kbdRead + kbdWrite + kbdWriteRead + kprintf + mouseISR + mPic + mVec + outportByte + setVector + sPic + + + void + void mouseISR + () + mouseISR + + + + + + + + mouseInit + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_MOUE_H +#define_MOUSE_H + +intmouseInit(); +voidmouseISR(); +voidmouseHandler(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:39reddawg +nomessage + +Revision1.12004/06/0410:20:53reddawg +mousedrive:fixedafewbugsworksabitbetternow + +END +***/ + + + + diff --git a/doc/xml/mpi_8h.xml b/doc/xml/mpi_8h.xml new file mode 100644 index 0000000..59763af --- /dev/null +++ b/doc/xml/mpi_8h.xml @@ -0,0 +1,519 @@ + + + + mpi.h + ubixos/types.h + ubixos/sched.h + src/sys/include/ubixfs/ubixfs.h + src/sys/kernel/syscall.c + src/sys/kernel/systemtask.c + src/sys/mpi/message.c + src/sys/mpi/system.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mpi_mbox + mpi_message + + + MESSAGE_LENGTH + 248 + + + + + + + + mpi_fetchMessage + mpi_postMessage + mpi_spam + + + + + mpi_mbox + typedef struct mpi_mbox mpi_mbox_t + + mpi_mbox_t + + + + + + + + + + mpi_message + typedef struct mpi_message mpi_message_t + + mpi_message_t + + + + + + + + + + + + int + int mpi_createMbox + (char *) + mpi_createMbox + + char * + + + + + + + + + _current + taskStruct::id + kmalloc + mbox + mboxList + mpi_findMbox + mpiSpinLock + mpi_mbox::prev + spinLock + spinUnlock + sprintf + sysMpiCreateMbox + systemTask + ubixfs_thread + + + int + int mpi_destroyMbox + (char *) + mpi_destroyMbox + + char * + + + + + + + + + _current + taskStruct::id + kfree + mbox + mboxList + mpiSpinLock + spinLock + spinUnlock + strcmp + sysMpiDestroyMbox + + + int + int mpi_fetchMessage + (char *, mpi_message_t *) + mpi_fetchMessage + + char * + + + mpi_message_t * + + + + + + + + + _current + mpi_message::data + mpi_message::header + taskStruct::id + kfree + mbox + memcpy + MESSAGE_LENGTH + mpi_findMbox + mpiSpinLock + mpi_message::pid + spinLock + spinUnlock + sysMpiFetchMessage + systemTask + ubixfs_thread + + + int + int mpi_postMessage + (char *, uInt32, mpi_message_t *) + mpi_postMessage + + char * + + + uInt32 + + + mpi_message_t * + + + + + + + + + _current + mpi_message::data + mpi_message::header + taskStruct::id + kmalloc + mbox + memcpy + MESSAGE_LENGTH + mpi_findMbox + mpiSpinLock + mpi_message::next + mpi_message::pid + spinLock + spinUnlock + x1 + sysMpiPostMessage + + + int + int mpi_spam + (uInt32, void *) + mpi_spam + + uInt32 + + + void * + + + + + + + + + mpi_message::data + mpi_message::header + kmalloc + mbox + mboxList + memcpy + MESSAGE_LENGTH + mpiSpinLock + mpi_message::next + spinLock + spinUnlock + sysMpiSpam + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_MPI_H +#define_MPI_H + +#include<ubixos/types.h> +#include<ubixos/sched.h> + +#defineMESSAGE_LENGTH248 + +structmpi_message{ +chardata[MESSAGE_LENGTH]; +uInt32header; +pidTypepid; +structmpi_message*next; +}; + +structmpi_mbox{ +structmpi_mbox*next; +structmpi_mbox*prev; +structmpi_message*msg; +structmpi_message*msgLast; +charname[64]; +pidTypepid; +}; + +typedefstructmpi_mboxmpi_mbox_t; +typedefstructmpi_messagempi_message_t; + + +intmpi_createMbox(char*); +intmpi_destroyMbox(char*); +intmpi_postMessage(char*,uInt32,mpi_message_t*); +intmpi_fetchMessage(char*,mpi_message_t*); +intmpi_spam(uInt32,void*); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:42reddawg +nomessage + +Revision1.82004/08/1411:23:02reddawg +Changes + +Revision1.72004/05/2803:52:56reddawg +mpi:tookafewsuggestionsfromTCA + +Revision1.62004/05/2518:33:11reddawg +Wenowuse128bytemessagesIcanincreaselater + +Revision1.52004/05/2518:29:57reddawg +Wenowlockontoapid + +Revision1.42004/05/2516:52:22reddawg +WenowhavempiDestroyMbox(char*)Thiswillofcoursedestroyamailbox + +Revision1.32004/05/2516:28:21reddawg +MadempiFindMbox()static + +Revision1.22004/05/2515:42:19reddawg +EnabledmpiSpam(); + +Revision1.12004/05/2514:07:01reddawg +Sorrywecan'tforgettheheadersfiles + +END +***/ + + + + + diff --git a/doc/xml/namespacestd.xml b/doc/xml/namespacestd.xml new file mode 100644 index 0000000..c7878fb --- /dev/null +++ b/doc/xml/namespacestd.xml @@ -0,0 +1,11 @@ + + + + std + + + + + + + diff --git a/doc/xml/ne2k_8c.xml b/doc/xml/ne2k_8c.xml new file mode 100644 index 0000000..495d2fe --- /dev/null +++ b/doc/xml/ne2k_8c.xml @@ -0,0 +1,1070 @@ + + + + ne2k.c + isa/ne2k.h + isa/8259.h + sys/device.old.h + sys/io.h + sys/idt.h + lib/kmalloc.h + lib/kprintf.h + string.h + ubixos/kpanic.h + ubixos/vitals.h + ubixos/spinlock.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm + (".globl ne2kISR \n""ne2kISR: \n"" pusha \n"" call ne2kHandler \n"" popa \n"" iret \n") + asm + + ".globl ne2kISR \n""ne2kISR: \n"" pusha \n"" call ne2kHandler \n"" popa \n"" iret \n" + + + + + + + + + + + int + static int dp_pkt2user + (struct device *dev, int page, int length) + dp_pkt2user + + struct device * + dev + + + int + page + + + int + length + + + + + + + + + nicBuffer::buffer + dev + DP_PAGESIZE + kprintf + ne2kAllocBuffer + NICtoPC + OK + stopPage + tmpBuf + dp_recv + + + int + static int dp_recv + (struct device *) + dp_recv + + struct device * + dev + + + + + + + + + dev + dp_pkt2user + getblock + inportByte + device::ioAddr + kpanic + kprintf + NE_BNRY + NE_CMD + NE_CURRENT + OK + outportByte + RSR_FO + RSR_PRX + startPage + stopPage + ne2kHandler + + + void + static void getblock + (struct device *dev, int page, size_t offset, size_t size, void *dst) + getblock + + struct device * + dev + + + int + page + + + size_t + offset + + + size_t + size + + + void * + dst + + + + + + + + + dev + DP_PAGESIZE + E8390_RREAD + E8390_START + EN0_ISR + EN0_RSARHI + EN0_RSARLO + inportWord + device::ioAddr + NE_CMD + NE_DATAPORT + NE_RBCR0 + NE_RBCR1 + outportByte + dp_recv + + + int + int ne2k_init + () + ne2k_init + + + + + + + + dDpl0 + dInt + DP_CNTR0 + DP_CNTR1 + DP_CNTR2 + DP_CURR + DP_MAR0 + DP_MAR1 + DP_MAR2 + DP_MAR3 + DP_MAR4 + DP_MAR5 + DP_MAR6 + DP_MAR7 + dPresent + inportByte + device::ioAddr + device::irq + irqEnable + kmalloc + kprintf + mDev + mVec + ne2kISR + NE_BNRY + NE_CMD + NE_DCR + NE_IMR + NE_ISR + NE_PSTART + NE_PSTOP + NE_RBCR0 + NE_RBCR1 + NE_RCR + NE_TCR + outportByte + setVector + startPage + stopPage + x20 + + + nicBuffer * + struct nicBuffer* ne2kAllocBuffer + (int length) + ne2kAllocBuffer + + int + length + + + + + + + + + nicBuffer::buffer + kmalloc + nicBuffer::length + ne2k_spinLock + ne2kBuffer + nicBuffer::next + spinLock + spinUnlock + tmpBuf + dp_pkt2user + + + void + void ne2kFreeBuffer + (struct nicBuffer *buf) + ne2kFreeBuffer + + struct nicBuffer * + buf + + + + + + + + + nicBuffer::buffer + kfree + ethernetif_thread + + + nicBuffer * + struct nicBuffer* ne2kGetBuffer + () + ne2kGetBuffer + + + + + + + + ne2k_spinLock + ne2kBuffer + nicBuffer::next + tmpBuf + x1 + ethernetif_thread + + + void + void ne2kHandler + () + ne2kHandler + + + + + + + + dp_recv + eoi + inportByte + device::ioAddr + irqDisable + irqEnable + kprintf + mDev + mPic + NE_IMR + NE_ISR + NE_TPSR + outportByte + sPic + status + + + int + int NICtoPC + (struct device *dev, void *packet, int length, int nic_addr) + NICtoPC + + struct device * + dev + + + void * + packet + + + int + length + + + int + nic_addr + + + + + + + + + assert + dev + EN0_ISR + EN0_RCNTHI + EN0_RCNTLO + EN0_RSARHI + EN0_RSARLO + inportWord + device::ioAddr + NE_DATAPORT + outportByte + dp_pkt2user + + + int + int PCtoNIC + (struct device *dev, void *packet, int length) + PCtoNIC + + struct device * + dev + + + void * + packet + + + int + length + + + + + + + + + assert + dev + E8390_RWRITE + E8390_START + EN0_ISR + EN0_RCNTHI + EN0_RCNTLO + EN0_RSARHI + EN0_RSARLO + inportByte + device::ioAddr + kpanic + NE_DATAPORT + outportByte + outportWord + low_level_output + + + + + struct device * + struct device* mDev + + mDev + 0x0 + + + + + + + + ne2k_init + ne2kHandler + + + spinLock_t + spinLock_t ne2k_spinLock + + ne2k_spinLock + SPIN_LOCK_INITIALIZER + + + + + + + + ne2kAllocBuffer + ne2kGetBuffer + + + struct nicBuffer * + struct nicBuffer* ne2kBuffer + + ne2kBuffer + 0x0 + + + + + + + + ne2kAllocBuffer + ne2kGetBuffer + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<isa/ne2k.h> +#include<isa/8259.h> +#include<sys/device.old.h> +#include<sys/io.h> +#include<sys/idt.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<string.h> +#include<ubixos/kpanic.h> +#include<ubixos/vitals.h> +#include<ubixos/spinlock.h> +#include<assert.h> + + +staticspinLock_tne2k_spinLock=SPIN_LOCK_INITIALIZER; + +staticintdp_pkt2user(structdevice*dev,intpage,intlength); +staticvoidgetblock(structdevice*dev,intpage,size_toffset,size_tsize,void*dst); +staticintdp_recv(structdevice*); + +staticstructnicBuffer*ne2kBuffer=0x0; +staticstructdevice*mDev=0x0; + +asm( +".globlne2kISR\n" +"ne2kISR:\n" +"pusha\n"/*Saveallregisters*/ +"callne2kHandler\n" +"popa\n" +"iret\n"/*Exitinterrupt*/ +); + +/************************************************************************ + +Function:intne2kInit(uInt32ioAddr) +Description:ThisFunctionWillInitializeTheProgrammableTimer + +Notes: + +************************************************************************/ +intne2k_init(){ +mDev=(structdevice*)kmalloc(sizeof(structdevice)); +mDev->ioAddr=0x280; +mDev->irq=10; +setVector(&ne2kISR,mVec+10,dPresent+dInt+dDpl0); +irqEnable(10); +//kprintf("ne0-irq:%i,ioAddr:0x%XMAC:%X:%X:%X:%X:%X:%X\n",dev->irq,dev->ioAddr,dev->net->mac[0]&0xFF,dev->net->mac[1]&0xFF,dev->net->mac[2]&0xFF,dev->net->mac[3]&0xFF,dev->net->mac[4]&0xFF,dev->net->mac[5]&0xFF); + +outportByte(mDev->ioAddr+NE_CMD,0x21);//stopmode +outportByte(mDev->ioAddr+NE_DCR,0x29);//0x29dataconfigreg +outportByte(mDev->ioAddr+NE_RBCR0,0x00);//LOWbytecount(remote) +outportByte(mDev->ioAddr+NE_RBCR1,0x00);//HIGHbytecount(remote) +outportByte(mDev->ioAddr+NE_RCR,0x3C);//receiveconfigreg +outportByte(mDev->ioAddr+NE_TCR,0x02);//LOOPmode(temp) +outportByte(mDev->ioAddr+NE_PSTART,startPage);//0x26PAGEstart +outportByte(mDev->ioAddr+NE_BNRY,startPage);//0x26BOUNDARY +outportByte(mDev->ioAddr+NE_PSTOP,stopPage);//0x40PAGEstop +outportByte(mDev->ioAddr+NE_ISR,0xFF);//interruptstatusreg +outportByte(mDev->ioAddr+NE_IMR,0x0B); +outportByte(mDev->ioAddr+NE_CMD,0x61);//PAGE1regs + +outportByte(mDev->ioAddr+DP_MAR0,0xFF); +outportByte(mDev->ioAddr+DP_MAR1,0xFF); +outportByte(mDev->ioAddr+DP_MAR2,0xFF); +outportByte(mDev->ioAddr+DP_MAR3,0xFF); +outportByte(mDev->ioAddr+DP_MAR4,0xFF); +outportByte(mDev->ioAddr+DP_MAR5,0xFF); +outportByte(mDev->ioAddr+DP_MAR6,0xFF); +outportByte(mDev->ioAddr+DP_MAR7,0xFF); +outportByte(mDev->ioAddr+DP_CURR,startPage+1); +outportByte(mDev->ioAddr+NE_CMD,0x20); +inportByte(mDev->ioAddr+DP_CNTR0);/*resetcountersbyreading*/ +inportByte(mDev->ioAddr+DP_CNTR1); +inportByte(mDev->ioAddr+DP_CNTR2); + +outportByte(mDev->ioAddr+NE_TCR,0x00); + +outportByte(mDev->ioAddr+NE_CMD,0x0); +outportByte(mDev->ioAddr+NE_DCR,0x29); + +kprintf("Initialized"); +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +} + +intPCtoNIC(structdevice*dev,void*packet,intlength){ +inti=0x0; +uInt16*packet16=(uInt16*)packet; +uInt8*packet8=(uInt8*)packet; +uInt8word16=0x1; + +if((inportByte(dev->ioAddr)&0x04)==0x04){ +kpanic("DeviceNotReady\n"); +} + +assert(length); +if((word16==1)&&(length&0x01)){ +length++; +} + +outportByte(dev->ioAddr+EN0_RCNTLO,(length&0xFF)); +outportByte(dev->ioAddr+EN0_RCNTHI,(length>>8)); + +outportByte(dev->ioAddr+EN0_RSARLO,0x0); +outportByte(dev->ioAddr+EN0_RSARHI,0x41); + +outportByte(dev->ioAddr,E8390_RWRITE+E8390_START); + +if(word16!=0x0){ +for(i=0;i<length/2;i++){ +outportWord(dev->ioAddr+NE_DATAPORT,packet16[i]); +} +} +else{ +for(i=0;i<length;i++){ +outportByte(dev->ioAddr+NE_DATAPORT,packet8[i]); +} +} + +for(i=0;i<=100;i++){ +if((inportByte(dev->ioAddr+EN0_ISR)&0x40)==0x40){ +break; +} +} + +outportByte(dev->ioAddr+EN0_ISR,0x40); +outportByte(dev->ioAddr+EN0_TPSR,0x41);//ei_local->txStartPage); +outportByte(dev->ioAddr+0x05,(length&0xFF)); +outportByte(dev->ioAddr+0x06,(length>>8)); +outportByteP(dev->ioAddr,0x26); +//kprintf("SENT\n"); +return(length); +} + +intNICtoPC(structdevice*dev,void*packet,intlength,intnic_addr){ +inti=0x0; +uInt16*packet16=(uInt16*)packet; + +assert(length); + +if(length&0x01) +length++; + + + +outportByte(dev->ioAddr+EN0_RCNTLO,(length&0xFF)); +outportByte(dev->ioAddr+EN0_RCNTHI,(length>>8)); + +outportByte(dev->ioAddr+EN0_RSARLO,nic_addr&0xFF); +outportByte(dev->ioAddr+EN0_RSARHI,nic_addr>>8); + +outportByte(dev->ioAddr,0x0A); + +for(i=0;i<length/2;i++){ +packet16[i]=inportWord(dev->ioAddr+NE_DATAPORT); +} + +outportByte(dev->ioAddr+EN0_ISR,0x40); +return(length); +} + +voidne2kHandler(){ +uInt16isr=0x0; +uInt16status=0x0; + +irqDisable(10); +outportByte(mPic,eoi); +outportByte(sPic,eoi); + +asm("sti"); + +isr=inportByte(mDev->ioAddr+NE_ISR); + +if((isr&0x02)==0x02){ +outportByte(mDev->ioAddr+NE_ISR,0x0A); +status=inportByte(0x280+NE_TPSR); +} +if((isr&0x01)==0x01){ +if(dp_recv(mDev)){ +kprintf("ErrorGettingPacket\n"); +} +outportByte(mDev->ioAddr+NE_ISR,0x05); +} + +outportByte(mDev->ioAddr+NE_IMR,0x0); +outportByte(mDev->ioAddr+NE_IMR,0x0B); + +asm("cli"); +irqEnable(10); + +return; +} + +staticintdp_recv(structdevice*dev){ +dp_rcvhdr_theader; +unsignedintpageno=0x0,curr=0x0,next=0x0; +intpacket_processed=0x0,r=0x0; +uInt16eth_type=0x0; + +uInt32length=0x0; + +pageno=inportByte(dev->ioAddr+NE_BNRY)+1; +if(pageno==stopPage)pageno=startPage; + +do{ +outportByte(dev->ioAddr+NE_CMD,0x40); +curr=inportByte(dev->ioAddr+NE_CURRENT); +outportByte(dev->ioAddr,0x0); +if(curr==pageno)break; +getblock(dev,pageno,(size_t)0,sizeof(header),&header); +getblock(dev,pageno,sizeof(header)+2*sizeof(ether_addr_t),sizeof(eth_type),&eth_type); + +length=(header.dr_rbcl|(header.dr_rbch<<8))-sizeof(dp_rcvhdr_t); +next=header.dr_next; + +//kprintf("length:[0x%X:0x%X:0x%X]\n",header.dr_next,header.dr_status,length); + +if(length<60||length>1514){ +kprintf("dp8390:packetwithstrangelengtharrived:%d\n",length); +next=curr; +} +elseif(next<startPage||next>=stopPage){ +kprintf("dp8390:strangenextpage\n"); +next=curr; +} +elseif(header.dr_status&RSR_FO){ +kpanic("dp8390:fifooverrun,resettingreceivebuffer\n"); +next=curr; +} +elseif(header.dr_status&RSR_PRX){ +r=dp_pkt2user(dev,pageno,length); +if(r!=OK){ +kprintf("FRUIT"); +return(0x0); +} + +packet_processed=0x1; +} +if(next==startPage) +outportByte(dev->ioAddr+NE_BNRY,stopPage-1); +else +outportByte(dev->ioAddr+NE_BNRY,next-1); + +pageno=next; + +}while(packet_processed==0x0); +return(0x0); +} + +staticvoidgetblock(structdevice*dev,intpage,size_toffset,size_tsize,void*dst){ +uInt16*ha=0x0; +inti=0x0; + +ha=(uInt16*)dst; +offset=page*DP_PAGESIZE+offset; +outportByte(dev->ioAddr+NE_RBCR0,size&0xFF); +outportByte(dev->ioAddr+NE_RBCR1,size>>8); +outportByte(dev->ioAddr+EN0_RSARLO,offset&0xFF); +outportByte(dev->ioAddr+EN0_RSARHI,offset>>8); +outportByte(dev->ioAddr+NE_CMD,E8390_RREAD|E8390_START); + +size/=2; +for(i=0;i<size;i++) +ha[i]=inportWord(dev->ioAddr+NE_DATAPORT); +outportByte(dev->ioAddr+EN0_ISR,0x40); +} + +staticintdp_pkt2user(structdevice*dev,intpage,intlength){ +intlast=0x0; +structnicBuffer*tmpBuf=0x0; + +last=page+(length-1)/DP_PAGESIZE; + +if(last>=stopPage){ +kprintf("FOOKSTOPPAGE!!!"); +} +else{ +tmpBuf=ne2kAllocBuffer(length); +NICtoPC(dev,tmpBuf->buffer,length,page*DP_PAGESIZE+sizeof(dp_rcvhdr_t)); +} +return(OK); +} + +structnicBuffer*ne2kAllocBuffer(intlength){ +structnicBuffer*tmpBuf=0x0; + +spinLock(&ne2k_spinLock); + +if(ne2kBuffer==0x0){ +ne2kBuffer=(structnicBuffer*)kmalloc(sizeof(structnicBuffer)); +ne2kBuffer->next=0x0; +ne2kBuffer->length=length; +ne2kBuffer->buffer=(char*)kmalloc(length); +spinUnlock(&ne2k_spinLock); +return(ne2kBuffer); +} +else{ +for(tmpBuf=ne2kBuffer;tmpBuf->next!=0x0;tmpBuf=tmpBuf->next); + +tmpBuf->next=(structnicBuffer*)kmalloc(sizeof(structnicBuffer)); +tmpBuf=tmpBuf->next; +tmpBuf->next=0x0; +tmpBuf->length=length; +tmpBuf->buffer=(char*)kmalloc(length); +spinUnlock(&ne2k_spinLock); +return(tmpBuf); +} +spinUnlock(&ne2k_spinLock); +return(0x0); +} + +structnicBuffer*ne2kGetBuffer(){ +structnicBuffer*tmpBuf=0x0; + +if(ne2k_spinLock==0x1) +return(0x0); + +tmpBuf=ne2kBuffer; +if(ne2kBuffer!=0x0) +ne2kBuffer=ne2kBuffer->next; +return(tmpBuf); +} + +voidne2kFreeBuffer(structnicBuffer*buf){ +kfree(buf->buffer); +kfree(buf); +return; +} + +/*** + +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:02reddawg +nomessage + +Revision1.242004/09/2821:47:56reddawg +Fixeddeadlocknowsafetouseinbochs + +Revision1.232004/09/1622:35:28reddawg +DemoRelease + +Revision1.222004/09/1521:25:33reddawg +Fixens + +Revision1.212004/09/1119:15:37reddawg +hereyougoirq10io240foryourne2knic + +Revision1.202004/09/0722:26:04reddawg +syncedin + +Revision1.192004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.182004/09/0615:13:25reddawg +LastcommitbeforeFreeBSD6.0 + +Revision1.172004/08/0120:40:45reddawg +Netrelatedfixes + +Revision1.162004/07/2822:23:02reddawg +makesureitstillworksbeforeIgotobed + +Revision1.152004/07/1717:04:47reddawg +ne2k:addedasserthopefullyitwillhelpmesolvethisdmasize0randomerror + +Revision1.142004/07/1412:03:50reddawg +ne2k:ne2kInittone2k_init +ChangedStartupRoutines + +Revision1.132004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.122004/05/2112:48:22reddawg +Cleanedup + +Revision1.112004/05/1904:07:42reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.102004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + +END +***/ + + + + + diff --git a/doc/xml/ne2k_8h.xml b/doc/xml/ne2k_8h.xml new file mode 100644 index 0000000..f31dc1e --- /dev/null +++ b/doc/xml/ne2k_8h.xml @@ -0,0 +1,1541 @@ + + + + ne2k.h + ubixos/types.h + sys/device.old.h + src/sys/include/ubixos/init.h + src/sys/isa/ne2k.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dp_rcvhdr + etheraddr + nicBuffer + + + DEF_ENABLED + 0x200 + + + + + + + + + + DP_CNTR0 + 0xD + + + + + + + + ne2k_init + + + DP_CNTR1 + 0xE + + + + + + + + ne2k_init + + + DP_CNTR2 + 0xF + + + + + + + + ne2k_init + + + DP_CURR + 0x7 + + + + + + + + ne2k_init + + + DP_MAR0 + 0x8 + + + + + + + + ne2k_init + + + DP_MAR1 + 0x9 + + + + + + + + ne2k_init + + + DP_MAR2 + 0xA + + + + + + + + ne2k_init + + + DP_MAR3 + 0xB + + + + + + + + ne2k_init + + + DP_MAR4 + 0xC + + + + + + + + ne2k_init + + + DP_MAR5 + 0xD + + + + + + + + ne2k_init + + + DP_MAR6 + 0xE + + + + + + + + ne2k_init + + + DP_MAR7 + 0xF + + + + + + + + ne2k_init + + + DP_PAGESIZE + 256 + + + + + + + + dp_pkt2user + getblock + + + E8390_CMD + 0x00 + + + + + + + + + + E8390_NODMA + 0x20 + + + + + + + + + + E8390_PAGE0 + 0x00 + + + + + + + + + + E8390_PAGE1 + 0x40 + + + + + + + + + + E8390_RREAD + 0x08 + + + + + + + + getblock + + + E8390_RWRITE + 0x10 + + + + + + + + PCtoNIC + + + E8390_RXCONFIG + 0x04 + + + + + + + + + + E8390_RXOFF + 0x20 + + + + + + + + + + E8390_START + 0x02 + + + + + + + + getblock + PCtoNIC + + + E8390_STOP + 0x01 + + + + + + + + + + E8390_TXCONFIG + 0x00 + + + + + + + + + + E8390_TXOFF + 0x00 + + + + + + + + + + EN0_BOUNDARY + 0x03 + + + + + + + + + + EN0_COUNTER0 + 0x0d + + + + + + + + + + EN0_DCFG + 0x0e + + + + + + + + + + EN0_IMR + 0x0f + + + + + + + + + + EN0_ISR + 0x07 + + + + + + + + getblock + NICtoPC + PCtoNIC + + + EN0_RCNTHI + 0x0b + + + + + + + + NICtoPC + PCtoNIC + + + EN0_RCNTLO + 0x0a + + + + + + + + NICtoPC + PCtoNIC + + + EN0_RSARHI + 0x09 + + + + + + + + getblock + NICtoPC + PCtoNIC + + + EN0_RSARLO + 0x08 + + + + + + + + getblock + NICtoPC + PCtoNIC + + + EN0_RXCR + 0x0c + + + + + + + + + + EN0_STARTPG + 0x01 + + + + + + + + + + EN0_STOPPG + 0x02 + + + + + + + + + + EN0_TPSR + 0x04 + + + + + + + + + + EN0_TXCR + 0x0D + + + + + + + + + + EN1_CURPAG + 0x07 + + + + + + + + + + EN1_MULT + 0x08 + + + + + + + + + + EN1_PHYS + 0x01 + + + + + + + + + + ENDCFG_WTS + 0x01 + + + + + + + + + + ENISR_ALL + 0x3f + + + + + + + + + + ether_addr + ether_addr_t + + + + + + + + + + NE1SM_START_PG + 0x20 + + + + + + + + + + NE1SM_STOP_PG + 0x40 + + + + + + + + + + NE_BNRY + 0x03 + + + + + + + + dp_recv + ne2k_init + + + NE_CMD + 0x00 + + + + + + + + dp_recv + getblock + ne2k_init + + + NE_CURRENT + 0x07 + + + + + + + + dp_recv + + + NE_DATAPORT + 0x10 + + + + + + + + getblock + NICtoPC + PCtoNIC + + + NE_DCR + 0x0E + + + + + + + + ne2k_init + + + NE_DCR_AR + 0x10 + + + + + + + + + + NE_DCR_FT0 + 0x20 + + + + + + + + + + NE_DCR_FT1 + 0x40 + + + + + + + + + + NE_DCR_LS + 0x08 + + + + + + + + + + NE_DCR_WTS + 0x01 + + + + + + + + + + NE_IMR + 0x0F + + + + + + + + ne2k_init + ne2kHandler + + + NE_ISR + 0x07 + + + + + + + + ne2k_init + ne2kHandler + + + NE_PSTART + 0x01 + + + + + + + + ne2k_init + + + NE_PSTOP + 0x02 + + + + + + + + ne2k_init + + + NE_RBCR0 + 0x0A + + + + + + + + getblock + ne2k_init + + + NE_RBCR1 + 0x0B + + + + + + + + getblock + ne2k_init + + + NE_RCR + 0x0C + + + + + + + + ne2k_init + + + NE_TCR + 0x0D + + + + + + + + ne2k_init + + + NE_TPSR + 0x04 + + + + + + + + ne2kHandler + + + NESM_START_PG + 0x40 + + + + + + + + + + NESM_STOP_PG + 0x80 + + + + + + + + + + OK + 0 + + + + + + + + dp_pkt2user + dp_recv + + + RSR_FO + 0x08 + + + + + + + + dp_recv + + + RSR_PRX + 0x01 + + + + + + + + dp_recv + + + startPage + 0x4C + + + + + + + + dp_recv + ne2k_init + + + stopPage + 0x80 + + + + + + + + dp_pkt2user + dp_recv + ne2k_init + + + TX_1X_PAGES + 6 + + + + + + + + + + TX_2X_PAGES + 12 + + + + + + + + + + TX_PAGES + (dev->priv->pingPong ? TX_2X_PAGES : TX_1X_PAGES) + + + + + + + + + + + + dp_rcvhdr + typedef struct dp_rcvhdr dp_rcvhdr_t + + dp_rcvhdr_t + + + + + + + + + + etheraddr + typedef union etheraddr ether_addr + + ether_addr + + + + + + + + + + + + int + int ne2k_init + () + ne2k_init + + + + + + + + dDpl0 + dInt + DP_CNTR0 + DP_CNTR1 + DP_CNTR2 + DP_CURR + DP_MAR0 + DP_MAR1 + DP_MAR2 + DP_MAR3 + DP_MAR4 + DP_MAR5 + DP_MAR6 + DP_MAR7 + dPresent + inportByte + device::ioAddr + device::irq + irqEnable + kmalloc + kprintf + mDev + mVec + ne2kISR + NE_BNRY + NE_CMD + NE_DCR + NE_IMR + NE_ISR + NE_PSTART + NE_PSTOP + NE_RBCR0 + NE_RBCR1 + NE_RCR + NE_TCR + outportByte + setVector + startPage + stopPage + x20 + + + nicBuffer * + struct nicBuffer* ne2kAllocBuffer + (int) + ne2kAllocBuffer + + int + + + + + + + + + nicBuffer::buffer + kmalloc + nicBuffer::length + ne2k_spinLock + ne2kBuffer + nicBuffer::next + spinLock + spinUnlock + tmpBuf + dp_pkt2user + + + int + int ne2kDevInit + (struct device *) + ne2kDevInit + + struct device * + + + + + + + + + + + void + void ne2kFreeBuffer + (struct nicBuffer *) + ne2kFreeBuffer + + struct nicBuffer * + + + + + + + + + nicBuffer::buffer + kfree + ethernetif_thread + + + nicBuffer * + struct nicBuffer* ne2kGetBuffer + () + ne2kGetBuffer + + + + + + + + ne2k_spinLock + ne2kBuffer + nicBuffer::next + tmpBuf + x1 + ethernetif_thread + + + void + void ne2kHandler + () + ne2kHandler + + + + + + + + dp_recv + eoi + inportByte + device::ioAddr + irqDisable + irqEnable + kprintf + mDev + mPic + NE_IMR + NE_ISR + NE_TPSR + outportByte + sPic + status + + + void + void ne2kISR + () + ne2kISR + + + + + + + + ne2k_init + + + int + int ne2kProbe + (int, struct device *) + ne2kProbe + + int + + + struct device * + + + + + + + + + + + int + int NICtoPC + (struct device *dev, void *packet, int length, int nic_addr) + NICtoPC + + struct device * + dev + + + void * + packet + + + int + length + + + int + nic_addr + + + + + + + + + assert + dev + EN0_ISR + EN0_RCNTHI + EN0_RCNTLO + EN0_RSARHI + EN0_RSARLO + inportWord + device::ioAddr + NE_DATAPORT + outportByte + dp_pkt2user + + + void + void NS8390_init + (struct device *dev, int startp) + NS8390_init + + struct device * + dev + + + int + startp + + + + + + + + + + + int + int PCtoNIC + (struct device *dev, void *packet, int length) + PCtoNIC + + struct device * + dev + + + void * + packet + + + int + length + + + + + + + + + assert + dev + E8390_RWRITE + E8390_START + EN0_ISR + EN0_RCNTHI + EN0_RCNTLO + EN0_RSARHI + EN0_RSARLO + inportByte + device::ioAddr + kpanic + NE_DATAPORT + outportByte + outportWord + low_level_output + + + + + char * + char* nicPacket + + nicPacket + + + + + + + + + + uInt32 + uInt32 packetLength + + packetLength + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_NE2K_H +#define_NE2K_H + +#include<ubixos/types.h> +#include<sys/device.old.h> + +#defineether_addrether_addr_t +typedefstructdp_rcvhdr +{ +uInt8dr_status;/*Copyofrsr*/ +uInt8dr_next;/*Pointertonextpacket*/ +uInt8dr_rbcl;/*ReceiveByteCountLow*/ +uInt8dr_rbch;/*ReceiveByteCountHigh*/ +}dp_rcvhdr_t; + +typedefunionetheraddr{ +unsignedcharbytes[6];/*byteordersafeinitialization*/ +unsignedshortshorts[3];/*force2-bytealignment*/ +}ether_addr; + + +structnicBuffer{ +structnicBuffer*next; +intlength; +char*buffer; +}; + +#defineRSR_FO0x08 +#defineRSR_PRX0x01 +#defineDEF_ENABLED0x200 + +#defineOK0 + + +#definestartPage0x4C +#definestopPage0x80 + + +#defineNE_CMD0x00 +#defineNE_PSTART0x01 +#defineNE_PSTOP0x02 +#defineNE_BNRY0x03 +#defineNE_TPSR0x04 +#defineNE_ISR0x07 +#defineNE_CURRENT0x07 +#defineNE_RBCR00x0A +#defineNE_RBCR10x0B +#defineNE_RCR0x0C +#defineNE_TCR0x0D +#defineNE_DCR0x0E +#defineNE_IMR0x0F + + +#defineNE_DCR_WTS0x01 +#defineNE_DCR_LS0x08 +#defineNE_DCR_AR0x10 +#defineNE_DCR_FT10x40 +#defineNE_DCR_FT00x20 + + + +#defineE8390_STOP0x01 +#defineE8390_NODMA0x20 +#defineE8390_PAGE00x00 +#defineE8390_PAGE10x40 +#defineE8390_CMD0x00 +#defineE8390_START0x02 +#defineE8390_RREAD0x08 +#defineE8390_RWRITE0x10 +#defineE8390_RXOFF0x20 +#defineE8390_TXOFF0x00 +#defineE8390_RXCONFIG0x04 +#defineE8390_TXCONFIG0x00 + +#defineEN0_COUNTER00x0d +#defineEN0_DCFG0x0e +#defineEN0_RCNTLO0x0a +#defineEN0_RCNTHI0x0b +#defineEN0_ISR0x07 +#defineEN0_IMR0x0f +#defineEN0_RSARLO0x08 +#defineEN0_RSARHI0x09 +#defineEN0_TPSR0x04 +#defineEN0_RXCR0x0c +#defineEN0_TXCR0x0D +#defineEN0_STARTPG0x01 +#defineEN0_STOPPG0x02 +#defineEN0_BOUNDARY0x03 + +#defineEN1_PHYS0x01 +#defineEN1_CURPAG0x07 +#defineEN1_MULT0x08 + +#defineNE1SM_START_PG0x20 +#defineNE1SM_STOP_PG0x40 +#defineNESM_START_PG0x40 +#defineNESM_STOP_PG0x80 + +#defineENISR_ALL0x3f + +#defineENDCFG_WTS0x01 + +#defineNE_DATAPORT0x10 + +#defineTX_2X_PAGES12 +#defineTX_1X_PAGES6 +#defineTX_PAGES(dev->priv->pingPong?TX_2X_PAGES:TX_1X_PAGES) + + +#defineDP_CURR0x7/*CurrentPageRegister*/ +#defineDP_MAR00x8/*MulticastAddressRegister0*/ +#defineDP_MAR10x9/*MulticastAddressRegister1*/ +#defineDP_MAR20xA/*MulticastAddressRegister2*/ +#defineDP_MAR30xB/*MulticastAddressRegister3*/ +#defineDP_MAR40xC/*MulticastAddressRegister4*/ +#defineDP_MAR50xD/*MulticastAddressRegister5*/ +#defineDP_MAR60xE/*MulticastAddressRegister6*/ +#defineDP_MAR70xF/*MulticastAddressRegister7*/ + +#defineDP_CNTR00xD/*TallyCounter0*/ +#defineDP_CNTR10xE/*TallyCounter1*/ +#defineDP_CNTR20xF/*TallyCounter2*/ + + +#defineDP_PAGESIZE256 + +externchar*nicPacket; +externuInt32packetLength; + + +intne2k_init(); +intne2kProbe(int,structdevice*); +intne2kDevInit(structdevice*); +voidNS8390_init(structdevice*dev,intstartp); + +voidne2kISR(); +voidne2kHandler(); + +intNICtoPC(structdevice*dev,void*packet,intlength,intnic_addr); +intPCtoNIC(structdevice*dev,void*packet,intlength); + +structnicBuffer*ne2kAllocBuffer(int); +structnicBuffer*ne2kGetBuffer(); +voidne2kFreeBuffer(structnicBuffer*); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:39reddawg +nomessage + +Revision1.62004/07/1412:03:49reddawg +ne2k:ne2kInittone2k_init +ChangedStartupRoutines + +Revision1.52004/05/2114:57:16reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/net_2arch_2init_8h.xml b/doc/xml/net_2arch_2init_8h.xml new file mode 100644 index 0000000..75a8892 --- /dev/null +++ b/doc/xml/net_2arch_2init_8h.xml @@ -0,0 +1,71 @@ + + + + init.h + + + TCPIP_INIT_DONE + arg + sys_sem_signal(*(sys_sem_t *)arg) + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_INIT_H__ +#define__ARCH_INIT_H__ + +#defineTCPIP_INIT_DONE(arg)sys_sem_signal(*(sys_sem_t*)arg) + +#endif/*__ARCH_INIT_H__*/ + + + + + + + + diff --git a/doc/xml/net_8c.xml b/doc/xml/net_8c.xml new file mode 100644 index 0000000..0245edb --- /dev/null +++ b/doc/xml/net_8c.xml @@ -0,0 +1,401 @@ + + + + net.c + ubixos/types.h + net/sockets.h + string.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uInt32 + typedef uInt32 in_addr_t + + in_addr_t + + + + + + + + + + + + void + void bcopy + (const void *src, void *dest, int len) + bcopy + + const void * + src + + + void * + dest + + + int + len + + + + + + + + + memcpy + loopif_output + low_level_input + low_level_output + + + void + void bzero + (void *data, int n) + bzero + + void * + data + + + int + n + + + + + + + + + memset + + + uInt32 + uInt32 htonl + (uInt32 n) + htonl + + uInt32 + n + + + + + + + + + + + uInt32 + uInt32 htons + (uInt32 n) + htons + + uInt32 + n + + + + + + + + + + + int + int inet_aton + (char *cp, struct in_addr *addr) const + inet_aton + + char * + cp + + + struct in_addr * + addr + + + + + + + + + htonl + kprintf + NULL + in_addr::s_addr + strtol + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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. + +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:12reddawg +nomessage + +Revision1.62004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.52004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.42004/06/1703:14:59flameshadow +chg:addedmissing#includeforkprintf() + +Revision1.32004/05/2022:54:02reddawg +CleanedUpWarrnings + +Revision1.22004/04/3014:16:04reddawg +FixedallthedatatypestobeconsistantuInt8,uInt16,uInt32,Int8,Int16,Int32 + +Revision1.1.1.12004/04/1512:07:10reddawg +UbixOSv1.0 + +Revision1.82004/04/1321:29:52reddawg +Wenowhavesocketsworking.Lotsoffunctionalitytobeaddedtocontinually +improveontheexistinglayersnowitscleanuptimetogetthingsinabetter +workingorder. + +Revision1.72004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + + +$Id$ + +*****************************************************************************************/ + +#include<ubixos/types.h> +#include<net/sockets.h> +#include<string.h> + +#include"lib/kprintf.h" + +#ifndef_IN_ADDR_T_DECLARED +typedefuInt32in_addr_t; +#define_IN_ADDR_T_DECLARED +#endif + +uInt32htonl(uInt32n){ +uInt32retVal=0x0; +retVal+=((n&0xff)<<24); +retVal+=((n&0xff00)<<8); +retVal+=((n&0xff0000)>>8); +retVal+=((n&0xff000000)>>24); +return(retVal); +} + +uInt32htons(uInt32n){ +uInt32retVal=0x0; +retVal=(((n&0xff)<<8)|((n&0xff00)>>8)); +return(retVal); +} + +voidbcopy(constvoid*src,void*dest,intlen){ +memcpy(dest,src,len); +} + +voidbzero(void*data,intn){ +memset(data,0,n); +} + + +intinet_aton(cp,addr) +constchar*cp; +structin_addr*addr; +{ +uInt32parts[4]; +in_addr_tval; +char*c; +char*endptr; +intgotend,n; + +c=(char*)cp; +n=0; +/* +*Runthroughthestring,grabbingnumbersuntil +*theendofthestring,orsomeerror +*/ +gotend=0; +while(!gotend){ +//errno=0; +val=strtol(c,&endptr,0); +kprintf("VAL:[%x]",val); + +//if(errno==ERANGE)/*Failcompletelyifitoverflowed.*/ +//return(0); + +/* +*Ifthewholestringisinvalid,endptrwillequal +*c..thiswaywecanmakesuresomeonehasn't +*gone'.12'orsomethingwhichwouldgetpast +*thenextcheck. +*/ +if(endptr==c) +return(0); +parts[n]=val; +c=endptr; + +/*Checkthenextcharacterpastthepreviousnumber'send*/ +switch(*c){ +case'.': +/*Makesureweonlydo3dots..*/ +if(n==3)/*Whoops.Quit.*/ +return(0); +n++; +c++; +break; + +case'\0': +gotend=1; +break; + +default: +/* +if(isspace((unsignedchar)*c)){ +gotend=1; +break; +}else +*/ +return(0);/*Invalidcharacter,sofail*/ +} + +} + +/* +*Concocttheaddressaccordingto +*thenumberofpartsspecified. +*/ + +switch(n){ +case0:/*a--32bits*/ +/* +*Nothingisnecessaryhere.Overflowcheckingwas +*alreadydoneinstrtoul(). +*/ +break; +case1:/*a.b--8.24bits*/ +if(val>0xffffff||parts[0]>0xff) +return(0); +val|=parts[0]<<24; +break; + +case2:/*a.b.c--8.8.16bits*/ +if(val>0xffff||parts[0]>0xff||parts[1]>0xff) +return(0); +val|=(parts[0]<<24)|(parts[1]<<16); +break; + +case3:/*a.b.c.d--8.8.8.8bits*/ +if(val>0xff||parts[0]>0xff||parts[1]>0xff|| +parts[2]>0xff) +return(0); +val|=(parts[0]<<24)|(parts[1]<<16)|(parts[2]<<8); +break; +} + +if(addr!=NULL) +addr->s_addr=htonl(val); +return(1); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/net_8h.xml b/doc/xml/net_8h.xml new file mode 100644 index 0000000..269dc27 --- /dev/null +++ b/doc/xml/net_8h.xml @@ -0,0 +1,108 @@ + + + + net.h + ubixos/types.h + src/sys/include/ubixos/init.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int net_init + () + net_init + + + + + + + + mem_init + memp_init + netMainThread + pbuf_init + sys_init + sys_thread_new + + + + + + + +/************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,arepermittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors. +Redistributionsinbinaryformmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors +inthedocumentationand/orothermaterialsprovidedwiththedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftwarewithoutspecificpriorwrittenpermission. + +THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANYEXPRESSORIMPLIED +WARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULAR +PURPOSEAREDISCLAIMED.INNOEVENTSHALLTHECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT, +INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTE +GOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY +OFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. + +$Id$ + +**************************************************************************************/ + +#ifndef_NET_H +#define_NET_H + +#include<ubixos/types.h> + +intnet_init(); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/netif_8h.xml b/doc/xml/netif_8h.xml new file mode 100644 index 0000000..f66634d --- /dev/null +++ b/doc/xml/netif_8h.xml @@ -0,0 +1,565 @@ + + + + netif.h + net/opt.h + net/err.h + net/ipv4/ip_addr.h + net/ipv4/inet.h + net/pbuf.h + src/sys/include/net/ipv4/icmp.h + src/sys/include/net/ipv4/ip.h + src/sys/include/netif/arp.h + src/sys/include/netif/ethernetif.h + src/sys/include/netif/loopif.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + netif + + + netif * + struct netif* netif_add + (struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void(*init)(struct netif *netif), err_t(*input)(struct pbuf *p, struct netif *netif)) + netif_add + + struct ip_addr * + ipaddr + + + struct ip_addr * + netmask + + + struct ip_addr * + gw + + + void(*)(struct netif *netif) + init + + + err_t(*)(struct pbuf *p, struct netif *netif) + input + + + + + + + + + netMainThread + + + netif * + struct netif* netif_find + (char *name) + netif_find + + char * + name + + + + + + + + + + + void + void netif_init + () + netif_init + + + + + + + + netMainThread + + + void + void netif_set_default + (struct netif *netif) + netif_set_default + + struct netif * + netif + + + + + + + + + netMainThread + + + void + void netif_set_gw + (struct netif *netif, struct ip_addr *gw) + netif_set_gw + + struct netif * + netif + + + struct ip_addr * + gw + + + + + + + + + + + void + void netif_set_ipaddr + (struct netif *netif, struct ip_addr *ipaddr) + netif_set_ipaddr + + struct netif * + netif + + + struct ip_addr * + ipaddr + + + + + + + + + + + void + void netif_set_netmask + (struct netif *netif, struct ip_addr *netmast) + netif_set_netmask + + struct netif * + netif + + + struct ip_addr * + netmast + + + + + + + + + + + + + netif * + struct netif* netif_default + + netif_default + + + + + + + + + + netif * + struct netif* netif_list + + netif_list + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_NETIF_H__ +#define__LWIP_NETIF_H__ + +#include"net/opt.h" + +#include"net/err.h" + +#include"net/ipv4/ip_addr.h" +#include"net/ipv4/inet.h" + +#include"net/pbuf.h" + + +structnetif{ +structnetif*next; +uInt8num; +structip_addrip_addr; +structip_addrnetmask;/*netmaskinnetworkbyteorder*/ +structip_addrgw; +charhwaddr[6]; + +/*Thisfunctioniscalledbythenetworkdevicedriver +whenitwantstopassapackettotheTCP/IPstack.*/ +err_t(*input)(structpbuf*p,structnetif*inp); + +/*Thefollowingtwofieldsshouldbefilledinbythe +initializationfunctionforthedevicedriver.*/ + +charname[2]; +/*ThisfunctioniscalledbytheIPmodulewhenitwants +tosendapacketontheinterface.*/ +err_t(*output)(structnetif*netif,structpbuf*p,structip_addr*ipaddr); +err_t(*linkoutput)(structnetif*netif,structpbuf*p); + +/*Thisfieldcanbesetbuthedevicedriverandcouldpoint +tostateinformationforthedevice.*/ +void*state; +}; + +/*Thelistofnetworkinterfaces.*/ +externstructnetif*netif_list; +externstructnetif*netif_default; + + +/*netif_init()mustbecalledfirst.*/ +voidnetif_init(); + +structnetif*netif_add(structip_addr*ipaddr,structip_addr*netmask, +structip_addr*gw, +void(*init)(structnetif*netif), +err_t(*input)(structpbuf*p,structnetif*netif)); + +/*Returnsanetworkinterfacegivenitsname.Thenameisoftheform +"et0",wherethefirsttwolettersarethe"name"fieldinthe +netifstructure,andthedigitisinthenumfieldinthesame +structure.*/ +structnetif*netif_find(char*name); + +voidnetif_set_default(structnetif*netif); + +voidnetif_set_ipaddr(structnetif*netif,structip_addr*ipaddr); +voidnetif_set_netmask(structnetif*netif,structip_addr*netmast); +voidnetif_set_gw(structnetif*netif,structip_addr*gw); + +#endif/*__LWIP_NETIF_H__*/ + + + + diff --git a/doc/xml/null_8c.xml b/doc/xml/null_8c.xml new file mode 100644 index 0000000..3638549 --- /dev/null +++ b/doc/xml/null_8c.xml @@ -0,0 +1,17 @@ + + + + null.c + + + + + +/* +SatDec218:05:12EST2006 +ser +*/ + + + + diff --git a/doc/xml/ogDisplay__UbixOS_8h.xml b/doc/xml/ogDisplay__UbixOS_8h.xml new file mode 100644 index 0000000..f0e3fea --- /dev/null +++ b/doc/xml/ogDisplay__UbixOS_8h.xml @@ -0,0 +1,128 @@ + + + + ogDisplay_UbixOS.h + objgfx40/objgfx40.h + src/sys/lib/ogprintf.cc + + + + + + + + + + + + + + + + + + + + + + + + ogDisplay_UbixOS + ogModeInfo + ogVESAInfo + + + + + +#ifndefOGDISPLAY_UBIXOS_H +#defineOGDISPLAY_UBIXOS_H + +#include<objgfx40/objgfx40.h> + +structogModeInfo{ +uInt16modeAttributes__attribute__((packed)); +uInt8windowAFlags__attribute__((packed)); +uInt8windowBFlags__attribute__((packed)); +uInt16granularity__attribute__((packed)); +uInt16windowSize__attribute__((packed)); +uInt16windowASeg__attribute__((packed)); +uInt16windowBSeg__attribute__((packed)); +void*bankSwitch__attribute__((packed)); +uInt16bytesPerLine__attribute__((packed)); +uInt16xRes__attribute__((packed)); +uInt16yRes__attribute__((packed)); +uInt8charWidth__attribute__((packed)); +uInt8charHeight__attribute__((packed)); +uInt8numBitPlanes__attribute__((packed)); +uInt8bitsPerPixel__attribute__((packed)); +uInt8numberOfBanks__attribute__((packed)); +uInt8memoryModel__attribute__((packed)); +uInt8bankSize__attribute__((packed)); +uInt8numOfImagePages__attribute__((packed)); +uInt8reserved__attribute__((packed)); +//Directcolourfields(requiredforDirect/6andYUV/7memorymodels +uInt8redMaskSize__attribute__((packed)); +uInt8redFieldPosition__attribute__((packed)); +uInt8greenMaskSize__attribute__((packed)); +uInt8greenFieldPosition__attribute__((packed)); +uInt8blueMaskSize__attribute__((packed)); +uInt8blueFieldPosition__attribute__((packed)); +uInt8alphaMaskSize__attribute__((packed)); +uInt8alphaFieldPosition__attribute__((packed)); +uInt8directColourMode__attribute__((packed)); +//VESA2.0specificfields +uInt32physBasePtr__attribute__((packed)); +void*offScreenMemOffset__attribute__((packed)); +uInt16offScreenMemSize__attribute__((packed)); +uInt8paddington[461]__attribute__((packed)); +}; + +structogVESAInfo{ +charVBESignature[4]__attribute__((packed)); +uInt8minVersion__attribute__((packed)); +uInt8majVersion__attribute__((packed)); +uInt32OEMStringPtr__attribute__((packed)); +uInt32capabilities__attribute__((packed)); +uInt32videoModePtr__attribute__((packed)); +uInt16totalMemory__attribute__((packed)); +//VESA2.0specificfields +uInt16OEMSoftwareRev__attribute__((packed)); +uInt32OEMVendorNamePtr__attribute__((packed)); +uInt32OEMProductNamePtr__attribute__((packed)); +uInt32OEMProductRevPtr__attribute__((packed)); +uInt8paddington[474]__attribute__((packed)); +}; + + +classogDisplay_UbixOS:publicogSurface{ +protected: +void*pages[2]; +uInt32activePage; +uInt32visualPage; +ogVESAInfo*VESAInfo; +ogModeInfo*modeInfo; + +uInt16FindMode(uInt32,uInt32,uInt32); +voidGetModeInfo(uInt16); +voidGetVESAInfo(void); +voidSetMode(uInt16); +voidSetPal(void); +public: +ogDisplay_UbixOS(void); +virtualboologAlias(ogSurface&,uInt32,uInt32,uInt32,uInt32); +virtualboologClone(ogSurface&); +virtualvoidogCopyPalette(ogSurface&); +virtualboologCreate(uInt32,uInt32,ogPixelFmt); +virtualboologLoadPalette(constchar*); +virtualvoidogSetPalette(constogRGBA8[]); +virtualvoidogSetPalette(uInt8,uInt8,uInt8,uInt8); +virtualvoidogSetPalette(uInt8,uInt8,uInt8,uInt8,uInt8); +virtual~ogDisplay_UbixOS(void); +};//ogDisplay_UbixOS + +#endif + + + + diff --git a/doc/xml/ogDisplay__VESA_8h.xml b/doc/xml/ogDisplay__VESA_8h.xml new file mode 100644 index 0000000..16be75b --- /dev/null +++ b/doc/xml/ogDisplay__VESA_8h.xml @@ -0,0 +1,123 @@ + + + + ogDisplay_VESA.h + objgfx30.h + + + + + + + + + + + + ogDisplay_VESA + TMode_Rec + TVESA_Rec + + + + + +#ifndefOGDISPLAY_VESA_H +#defineOGDISPLAY_VESA_H + +#include"objgfx30.h" + +structTMode_Rec{ +uInt16ModeAttributes__attribute__((packed)); +uInt8WindowAFlags__attribute__((packed)); +uInt8WindowBFlags__attribute__((packed)); +uInt16Granularity__attribute__((packed)); +uInt16WindowSize__attribute__((packed)); +uInt16WindowASeg__attribute__((packed)); +uInt16WindowBSeg__attribute__((packed)); +void*BankSwitch__attribute__((packed)); +uInt16BytesPerLine__attribute__((packed)); +uInt16xRes__attribute__((packed)); +uInt16yRes__attribute__((packed)); +uInt8CharWidth__attribute__((packed)); +uInt8CharHeight__attribute__((packed)); +uInt8NumBitPlanes__attribute__((packed)); +uInt8BitsPerPixel__attribute__((packed)); +uInt8NumberOfBanks__attribute__((packed)); +uInt8MemoryModel__attribute__((packed)); +uInt8BankSize__attribute__((packed)); +uInt8NumOfImagePages__attribute__((packed)); +uInt8Reserved__attribute__((packed)); +//Directcolourfields(requiredforDirect/6andYUV/7memorymodels +uInt8RedMaskSize__attribute__((packed)); +uInt8RedFieldPosition__attribute__((packed)); +uInt8GreenMaskSize__attribute__((packed)); +uInt8GreenFieldPosition__attribute__((packed)); +uInt8BlueMaskSize__attribute__((packed)); +uInt8BlueFieldPosition__attribute__((packed)); +uInt8AlphaMaskSize__attribute__((packed)); +uInt8AlphaFieldPosition__attribute__((packed)); +uInt8DirectColourMode__attribute__((packed)); +//VESA2.0specificfields +uInt32physBasePtr__attribute__((packed)); +void*OffScreenMemOffset__attribute__((packed)); +uInt16OffScreenMemSize__attribute__((packed)); +uInt8paddington[461]__attribute__((packed)); +}; + +structTVESA_Rec{ +charVBESignature[4]__attribute__((packed)); +uInt8minVersion__attribute__((packed)); +uInt8majVersion__attribute__((packed)); +uInt32OEMStringPtr__attribute__((packed)); +uInt32Capabilities__attribute__((packed)); +uInt32VideoModePtr__attribute__((packed)); +uInt16TotalMemory__attribute__((packed)); +//VESA2.0specificfields +uInt16OEMSoftwareRev__attribute__((packed)); +uInt32OEMVendorNamePtr__attribute__((packed)); +uInt32OEMProductNamePtr__attribute__((packed)); +uInt32OEMProductRevPtr__attribute__((packed)); +uInt8paddington[474]__attribute__((packed)); +}; + +classogDisplay_VESA:publicogSurface{ +protected: +uInt16ScreenSelector; +TVESA_Rec*VESARec; +TMode_Rec*ModeRec; +boolInGraphics; +uInt16findMode(uInt32,uInt32,uInt32); +voidgetModeInfo(uInt16); +voidgetVESAInfo(void); +voidsetMode(uInt16); +virtualuInt32rawGetPixel(uInt32,uInt32); +virtualvoidrawSetPixel(uInt32,uInt32,uInt32); +virtualvoidrawLine(uInt32,uInt32,uInt32,uInt32,uInt32); +voidsetPal(void); +public: +ogDisplay_VESA(void); +virtualboologAvail(void); +virtualboologAlias(ogSurface&,uInt32,uInt32,uInt32,uInt32); +virtualvoidogClear(uInt32); +virtualboologClone(ogSurface&); +virtualvoidogCopyLineTo(uInt32,uInt32,constvoid*,uInt32); +virtualvoidogCopyLineFrom(uInt32,uInt32,void*,uInt32); +virtualvoidogCopyPal(ogSurface&); +virtualboologCreate(uInt32,uInt32,ogPixelFmt); +virtualuInt32ogGetPixel(int32,int32); +virtualvoid*ogGetPtr(uInt32,uInt32); +virtualvoidogHLine(int32,int32,int32,uInt32); +virtualboologLoadPal(constchar*); +virtualvoidogSetPixel(int32,int32,uInt32); +virtualvoidogSetRGBPalette(uInt8,uInt8,uInt8,uInt8); +virtualvoidogVFlip(void); +virtualvoidogVLine(int32,int32,int32,uInt32); +virtual~ogDisplay_VESA(void); +};//ogDisplay_VESA + +#endif + + + + diff --git a/doc/xml/ogprintf_8cc.xml b/doc/xml/ogprintf_8cc.xml new file mode 100644 index 0000000..88c9923 --- /dev/null +++ b/doc/xml/ogprintf_8cc.xml @@ -0,0 +1,337 @@ + + + + ogprintf.cc + objgfx40/objgfx40.h + objgfx40/ogFont.h + sde/ogDisplay_UbixOS.h + ubixos/vitals.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int ogPrintf + (char *s) + ogPrintf + + char * + s + + + + + + + + + vitalsStruct::font + vitalsStruct::screen + systemVitals + + + + + int + int screenCol + + screenCol + 0x1 + + + + + + + + + + int + int screenRow + + screenRow + 0x0 + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<objgfx40/objgfx40.h> +#include<objgfx40/ogFont.h> +#include<sde/ogDisplay_UbixOS.h> + +extern"C"{ + +#include<ubixos/vitals.h> + + +staticintscreenRow=0x0; +staticintscreenCol=0x1; + +intogPrintf(char*s){ +inti=0x0; +intbufHeight; +ogSurface*screen=(ogDisplay_UbixOS*)systemVitals->screen; +ogBitFont*font=(ogBitFont*)systemVitals->font; + + +while('\0'!=s[i]){ +switch(s[i]){ +case'\t': +screenCol+=3; +break; +case'\b': +if(screenCol>0)--screenCol; +case'\n': +screenCol=0; + +bufHeight=((screen->ogGetMaxY()+1)/font->GetHeight())-1; +if(screenRow<bufHeight) +++screenRow; +else{ +screen->ogCopyBuf(0,0, +*screen, +0,font->GetHeight(), +screen->ogGetMaxX(),screen->ogGetMaxY()); +screen->ogFillRect(0,bufHeight*font->GetHeight()+1, +screen->ogGetMaxX(),screen->ogGetMaxY(), +screen->ogPack(122,140,163)); +} +break; +default: +font->PutChar(*screen, +screenCol*font->GetWidth(), +screenRow*font->GetHeight(), +s[i]); +break; +}/*switch*/ +++screenCol; +++i; +}/*while*/ + +return0; +}//ogPrintf + +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:13reddawg +nomessage + +Revision1.72004/07/2022:58:33reddawg +retiringtothelaptopforthenightmustsyncinworktoresumefromthere + +Revision1.62004/07/1714:24:22reddawg +compile:changestothewaywelinkthekernelshouldpreventfutureerrors + +Revision1.52004/05/2323:30:34reddawg +Fixens + +Revision1.42004/05/2301:40:19reddawg +Spinlock + +Revision1.32004/05/1917:09:50flameshadow +chg:Undidpreviousrenaming.ThisnowrestoresmeastheEOOUIAD. + +Revision1.22004/04/2612:56:01reddawg +Madesrc/sys/sdeCopyandMaketheogPixelFormat.cpp + +Revision1.1.1.12004/04/1512:07:10reddawg +UbixOSv1.0 + +Revision1.192004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/opt_8h.xml b/doc/xml/opt_8h.xml new file mode 100644 index 0000000..9211083 --- /dev/null +++ b/doc/xml/opt_8h.xml @@ -0,0 +1,531 @@ + + + + opt.h + net/lwipopts.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/include/net/ipv4/icmp.h + src/sys/include/net/ipv4/inet.h + src/sys/include/net/ipv6/inet.h + src/sys/include/net/mem.h + src/sys/include/net/netif.h + src/sys/include/net/stats.h + src/sys/include/net/tcp.h + src/sys/net/api/tcpip.c + src/sys/net/net/sys_arch.c + src/sys/net/netif/ethernetif.c + src/sys/net/netif/loopif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICMP_TTL + 255 + + + + + + + + + + LWIP_TCP + 1 + + + + + + + + + + LWIP_UDP + 1 + + + + + + + + + + MEM_ALIGNMENT + 1 + + + + + + + + + + PBUF_LINK_HLEN + 0 + + + + + + + + + + PBUF_POOL_BUFSIZE + 128 + + + + + + + + + + PBUF_POOL_SIZE + 16 + + + + + + + + + + TCP_MAXRTX + 12 + + + + + + + + + + TCP_MSS + 128 + + + + + + + + + + TCP_SYNMAXRTX + 6 + + + + + + + + + + TCP_TTL + 255 + + + + + + + + + + TCP_WND + 2048 + + + + + + + + + + UDP_TTL + 255 + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_OPT_H__ +#define__LWIP_OPT_H__ + +#include"net/lwipopts.h" + +/*Definesomehandydefaultvaluesforconfigurationparameters.*/ + +#ifndefICMP_TTL +#defineICMP_TTL255 +#endif + +#ifndefUDP_TTL +#defineUDP_TTL255 +#endif + +#ifndefTCP_TTL +#defineTCP_TTL255 +#endif + +#ifndefTCP_MSS +#defineTCP_MSS128/*A*very*conservativedefault.*/ +#endif + +#ifndefTCP_WND +#defineTCP_WND2048 +#endif + +#ifndefTCP_MAXRTX +#defineTCP_MAXRTX12 +#endif + +#ifndefTCP_SYNMAXRTX +#defineTCP_SYNMAXRTX6 +#endif + +#ifndefMEM_ALIGNMENT +#defineMEM_ALIGNMENT1 +#endif + +#ifndefPBUF_POOL_SIZE +#definePBUF_POOL_SIZE16 +#endif + +#ifndefPBUF_POOL_BUFSIZE +#definePBUF_POOL_BUFSIZE128 +#endif + +#ifndefPBUF_LINK_HLEN +#definePBUF_LINK_HLEN0 +#endif + +#ifndefLWIP_UDP +#defineLWIP_UDP1 +#endif + +#ifndefLWIP_TCP +#defineLWIP_TCP1 +#endif + +#endif/*__LWIP_OPT_H__*/ + + + + + + + diff --git a/doc/xml/page__fault_8S.xml b/doc/xml/page__fault_8S.xml new file mode 100644 index 0000000..fe394bc --- /dev/null +++ b/doc/xml/page__fault_8S.xml @@ -0,0 +1,135 @@ + + + + page_fault.S + + + globl _vmm_pageFault text code32 esp + globl _vmm_pageFault text code32 esp movl + (%esp) + movl + + % + esp + + + + + + + + + + + + + globl _vmm_pageFault text code32 + globl _vmm_pageFault text code32 _vmm_pageFault + + _vmm_pageFault + + + + + + + + idt_init + vmm_pagingInit + + + globl _vmm_pageFault text code32 esp eax pushl ebx ebx pushl ecx pushl edx push ebx push eax movl + globl _vmm_pageFault text code32 esp eax pushl ebx ebx pushl ecx pushl edx push ebx push eax movl cr2 + + cr2 + + + + + + + + + + globl _vmm_pageFault text code32 esp eax pushl ebx ebx pushl ecx pushl edx push ebx push eax movl eax pushl eax sti call vmm_pageFault addl + globl _vmm_pageFault text code32 esp eax pushl ebx ebx pushl ecx pushl edx push ebx push eax movl eax pushl eax sti call vmm_pageFault addl xC + + xC + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +/* +Pagefaultwrapperthiswillaquiresomevaluesweneedforlateruse +*/ + +.globl_vmm_pageFault +.text +.code32 +_vmm_pageFault: +xchgl%eax,(%esp)/*SaveEAX*/ +movl4(%esp),%eax/*MoveEIPintoEAXtouselater*/ +pushl%ebx/*SaveEBX*/ +movl20(%esp),%ebx/*SaveESPforring3touselater*/ +pushl%ecx/*SaveECX,EDX*/ +pushl%edx +push%ebx/*PushESP*/ +push%eax/*PushEIP*/ +movl%cr2,%eax/*Pushthefaultedaddress*/ +pushl%eax +sti/*Turninterruptsbackonwearenowentrantsafe*/ +callvmm_pageFault/*Callourpagefaulthandler*/ +addl$0xC,%esp/*Adjustthestacktocompensateforpushedvalues*/ +popl%edx/*RestoreEAX,EBX,ECX,EDX*/ +popl%ecx +popl%ebx +popl%eax +iret/*Returnfromtheinterrupt*/ + + +/*** +END +***/ + + + + diff --git a/doc/xml/pagefault_8c.xml b/doc/xml/pagefault_8c.xml new file mode 100644 index 0000000..c4bd1de --- /dev/null +++ b/doc/xml/pagefault_8c.xml @@ -0,0 +1,445 @@ + + + + pagefault.c + vmm/vmm.h + ubixos/sched.h + ubixos/kpanic.h + ubixos/spinlock.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void vmm_pageFault + (uInt32 memAddr, uInt32 eip, uInt32 esp) + vmm_pageFault + + uInt32 + memAddr + + + uInt32 + eip + + + uInt32 + esp + + + + + + + + + _current + adjustCowCounter + endTask + taskStruct::id + kpanic + kprintf + PAGE_COW + PAGE_DEFAULT + pageEntries + pageFaultSpinLock + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + taskStruct::td + thread::vm_daddr + thread::vm_dsize + vmm_getPhysicalAddr + vmmFindFreePage + vmmGetFreeVirtualPage + vmmUnmapPage + x1 + x1000 + + + + + spinLock_t + spinLock_t pageFaultSpinLock + + pageFaultSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + vmm_pageFault + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<ubixos/sched.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> +#include<lib/kprintf.h> + +staticspinLock_tpageFaultSpinLock=SPIN_LOCK_INITIALIZER; + +/***************************************************************************************** + +Function:voidvmm_pageFault(uInt32memAddr,uInt32eip,uInt32esp); +Description:Thisisthepagefaulthandler,itwillhandleCOWandtrapallother +exceptionsandsegfaultthethread. + +Notes: + +07/30/02-FixedCOWHoweverINeedToThinkOfAWayToImpliment +APagingSystemAlsoStartToAddSecurityLevels + +07/27/04-Addedspinlockingtoensurethatwearethreadsafe.Iknowthatspininga +cpuisawasteofresourcesbutfornowitpreventserrors. + +*****************************************************************************************/ +voidvmm_pageFault(uInt32memAddr,uInt32eip,uInt32esp){ +uInt32i=0x0,pageTableIndex=0x0,pageDirectoryIndex=0x0; +uInt32*pageDir=0x0,*pageTable=0x0; +uInt32*src=0x0,*dst=0x0; + +/*Trytoaquirelockotherwisespintillwedo*/ +spinLock(&pageFaultSpinLock); + +/*Setpagedirpointertotheaddressofthevisablepagedirectory*/ +pageDir=(uInt32*)parentPageDirAddr; + +/*UBU-Thisisatemppanicfor0x0readwritelateronIwillhandlethisdifferently*/ +if(memAddr==0x0){ +kprintf("SegfaultAtAddress:[0x%X][0x%X][%i][0x%X]\n",memAddr,esp,_current->id,eip); +kpanic("ErrorWeWroteTo0x0\n"); +} + +/*CalculateThePageDirectoryIndex*/ +pageDirectoryIndex=(memAddr>>22); + +/*CalculateThePageTableIndex*/ +pageTableIndex=((memAddr>>12)&0x3FF); + +/*UBU-Thisisatemporaryroutineforhandlingaccesstoapageofanonexistantpagetable*/ +if(pageDir[pageDirectoryIndex]==0x0){ +kprintf("SegfaultAtAddress:[0x%X][0x%X][%i][0x%X],NotAValidPageTable\n",memAddr,esp,_current->id,eip); +spinUnlock(&pageFaultSpinLock); +endTask(_current->id); +} +else{ +/*SetpageTableToPointToVirtualAddressOfPageTable*/ +pageTable=(uInt32*)(tablesBaseAddress+(0x1000*pageDirectoryIndex)); + +/*TestifthisisaCOWonpage*/ +if(((uInt32)pageTable[pageTableIndex]&PAGE_COW)==PAGE_COW){ +/*SetSrcToBaseAddressOfPageToCopy*/ +src=(uInt32*)(memAddr&0xFFFFF000); +/*AllocateAFreePageForDestination*/ +/*USEvmInfo*/ +dst=(uInt32*)vmmGetFreeVirtualPage(_current->id,1,0x1); +/*CopyMemory*/ +for(i=0;i<pageEntries;i++){ +dst[i]=src[i]; +} +/*AdjustTheCOWCounterForPhysicalPage*/ +adjustCowCounter(((uInt32)pageTable[pageTableIndex]&0xFFFFF000),-1); +/*RemapInNewPage*/ +pageTable[pageTableIndex]=(uInt32)(vmm_getPhysicalAddr((uInt32)dst)|(memAddr&0xFFF)); +/*UnlinkFromMemoryMapAllocatedPage*/ +vmmUnmapPage((uInt32)dst,1); +} +elseif(pageTable[pageTableIndex]!=0x0){ +kprintf("Securityfailedpagetablenotuserpermission\n"); +kprintf("pageTable:[0x%X:0x%X:0x%X:0x%X]\n",pageTable[pageTableIndex],pageTableIndex,pageDirectoryIndex,eip); +kprintf("SegfaultAtAddress:[0x%X][0x%X][%i][0x%X]NonMapped\n",memAddr,esp,_current->id,eip); +spinUnlock(&pageFaultSpinLock); +endTask(_current->id); +} +elseif(memAddr<(_current->td.vm_dsize+_current->td.vm_daddr)){ +pageTable[pageTableIndex]=(uInt32)vmmFindFreePage(_current->id)|PAGE_DEFAULT; +} +else{ +spinUnlock(&pageFaultSpinLock); +/*NeedToCreateARoutineForAttemptingToAccessNonMappedMemory*/ +kprintf("SegfaultAtAddress:[0x%X][0x%X][%i][0x%X]NonMapped\n",memAddr,esp,_current->id,eip); +kprintf("OutOfStackSpace:[0x%X]\n",memAddr&0xFF0000); +spinUnlock(&pageFaultSpinLock); +endTask(_current->id); +} +} +asmvolatile( +"movl%cr3,%eax\n" +"movl%eax,%cr3\n" +); + +/*Releasethespinlock*/ +spinUnlock(&pageFaultSpinLock); +return; +} + +/*** +$Log$ +Revision1.62006/12/0514:10:21reddawg +WorkignDistro + +Revision1.52006/12/0105:12:35reddawg +We'realmostthere...:) + +Revision1.42006/11/2113:25:49reddawg +Ahandfulofchanges;) + +Revision1.32006/11/0619:10:12reddawg +LotsOfUpdates...Stillhavingissueswithbrk(); + +Revision1.22006/10/3120:44:19reddawg +Lotsofchanges + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:52reddawg +nomessage + +Revision1.142004/08/2522:02:41reddawg +taskswitching-WenowareusingsoftwareswitchingtobeconsistantwiththerestoftheworldbecauseallofthisopensourcefreaksgavemeahardtimeaboutsomethingIliked.Theredoesn'tseemtobeanygaininperformancebutitisworkingfineandflawlessly + +Revision1.132004/08/2405:24:37reddawg +TCAIsABONER!!!! + +Revision1.122004/08/1411:23:03reddawg +Changes + +Revision1.112004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.102004/07/2800:22:56reddawg +bah + +Revision1.92004/07/2800:17:05reddawg +Major: +Disconnectedpage0x0fromthesystem...Unfortunatelythisbrokemanythings +allofwhichhavebeenfixed.ThiswasgoodbecausenothingdeferencesNULL +anymore. + +Thingsaffected: +malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file + +Revision1.82004/07/2707:09:38reddawg +Putinatestfor0x0 + +Revision1.72004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.62004/07/2423:04:44reddawg +Changes...markletmeknowifyoufaultatpid185whenyoutypestress + +Revision1.52004/07/2420:00:51reddawg +Lotsofchangestothevmmsubsystem....Pagefaultshavebeenadjusttonowbeblockingonaperthreadbasisnotsystemwide.Thishasresultedinnomoredeadlocks..alsotheadditionofperthreadlockinghasremovedsegfaultsasaresultofCOWinwhichtwotasksfaultthesameCOWpageandtrytomodifyit. + +Revision1.42004/07/2417:47:28reddawg +vmm_pageFault:deadlockresolvedthankstoaproppersolutionsuggestedbygeist + +Revision1.32004/07/1902:05:26reddawg +vmmPageFault:hadapotentialmemoryleakhereforonepageitwasstillusingsysIDoncertainCOWscenarios + +Revision1.22004/06/1022:23:56reddawg +Volatiles + +Revision1.1.1.12004/04/1512:06:52reddawg +UbixOSv1.0 + +Revision1.42004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/paging_8c.xml b/doc/xml/paging_8c.xml new file mode 100644 index 0000000..6aa3025 --- /dev/null +++ b/doc/xml/paging_8c.xml @@ -0,0 +1,1125 @@ + + + + paging.c + vmm/vmm.h + lib/kprintf.h + lib/kmalloc.h + ubixos/types.h + ubixos/kpanic.h + ubixos/sched.h + ubixos/spinlock.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int mmap + (struct thread *td, struct mmap_args *uap) + mmap + + struct thread * + td + + + struct mmap_args * + uap + + + + + + + + + _current + mmap_args::addr + mmap_args::fd + taskStruct::id + kprintf + mmap_args::len + thread::td_retval + VM_TASK + vmmGetFreeVirtualPage + x1000 + + + int + int munmap + (struct thread *td, struct munmap_args *uap) + munmap + + struct thread * + td + + + struct munmap_args * + uap + + + + + + + + + kprintf + + + int + int obreak + (struct thread *td, struct obreak_args *uap) + obreak + + struct thread * + td + + + struct obreak_args * + uap + + + + + + + + + _current + btoc + ctob + taskStruct::id + K_PANIC + obreak_args::nsize + PAGE_DEFAULT + round_page + thread::vm_daddr + thread::vm_dsize + vmm_remapPage + vmmFindFreePage + + + int + int vmm_cleanVirtualSpace + (u_int32_t addr) + vmm_cleanVirtualSpace + + u_int32_t + addr + + + + + + + + + kprintf + PAGE_COW + PAGE_PRESENT + PAGE_STACK + parentPageDirAddr + tablesBaseAddress + x1000 + sysExec + + + void * + void* vmm_getFreeMallocPage + (uInt16 count) + vmm_getFreeMallocPage + + uInt16 + count + + + + + + + + + fkpSpinLock + K_PANIC + KERNEL_PAGE_DEFAULT + spinLock + spinUnlock + sysID + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + x1000 + getEmptyDesc + + + int + int vmm_pagingInit + () + vmm_pagingInit + + + + + + + + _vmm_pageFault + K_PANIC + KERNEL_PAGE_DEFAULT + kernelPageDirectory + kprintf + memset + numPages + pageEntries + sysID + vmm_remapPage + vmmFindFreePage + vmmMemoryMap + vmmMemoryMapAddr + x1 + x1000 + vmm_init + + + int + int vmm_remapPage + (uInt32 source, uInt32 dest, uInt16 perms) + vmm_remapPage + + uInt32 + source + + + uInt32 + dest + + + uInt16 + perms + + + + + + + + + _current + freePage + taskStruct::id + K_PANIC + KERNEL_PAGE_DEFAULT + kprintf + PAGE_COW + PAGE_DEFAULT + PAGE_PRESENT + PAGE_STACK + pageEntries + parentPageDirAddr + rmpSpinLock + spinLock + spinUnlock + tablesBaseAddress + vmmFindFreePage + x1000 + execFile + kmod_load + ldEnable + obreak + sysExec + vmm_getFreeMallocPage + vmm_pagingInit + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + vmmMapFromTask + + + int + int vmmClearVirtualPage + (uInt32 pageAddr) + vmmClearVirtualPage + + uInt32 + pageAddr + + + + + + + + + pageEntries + vmm_getFreeMallocPage + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void * + void* vmmGetFreeKernelPage + (pidType pid, uInt16 count) + vmmGetFreeKernelPage + + pidType + pid + + + uInt16 + count + + + + + + + + + fkpSpinLock + K_PANIC + KERNEL_PAGE_DEFAULT + spinLock + spinUnlock + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + vmmCopyVirtualSpace + + + void * + void* vmmMapFromTask + (pidType pid, void *ptr, uInt32 size) + vmmMapFromTask + + pidType + pid + + + void * + ptr + + + uInt32 + size + + + + + + + + + _current + tssStruct::cr3 + K_PANIC + KERNEL_PAGE_DEFAULT + taskStruct::oInfo + schedFindTask + tablesBaseAddress + taskStruct::tss + vmm_remapPage + vmmUnmapPage + osInfo::vmStart + x1000 + + + + + spinLock_t + spinLock_t fkpSpinLock + + fkpSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + vmm_getFreeMallocPage + vmmGetFreeKernelPage + + + uInt32 * + uInt32* kernelPageDirectory + + kernelPageDirectory + 0x0 + + + + + + + + _int8 + execFile + execThread + idt_init + vmm_pagingInit + + + spinLock_t + spinLock_t rmpSpinLock + + rmpSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + vmm_remapPage + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<ubixos/types.h> +#include<ubixos/kpanic.h> +#include<ubixos/sched.h> +#include<ubixos/spinlock.h> +#include<string.h> +#include<assert.h> + +uInt32*kernelPageDirectory=0x0; + + +staticspinLock_tfkpSpinLock=SPIN_LOCK_INITIALIZER; +staticspinLock_trmpSpinLock=SPIN_LOCK_INITIALIZER; + + +/***************************************************************************************** +Function:intvmm_pagingInit(); + +Description:ThisFunctionWillInitializeTheOperatingSystemsPaging +Abilities. + +Notes: +02/20/2004-LookedOverCodeAndHaveApprovedItsQuality +07/28/3004-Allpagesaresetforring-0onlynomoreuseraccessable + +*****************************************************************************************/ + +intvmm_pagingInit(){ +uInt32i=0x0; +uInt32*pageTable=0x0; + +/*AllocateAPageOfMemoryForKernelsPageDirectory*/ +kernelPageDirectory=(uInt32*)vmmFindFreePage(sysID); +if(kernelPageDirectory==0x0){ +K_PANIC("Error:vmmFindFreePageFailed"); +return(0x1); +}/*endif*/ + +/*ClearTheMemoryToEnsureThereIsNoGarbage*/ +for(i=0;i<pageEntries;i++){ +(uInt32)kernelPageDirectory[i]=(uInt32)0x0; +}/*endfor*/ + +/*Allocateapageforthefirst4MBofmemory*/ +if((pageTable=(uInt32*)vmmFindFreePage(sysID))==0x0) +K_PANIC("Error:vmmFindFreePageFailed"); +kernelPageDirectory[0]=(uInt32)((uInt32)(pageTable)|KERNEL_PAGE_DEFAULT); + +/*MakeSureThePageTableIsClean*/ +memset(pageTable,0x0,0x1000); + +/* +*Mapthefirst1MBofMemorytothekernelMMspacebecauseourkernelstarts +*at0x30000 +*Donotmappageataddress0x0thisisreservedfornull... +*/ +for(i=0x1;i<(pageEntries/0x4);i++){ +pageTable[i]=(uInt32)((i*0x1000)|KERNEL_PAGE_DEFAULT); +}/*endfor*/ + +/* +*Createpagetablesforthetop1GBofVMspace.Thisspaceissetaside +*forkernelspaceandwillbesharedwitheachprocess +*/ +for(i=768;i<pageEntries;i++){ +if((pageTable=(uInt32*)vmmFindFreePage(sysID))==0x0) +K_PANIC("Error:vmmFindFreePageFailed"); + +/*MakeSureThePageTableIsClean*/ +memset(pageTable,0x0,0x1000); + +/*MapInThePageDirectory*/ +kernelPageDirectory[i]=(uInt32)((uInt32)(pageTable)|KERNEL_PAGE_DEFAULT); +}/*endfor*/ + +/*SetUpMemoryToBeAllTheAllocatedPageDirectories*/ +if((pageTable=(uInt32*)vmmFindFreePage(sysID))==0x0) +K_PANIC("Error:vmmFindFreePageFailed"); + +/*CleanPageTable*/ +memset(pageTable,0x0,0x1000); + +kernelPageDirectory[767]=((uInt32)pageTable|KERNEL_PAGE_DEFAULT); +for(i=0;i<pageEntries;i++){ +pageTable[i]=kernelPageDirectory[i]; +}/*endfor*/ + +/*AlsoSetUpPageDirectoryToBeTheTheFirstPageIn0xE0400000*/ +pageTable=(uInt32*)(kernelPageDirectory[0]&0xFFFFF000); +pageTable[256]=(uInt32)((uInt32)(kernelPageDirectory)|KERNEL_PAGE_DEFAULT); + +/*NowLetsTurnOnPagingWithThisInitialPageTable*/ +asmvolatile( +"movl%0,%%eax\n" +"movl%%eax,%%cr3\n" +"movl%%cr0,%%eax\n" +"orl$0x80010000,%%eax\n"/*Turnonmemoryprotection*/ +"movl%%eax,%%cr0\n" +: +:"d"((uInt32*)(kernelPageDirectory)) +); + +/*RemapTheMemoryList*/ +for(i=0x101000;i<=(0x101000+(numPages*sizeof(mMap)));i+=0x1000){ +if((vmm_remapPage(i,(vmmMemoryMapAddr+(i-0x101000)),KERNEL_PAGE_DEFAULT))==0x0) +K_PANIC("vmmRemapPagefailed\n"); +} +/*SetNewAddressForMemoryMapSinceItsRelocation*/ +vmmMemoryMap=(mMap*)vmmMemoryMapAddr; + +/*Printinformationonpaging*/ +kprintf("paging0-Address:[0x%X],PagingISRAddress:[0x%X]\n",kernelPageDirectory,&_vmm_pageFault); + +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +}/*END*/ + +/***************************************************************************************** +Function:intvmmRemapPage(PhysicalSource,VirtualDestination) + +Description:ThisFunctionWillRemapAPhysicalPageIntoVirtualSpace + +Notes: +07/29/02-RewroteThisToWorkWithOurNewPagingSystem +07/30/02-ChangedAddressOfPageTablesAndPageDirectory +07/28/04-Ifperms==0x0settoPAGE_DEFAULT + +*****************************************************************************************/ +intvmm_remapPage(uInt32source,uInt32dest,uInt16perms) +{ +uInt16destPageDirectoryIndex=0x0,destPageTableIndex=0x0; +uInt32*pageDir=0x0,*pageTable=0x0; +shorti=0x0; + +if(source==0x0) +K_PANIC("source==0x0"); +if(dest==0x0) +K_PANIC("dest==0x0"); + +spinLock(&rmpSpinLock); +if(perms==0x0) +perms=KERNEL_PAGE_DEFAULT; + +/* +*SetPointerpageDirectoryToPointToTheVirtualMappingOfThePage +*Directory +*/ +pageDir=(uInt32*)parentPageDirAddr; +/*CheckToSeeIfPageTableExists*/ +if(dest==0x0) +return(0x0); + +/*GetIndexIntoThePageDirectory*/ +destPageDirectoryIndex=(dest/0x400000); + +if((pageDir[destPageDirectoryIndex]&PAGE_PRESENT)!=PAGE_PRESENT){ +/*IfPageTableIsNonExistantThenSetItUp*/ +/*UBUWhydoesthepagetableneedtobeuserwritable?*/ +pageDir[destPageDirectoryIndex]=(uInt32)vmmFindFreePage(_current->id)|PAGE_DEFAULT; + +/*AlsoAddItToVirtualSpaceSoWeCanMakeChangesLater*/ +pageTable=(uInt32*)(tablesBaseAddress+0x2FF000); +pageTable[destPageDirectoryIndex]=pageDir[destPageDirectoryIndex]; +/*ReloadPageDirectory*/ +asmvolatile( +"push%eax\n" +"mov%cr3,%eax\n" +"mov%eax,%cr3\n" +"pop%eax\n" +); +pageTable=(uInt32*)(tablesBaseAddress+(0x1000*destPageDirectoryIndex)); +for(i=0x0;i<pageEntries;i++) +pageTable[i]=0x0; +} +/*SetAddressToPageTable*/ +pageTable=(uInt32*)(tablesBaseAddress+(0x1000*destPageDirectoryIndex)); + +/*GetTheIndexToThePageTable*/ +destPageTableIndex=((dest-(destPageDirectoryIndex*0x400000))/0x1000); + + +/*IfThePageIsMappedInFreeItBeforeWeRemap*/ +if((pageTable[destPageTableIndex]&PAGE_PRESENT)==PAGE_PRESENT){ +if((pageTable[destPageTableIndex]&PAGE_STACK)==PAGE_STACK) +kprintf("StackPage:[0x%X]\n",dest); + +if((pageTable[destPageTableIndex]&PAGE_COW)!=PAGE_COW){ +kprintf("PageNOTCOW\n"); +kprintf("PagePresent:[0x%X][0x%X]",dest,pageTable[destPageTableIndex]); +source=0x0; +gotormDone; +} +/*ClearThePageFirstForSecurityReasons*/ +freePage(((uInt32)pageTable[destPageTableIndex]&0xFFFFF000)); +} +/*SetTheSourceAddressInTheDestination*/ +pageTable[destPageTableIndex]=(uInt32)(source|perms); +/*ReloadThePageTable;*/ +asmvolatile( +"push%eax\n" +"movl%cr3,%eax\n" +"movl%eax,%cr3\n" +"pop%eax\n" +); + +rmDone: +/*Return*/ +spinUnlock(&rmpSpinLock); +return(source); +} + +/************************************************************************ + +Function:void*vmmGetFreeKernelPage(pidTypepid); +Description:ReturnsAFreePageMappedToTheVMSpace +Notes: + +07/30/02-ThisReturnsAFreePageInTheTop1GBForTheKernel + +************************************************************************/ +void* +vmmGetFreeKernelPage(pidTypepid,uInt16count) +{ +intx=0,y=0,c=0; +uInt32*pageTableSrc=0x0; + +spinLock(&fkpSpinLock); +/*LetsSearchForAFreePage*/ +for(x=768;x<1024;x++){ +/*SetPageTableAddress*/ +pageTableSrc=(uInt32*)(tablesBaseAddress+(4096*x)); +for(y=0;y<1024;y++){ +/*LoopThroughThePageTableFindAnUnAllocatedPage*/ +if((uInt32)pageTableSrc[y]==(uInt32)0x0){ +if(count>1){ +for(c=0;c<count;c++){ +if(y+c<1024){ +if((uInt32)pageTableSrc[y+c]!=(uInt32)0x0){ +c=-1; +break; +} +} +} +if(c!=-1){ +for(c=0;c<count;c++){ +if((vmm_remapPage((uInt32)vmmFindFreePage(pid),((x*(1024*4096))+((y+c)*4096)),KERNEL_PAGE_DEFAULT))==0x0) +K_PANIC("vmmRemapPagefailed:gfkp-1\n"); +vmmClearVirtualPage((uInt32)((x*(1024*4096))+((y+c)*4096))); +} +spinUnlock(&fkpSpinLock); +return((void*)((x*(1024*4096))+(y*4096))); +} +}else{ +/*MapAPhysicalPageToTheVirtualPage*/ + +if((vmm_remapPage((uInt32)vmmFindFreePage(pid),((x*(1024*4096))+(y*4096)),KERNEL_PAGE_DEFAULT))==0x0) +K_PANIC("vmmRemapPagefailed:gfkp-2\n"); +/*ClearThisPageSoNoGarbageIsThere*/ +vmmClearVirtualPage((uInt32)((x*(1024*4096))+(y*4096))); +/*ReturnTheAddressOfTheNewlyAllocatePage*/ +spinUnlock(&fkpSpinLock); +return((void*)((x*(1024*4096))+(y*4096))); +} +} +} +} +/*IfNoFreePageWasFoundReturnNULL*/ +spinUnlock(&fkpSpinLock); +return(0x0); +} + + +/************************************************************************ + +Function:voidvmmClearVirtualPage(uInt32pageAddr); + +Description:ThisWillNullOutAPageOfMemory + +Notes: + +************************************************************************/ +int +vmmClearVirtualPage(uInt32pageAddr) +{ +uInt32*src=0x0; +intcounter=0x0; + +/*SetSourcePointerToVirtualPageAddress*/ +src=(uInt32*)pageAddr; + +/*ClearOutThePage*/ +for(counter=0x0;counter<pageEntries;counter++){ +(uInt32)src[counter]=(uInt32)0x0; +} + +/*Return*/ +return(0x0); +} + + +void*vmmMapFromTask(pidTypepid,void*ptr,uInt32size){ +kTask_t*child=0x0; +uInt32i=0x0,x=0x0,y=0x0,count=((size+4095)/0x1000),c=0x0; +uInt16dI=0x0,tI=0x0; +uInt32baseAddr=0x0,offset=0x0; +uInt32*childPageDir=(uInt32*)0x5A00000; +uInt32*childPageTable=0x0; +uInt32*pageTableSrc=0x0; +offset=(uInt32)ptr&0xFFF; +baseAddr=(uInt32)ptr&0xFFFFF000; +child=schedFindTask(pid); +//CalculateThePageTableIndexAndPageDirectoryIndex +dI=(baseAddr/(1024*4096)); +tI=((baseAddr-(dI*(1024*4096)))/4096); +if(vmm_remapPage(child->tss.cr3,0x5A00000,KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("vmmFailed"); + +for(i=0;i<0x1000;i++){ +if(vmm_remapPage(childPageDir[i],0x5A01000+(i*0x1000),KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("ReturnedNULL"); +} +for(x=(_current->oInfo.vmStart/(1024*4096));x<1024;x++){ +pageTableSrc=(uInt32*)(tablesBaseAddress+(4096*x)); +for(y=0;y<1024;y++){ +//LoopThroughThePageTableFindAnUnAllocatedPage +if((uInt32)pageTableSrc[y]==(uInt32)0x0){ +if(count>1){ +for(c=0;((c<count)&&(y+c<1024));c++){ +if((uInt32)pageTableSrc[y+c]!=(uInt32)0x0){ +c=-1; +break; +} +} +if(c!=-1){ +for(c=0;c<count;c++){ +if((tI+c)>=0x1000){ +dI++; +tI=0-c; +} +childPageTable=(uInt32*)(0x5A01000+(0x1000*dI)); +if(vmm_remapPage(childPageTable[tI+c],((x*(1024*4096))+((y+c)*4096)),KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("remap==NULL"); +} +vmmUnmapPage(0x5A00000,1); +for(i=0;i<0x1000;i++){ +vmmUnmapPage((0x5A01000+(i*0x1000)),1); +} +return((void*)((x*(1024*4096))+(y*4096)+offset)); +} +} +else{ +//MapAPhysicalPageToTheVirtualPage +childPageTable=(uInt32*)(0x5A01000+(0x1000*dI)); +if(vmm_remapPage(childPageTable[tI],((x*(1024*4096))+(y*4096)),KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("remapFailed"); + +//ReturnTheAddressOfTheMappedInMemory +vmmUnmapPage(0x5A00000,1); +for(i=0;i<0x1000;i++){ +vmmUnmapPage((0x5A01000+(i*0x1000)),1); +} +return((void*)((x*(1024*4096))+(y*4096)+offset)); +} +} +} +} +return(0x0); +} + +void*vmm_getFreeMallocPage(uInt16count){ +uInt16x=0x0,y=0x0; +intc=0x0; +uInt32*pageTableSrc=0x0; + +spinLock(&fkpSpinLock); +/*LetsSearchForAFreePage*/ +for(x=960;x<1024;x++){ +/*SetPageTableAddress*/ +pageTableSrc=(uInt32*)(tablesBaseAddress+(0x1000*x)); +for(y=0;y<1024;y++){ +/*LoopThroughThePageTableFindAnUnAllocatedPage*/ +if((uInt32)pageTableSrc[y]==(uInt32)0x0){ +if(count>1){ +for(c=0;c<count;c++){ +if(y+c<1024){ +if((uInt32)pageTableSrc[y+c]!=(uInt32)0x0){ +c=-1; +break; +} +} +} +if(c!=-1){ +for(c=0;c<count;c++){ +if(vmm_remapPage((uInt32)vmmFindFreePage(sysID),((x*0x400000)+((y+c)*0x1000)),KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("remapFailed"); + +vmmClearVirtualPage((uInt32)((x*0x400000)+((y+c)*0x1000))); +} +spinUnlock(&fkpSpinLock); +return((void*)((x*0x400000)+(y*0x1000))); +} +} +else{ +/*MapAPhysicalPageToTheVirtualPage*/ +if(vmm_remapPage((uInt32)vmmFindFreePage(sysID),((x*0x400000)+(y*0x1000)),KERNEL_PAGE_DEFAULT)==0x0) +K_PANIC("Failed"); + +/*ClearThisPageSoNoGarbageIsThere*/ +vmmClearVirtualPage((uInt32)((x*0x400000)+(y*0x1000))); +/*ReturnTheAddressOfTheNewlyAllocatePage*/ +spinUnlock(&fkpSpinLock); +return((void*)((x*0x400000)+(y*0x1000))); +} +} +} +} +/*IfNoFreePageWasFoundReturnNULL*/ +spinUnlock(&fkpSpinLock); +return(0x0); +} + +intmmap(structthread*td,structmmap_args*uap){ +vm_offset_taddr=0x0; + +addr=(vm_offset_t)uap->addr; + +if(uap->addr!=0x0){ +kprintf("Addresshintsarenotsupportedyet.\n"); +} +/* +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); +*/ +if(uap->fd==-1) +td->td_retval[0]=vmmGetFreeVirtualPage(_current->id,uap->len/0x1000,VM_TASK); +else +td->td_retval[0]=0x0; +return(0x0); +} + +intobreak(structthread*td,structobreak_args*uap){ +u_int32_ti=0x0; +vm_offset_told=0x0; +vm_offset_tbase=0x0; +vm_offset_tnew=0x0; + +/* +kprintf("vm_offset_t:[%i]\n",sizeof(vm_offset_t)); +kprintf("nsize:[0x%X]\n",uap->nsize); +kprintf("vm_daddr:[0x%X]\n",td->vm_daddr); +kprintf("vm_dsize:[0x%X]\n",td->vm_dsize); +kprintf("total:[0x%X]\n",td->vm_daddr+td->vm_dsize); +*/ + +new=round_page((vm_offset_t)uap->nsize); + +base=round_page((vm_offset_t)td->vm_daddr); + +old=base+ctob(td->vm_dsize); +//kprintf("ctob:[0x%X]\n",ctob(td->vm_dsize)); +//kprintf("Base:[0x%x],Old:[0x%x],New:[0x%x]\n",base,old,new); + +if(new<base) +K_PANIC("EINVAL"); + +//kprintf("obreak:[0x%X:0x%X]",new,old); +if(new>old){ +for(i=old;i<new;i+=0x1000){ +if(vmm_remapPage(vmmFindFreePage(_current->id),i,PAGE_DEFAULT)==0x0) +K_PANIC("remapFailed"); +} +td->vm_dsize+=btoc(new-old); +} +elseif(new<old){ +/* +for(i=old;i>new;i-=0x1000){ +kprintf("[0x%X]",i); +} +*/ +K_PANIC("new<old"); +td->vm_dsize-=btoc(old-new); +} +return(0x0); +} + +intmunmap(structthread*td,structmunmap_args*uap){ +/*HACK*/ +kprintf("munmap"); +return(0x0); +} + +intvmm_cleanVirtualSpace(u_int32_taddr){ +intx=0x0; +inty=0x0; +u_int32_t*pageTableSrc=0x0; +u_int32_t*pageDir=0x0; + +pageDir=(uInt32*)parentPageDirAddr; + +kprintf("CVS:[0x%X]\n",addr); + +for(x=(addr/(1024*4096));x<770;x++){ +if((pageDir[x]&PAGE_PRESENT)==PAGE_PRESENT){ +pageTableSrc=(uInt32*)(tablesBaseAddress+(0x1000*x)); +for(y=0;y<1024;y++){ +if(pageTableSrc[y]!=0x0){ +if((pageTableSrc[y]&PAGE_COW)==PAGE_COW){ +//kprintf("COWi*"); +pageTableSrc[y]=0x0; +} +elseif((pageTableSrc[y]&PAGE_STACK)==PAGE_STACK){ +//pageTableSrc[y]=0x0; +//kprintf("STACK:(%i:%i)",x,y); +} +else{ +kprintf("+"); +} +} +} +} +} + +return(0x0); +} + + +/*** +END +***/ + + + + + diff --git a/doc/xml/paging_8h.xml b/doc/xml/paging_8h.xml new file mode 100644 index 0000000..f5196a1 --- /dev/null +++ b/doc/xml/paging_8h.xml @@ -0,0 +1,1226 @@ + + + + paging.h + ubixos/types.h + sys/sysproto.h + sys/thread.h + src/sys/include/vmm/vmm.h + src/sys/vfs/file.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + btoc + x + (((vm_offset_t)(x)+PAGE_MASK)>>PAGE_SHIFT) + + + + + + + + obreak + vmmGetFreeVirtualPage + + + ctob + x + ((x)<<PAGE_SHIFT) + + + + + + + + obreak + vmmGetFreeVirtualPage + + + KERNEL_PAGE_DEFAULT + (PAGE_PRESENT|PAGE_WRITE) + + + + + + + + execFile + vmm_getFreeMallocPage + vmm_pagingInit + vmm_remapPage + vmmGetFreeKernelPage + vmmGetFreePage + vmmMapFromTask + + + PAGE_COW + 0x00000200 + + + + + + + + vmm_cleanVirtualSpace + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmFreeProcessPages + vmmGetFreeVirtualPage + + + PAGE_DEFAULT + (PAGE_PRESENT|PAGE_WRITE|PAGE_USER) + + + + + + + + execFile + kmod_load + ldEnable + obreak + sysExec + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmGetFreeVirtualPage + + + PAGE_MASK + (PAGE_SIZE-1) + + + + + + + + + + PAGE_PRESENT + 0x00000001 + + + + + + + + execFile + sysExec + vmm_cleanVirtualSpace + vmm_remapPage + vmmGetFreeVirtualPage + + + PAGE_SHIFT + 12 + + + + + + + + sysExec + + + PAGE_SIZE + (1<<PAGE_SHIFT) + + + + + + + + sysExec + + + PAGE_STACK + 0x00000400 + + + + + + + + execFile + vmm_cleanVirtualSpace + vmm_remapPage + vmmCopyVirtualSpace + + + PAGE_USER + 0x00000004 + + + + + + + + execFile + sysExec + + + PAGE_WIRED + 0x00000600 + + + + + + + + + + PAGE_WRITE + 0x00000002 + + + + + + + + + + pageEntries + (pageSize/4) + + + + + + + + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmmClearVirtualPage + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmFreeProcessPages + vmmGetFreeVirtualPage + + + pageLength + 0x00000400 + + + + + + + + + + pageSize + 4096 + + + + + + + + + + parentPageDirAddr + 0x100000 + + + + + + + + vmm_cleanVirtualSpace + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmFreeProcessPages + vmmGetFreeVirtualPage + + + round_page + x + (((x) + PAGE_MASK) & ~PAGE_MASK) + + + + + + + + obreak + sysExec + + + tablesBaseAddress + 0xBFC00000 + + + + + + + + vmm_cleanVirtualSpace + vmm_getFreeMallocPage + vmm_getPhysicalAddr + vmm_pageFault + vmm_remapPage + vmm_setPageAttributes + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmFreeProcessPages + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + vmmMapFromTask + vmmUnmapPage + vmmUnmapPages + + + trunc_page + x + ((x) & ~PAGE_MASK) + + + + + + + + sysExec + + + VM_TASK + 1 + + + + + + + + mmap + sysGetFreePage + vmmGetFreeVirtualPage + + + VM_THRD + 0 + + + + + + + + sysGetFreePage + vmmGetFreeVirtualPage + + + + + void + void _vmm_pageFault + () + _vmm_pageFault + + + + + + + + + + int + int mmap + (struct thread *, struct mmap_args *) + mmap + + struct thread * + + + struct mmap_args * + + + + + + + + + _current + mmap_args::addr + mmap_args::fd + taskStruct::id + kprintf + mmap_args::len + thread::td_retval + VM_TASK + vmmGetFreeVirtualPage + x1000 + + + int + int munmap + (struct thread *, struct munmap_args *) + munmap + + struct thread * + + + struct munmap_args * + + + + + + + + + kprintf + + + int + int obreak + (struct thread *, struct obreak_args *) + obreak + + struct thread * + + + struct obreak_args * + + + + + + + + + _current + btoc + ctob + taskStruct::id + K_PANIC + obreak_args::nsize + PAGE_DEFAULT + round_page + thread::vm_daddr + thread::vm_dsize + vmm_remapPage + vmmFindFreePage + + + void * + void* vmm_getFreeMallocPage + (uInt16 count) + vmm_getFreeMallocPage + + uInt16 + count + + + + + + + + + fkpSpinLock + K_PANIC + KERNEL_PAGE_DEFAULT + spinLock + spinUnlock + sysID + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + x1000 + getEmptyDesc + + + uInt32 + uInt32 vmm_getPhysicalAddr + (uInt32) + vmm_getPhysicalAddr + + uInt32 + pageAddr + + + + +Function: void *vmmGetPhysicalAddr(); Description: Returns The Physical Address Of The Virtual Page Notes: + + + + tablesBaseAddress + x1000 + vmm_pageFault + vmmCopyVirtualSpace + vmmCreateVirtualSpace + + + void + void vmm_pageFault + (uInt32, uInt32, uInt32) + vmm_pageFault + + uInt32 + + + uInt32 + + + uInt32 + + + + + + + + + _current + adjustCowCounter + endTask + taskStruct::id + kpanic + kprintf + PAGE_COW + PAGE_DEFAULT + pageEntries + pageFaultSpinLock + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + taskStruct::td + thread::vm_daddr + thread::vm_dsize + vmm_getPhysicalAddr + vmmFindFreePage + vmmGetFreeVirtualPage + vmmUnmapPage + x1 + x1000 + + + int + int vmm_pagingInit + () + vmm_pagingInit + + + + + + + + _vmm_pageFault + K_PANIC + KERNEL_PAGE_DEFAULT + kernelPageDirectory + kprintf + memset + numPages + pageEntries + sysID + vmm_remapPage + vmmFindFreePage + vmmMemoryMap + vmmMemoryMapAddr + x1 + x1000 + vmm_init + + + int + int vmm_remapPage + (uInt32, uInt32, uInt16) + vmm_remapPage + + uInt32 + + + uInt32 + + + uInt16 + + + + + + + + + _current + freePage + taskStruct::id + K_PANIC + KERNEL_PAGE_DEFAULT + kprintf + PAGE_COW + PAGE_DEFAULT + PAGE_PRESENT + PAGE_STACK + pageEntries + parentPageDirAddr + rmpSpinLock + spinLock + spinUnlock + tablesBaseAddress + vmmFindFreePage + x1000 + execFile + kmod_load + ldEnable + obreak + sysExec + vmm_getFreeMallocPage + vmm_pagingInit + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + vmmMapFromTask + + + int + int vmm_setPageAttributes + (uInt32, uInt16) + vmm_setPageAttributes + + uInt32 + + + uInt16 + + + + + + + + + kpanic + tablesBaseAddress + x1000 + execFile + sysExec + + + int + int vmmClearVirtualPage + (uInt32 pageAddr) + vmmClearVirtualPage + + uInt32 + pageAddr + + + + + + + + + pageEntries + vmm_getFreeMallocPage + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void * + void* vmmCopyVirtualSpace + (pidType) + vmmCopyVirtualSpace + + pidType + + + + + + + + + adjustCowCounter + cvsSpinLock + kpanic + memset + PAGE_COW + PAGE_DEFAULT + PAGE_STACK + pageEntries + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + vmm_getPhysicalAddr + vmmGetFreeKernelPage + vmmUnmapPage + x1 + x1000 + fork_copyProcess + + + void * + void* vmmCreateVirtualSpace + (pidType) + vmmCreateVirtualSpace + + pidType + + + + + + + + + PAGE_DEFAULT + pageEntries + parentPageDirAddr + tablesBaseAddress + vmm_getPhysicalAddr + vmmGetFreePage + vmmUnmapPage + execFile + + + void * + void* vmmGetFreeKernelPage + (pidType pid, uInt16 count) + vmmGetFreeKernelPage + + pidType + pid + + + uInt16 + count + + + + + + + + + fkpSpinLock + K_PANIC + KERNEL_PAGE_DEFAULT + spinLock + spinUnlock + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + vmmCopyVirtualSpace + + + void * + void* vmmGetFreePage + (pidType) + vmmGetFreePage + + pidType + + + + + + + + + KERNEL_PAGE_DEFAULT + kpanic + spinLock + spinUnlock + tablesBaseAddress + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + vmmGFPlock + x1000 + vmmCreateVirtualSpace + + + void * + void* vmmGetFreeVirtualPage + (pidType, int, int) + vmmGetFreeVirtualPage + + pidType + + + int + + + int + + + + + + + + + _current + btoc + ctob + fvpSpinLock + taskStruct::id + K_PANIC + kpanic + kprintf + taskStruct::oInfo + PAGE_COW + PAGE_DEFAULT + PAGE_PRESENT + pageEntries + parentPageDirAddr + spinLock + spinUnlock + tablesBaseAddress + taskStruct::td + thread::vm_daddr + thread::vm_dsize + VM_TASK + VM_THRD + vmm_remapPage + vmmClearVirtualPage + vmmFindFreePage + osInfo::vmStart + x1 + x1000 + mmap + sysGetFreePage + vmm_pageFault + + + void * + void* vmmMapFromTask + (pidType, void *, uInt32) + vmmMapFromTask + + pidType + + + void * + + + uInt32 + + + + + + + + + _current + tssStruct::cr3 + K_PANIC + KERNEL_PAGE_DEFAULT + taskStruct::oInfo + schedFindTask + tablesBaseAddress + taskStruct::tss + vmm_remapPage + vmmUnmapPage + osInfo::vmStart + x1000 + + + void + void vmmUnmapPage + (uInt32, int) + vmmUnmapPage + + uInt32 + + + int + + + + + + + + + tablesBaseAddress + x1000 + vmm_pageFault + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmMapFromTask + + + void + void vmmUnmapPages + (void *, uInt32) + vmmUnmapPages + + void * + + + uInt32 + + + + + + + + + tablesBaseAddress + + + + + uInt32 * + uInt32* kernelPageDirectory + + kernelPageDirectory + + + + + + + + _int8 + execFile + execThread + idt_init + vmm_pagingInit + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_PAGING_H +#define_PAGING_H + +#include<ubixos/types.h> +#include<sys/sysproto.h> +#include<sys/thread.h> + +#defineVM_THRD0 +#defineVM_TASK1 + +#definepageLength0x00000400 +#definepageSize4096 +#definepageEntries(pageSize/4) +#definetablesBaseAddress0xBFC00000 +#defineparentPageDirAddr0x100000 + +#definePAGE_COW0x00000200 +#definePAGE_STACK0x00000400 +#definePAGE_WIRED0x00000600 +#definePAGE_PRESENT0x00000001 +#definePAGE_WRITE0x00000002 +#definePAGE_USER0x00000004 +#definePAGE_DEFAULT(PAGE_PRESENT|PAGE_WRITE|PAGE_USER) +#defineKERNEL_PAGE_DEFAULT(PAGE_PRESENT|PAGE_WRITE) + +#definePAGE_SHIFT12/*LOG2(PAGE_SIZE)*/ +#definePAGE_SIZE(1<<PAGE_SHIFT)/*bytes/page*/ +#definePAGE_MASK(PAGE_SIZE-1) + +#definetrunc_page(x)((x)&~PAGE_MASK) +#defineround_page(x)(((x)+PAGE_MASK)&~PAGE_MASK) +#definectob(x)((x)<<PAGE_SHIFT) +#definebtoc(x)(((vm_offset_t)(x)+PAGE_MASK)>>PAGE_SHIFT) + + +intvmmClearVirtualPage(uInt32pageAddr); + +voidvmmUnmapPage(uInt32,int); +voidvmmUnmapPages(void*,uInt32); +void*vmmMapFromTask(pidType,void*,uInt32); +void*vmmCopyVirtualSpace(pidType); +void*vmmGetFreePage(pidType); +void*vmmGetFreeKernelPage(pidTypepid,uInt16count); +void*vmmCreateVirtualSpace(pidType); +void*vmmGetFreeVirtualPage(pidType,int,int); + +uInt32vmm_getPhysicalAddr(uInt32); +intvmm_setPageAttributes(uInt32,uInt16); +intvmm_remapPage(uInt32,uInt32,uInt16); +intvmm_pagingInit(); +void*vmm_getFreeMallocPage(uInt16count); +voidvmm_pageFault(uInt32,uInt32,uInt32); +void_vmm_pageFault(); +intmmap(structthread*,structmmap_args*); +intobreak(structthread*,structobreak_args*); +intmunmap(structthread*,structmunmap_args*); + + +externuInt32*kernelPageDirectory; + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/pbuf_8h.xml b/doc/xml/pbuf_8h.xml new file mode 100644 index 0000000..5436802 --- /dev/null +++ b/doc/xml/pbuf_8h.xml @@ -0,0 +1,768 @@ + + + + pbuf.h + net/debug.h + net/arch.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/include/net/ipv4/icmp.h + src/sys/include/net/ipv4/inet.h + src/sys/include/net/ipv4/ip.h + src/sys/include/net/ipv6/inet.h + src/sys/include/net/netif.h + src/sys/include/net/tcp.h + src/sys/include/net/tcpip.h + src/sys/include/net/udp.h + src/sys/include/netif/arp.h + src/sys/include/netif/tcpdump.h + src/sys/net/api/tcpip.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pbuf + + + PBUF_FLAG_POOL + 0x02 + + + + + + + + + + PBUF_FLAG_RAM + 0x00 + + + + + + + + + + PBUF_FLAG_ROM + 0x01 + + + + + + + + + + PBUF_IP_HLEN + 20 + + + + + + + + + + PBUF_TRANSPORT_HLEN + 20 + + + + + + + + + + + + pbuf_flag + + PBUF_RAM + + + + + + + PBUF_ROM + + + + + + + PBUF_POOL + + + + + + + + + + + + + + + pbuf_layer + + PBUF_TRANSPORT + + + + + + + PBUF_IP + + + + + + + PBUF_LINK + + + + + + + PBUF_RAW + + + + + + + + + + + + + + + + + pbuf * + struct pbuf* pbuf_alloc + (pbuf_layer l, uInt16 size, pbuf_flag flag) + pbuf_alloc + + pbuf_layer + l + + + uInt16 + size + + + pbuf_flag + flag + + + + + + + + + arp_query + ethernetif_output + loopif_output + low_level_input + netbuf_alloc + netbuf_ref + + + void + void pbuf_chain + (struct pbuf *h, struct pbuf *t) + pbuf_chain + + struct pbuf * + h + + + struct pbuf * + t + + + + + + + + + ethernetif_output + netbuf_chain + + + uInt8 + uInt8 pbuf_clen + (struct pbuf *p) + pbuf_clen + + struct pbuf * + p + + + + + + + + + + + pbuf * + struct pbuf* pbuf_dechain + (struct pbuf *p) + pbuf_dechain + + struct pbuf * + p + + + + + + + + + + + uInt8 + uInt8 pbuf_free + (struct pbuf *p) + pbuf_free + + struct pbuf * + p + + + + + + + + + arp_arp_input + ethernetif_input + ethernetif_output + netbuf_alloc + netbuf_delete + netbuf_free + netbuf_ref + netconn_delete + recv_tcp + recv_udp + tcpip_input + + + uInt8 + uInt8 pbuf_header + (struct pbuf *p, Int16 header_size) + pbuf_header + + struct pbuf * + p + + + Int16 + header_size + + + + + + + + + ethernetif_input + ethernetif_output + + + void + void pbuf_init + (void) + pbuf_init + + void + + + + + + + + + net_init + + + void + void pbuf_realloc + (struct pbuf *p, uInt16 size) + pbuf_realloc + + struct pbuf * + p + + + uInt16 + size + + + + + + + + + + + void + void pbuf_ref + (struct pbuf *p) + pbuf_ref + + struct pbuf * + p + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +/*-----------------------------------------------------------------------------------*/ +#ifndef__LWIP_PBUF_H__ +#define__LWIP_PBUF_H__ + +#include"net/debug.h" +#include"net/arch.h" + + +#definePBUF_TRANSPORT_HLEN20 +#definePBUF_IP_HLEN20 + +typedefenum{ +PBUF_TRANSPORT, +PBUF_IP, +PBUF_LINK, +PBUF_RAW +}pbuf_layer; + +typedefenum{ +PBUF_RAM, +PBUF_ROM, +PBUF_POOL +}pbuf_flag; + +/*Definitionsforthepbufflagfield(thesearenottheflagsthat +arepassedtopbuf_alloc()).*/ +#definePBUF_FLAG_RAM0x00/*FlagsthatpbufdataisstoredinRAM.*/ +#definePBUF_FLAG_ROM0x01/*FlagsthatpbufdataisstoredinROM.*/ +#definePBUF_FLAG_POOL0x02/*Flagsthatthepbufcomesfromthe +pbufpool.*/ + +structpbuf{ +structpbuf*next; + +/*high4bits,flags,low4bitsreferencecount*/ +uInt8flags,ref; +void*payload; + +/*Totallengthofbuffer+additionallychainedbuffers.*/ +uInt16tot_len; +/*Lengthofthisbuffer.*/ +uInt16len; + +}; + +/*pbuf_init(): + +Initializesthepbufmodule.Thenumparameterdetermineshowmany +pbufsthatshouldbeallocatedtothepbufpool,andthesize +parameterspecifiesthesizeofthedataallocatedtothose.*/ +voidpbuf_init(void); + +/*pbuf_alloc(): + +Allocatesapbufatprotocollayerl.Theactualmemoryallocated +forthepbufisdeterminedbythelayeratwhichthepbufis +allocatedandtherequestedsize(fromthesizeparameter).The +flagparameterdecideshowandwherethepbufshouldbeallocated +asfollows: + +*PBUF_RAM:buffermemoryforpbufisallocatedasonelarge +chunk.Thisincludesprotocolheadersaswell. + +*RBUF_ROM:nobuffermemoryisallocatedforthepbuf,evenfor +protocolheaders.Additionalheadersmustbe +prependedbyallocatinganotherpbufandchaininto +thefrontoftheROMpbuf. + +*PBUF_ROOL:thepbufisallocatedasapbufchain,withpbufsfrom +thepbufpoolthatisallocatedduringpbuf_init().*/ +structpbuf*pbuf_alloc(pbuf_layerl,uInt16size,pbuf_flagflag); + +/*pbuf_realloc(): + +Shrinksthepbuftothesizegivenbythesizeparameter. +*/ +voidpbuf_realloc(structpbuf*p,uInt16size); + +/*pbuf_header(): + +Triestomovethep->payloadpointerheader_sizenumberofbytes +upwardwithinthepbuf.Thereturnvalueisnon-zeroifit +fails.Ifso,anadditionalpbufshouldbeallocatedfortheheader +anditshouldbechainedtothefront.*/ +uInt8pbuf_header(structpbuf*p,Int16header_size); + +/*pbuf_ref(): + +Incrementsthereferencecountofthepbufp. +*/ +voidpbuf_ref(structpbuf*p); + +/*pbuf_free(): + +Decrementsthereferencecountanddeallocatesthepbufifthe +referencecountiszero.Ifthepbufisachainallpbufsinthe +chainaredeallocated.*/ +uInt8pbuf_free(structpbuf*p); + +/*pbuf_clen(): + +Returnsthelengthofthepbufchain.*/ +uInt8pbuf_clen(structpbuf*p); + +/*pbuf_chain(): + +Chainspbuftontheendofpbufh.Pbufhwillhaveit'stot_len +fieldadjustedaccordingly.Pbuftshouldnobeusedanymoreafter +acalltothisfunction,sincepbuftisnowapartofpbufh.*/ +voidpbuf_chain(structpbuf*h,structpbuf*t); + +/*pbuf_dechain(): + +Picksoffthefirstpbuffromthepbufchainp.Returnsthetailof +thepbufchainorNULLifthepbufpwasnotchained.*/ +structpbuf*pbuf_dechain(structpbuf*p); + +#endif/*__LWIP_PBUF_H__*/ + + + + diff --git a/doc/xml/pci_8c.xml b/doc/xml/pci_8c.xml new file mode 100644 index 0000000..855119b --- /dev/null +++ b/doc/xml/pci_8c.xml @@ -0,0 +1,636 @@ + + + + pci.c + pci/pci.h + sys/io.h + ubixos/types.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int pci_init + () + pci_init + + + + + + + + pciConfig::baseClass + confadd::bus + countof + dev + confadd::func + pciConfig::interface + pciConfig::irq + kprintf + name + pciClasses + pciProbe + pciConfig::subClass + TRUE + + + bool + bool pciProbe + (int bus, int dev, int func, struct pciConfig *cfg) + pciProbe + + int + bus + + + int + dev + + + int + func + + + struct pciConfig * + cfg + + + + + + + + + pciConfig::base + pciConfig::baseClass + pciConfig::bist + pciConfig::bus + pciConfig::cacheLineSize + pciConfig::command + pciConfig::dev + pciConfig::deviceId + FALSE + pciConfig::func + pciConfig::headerType + pciConfig::interface + pciConfig::irq + kprintf + pciConfig::latencyTimer + pciRead + pciWrite + pciConfig::size + pciConfig::status + pciConfig::subClass + pciConfig::subsys + pciConfig::subsysVendor + TRUE + pciConfig::vendorId + x10 + pci_init + + + uInt32 + uInt32 pciRead + (int bus, int dev, int func, int reg, int bytes) + pciRead + + int + bus + + + int + dev + + + int + func + + + int + reg + + + int + bytes + + + + + + + + + inportByte + inportDWord + inportWord + outportDWord + pciProbe + + + void + void pciWrite + (int bus, int dev, int func, int reg, uInt32 v, int bytes) + pciWrite + + int + bus + + + int + dev + + + int + func + + + int + reg + + + uInt32 + v + + + int + bytes + + + + + + + + + outportByte + outportDWord + outportWord + pciProbe + + + + + uInt8 + uInt8 baseClass + + baseClass + + + + + + + + + + uInt8 + uInt8 interface + + interface + + + + + + + + + + const char * + const char* name + + name + + + + + + + + def_ctls + initHardDisk + lookup + lwip_bind + lwip_connect + main + pci_init + UbixFS::vfs_mkdir + + + @13 + struct @13 pciClasses[] + [] + pciClasses + + + + + + + + pci_init + + + uInt8 + uInt8 subClass + + subClass + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<pci/pci.h> +#include<sys/io.h> +#include<ubixos/types.h> +#include<lib/kprintf.h> + +conststruct{ +uInt8baseClass; +uInt8subClass; +uInt8interface; +constchar*name; +}pciClasses[]={ +{0x00,0x00,0x00,"Undefined"}, +{0x00,0x01,0x00,"VGA"}, + +{0x01,0x00,0x00,"SCSI"}, +{0x01,0x01,0x00,"IDE"}, +{0x01,0x01,0x8A,"IDE"}, +{0x01,0x02,0x00,"Floppy"}, +{0x01,0x03,0x00,"IPI"}, +{0x01,0x04,0x00,"RAID"}, +{0x01,0x80,0x00,"Other"}, + +{0x02,0x00,0x00,"Ethernet"}, +{0x02,0x01,0x00,"TokenRing"}, +{0x02,0x02,0x00,"FDDI"}, +{0x02,0x03,0x00,"ATM"}, +{0x02,0x04,0x00,"ISDN"}, +{0x02,0x80,0x00,"Other"}, + +{0x03,0x00,0x00,"VGA"}, +{0x03,0x00,0x01,"VGA+8514"}, +{0x03,0x01,0x00,"XGA"}, +{0x03,0x02,0x00,"3D"}, +{0x03,0x80,0x00,"VGAOther"}, + +{0x04,0x00,0x00,"Video"}, +{0x04,0x01,0x00,"Audio"}, +{0x04,0x02,0x00,"Telephony"}, +{0x04,0x80,0x00,"Other"}, + +{0x05,0x00,0x00,"RAM"}, +{0x05,0x01,0x00,"Flash"}, +{0x05,0x80,0x00,"Other"}, + +{0x06,0x00,0x00,"PCItoHOST"}, +{0x06,0x01,0x00,"PCItoISA"}, +{0x06,0x02,0x00,"PCItoEISA"}, +{0x06,0x03,0x00,"PCItoMCA"}, +{0x06,0x04,0x00,"PCItoPCI"}, +{0x06,0x04,0x01,"PCItoPCI(SubtractiveDecode)"}, +{0x06,0x05,0x00,"PCItoPCMCIA"}, +{0x06,0x06,0x00,"PCItoNuBUS"}, +{0x06,0x07,0x00,"PCItoCardbus"}, +{0x06,0x08,0x00,"PCItoRACEway"}, +{0x06,0x09,0x00,"PCItoPCI"}, +{0x06,0x0A,0x00,"PCItoInfiBand"}, +{0x06,0x80,0x00,"PCItoOther"}, + +{0x07,0x00,0x00,"Serial"}, +{0x07,0x00,0x01,"Serial-16450"}, +{0x07,0x00,0x02,"Serial-16550"}, +{0x07,0x00,0x03,"Serial-16650"}, +{0x07,0x00,0x04,"Serial-16750"}, +{0x07,0x00,0x05,"Serial-16850"}, +{0x07,0x00,0x06,"Serial-16950"}, +{0x07,0x01,0x00,"Parallel"}, +{0x07,0x01,0x01,"Parallel-BiDir"}, +{0x07,0x01,0x02,"Parallel-ECP"}, +{0x07,0x01,0x03,"Parallel-IEEE1284"}, +{0x07,0x01,0xFE,"Parallel-IEEE1284Target"}, +{0x07,0x02,0x00,"MultiportSerial"}, +{0x07,0x03,0x00,"HayesCompatibleModem"}, +{0x07,0x03,0x01,"HayesCompatibleModem,16450"}, +{0x07,0x03,0x02,"HayesCompatibleModem,16550"}, +{0x07,0x03,0x03,"HayesCompatibleModem,16650"}, +{0x07,0x03,0x04,"HayesCompatibleModem,16750"}, +{0x07,0x80,0x00,"Other"}, + +{0x08,0x00,0x00,"PIC"}, +{0x08,0x00,0x01,"ISAPIC"}, +{0x08,0x00,0x02,"EISAPIC"}, +{0x08,0x00,0x10,"I/OAPIC"}, +{0x08,0x00,0x20,"I/O(x)APIC"}, +{0x08,0x01,0x00,"DMA"}, +{0x08,0x01,0x01,"ISADMA"}, +{0x08,0x01,0x02,"EISADMA"}, +{0x08,0x02,0x00,"Timer"}, +{0x08,0x02,0x01,"ISATimer"}, +{0x08,0x02,0x02,"EISATimer"}, +{0x08,0x03,0x00,"RTC"}, +{0x08,0x03,0x00,"ISARTC"}, +{0x08,0x03,0x00,"Hot-Plug"}, +{0x08,0x80,0x00,"Other"}, + +{0x09,0x00,0x00,"Keyboard"}, +{0x09,0x01,0x00,"Pen"}, +{0x09,0x02,0x00,"Mouse"}, +{0x09,0x03,0x00,"Scanner"}, +{0x09,0x04,0x00,"GamePort"}, +{0x09,0x80,0x00,"Other"}, + +{0x0a,0x00,0x00,"Generic"}, +{0x0a,0x80,0x00,"Other"}, + +{0x0b,0x00,0x00,"386"}, +{0x0b,0x01,0x00,"486"}, +{0x0b,0x02,0x00,"Pentium"}, +{0x0b,0x03,0x00,"PentiumPro"}, +{0x0b,0x10,0x00,"DECAlpha"}, +{0x0b,0x20,0x00,"PowerPC"}, +{0x0b,0x30,0x00,"MIPS"}, +{0x0b,0x40,0x00,"Coprocessor"}, +{0x0b,0x80,0x00,"Other"}, + +{0x0c,0x00,0x00,"FireWire"}, +{0x0c,0x00,0x10,"OHCIFireWire"}, +{0x0c,0x01,0x00,"Access.bus"}, +{0x0c,0x02,0x00,"SSA"}, +{0x0c,0x03,0x00,"USB(UHCI)"}, +{0x0c,0x03,0x10,"USB(OHCI)"}, +{0x0c,0x03,0x80,"USB"}, +{0x0c,0x03,0xFE,"USBDevice"}, +{0x0c,0x04,0x00,"Fiber"}, +{0x0c,0x05,0x00,"SMBusController"}, +{0x0c,0x06,0x00,"InfiniBand"}, +{0x0c,0x80,0x00,"Other"}, + +{0x0d,0x00,0x00,"iRDA"}, +{0x0d,0x01,0x00,"ConsumerIR"}, +{0x0d,0x10,0x00,"RF"}, +{0x0d,0x80,0x00,"Other"}, + +{0x0e,0x00,0x00,"I2O"}, +{0x0e,0x80,0x00,"Other"}, + +{0x0f,0x01,0x00,"TV"}, +{0x0f,0x02,0x00,"Audio"}, +{0x0f,0x03,0x00,"Voice"}, +{0x0f,0x04,0x00,"Data"}, +{0x0f,0x80,0x00,"Other"}, + +{0x10,0x00,0x00,"Network"}, +{0x10,0x10,0x00,"Entertainment"}, +{0x10,0x80,0x00,"Other"}, + +{0x11,0x00,0x00,"DPIOModules"}, +{0x11,0x01,0x00,"PerformanceCounters"}, +{0x11,0x10,0x00,"CommSync,Time+FrequencyMeasurement"}, +{0x11,0x80,0x00,"Other"}, + +}; + +uInt32pciRead(intbus,intdev,intfunc,intreg,intbytes){ +uInt16base; + +union{ +structconfaddc; +uInt32n; +}u; + +u.n=0; +u.c.enable=1; +u.c.rsvd=0; +u.c.bus=bus; +u.c.dev=dev; +u.c.func=func; +u.c.reg=reg&0xFC; + +outportDWord(0xCF8,u.n); + +base=0xCFC+(reg&0x03); + +switch(bytes){ +case1:return(inportByte(base)); +case2:return(inportWord(base)); +case4:return(inportDWord(base)); +default:return0; +} +} + +voidpciWrite(intbus,intdev,intfunc,intreg,uInt32v,intbytes){ +uInt16base; + +union{ +structconfaddc; +uInt32n; +}u; + +u.n=0; +u.c.enable=1; +u.c.rsvd=0; +u.c.bus=bus; +u.c.dev=dev; +u.c.func=func; +u.c.reg=reg&0xFC; + +base=0xCFC+(reg&0x03); +outportDWord(0xCF8,u.n); +switch(bytes){ +case1:outportByte(base,(uInt8)v);break; +case2:outportWord(base,(uInt16)v);break; +case4:outportDWord(base,v);break; +} +} + + +boolpciProbe(intbus,intdev,intfunc,structpciConfig*cfg){ +uInt32*word=(uInt32*)cfg; +uInt32v; +inti; +for(i=0;i<4;i++){ +word[i]=pciRead(bus,dev,func,4*i,4); +} +if(cfg->vendorId==0xffff)returnFALSE; +if(cfg->vendorId==0x0)returnFALSE;/*QuickHack*/ + +cfg->bus=bus; +cfg->dev=dev; +cfg->func=func; +cfg->subsysVendor=pciRead(bus,dev,func,0x2c,2); +cfg->subsys=pciRead(bus,dev,func,0x2e,2); +kprintf("DeviceInfo:/bus/pci/%d/%d/%d\n",bus,dev,func); +kprintf("*Vendor:%XDevice:%XClass/SubClass/Interface%X/%X/%X\n",cfg->vendorId,cfg->deviceId,cfg->baseClass,cfg->subClass,cfg->interface); +kprintf("*Status:%XCommand:%XBIST/Type/Lat/CLS:%X/%X/%X/%X\n",cfg->status,cfg->command,cfg->bist,cfg->headerType,cfg->latencyTimer,cfg->cacheLineSize); +switch(cfg->headerType&0x7F){ +case0:/*normaldevice*/ +for(i=0;i<6;i++){ +v=pciRead(bus,dev,func,i*4+0x10,4); +if(v){ +intv2; +pciWrite(bus,dev,func,i*4+0x10,0xffffffff,4); +v2=pciRead(bus,dev,func,i*4+0x10,4)&0xfffffff0; +pciWrite(bus,dev,func,i*4+0x10,v,4); +v2=1+~v2; +if(v&1){ +cfg->base[i]=v&0xffff; +cfg->size[i]=v2&0xffff; +} +else{ +cfg->base[i]=v; +cfg->size[i]=v2; +} +} +else{ +cfg->base[i]=0; +cfg->size[i]=0; +} +} +v=pciRead(bus,dev,func,0x3c,1); +cfg->irq=(v==0xff?0:v); +break; +case1: +kprintf("*PCI<->PCIBridge\n"); +break; +default: +kprintf("*UnknownHeaderType\n"); +break; +} + +return(TRUE); +} + +intpci_init(){ +uInt16bus,dev,func; +inti=0x0; +structpciConfigpcfg; +for(bus=0x0;bus<0x2;bus++){/*255*/ +for(dev=0;dev<32;dev++){ +for(func=0;func<8;func++){ +if(pciProbe(bus,dev,func,&pcfg)==TRUE){ +/*kprintf("*Vendor:%XDevice:%XClass/SubClass/Interface%X/%X/%X\n",pcfg.vendorId,pcfg.deviceId,pcfg.baseClass,pcfg.subClass,pcfg.interface);*/ +for(i=0x0;i<countof(pciClasses);i++){ +if(pcfg.baseClass==pciClasses[i].baseClass&&pcfg.subClass==pciClasses[i].subClass&&pcfg.interface==pciClasses[i].interface){ +kprintf("PCIDevice:%s@IRQ:0x%X\n",pciClasses[i].name,pcfg.irq); +break; +} +} +} +} +} +} +return(0x0); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:36reddawg +nomessage + +Revision1.42004/08/2017:49:13reddawg +Tinyfixens + +Revision1.32004/08/2016:49:11reddawg +PCIUpdates-MoretofollowasPCIsystemgetsrevamped + +Revision1.22004/07/0911:58:19reddawg +UpdatingDriverRoutines + +Revision1.1.1.12004/04/1512:07:16reddawg +UbixOSv1.0 + +Revision1.52004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/pci_8h.xml b/doc/xml/pci_8h.xml new file mode 100644 index 0000000..ae83057 --- /dev/null +++ b/doc/xml/pci_8h.xml @@ -0,0 +1,344 @@ + + + + pci.h + ubixos/types.h + src/sys/include/ubixos/init.h + src/sys/pci/pci.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + confadd + pciConfig + + + countof + a + (sizeof(a) / sizeof(a[0])) + + + + + + + + pci_init + + + + + int + int pci_init + () + pci_init + + + + + + + + pciConfig::baseClass + confadd::bus + countof + dev + confadd::func + pciConfig::interface + pciConfig::irq + kprintf + name + pciClasses + pciProbe + pciConfig::subClass + TRUE + + + bool + bool pciProbe + (int bus, int dev, int func, struct pciConfig *cfg) + pciProbe + + int + bus + + + int + dev + + + int + func + + + struct pciConfig * + cfg + + + + + + + + + pciConfig::base + pciConfig::baseClass + pciConfig::bist + pciConfig::bus + pciConfig::cacheLineSize + pciConfig::command + pciConfig::dev + pciConfig::deviceId + FALSE + pciConfig::func + pciConfig::headerType + pciConfig::interface + pciConfig::irq + kprintf + pciConfig::latencyTimer + pciRead + pciWrite + pciConfig::size + pciConfig::status + pciConfig::subClass + pciConfig::subsys + pciConfig::subsysVendor + TRUE + pciConfig::vendorId + x10 + pci_init + + + uInt32 + uInt32 pciRead + (int bus, int dev, int func, int reg, int bytes) + pciRead + + int + bus + + + int + dev + + + int + func + + + int + reg + + + int + bytes + + + + + + + + + inportByte + inportDWord + inportWord + outportDWord + pciProbe + + + void + void pciWrite + (int bus, int dev, int func, int reg, uInt32 v, int bytes) + pciWrite + + int + bus + + + int + dev + + + int + func + + + int + reg + + + uInt32 + v + + + int + bytes + + + + + + + + + outportByte + outportDWord + outportWord + pciProbe + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_PCI_H +#define_PCI_H + +#include<ubixos/types.h> + + +structpciConfig{ +uInt16vendorId; +uInt16deviceId; + +uInt16command; +uInt16status; + +uInt8revisionId; +uInt8interface; +uInt8subClass; +uInt8baseClass; + +uInt8cacheLineSize; +uInt8latencyTimer; +uInt8headerType; +uInt8bist; + +/*deviceinfo*/ +uInt8bus; +uInt8dev; +uInt8func; +uInt8irq; + +/*baseregisters*/ +uInt32base[6]; +uInt32size[6]; + +uInt16subsysVendor; +uInt16subsys; + +}; + +structconfadd{ +uInt8reg:8; +uInt8func:3; +uInt8dev:5; +uInt8bus:8; +uInt8rsvd:7; +uInt8enable:1; +}; + +#definecountof(a)(sizeof(a)/sizeof(a[0])) + +intpci_init(); + + +boolpciProbe(intbus,intdev,intfunc,structpciConfig*cfg); +uInt32pciRead(intbus,intdev,intfunc,intreg,intbytes); +voidpciWrite(intbus,intdev,intfunc,intreg,uInt32v,intbytes); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:51reddawg +nomessage + +Revision1.32004/08/2016:49:11reddawg +PCIUpdates-MoretofollowasPCIsystemgetsrevamped + +Revision1.22004/05/2115:05:07reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/perf_8h.xml b/doc/xml/perf_8h.xml new file mode 100644 index 0000000..efff08f --- /dev/null +++ b/doc/xml/perf_8h.xml @@ -0,0 +1,206 @@ + + + + perf.h + ubixos/times.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PERF_START + + + + + + + + + + PERF_STOP + x + + + + + + + + + + + + void + void perf_init + (char *fname) + perf_init + + char * + fname + + + + + + + + + + + void + void perf_print + (unsigned long c1l, unsigned long c1h, unsigned long c2l, unsigned long c2h, char *key) + perf_print + + unsigned long + c1l + + + unsigned long + c1h + + + unsigned long + c2l + + + unsigned long + c2h + + + char * + key + + + + + + + + + + + void + void perf_print_times + (struct tms *start, struct tms *end, char *key) + perf_print_times + + struct tms * + start + + + struct tms * + end + + + char * + key + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_PERF_H__ +#define__ARCH_PERF_H__ + +#include<ubixos/times.h> + +#ifdefPERF +#definePERF_START{\ +unsignedlong__c1l,__c1h,__c2l,__c2h;\ +__asm__(".byte0x0f,0x31":"=a"(__c1l),"=d"(__c1h)) +#definePERF_STOP(x)__asm__(".byte0x0f,0x31":"=a"(__c2l),"=d"(__c2h));\ +perf_print(__c1l,__c1h,__c2l,__c2h,x);} + +/*#definePERF_STARTdo{\ +structtms__perf_start,__perf_end;\ +times(&__perf_start) +#definePERF_STOP(x)times(&__perf_end);\ +perf_print_times(&__perf_start,&__perf_end,x);\ +}while(0)*/ +#else/*PERF*/ +#definePERF_START/*nulldefinition*/ +#definePERF_STOP(x)/*nulldefinition*/ +#endif/*PERF*/ + +voidperf_print(unsignedlongc1l,unsignedlongc1h, +unsignedlongc2l,unsignedlongc2h, +char*key); + +voidperf_print_times(structtms*start,structtms*end,char*key); + +voidperf_init(char*fname); + +#endif/*__ARCH_PERF_H__*/ + + + + diff --git a/doc/xml/pipe_8c.xml b/doc/xml/pipe_8c.xml new file mode 100644 index 0000000..487b4a6 --- /dev/null +++ b/doc/xml/pipe_8c.xml @@ -0,0 +1,175 @@ + + + + pipe.c + ubixos/types.h + sys/sysproto.h + sys/thread.h + sys/pipe.h + sys/kern_descrip.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int pipe + (struct thread *td, struct pipe_args *uap) + pipe + + struct thread * + td + + + struct pipe_args * + uap + + + + +HACK + + + + file::f_flag + falloc + FREAD + FWRITE + thread::td_retval + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<sys/sysproto.h> +#include<sys/thread.h> +#include<sys/pipe.h> +#include<sys/kern_descrip.h> +#include<lib/kprintf.h> +#include<assert.h> + +intpipe(structthread*td,structpipe_args*uap){ +structfile*rf,*wf; +intfd=0x0; +falloc(td,&rf,&fd); +rf->f_flag=FREAD|FWRITE; +td->td_retval[0]=fd; +falloc(td,&wf,&fd); +wf->f_flag=FREAD|FWRITE; +td->td_retval[1]=fd; +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/pipe_8h.xml b/doc/xml/pipe_8h.xml new file mode 100644 index 0000000..8f2c98b --- /dev/null +++ b/doc/xml/pipe_8h.xml @@ -0,0 +1,132 @@ + + + + pipe.h + sys/thread.h + sys/sysproto.h + src/sys/kernel/pipe.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int pipe + (struct thread *, struct pipe_args *) + pipe + + struct thread * + td + + + struct pipe_args * + uap + + + + +HACK + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_PIPE_H +#define_PIPE_H + +#include<sys/thread.h> +#include<sys/sysproto.h> + +intpipe(structthread*,structpipe_args*); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/pit_8c.xml b/doc/xml/pit_8c.xml new file mode 100644 index 0000000..5935ffd --- /dev/null +++ b/doc/xml/pit_8c.xml @@ -0,0 +1,179 @@ + + + + pit.c + isa/pit.h + sys/io.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int pit_init + () + pit_init + + + + + + + + kprintf + outportByte + outportByteP + PIT_TIMER + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<isa/pit.h> +#include<sys/io.h> +#include<lib/kprintf.h> + +/***************************************************************************************** + +Function:intpitInit() + +Description:ThisFunctionWillInitializeTheProgrammableTimer + +Notes: + +0040r/wPITcounter0,counterdivisor(XT,AT,PS/2) +0041r/wPITcounter1,RAMrefreshcounter(XT,AT) +0042r/wPITcounter2,cassette&speaker(XT,AT,PS/2) +0043r/wPITmodeport,controlwordregisterforcounters0-2 + +bit7-6=00counter0select +=01counter1select(notPS/2) +=10counter2select +bit5-4=00counterlatchcommand +=01read/writecounterbits0-7only +=10read/writecounterbits8-15only +=11read/writecounterbits0-7first,then8-15 +bit3-1=000mode0select +=001mode1select-programmableoneshot +=x10mode2select-rategenerator +=x11mode3select-squarewavegenerator +=100mode4select-softwaretriggeredstrobe +=101mode5select-hardwaretriggeredstrobe +bit0=0binarycounter16bits +=1BCDcounter + +*****************************************************************************************/ +intpit_init(){ +outportByteP(0x43,0x36); +outportByteP(0x40,((1193180/PIT_TIMER)&0xFF)); +outportByte(0x40,(((1193180/PIT_TIMER)>>8)&0xFF)); + +/*PrintoutinformationonthePIT*/ +kprintf("pit0-Port[0x%X],TimerHz:[%iHz]\n",0x43,PIT_TIMER); + +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:03reddawg +nomessage + +Revision1.72004/07/1604:06:32reddawg +Tuneupsthisstuffshouldofbeentakencareofmonthsago + +Revision1.62004/07/1601:08:58reddawg +Whewweworkonceagain + +Revision1.52004/07/0913:29:15reddawg +pit:pitInittopit_init +Adjustedinitializationroutines + +Revision1.42004/05/2112:48:22reddawg +Cleanedup + +Revision1.32004/05/2022:51:09reddawg +CleanedUpWarnings + +Revision1.22004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + +END +***/ + + + + + diff --git a/doc/xml/pit_8h.xml b/doc/xml/pit_8h.xml new file mode 100644 index 0000000..a5b4189 --- /dev/null +++ b/doc/xml/pit_8h.xml @@ -0,0 +1,140 @@ + + + + pit.h + src/sys/include/ubixos/init.h + src/sys/isa/pit.c + + + + + + + + + + + + + + + + + + + + + + + + + + + PIT_TIMER + 200 + + + + + + + + pit_init + + + + + int + int pit_init + () + pit_init + + + + + + + + kprintf + outportByte + outportByteP + PIT_TIMER + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_PIT_H +#define_PIT_H + +#definePIT_TIMER200 + +intpit_init(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:40reddawg +nomessage + +Revision1.62004/08/1411:23:02reddawg +Changes + +Revision1.52004/07/1604:06:32reddawg +Tuneupsthisstuffshouldofbeentakencareofmonthsago + +Revision1.42004/07/1601:08:58reddawg +Whewweworkonceagain + +Revision1.32004/07/0913:29:15reddawg +pit:pitInittopit_init +Adjustedinitializationroutines + +Revision1.22004/05/2114:57:16reddawg +Cleanedup + +END +***/ + + + + + diff --git a/doc/xml/ramdrive_8cpp.xml b/doc/xml/ramdrive_8cpp.xml new file mode 100644 index 0000000..5910544 --- /dev/null +++ b/doc/xml/ramdrive_8cpp.xml @@ -0,0 +1,407 @@ + + + + ramdrive.cpp + stdlib.h + stdio.h + string.h + assert.h + device.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RAM_DRIVE_SIZE + 1024*1024*100 + + + + + + + + dev_ramDestroy + dev_ramDrive + + + + + int + int dev_ramDestroy + (void) + dev_ramDestroy + + void + + + + + + + + + fclose + fopen + fwrite + ram_data + RAM_DRIVE_SIZE + main + + + device_t * + device_t* dev_ramDrive + (void) + dev_ramDrive + + void + + + + + + + + + fclose + fopen + fread + device_t::major + ram_data + RAM_DRIVE_SIZE + ramDrive_read + ramDrive_write + device_t::read + device_t::sectors + device_t::write + main + + + int + static int ramDrive_read + (device_t *dev, void *ptr, off_t offset, size_t length) + ramDrive_read + + device_t * + dev + + + void * + ptr + + + off_t + offset + + + size_t + length + + + + + + + + + assert + memcpy + ram_data + dev_ramDrive + + + int + static int ramDrive_write + (device_t *dev, void *ptr, off_t offset, size_t length) + ramDrive_write + + device_t * + dev + + + void * + ptr + + + off_t + offset + + + size_t + length + + + + + + + + + assert + memcpy + ram_data + dev_ramDrive + + + + + char * + char* ram_data + + ram_data + 0x0 + + + + + + + + dev_ramDestroy + dev_ramDrive + ramDrive_read + ramDrive_write + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<stdlib.h> +#include<stdio.h> +#include<string.h> +#include<assert.h> +#include"device.h" + + +staticchar*ram_data=0x0; + +#defineRAM_DRIVE_SIZE1024*1024*100 + +static +int +ramDrive_read(device_t*dev,void*ptr,off_toffset,size_tlength){ +char*data=ram_data+(offset*512); +assert(ram_data); +assert(offset+length<=dev->sectors); +memcpy(ptr,data,length*512); + +return(length); +} + +static +int +ramDrive_write(device_t*dev,void*ptr,off_toffset,size_tlength){ +char*data=ram_data+(offset*512); +assert(ram_data); + +assert(offset+length<=dev->sectors); + +memcpy(data,ptr,length*512); + +return(length); +} + +device_t* +dev_ramDrive(void){ +device_t*ramDrive=0x0; + +FILE*ramDisk; + +ramDisk=fopen("./ram.dsk","rb"); + +ramDrive=(device_t*)malloc(sizeof(device_t)); + +ram_data=(char*)malloc(RAM_DRIVE_SIZE); + +if(ramDisk!=0x0){ +printf("LoadedRamDisk\n"); +fread(ram_data,RAM_DRIVE_SIZE,1,ramDisk); +fclose(ramDisk); +} + +ramDrive->major=0x1; +ramDrive->sectors=RAM_DRIVE_SIZE/512; + +ramDrive->read=ramDrive_read; +ramDrive->write=ramDrive_write; + +printf("leavingdev_ramDrive()\n"); +return(ramDrive); + +}//dev_ramDrive + +int +dev_ramDestroy(void){ +printf("dev_ramDestroy()\n"); +FILE*ramDisk; + +ramDisk=fopen("./ram.dsk","wb"); + +fwrite(ram_data,RAM_DRIVE_SIZE,1,ramDisk); + +fclose(ramDisk); + +printf("SavedRamDisk\n"); + +return(0x0); +}//dev_ramDestroy + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:45reddawg +nomessage + +Revision1.52004/09/2000:53:04flameshadow +chg:UbixFS::vfs_read()nowworksfordirectblockextents +chg:UbixFS::vfs_read()returns~0onerror,orthesizereadinonsuccess +chg:UbixFS::rootmemberisnowafileDescriptor +chg:UbixFS::vfs_init()createsafiledescriptorfortherootdir +chg:UbixFS::vfs_format()nowsetsallvaluesinthebTreeHeaderbeforewriting +chg:UbixFS::vfs_format()setstheinodemagicnumber +chg:device_t::read(device_t*,void*,off_t,size_t) +chg:device_t::write(device_t*,void*,off_t,size_t) +chg:vfs_abstract::vfs_read(fileDescriptor*,void*,off_t,size_t) +chg:vfs_abstract::vfs_write(fileDescriptor*,void*,off_t,size_t) +chg:ramDrive_read(device_t*dev,void*ptr,off_toffset,size_tlength) +chg:ramDrive_write(device_t*dev,void*ptr,off_toffset,size_tlength) + +Revision1.42004/09/1320:10:11flameshadow +chg:UbixFS::vfs_format()works +chg:UbixFS::vfs_init()works + +Revision1.32004/09/1315:48:29flameshadow +chg:oops,theramDriveis100MB,not512MB + +Revision1.22004/09/1315:21:26flameshadow +add:ramdrive.h +chg:renameddevice_t.sizetosectors +chg:made#defineforsizeoframdisk +chg:calculatedsectorsoframdiskandstoredinthedevice_tstruct + +Revision1.12004/09/1314:37:49flameshadow +add:ramdrive.cpp +chg:addedramdrivetothemakefile +chg:finishedrootdirinodeinitializationandsavinginUbixFS::format() + +Revision1.82004/08/3013:29:08reddawg +Fixedramdisktowrite/read512blocks + +Revision1.72004/08/1322:06:54reddawg +UbixFS:fixedthetestshell + +Revision1.62004/08/1321:47:49reddawg +Fixed + +Revision1.52004/08/1317:25:06reddawg +Testingbetter + +Revision1.42004/08/1317:07:32reddawg +Works + +Revision1.32004/08/1316:58:57reddawg +test + +Revision1.22004/08/1316:54:14reddawg +fixed + +Revision1.12004/08/1316:51:55reddawg +Startofubixfsshell + +END +***/ + + + + + diff --git a/doc/xml/ramdrive_8h.xml b/doc/xml/ramdrive_8h.xml new file mode 100644 index 0000000..72ac8a3 --- /dev/null +++ b/doc/xml/ramdrive_8h.xml @@ -0,0 +1,158 @@ + + + + ramdrive.h + device.h + src/sys/ubixfsv2/main.cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int dev_ramDestroy + () + dev_ramDestroy + + + + + + + + fclose + fopen + fwrite + ram_data + RAM_DRIVE_SIZE + main + + + device_t * + device_t* dev_ramDrive + () + dev_ramDrive + + + + + + + + fclose + fopen + fread + device_t::major + ram_data + RAM_DRIVE_SIZE + ramDrive_read + ramDrive_write + device_t::read + device_t::sectors + device_t::write + main + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef__RAMDRIVE_H_ +#define__RAMDRIVE_H_ + +#include<device.h> + +intdev_ramDestroy(); +device_t*dev_ramDrive(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:45reddawg +nomessage + +Revision1.12004/09/1315:21:26flameshadow +add:ramdrive.h +chg:renameddevice_t.sizetosectors +chg:made#defineforsizeoframdisk +chg:calculatedsectorsoframdiskandstoredinthedevice_tstruct + +Revision1.12004/08/1321:47:49reddawg +Fixed + +END +***/ + + + + + diff --git a/doc/xml/rs232_8c.xml b/doc/xml/rs232_8c.xml new file mode 100644 index 0000000..0634202 --- /dev/null +++ b/doc/xml/rs232_8c.xml @@ -0,0 +1,80 @@ + + + + rs232.c + + + void + void rs232Init + () + rs232Init + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +voidrs232Init(){ +return; +} + +/*** + +$Log$ +Revision1.1.1.12006/06/0112:46:12reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:03reddawg +nomessage + +Revision1.22004/05/1002:23:24reddawg +MinorChangesToSourceCodeToPrepareItForOpenSourceRelease + + +END +***/ + + + + + diff --git a/doc/xml/sched_8c.xml b/doc/xml/sched_8c.xml new file mode 100644 index 0000000..730bb64 --- /dev/null +++ b/doc/xml/sched_8c.xml @@ -0,0 +1,931 @@ + + + + sched.c + ubixos/sched.h + ubixos/kpanic.h + ubixos/spinlock.h + ubixos/endtask.h + vfs/mount.h + lib/kmalloc.h + lib/kprintf.h + vmm/vmm.h + sys/gdt.h + sys/idt.h + sys/kern_descrip.h + isa/8259.h + string.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void sched + () + sched + + + + + + + + _current + DEAD + FORK + taskStruct::id + taskStruct::next + READY + sched_addDelTask + sched_deleteTask + schedulerSpinLock + spinTryLock + taskStruct::state + sched_yield + + + int + int sched_addDelTask + (kTask_t *tmpTask) + sched_addDelTask + + kTask_t * + tmpTask + + + + + + + + + delList + taskStruct::next + taskStruct::prev + sched + + + int + int sched_deleteTask + (pidType id) + sched_deleteTask + + pidType + id + + + + + + + + + taskStruct::id + taskStruct::next + taskStruct::prev + taskList + sched + + + kTask_t * + kTask_t* sched_getDelTask + () + sched_getDelTask + + + + + + + + delList + taskStruct::next + systemTask + + + int + int sched_init + () + sched_init + + + + + + + + taskStruct::id + kmalloc + kpanic + kprintf + nextID + taskList + + + int + int sched_setStatus + (pidType pid, tState state) + sched_setStatus + + pidType + pid + + + tState + state + + + + + + + + + schedFindTask + taskStruct::state + x1 + endTask + execFile + execThread + + + void + void sched_yield + () + sched_yield + + + + + + + + sched + _int0 + _int1 + _int10 + _int11 + _int12 + _int2 + _int3 + _int4 + _int5 + _int6 + _int9 + endTask + fork_copyProcess + schedEndTask + spinLock + sysFgetc + sysSchedYield + systemTask + ubthread_cond_timedwait + ubthread_cond_wait + + + void + void schedEndTask + (pidType pid) + schedEndTask + + pidType + pid + + + + + + + + + _current + endTask + taskStruct::id + sched_yield + + + kTask_t * + kTask_t* schedFindTask + (uInt32 id) + schedFindTask + + uInt32 + id + + + + + + + + + taskStruct::id + taskStruct::next + taskList + sched_setStatus + sysCheckPid + systemTask + vmmMapFromTask + + + kTask_t * + kTask_t* schedNewTask + () + schedNewTask + + + + + + + + file::f_flag + taskStruct::id + kmalloc + kpanic + memset + NEW + taskStruct::next + nextID + thread::o_files + taskStruct::prev + schedulerSpinLock + spinLock + spinUnlock + taskStruct::state + taskList + taskStruct::td + taskStruct::usedMath + biosCall + execFile + execThread + + + + + kTask_t * + kTask_t* _current + + _current + 0x0 + + + + + + + + __sysctl + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int8 + _int9 + biosCall + endTask + execFile + fork_copyProcess + fstat + getgid + getpid + getuid + intNull + kmod_load + ldEnable + mathStateRestore + mmap + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + netMainThread + obreak + sched + schedEndTask + syscall + sysChDir + sysExec + sysExit + sysFgetc + sysFwrite + sysGetCwd + sysGetFreePage + sysGetGid + sysGetpid + sysGetUid + sysMkDir + sysPasswd + sysSetGid + sysSetUid + ubthread_mutex_lock + ubthread_mutex_unlock + ubthread_self + vmm_pageFault + vmm_remapPage + vmmGetFreeVirtualPage + vmmMapFromTask + + + kTask_t * + kTask_t* _usedMath + + _usedMath + 0x0 + + + + + + + + mathStateRestore + + + kTask_t * + kTask_t* delList + + delList + 0x0 + + + + + + + + sched_addDelTask + sched_getDelTask + + + uInt32 + uInt32 nextID + + nextID + -1 + + + + + + + + sched_init + schedNewTask + + + spinLock_t + spinLock_t schedulerSpinLock + + schedulerSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + sched + schedNewTask + + + kTask_t * + kTask_t* taskList + + taskList + 0x0 + + + + + + + + sched_deleteTask + sched_init + schedFindTask + schedNewTask + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/sched.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> +#include<ubixos/endtask.h> +#include<vfs/mount.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<vmm/vmm.h> +#include<sys/gdt.h> +#include<sys/idt.h> +#include<sys/kern_descrip.h> +#include<isa/8259.h> +#include<string.h> +#include<assert.h> + +#include<ubixos/spinlock.h> + +statickTask_t*taskList=0x0; +statickTask_t*delList=0x0; +staticuInt32nextID=-1; + +kTask_t*_current=0x0; +kTask_t*_usedMath=0x0; + +staticspinLock_tschedulerSpinLock=SPIN_LOCK_INITIALIZER; + +/************************************************************************ + +Function:intsched_init() + +Description:Thisfunctionisusedtoenablethekernelscheduler + +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ + + +intsched_init(){ +taskList=(kTask_t*)kmalloc(sizeof(kTask_t)); +if(taskList==0x0) +kpanic("Unabletocreatetasklist"); + +taskList->id=nextID++; + +/*Printoutinformationonscheduler*/ +kprintf("sched0-Address:[0x%X]\n",taskList); + +/*Returnsoweknoweverythingwentwell*/ +return(0x0); +} + + +voidsched(){ +uInt32memAddr=0x0; +kTask_t*tmpTask=0x0; +kTask_t*delTask=0x0; + +if(!spinTryLock(&schedulerSpinLock)) +return; + +tmpTask=_current->next; +//outportByte(0xE9,_current->id+'0'); +schedStart: + +/*Yieldthenexttaskfromthecurrentprioqueue*/ +for(;tmpTask!=0x0;tmpTask=tmpTask->next){ +if(tmpTask->state>0x0){ +_current=tmpTask; +if(_current->state==FORK) +_current->state=READY; +break; +} +elseif(tmpTask->state==DEAD) +{ +delTask=tmpTask; +tmpTask=tmpTask->next; +sched_deleteTask(delTask->id); +sched_addDelTask(delTask); +gotoschedStart; +} +} + +/*Finishedallthetasks,restartingthelist*/ +if(0x0==tmpTask){ +tmpTask=taskList; +gotoschedStart; +} + + +if(_current->state>0x0){ +if(_current->oInfo.v86Task==0x1) +irqDisable(0x0); +asm("cli"); +memAddr=(uInt32)&(_current->tss); +ubixGDT[4].descriptor.baseLow=(memAddr&0xFFFF); +ubixGDT[4].descriptor.baseMed=((memAddr>>16)&0xFF); +ubixGDT[4].descriptor.baseHigh=(memAddr>>24); +ubixGDT[4].descriptor.access='\x89'; +spinUnlock(&schedulerSpinLock); +asm("sti"); +asm("ljmp$0x20,$0\n"); +} +else +{ +spinUnlock(&schedulerSpinLock); +} + +return; +} + + +kTask_t*schedNewTask(){ +inti=0; +kTask_t*tmpTask=(kTask_t*)kmalloc(sizeof(kTask_t)); +structfile*fp=0x0; +if(tmpTask==0x0) +kpanic("Error:schedNewTask()-kmallocfailedtryingtoinitializeanewtaskstruct\n"); + +memset(tmpTask,0x0,sizeof(kTask_t)); +/*Fillingintasksattrs*/ +tmpTask->usedMath=0x0; +tmpTask->state=NEW; + +/*HACK*/ +for(i=0;i<3;i++){ +fp=kmalloc(sizeof(structfile)); +tmpTask->td.o_files[i]=fp; +fp->f_flag=0x4; +} + +spinLock(&schedulerSpinLock); +tmpTask->id=nextID++; +tmpTask->next=taskList; +tmpTask->prev=0x0; +taskList->prev=tmpTask; +taskList=tmpTask; + +spinUnlock(&schedulerSpinLock); + +return(tmpTask); +} + + +intsched_deleteTask(pidTypeid){ +kTask_t*tmpTask=0x0; + +/*Checkingeachtaskfromtheprioqueue*/ +for(tmpTask=taskList;tmpTask!=0x0;tmpTask=tmpTask->next){ +if(tmpTask->id==id){ +if(tmpTask->prev!=0x0) +tmpTask->prev->next=tmpTask->next; +if(tmpTask->next!=0x0) +tmpTask->next->prev=tmpTask->prev; +if(taskList==tmpTask) +taskList=tmpTask->next; + +return(0x0); +} +} +return(0x1); +} + +intsched_addDelTask(kTask_t*tmpTask){ +tmpTask->next=delList; +tmpTask->prev=0x0; +if(delList!=0x0) +delList->prev=tmpTask; +delList=tmpTask; +return(0x0); +} + +kTask_t*sched_getDelTask(){ +kTask_t*tmpTask=0x0; + +if(delList==0x0) +return(0x0); + +tmpTask=delList; +delList=delList->next; +return(tmpTask); +} + + +kTask_t* +schedFindTask(uInt32id) +{ +kTask_t*tmpTask=0x0; + +for(tmpTask=taskList;tmpTask;tmpTask=tmpTask->next){ +if(tmpTask->id==id) +return(tmpTask); +} + +return(0x0); +} + + +/************************************************************************ + +Function:voidschedEndTask() + +Description:Thisfunctionwillendatask + +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ +void +schedEndTask(pidTypepid){ +endTask(_current->id); +sched_yield(); +} + +/************************************************************************ + +Function:intschedEndTask() + +Description:Thisfunctionwillyieldatask + +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ + +void +sched_yield(){ +sched(); +} + +/* +asm( +".globlsched_yield\n" +"sched_yield:\n" +"cli\n" +"callsched\n" +); +*/ + +/************************************************************************ + +Function:intsched_setStatus(pidTypepid,tStatestate) + +Description:Changethetasksstatus + +Notes: + +************************************************************************/ +intsched_setStatus(pidTypepid,tStatestate){ +kTask_t*tmpTask=schedFindTask(pid); +if(tmpTask==0x0) +return(0x1); +tmpTask->state=state; +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/sched_8h.xml b/doc/xml/sched_8h.xml new file mode 100644 index 0000000..27aecf8 --- /dev/null +++ b/doc/xml/sched_8h.xml @@ -0,0 +1,1124 @@ + + + + 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/endtask.h + src/sys/include/ubixos/exec.h + src/sys/include/ubixos/fork.h + src/sys/include/ubixos/init.h + src/sys/include/ubixos/syscalls.h + src/sys/include/ubixos/ubthread.h + 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 + src/sys/kernel/sched.c + src/sys/kernel/spinlock.c + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + src/sys/kernel/systemtask.c + src/sys/kernel/ubthread.c + src/sys/kmods/kmod.c + src/sys/lib/kmalloc.c + src/sys/net/net/init.c + src/sys/net/net/sys_arch.c + src/sys/net/netif/ethernetif.c + src/sys/sys/idt.c + src/sys/ubixfs/ubixfs.c + src/sys/vfs/file.c + src/sys/vmm/getfreevirtualpage.c + src/sys/vmm/pagefault.c + src/sys/vmm/paging.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + osInfo + taskStruct + + + taskStruct + typedef struct taskStruct kTask_t + + kTask_t + + + + + + + + + + + + tState + + PLACEHOLDER + -2 + + + + + + + DEAD + -1 + + + + + + + NEW + 0 + + + + + + + READY + 1 + + + + + + + RUNNING + 2 + + + + + + + IDLE + 3 + + + + + + + FORK + 4 + + + + + + + WAIT + 5 + + + + + + + + + + + + + + + + + void + void sched + () + sched + + + + + + + + _current + DEAD + FORK + taskStruct::id + taskStruct::next + READY + sched_addDelTask + sched_deleteTask + schedulerSpinLock + spinTryLock + taskStruct::state + sched_yield + + + int + int sched_addDelTask + (kTask_t *) + sched_addDelTask + + kTask_t * + + + + + + + + + delList + taskStruct::next + taskStruct::prev + sched + + + int + int sched_deleteTask + (pidType) + sched_deleteTask + + pidType + + + + + + + + + taskStruct::id + taskStruct::next + taskStruct::prev + taskList + sched + + + kTask_t * + kTask_t* sched_getDelTask + () + sched_getDelTask + + + + + + + + delList + taskStruct::next + systemTask + + + int + int sched_init + () + sched_init + + + + + + + + taskStruct::id + kmalloc + kpanic + kprintf + nextID + taskList + + + int + int sched_setStatus + (pidType, tState) + sched_setStatus + + pidType + + + tState + + + + + + + + + schedFindTask + taskStruct::state + x1 + endTask + execFile + execThread + + + void + void sched_yield + () + sched_yield + + + + + + + + sched + _int0 + _int1 + _int10 + _int11 + _int12 + _int2 + _int3 + _int4 + _int5 + _int6 + _int9 + endTask + fork_copyProcess + schedEndTask + spinLock + sysFgetc + sysSchedYield + systemTask + ubthread_cond_timedwait + ubthread_cond_wait + + + void + void schedEndTask + (pidType pid) + schedEndTask + + pidType + pid + + + + + + + + + _current + endTask + taskStruct::id + sched_yield + + + kTask_t * + kTask_t* schedFindTask + (uInt32 id) + schedFindTask + + uInt32 + id + + + + + + + + + taskStruct::id + taskStruct::next + taskList + sched_setStatus + sysCheckPid + systemTask + vmmMapFromTask + + + kTask_t * + kTask_t* schedNewTask + () + schedNewTask + + + + + + + + file::f_flag + taskStruct::id + kmalloc + kpanic + memset + NEW + taskStruct::next + nextID + thread::o_files + taskStruct::prev + schedulerSpinLock + spinLock + spinUnlock + taskStruct::state + taskList + taskStruct::td + taskStruct::usedMath + biosCall + execFile + execThread + + + + + kTask_t * + kTask_t* _current + + _current + + + + + + + + __sysctl + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int8 + _int9 + biosCall + endTask + execFile + fork_copyProcess + fstat + getgid + getpid + getuid + intNull + kmod_load + ldEnable + mathStateRestore + mmap + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + netMainThread + obreak + sched + schedEndTask + syscall + sysChDir + sysExec + sysExit + sysFgetc + sysFwrite + sysGetCwd + sysGetFreePage + sysGetGid + sysGetpid + sysGetUid + sysMkDir + sysPasswd + sysSetGid + sysSetUid + ubthread_mutex_lock + ubthread_mutex_unlock + ubthread_self + vmm_pageFault + vmm_remapPage + vmmGetFreeVirtualPage + vmmMapFromTask + + + kTask_t * + kTask_t* _usedMath + + _usedMath + + + + + + + + mathStateRestore + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SCHED_H +#define_SCHED_H + +#include<ubixos/types.h> +#include<ubixos/elf.h> +#include<ubixos/tty.h> +#include<vfs/file.h> +#include<sys/tss.h> +#include<sys/thread.h> + + +typedefenum{PLACEHOLDER=-2,DEAD=-1,NEW=0,READY=1,RUNNING=2,IDLE=3,FORK=4,WAIT=5}tState; + +structosInfo{ +uInt8timer; +uInt8v86Task; +boolv86If; +uInt32vmStart; +uInt32stdinSize; +uInt32controlKeys; +char*stdin; +charcwd[1024];/*currentworkingdir*/ +}; + +typedefstructtaskStruct{ +pidTypeid; +structtaskStruct*prev; +structtaskStruct*next; +structtssStructtss; +structi387Structi387; +structosInfooInfo; +fileDescriptor*imageFd; +tStatestate; +uInt32gid; +uInt32uid; +uInt16usedMath; +tty_term*term; +structthreadtd; +}kTask_t; + + +intsched_init(); +intsched_setStatus(pidType,tState); +intsched_deleteTask(pidType); +intsched_addDelTask(kTask_t*); +kTask_t*sched_getDelTask(); +voidsched_yield(); +voidsched(); + +voidschedEndTask(pidTypepid); +kTask_t*schedNewTask(); +kTask_t*schedFindTask(uInt32id); + +externkTask_t*_current; +externkTask_t*_usedMath; + + +#endif + +/*** +$Log$ +Revision1.22006/10/2716:42:42reddawg +Testing + +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:55reddawg +nomessage + +Revision1.302004/09/1122:21:11reddawg +oInfo.cwdisnowanarraynolongerapointer.. + +Revision1.292004/09/0823:19:58reddawg +hmm + +Revision1.282004/09/0822:16:02reddawg +Fixens + +Revision1.272004/09/0821:19:32reddawg +Allgoodnow + +Revision1.262004/09/0721:54:38reddawg +okrevertedbacktooldschedulingfornow.... + +Revision1.202004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce + +Revision1.192004/08/0622:43:04reddawg +ok + +Revision1.182004/08/0622:32:16reddawg +UbixWorksAgain + +Revision1.162004/08/0408:17:57reddawg +tty:wehaveprimativettystryf1-f5soitiseasiertouseanddebug +ubixos + +Revision1.152004/07/2921:32:16reddawg +Myquicklunchsbreaksworthofupdates.... + +Revision1.142004/07/2117:15:02reddawg +removedgarbage + +Revision1.132004/07/2114:43:14flameshadow +add:addedcwc(currentworkingcontainer)totheosInfostrut + +Revision1.122004/07/1902:32:21reddawg +sched:wenowsettaskstatustodeadwhichthenmakestheschedulerdosomecleanitcouldbesomeminoroverheadbutifeelthisisourmostefficientapproachrightnowtopreventcorruptionofthequeues + +Revision1.112004/07/1902:08:27reddawg +Cleanedouttherestofdebugingcodealsotemporarilydisabledtheipstacktoimproveboottime + +Revision1.102004/07/1805:24:15reddawg +Fixens + +Revision1.92004/07/0913:23:20reddawg +sched:schedInittosched_init +Adjustedinitializationroutines + +Revision1.82004/06/2214:02:14solar +AddedthePLACEHOLDERstateforatask + +Revision1.72004/06/1813:01:47solar +AddedniceandtimeSlicememberstothekTask_ttype + +Revision1.62004/06/1702:12:57reddawg +CleanedOutDeadCode + +Revision1.52004/06/1614:04:51reddawg +Renamedatypedef + +Revision1.42004/06/1412:20:54reddawg +notes:manybugsrepairedandldworks100%now. + +Revision1.32004/05/2115:49:13reddawg +Theosdoesbetterhousekeepingnowwhenataskisexited + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + + diff --git a/doc/xml/schedyield_8S.xml b/doc/xml/schedyield_8S.xml new file mode 100644 index 0000000..08e95ca --- /dev/null +++ b/doc/xml/schedyield_8S.xml @@ -0,0 +1,80 @@ + + + + schedyield.S + + + globl sched_yield_new text code32 + globl sched_yield_new text code32 sched_yield_new + + sched_yield_new + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +.globlsched_yield_new +.text +.code32 +sched_yield_new: +pusha/*Savealloftheregisters*/ +push%ss +push%ds +push%es +push%fs +push%gs +callsched +mov%eax,%esp +pop%gs +pop%fs +pop%es +pop%ds +pop%ss +popa/*RestoreRegisters*/ +iret + +/*** +END +***/ + + + + diff --git a/doc/xml/sde_8h.xml b/doc/xml/sde_8h.xml new file mode 100644 index 0000000..510b709 --- /dev/null +++ b/doc/xml/sde_8h.xml @@ -0,0 +1,198 @@ + + + + sde.h + ubixos/types.h + src/sys/kernel/systemtask.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sdeWindows + + + drawWindow + 3 + + + + + + + + + + killWindow + 4 + + + + + + + + + + registerWindow + 1 + + + + + + + + + + windowReady + 2 + + + + + + + + + + + + void + void sdeThread + () + sdeThread + + + + + + + + + + void + void sysSDE + (uInt32 cmd, void *ptr) + sysSDE + + uInt32 + cmd + + + void * + ptr + + + + + + + + + + + + + sdeWindows * + struct sdeWindows* windows + + windows + + + + + + + + + + + + + + +/************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,arepermittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors. +Redistributionsinbinaryformmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowingdisclaimerandthelistofauthors +inthedocumentationand/orothermaterialsprovidedwiththedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftwarewithoutspecificpriorwrittenpermission. + +THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANYEXPRESSORIMPLIED +WARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULAR +PURPOSEAREDISCLAIMED.INNOEVENTSHALLTHECOPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT, +INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTE +GOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY +OFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE. + +$Id$ + +**************************************************************************************/ + +#ifndef_SDE_H +#define_SDE_H + +#include<ubixos/types.h> + +#defineregisterWindow1 +#definewindowReady2 +#definedrawWindow3 +#definekillWindow4 + +#ifdef__cplusplus +extern"C" +#endif +voidsdeThread(); + +#ifdef__cplusplus +extern"C" +#endif +voidsysSDE(uInt32cmd,void*ptr); + +structsdeWindows{ +structsdeWindows*next; +structsdeWindows*prev; +void*buf; +pidTypepid; +uInt8status; +}; + +externstructsdeWindows*windows; + +#endif + + + + + diff --git a/doc/xml/sem_8c.xml b/doc/xml/sem_8c.xml new file mode 100644 index 0000000..d779961 --- /dev/null +++ b/doc/xml/sem_8c.xml @@ -0,0 +1,61 @@ + + + + sem.c + ubixos/sem.h + + + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/sem.h> + +/*** +END +***/ + + + + + diff --git a/doc/xml/sem_8h.xml b/doc/xml/sem_8h.xml new file mode 100644 index 0000000..c309729 --- /dev/null +++ b/doc/xml/sem_8h.xml @@ -0,0 +1,77 @@ + + + + sem.h + src/sys/kernel/sem.c + + + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SEM_H +#define_SEM_H + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:55reddawg +nomessage + +Revision1.12004/07/2018:58:24reddawg +Fewfixes + +END +***/ + + + + + diff --git a/doc/xml/setpageattributes_8c.xml b/doc/xml/setpageattributes_8c.xml new file mode 100644 index 0000000..823bca0 --- /dev/null +++ b/doc/xml/setpageattributes_8c.xml @@ -0,0 +1,204 @@ + + + + setpageattributes.c + vmm/vmm.h + ubixos/kpanic.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int vmm_setPageAttributes + (uInt32 memAddr, uInt16 attributes) + vmm_setPageAttributes + + uInt32 + memAddr + + + uInt16 + attributes + + + + + + + + + kpanic + tablesBaseAddress + x1000 + execFile + sysExec + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<ubixos/kpanic.h> + +/************************************************************************ + +Function:voidvmmSetPageAttributes(uInt32pageAddr,intattributes; +Description:ThisFunctionWillSetThePageAttributesSuchAs +AReadOnlyPage,StackPage,COWPage,ETC. +Notes: + +************************************************************************/ +intvmm_setPageAttributes(uInt32memAddr,uInt16attributes){ +uInt16directoryIndex=0x0,tableIndex=0x0; +uInt32*pageTable=0x0; + +/*CalculateThePageDirectoryIndex*/ +directoryIndex=(memAddr>>22); + +/*CalculateThePageTableIndex*/ +tableIndex=((memAddr>>12)&0x3FF); + +/*SetTablePointer*/ +if((pageTable=(uInt32*)(tablesBaseAddress+(0x1000*directoryIndex)))==0x0) +kpanic("Error:pageTable==NULL,File:%s,Line:%i\n",__FILE__,__LINE__); + +/*SetAttributeIfPageIsMapped*/ +if(pageTable[tableIndex]!=0x0) +pageTable[tableIndex]=((pageTable[tableIndex]&0xFFFFF000)|attributes); + +/*ReloadThePageTable;*/ +asmvolatile( +"push%eax\n" +"movl%cr3,%eax\n" +"movl%eax,%cr3\n" +"pop%eax\n" +); +/*Return*/ +return(0x0); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:53reddawg +nomessage + +Revision1.42004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.32004/07/2022:29:55reddawg +assert:remadeassert + +Revision1.22004/06/1022:23:56reddawg +Volatiles + +Revision1.1.1.12004/04/1512:06:53reddawg +UbixOSv1.0 + +Revision1.62004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/shell_8c.xml b/doc/xml/shell_8c.xml new file mode 100644 index 0000000..37bcdca --- /dev/null +++ b/doc/xml/shell_8c.xml @@ -0,0 +1,703 @@ + + + + shell.c + lib/kmalloc.h + ubixos/fork.h + string.h + net/mem.h + net/debug.h + net/def.h + net/api.h + net/stats.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ECLOSED + -4 + + + + + + + + + + ESUCCESS + 0 + + + + + + + + + + ESYNTAX + -1 + + + + + + + + + + ETOOFEW + -2 + + + + + + + + + + ETOOMANY + -3 + + + + + + + + + + NCONNS + 10 + + + + + + + + + + + + void + static void prompt + (struct netconn *conn) + prompt + + struct netconn * + conn + + + + + + + + + sendstr + shell_main + + + void + static void sendstr + (const char *str, struct netconn *conn) + sendstr + + const char * + str + + + struct netconn * + conn + + + + + + + + + NETCONN_NOCOPY + netconn_write + strlen + prompt + shell_main + + + void + void shell_init + (void) + shell_init + + void + + + + + + + + + NULL + shell_thread + sys_thread_new + netMainThread + + + void + static void shell_main + (struct netconn *conn) + shell_main + + struct netconn * + conn + + + + + + + + + buffer + kprintf + netbuf_copy + netbuf_delete + netbuf_len + netconn_close + netconn_recv + prompt + sendstr + strcmp + shell_thread + + + void + static void shell_thread + (void *arg) + shell_thread + + void * + arg + + + + + + + + + buffer + kmalloc + kprintf + netconn_accept + netconn_bind + netconn_listen + netconn_new + NETCONN_TCP + NULL + shell_main + shell_init + + + + + char * + char* buffer + + buffer + 0x0 + + + + + + + + readUbixFS + shell_main + shell_thread + sys_write + udpecho_thread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<lib/kmalloc.h> +#include<ubixos/fork.h> +#include<string.h> + +#include"net/mem.h" +#include"net/debug.h" +#include"net/def.h" +#include"net/api.h" +#include"net/stats.h" + +#include"lib/kprintf.h" +char*buffer=0x0; + +#defineESUCCESS0 +#defineESYNTAX-1 +#defineETOOFEW-2 +#defineETOOMANY-3 +#defineECLOSED-4 + +#defineNCONNS10 +//UBUstaticstructnetconn*conns[NCONNS]; + +staticvoidsendstr(constchar*str,structnetconn*conn){ +netconn_write(conn,(void*)str,strlen(str),NETCONN_NOCOPY); +} + +staticvoidprompt(structnetconn*conn){ +sendstr("uBixCube:@sys>",conn); +} + +staticvoidshell_main(structnetconn*conn){ +structnetbuf*buf=0x0; +uInt32len; +//UBUinti; +//UBUcharbufr[1500]; +prompt(conn); +while(1){ +buf=netconn_recv(conn); +if(buf!=0x0) +netbuf_copy(buf,buffer,1024); +len=netbuf_len(buf); +netbuf_delete(buf); +buffer[len-2]='\0'; +kprintf("Buffer:[%s:%i]\n",buffer,len); +if(!strcmp(buffer,"quit")){ +netconn_close(conn); +break; +} +elseif(!strcmp(buffer,"ls")){ +sendstr("no\nfiles\nhere\n",conn); +} +elseif(!strcmp(buffer,"uname")){ +sendstr("UbixOSv1.0reddawg@devel.ubixos.com:/ubix.elf\n",conn); +} +prompt(conn); +} +} + +staticvoidshell_thread(void*arg){ +structnetconn*conn=0x0,*newconn=0x0; + +buffer=(char*)kmalloc(1024); + +conn=netconn_new(NETCONN_TCP); +netconn_bind(conn,NULL,23); +netconn_listen(conn); + +while(1){ +kprintf("1"); +newconn=netconn_accept(conn); +kprintf("2"); +shell_main(newconn); +kprintf("3"); +//netconn_delete(newconn); +kprintf("4"); +} +} + +voidshell_init(void){ +sys_thread_new(shell_thread,NULL); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/shell_8h.xml b/doc/xml/shell_8h.xml new file mode 100644 index 0000000..6b8ac65 --- /dev/null +++ b/doc/xml/shell_8h.xml @@ -0,0 +1,75 @@ + + + + shell.h + + + void + void shell_init + (void) + shell_init + + void + + + + + + + + + NULL + shell_thread + sys_thread_new + netMainThread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__SHELL_H__ +#define__SHELL_H__ + +voidshell_init(void); + +#endif/*__SHELL_H__*/ + + + + diff --git a/doc/xml/signal_8h.xml b/doc/xml/signal_8h.xml new file mode 100644 index 0000000..6e8cc28 --- /dev/null +++ b/doc/xml/signal_8h.xml @@ -0,0 +1,447 @@ + + + + signal.h + ubixos/types.h + src/sys/include/sys/sysproto.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + __sigset + + + _SIG_BIT + sig + (1 << (_SIG_IDX(sig) & 31)) + + + + + + + + + + _SIG_IDX + sig + ((sig) - 1) + + + + + + + + + + _SIG_MAXSIG + 128 + + + + + + + + + + _SIG_VALID + sig + ((sig) <= _SIG_MAXSIG && (sig) > 0) + + + + + + + + + + _SIG_WORD + sig + (_SIG_IDX(sig) >> 5) + + + + + + + + + + _SIG_WORDS + 4 + + + + + + + + + + _SIGNALL_H + + + + + + + + + + + + __sigset + typedef struct __sigset __sigset_t + + __sigset_t + + + + + + + + + + __sigset_t + typedef __sigset_t sigset_t + + sigset_t + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SIGNAL_H +#define_SIGNALL_H + +#include<ubixos/types.h> + +#define_SIG_WORDS4 +#define_SIG_MAXSIG128 +#define_SIG_IDX(sig)((sig)-1) +#define_SIG_WORD(sig)(_SIG_IDX(sig)>>5) +#define_SIG_BIT(sig)(1<<(_SIG_IDX(sig)&31)) +#define_SIG_VALID(sig)((sig)<=_SIG_MAXSIG&&(sig)>0) + +typedefstruct__sigset{ +__uint32_t__bits[_SIG_WORDS]; +}__sigset_t; + +typedef__sigset_tsigset_t; + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/smp_8c.xml b/doc/xml/smp_8c.xml new file mode 100644 index 0000000..8df3106 --- /dev/null +++ b/doc/xml/smp_8c.xml @@ -0,0 +1,880 @@ + + + + smp.c + ubixos/smp.h + ubixos/spinlock.h + ubixos/kpanic.h + lib/kprintf.h + lib/string.h + sys/io.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gdt_descr + + + void + void ap_trampoline_end + () + ap_trampoline_end + + + + + + + + apicMagic + + + void + void ap_trampoline_start + () + ap_trampoline_start + + + + + + + + + + void + void apicMagic + (void) + apicMagic + + void + + + + + + + + + ap_trampoline_end + ap_trampoline_start + apicRead + apicWrite + kprintf + memcpy + smpInit + + + unsigned int + static unsigned int apicRead + (address) + apicRead + + address + + + + + + + + + apicMagic + cpuInfo + + + void + static void apicWrite + (unsigned int address, unsigned int data) + apicWrite + + unsigned int + address + + + unsigned int + data + + + + + + + + + apicMagic + + + + asm + (".globl cpuid \n""cpuid: \n"" pushl %ebx \n"" pushl %edi \n"" movl 12(%esp),%eax \n"" movl 16(%esp),%edi \n"" cpuid \n"" movl %eax,0(%edi) \n"" movl %ebx,4(%edi) \n"" movl %ecx,8(%edi) \n"" movl %edx,12(%edi) \n"" popl %edi \n"" popl %ebx \n"" ret \n") + asm + + ".globl cpuid \n""cpuid: \n"" pushl %ebx \n"" pushl %edi \n"" movl + 12 + (%esp) + + + %eax\n""movl + 16 + (%esp) + + + %edi\n""cpuid\n""movl% + eax + + + 0(%edi)\n""movl% + ebx + + + 4(%edi)\n""movl% + ecx + + + 8(%edi)\n""movl% + edx + + + 12(%edi)\n""popl%edi\n""popl%ebx\n""ret\n" + + + + + + + + + + + void + void c_ap_boot + (void) + c_ap_boot + + void + + + + + + + + + cpu1_thread + cpu2_thread + cpu3_thread + cpuInfo + initSpinLock + outportByte + spinLockLocked + xe9 + + + void + void cpu0_thread + (void) + cpu0_thread + + void + + + + + + + + + kernel_function + vram + + + void + void cpu1_thread + (void) + cpu1_thread + + void + + + + + + + + + kernel_function + vram + c_ap_boot + + + void + void cpu2_thread + (void) + cpu2_thread + + void + + + + + + + + + kernel_function + vram + c_ap_boot + + + void + void cpu3_thread + (void) + cpu3_thread + + void + + + + + + + + + kernel_function + vram + c_ap_boot + + + void + void cpuidDetect + () + cpuidDetect + + + + + + + + getEflags + kpanic + setEflags + smpInit + + + uInt8 + uInt8 cpuInfo + () + cpuInfo + + + + + + + + cpuinfo_t::apic_id + cpuinfo_t::apic_ver + apicRead + cpuinfo_t::brand + cpuid + cpuinfo + cpuInfoLock + cpus + cpuinfo_t::feature + getEflags + cpuinfo_t::id + cpuinfo_t::ident + kpanic + cpuinfo_t::max + cpuinfo_t::ok + setDr3 + setEflags + cpuinfo_t::signature + spinLock + spinUnlock + x20 + x30 + c_ap_boot + smpInit + + + void + static void GDT_fixer + () + GDT_fixer + + + + + + + + gdt_descr::limit + smpInit + + + __inline__ uInt32 + static __inline__ uInt32 getDr3 + (void) + getDr3 + + void + + + + + + + + + kernel_function + + + uInt32 + uInt32 getEflags + () + getEflags + + + + + + + + cpuidDetect + cpuInfo + + + uInt8 + uInt8 kernel_function + (void) + kernel_function + + void + + + + + + + + + getDr3 + cpuinfo_t::id + spinLock + spinUnlock + cpu0_thread + cpu1_thread + cpu2_thread + cpu3_thread + + + __inline__ void + static __inline__ void setDr3 + (void *dr3) + setDr3 + + void * + dr3 + + + + + + + + + cpuInfo + + + void + void setEflags + (uInt32 eflags) + setEflags + + uInt32 + eflags + + + + + + + + + cpuidDetect + cpuInfo + + + void + void smpInit + () + smpInit + + + + + + + + apicMagic + cpuidDetect + cpuInfo + GDT_fixer + initSpinLock + spinLock + spinUnlock + + + + + spinLock_t + spinLock_t bkl + + bkl + SPIN_LOCK_INITIALIZER + + + + + + + + + + cpuinfo_t + struct cpuinfo_t cpuinfo[8] + [8] + cpuinfo + + + + + + + + cpuInfo + + + spinLock_t + spinLock_t cpuInfoLock + + cpuInfoLock + SPIN_LOCK_INITIALIZER + + + + + + + + cpuInfo + + + uInt32 + uInt32 cpus + + cpus + 0 + + + + + + + + cpuInfo + + + spinLock_t + spinLock_t initSpinLock + + initSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + c_ap_boot + smpInit + + + uInt8 * + uInt8* vram + + vram + (uInt8 *)0xB8000 + + + + + + + + cpu0_thread + cpu1_thread + cpu2_thread + cpu3_thread + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/smp.h> +#include<ubixos/spinlock.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/string.h> +#include<sys/io.h> + +staticspinLock_tinitSpinLock=SPIN_LOCK_INITIALIZER; +staticspinLock_tcpuInfoLock=SPIN_LOCK_INITIALIZER; +staticuInt32cpus=0; +structcpuinfo_tcpuinfo[8]; + +uInt8kernel_function(void); +uInt8*vram=(uInt8*)0xB8000; + +staticinlineunsignedintapicRead(address){ +return*(volatileunsignedint*)(0xFEE00000+address); +} + +staticinlinevoidapicWrite(unsignedintaddress,unsignedintdata){ +*(volatileunsignedint*)(0xFEE00000+address)=data; +} + +static__inline__voidsetDr3(void*dr3){ +registeruInt32value=(uInt32)dr3; +__asm____volatile__("mov%0,%%dr3"::"r"(value)); +} + +static__inline__uInt32getDr3(void){ +registeruInt32value; +__asm____volatile__("mov%%dr3,%0":"=r"(value)); +returnvalue; +} + +structgdt_descr{ +uInt16limit; +uInt32*base__attribute__((packed)); +}; + +staticvoidGDT_fixer(){ +structgdt_descrgdt_descr; +uInt32*gdt=(uInt32*)0x20000;//128KB + +gdt[0]=0; +gdt[1]=0; +gdt[2]=0x0000ffff;//seg0x8--DPL04GBcode +gdt[3]=0x00cf9a00; +gdt[4]=0x0000ffff;//seg0x10--DPL04GBdata +gdt[5]=0x00cf9200; +gdt[6]=0x0000ffff;//seg0x1b--DPL34GBcode +gdt[7]=0x00cffa00; +gdt[8]=0x0000ffff;//seg0x23--DPL34GBdata +gdt[9]=0x00cff200; + +gdt_descr.limit=32*4; +gdt_descr.base=gdt; + +/* +asm("lgdt%0;"::"m"(gdt_descr)); +__asm____volatile__("ljmp%0,$1f;1:"::"i"(0x08)); +__asm____volatile__("movw%w0,%%ds"::"r"(0x10)); +__asm____volatile__("movw%w0,%%es"::"r"(0x10)); +__asm____volatile__("movw%w0,%%ss"::"r"(0x10)); +*/ +} + + +voidcpu0_thread(void){ +for(;;){ +vram[40+640]=kernel_function(); +vram[42+640]++; +} +} +voidcpu1_thread(void){ +for(;;){ +vram[60+640]=kernel_function(); +vram[62+640]++; +} +} +voidcpu2_thread(void){ +for(;;){ +vram[80+640]=kernel_function(); +vram[82+640]++; +} +} +voidcpu3_thread(void){ +for(;;){ +vram[100+640]=kernel_function(); +vram[102+640]++; +} +} + +staticspinLock_tbkl=SPIN_LOCK_INITIALIZER; +uInt8kernel_function(void){ +structcpuinfo_t*cpu; + +spinLock(&bkl); + + +cpu=(structcpuinfo_t*)getDr3(); + +spinUnlock(&bkl); + +return('0'+cpu->id); +} + + +voidc_ap_boot(void){ + +while(spinLockLocked(&initSpinLock)); + +switch(cpuInfo()){ +case1: +cpu1_thread(); +break; +case2: +cpu2_thread(); +break; +case3: +cpu3_thread(); +break; +} + +outportByte(0xe9,'5'); + +for(;;){ +asm("nop"); +} +} + + +voidsmpInit(){ +spinLock(&initSpinLock); +GDT_fixer(); +cpuidDetect(); +cpuInfo(); +apicMagic(); +spinUnlock(&initSpinLock); + +//cpu0_thread(); + +} + +voidcpuidDetect(){ +if(!(getEflags()&(1<<21))){ +setEflags(getEflags()|(1<<21)); +if(!(getEflags()&(1<<21))){ +kpanic("CPUdoesn'tsupportCPUID,getanewermachine\n"); +} +} +} + +uInt8cpuInfo(){ +uInt32data[4],i; + +if(!(getEflags()&(1<<21))){//Ifthecpuidbitineflagsnotset.. +setEflags(getEflags()|(1<<21));//..tryandsetittoseeifitcomeson.. +if(!(getEflags()&(1<<21))){//Itdidn't..ThisCPUsuck +kpanic("CPUdoesn'tsupportCPUID,getanewermachine\n"); +} +} + +spinLock(&cpuInfoLock); +cpuinfo[cpus].ok=1; +cpuinfo[cpus].apic_id=apicRead(0x20)>>24; +cpuinfo[cpus].apic_ver=apicRead(0x30)&0xFF; + +cpuid(0,data); +*(uInt32*)&cpuinfo[cpus].ident[0]=data[1]; +*(uInt32*)&cpuinfo[cpus].ident[4]=data[3]; +*(uInt32*)&cpuinfo[cpus].ident[8]=data[2]; +cpuinfo[cpus].ident[17]=0; +cpuinfo[cpus].max=data[0]; + +cpuid(1,data); +cpuinfo[cpus].signature=data[0]; +cpuinfo[cpus].feature=data[3]; + +cpuid(0x80000000,data); +if(data[0]>=0x80000004){ +for(i=0;i<3;i++){ +cpuid(0x80000002+i,data); + +*(unsignedint*)&cpuinfo[cpus].brand[16*i+0]=data[0]; +*(unsignedint*)&cpuinfo[cpus].brand[16*i+4]=data[1]; +*(unsignedint*)&cpuinfo[cpus].brand[16*i+8]=data[2]; +*(unsignedint*)&cpuinfo[cpus].brand[16*i+12]=data[3]; +} +cpuinfo[cpus].brand[48]=0; +}else{ +cpuinfo[cpus].brand[0]=0; +} + +setDr3(&cpuinfo[cpus]);//DR3alwayspointstothecpu-structforthatCPU(shouldbethread-structofcurrentthread) +cpuinfo[cpus].id=cpus; + +cpus++; + +spinUnlock(&cpuInfoLock); + +return(cpus-1); +} + +externvoidap_trampoline_start(),ap_trampoline_end(); +voidapicMagic(void){ +uInt32tmp; + +kprintf("Copying%ubytesfrom0x%xto0x00\n",ap_trampoline_end-ap_trampoline_start,ap_trampoline_start); +memcpy(0x0,(char*)ap_trampoline_start,ap_trampoline_end-ap_trampoline_start); +apicWrite(0x280,0); +apicRead(0x280); + +apicWrite(0x300,0x000C4500);//INITIPItoallCPUs +for(tmp=0;tmp<800000;tmp++)asm("nop");//Sleepalittle(shouldbe10ms) +apicWrite(0x300,0x000C4600);//INITSIPItoallCPUs +for(tmp=0;tmp<800000;tmp++)asm("nop");//Sleepalittle(shouldbe200ms) +apicWrite(0x300,0x000C4600);//SecondINITSIPI +for(tmp=0;tmp<800000;tmp++)asm("nop");//Sleepalittle(shouldbe200ms) +} + + + +uInt32getEflags(){ +uInt32eflags=0x0; +asm( +"pushfl\n" +"popl%%eax\n" +:"=a"(eflags) +); +return(eflags); +} + +voidsetEflags(uInt32eflags){ +asm( +"pushl%%eax\n" +"popfl\n" +: +:"a"(eflags) +); +} + +asm( +".globlcpuid\n" +"cpuid:\n" +"pushl%ebx\n" +"pushl%edi\n" +"movl12(%esp),%eax\n" +"movl16(%esp),%edi\n" +"cpuid\n" +"movl%eax,0(%edi)\n" +"movl%ebx,4(%edi)\n" +"movl%ecx,8(%edi)\n" +"movl%edx,12(%edi)\n" +"popl%edi\n" +"popl%ebx\n" +"ret\n" +); + +/*** +END +***/ + + + + + diff --git a/doc/xml/smp_8h.xml b/doc/xml/smp_8h.xml new file mode 100644 index 0000000..eb2ae16 --- /dev/null +++ b/doc/xml/smp_8h.xml @@ -0,0 +1,268 @@ + + + + smp.h + ubixos/types.h + src/sys/kernel/smp.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cpuinfo_t + + + void + void apicMagic + () + apicMagic + + + + + + + + ap_trampoline_end + ap_trampoline_start + apicRead + apicWrite + kprintf + memcpy + smpInit + + + void + void cpuid + (uInt32, uInt32 *) + cpuid + + uInt32 + + + uInt32 * + + + + + + + + + cpuInfo + + + void + void cpuidDetect + () + cpuidDetect + + + + + + + + getEflags + kpanic + setEflags + smpInit + + + uInt8 + uInt8 cpuInfo + () + cpuInfo + + + + + + + + cpuinfo_t::apic_id + cpuinfo_t::apic_ver + apicRead + cpuinfo_t::brand + cpuid + cpuinfo + cpuInfoLock + cpus + cpuinfo_t::feature + getEflags + cpuinfo_t::id + cpuinfo_t::ident + kpanic + cpuinfo_t::max + cpuinfo_t::ok + setDr3 + setEflags + cpuinfo_t::signature + spinLock + spinUnlock + x20 + x30 + c_ap_boot + smpInit + + + uInt32 + uInt32 getEflags + () + getEflags + + + + + + + + cpuidDetect + cpuInfo + + + void + void setEflags + (uInt32) + setEflags + + uInt32 + + + + + + + + + cpuidDetect + cpuInfo + + + void + void smpInit + () + smpInit + + + + + + + + apicMagic + cpuidDetect + cpuInfo + GDT_fixer + initSpinLock + spinLock + spinUnlock + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SMP_H +#define_SMP_H + +#include<ubixos/types.h> + +structcpuinfo_t{ +uInt8id; +uInt8ok;//1=Ok,0=Bad +uInt8apic_id,apic_ver; +uInt32signature;//Family,Model,Stepping +uInt32feature; +uInt32max; +charbrand[49];//Brandname +charident[17]; +}; + + +voidsmpInit(); +voidcpuidDetect(); +uInt8cpuInfo(); +uInt32getEflags(); +voidsetEflags(uInt32); +voidcpuid(uInt32,uInt32*); +voidapicMagic(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:56reddawg +nomessage + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/sockets_8c.xml b/doc/xml/sockets_8c.xml new file mode 100644 index 0000000..93fb26b --- /dev/null +++ b/doc/xml/sockets_8c.xml @@ -0,0 +1,1202 @@ + + + + sockets.c + ubixos/types.h + net/debug.h + net/api.h + net/sockets.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lwip_socket + + + NUM_SOCKETS + 10 + + + + + + + + alloc_socket + get_socket + + + + + int + static int alloc_socket + (struct netconn *newconn) + alloc_socket + + struct netconn * + newconn + + + + + + + + + lwip_socket::conn + lwip_socket::lastdata + lwip_socket::lastoffset + NULL + NUM_SOCKETS + sockets + lwip_accept + lwip_socket + + + struct lwip_socket * + static struct lwip_socket* get_socket + (int s) + get_socket + + int + s + + + + + + + + + lwip_socket::conn + NULL + NUM_SOCKETS + sockets + lwip_accept + lwip_bind + lwip_close + lwip_connect + lwip_listen + lwip_recvfrom + lwip_send + lwip_sendto + lwip_write + + + int + int lwip_accept + (int s, struct sockaddr *addr, int *addrlen) + lwip_accept + + int + s + + + struct sockaddr * + addr + + + int * + addrlen + + + + + + + + + ip_addr::addr + alloc_socket + lwip_socket::conn + get_socket + netconn_accept + netconn_delete + netconn_peer + NULL + + + int + int lwip_bind + (int s, struct sockaddr *name, int namelen) + lwip_bind + + int + s + + + struct sockaddr * + name + + + int + namelen + + + + + + + + + ip_addr::addr + lwip_socket::conn + ERR_OK + get_socket + name + netconn_bind + ntohs + NULL + + + int + int lwip_close + (int s) + lwip_close + + int + s + + + + + + + + + lwip_socket::conn + DEBUGF + get_socket + lwip_socket::lastdata + lwip_socket::lastoffset + netbuf_delete + netconn_delete + NULL + SOCKETS_DEBUG + + + int + int lwip_connect + (int s, struct sockaddr *name, int namelen) + lwip_connect + + int + s + + + struct sockaddr * + name + + + int + namelen + + + + + + + + + ip_addr::addr + lwip_socket::conn + ERR_OK + get_socket + name + netconn_connect + ntohs + NULL + + + int + int lwip_listen + (int s, int backlog) + lwip_listen + + int + s + + + int + backlog + + + + + + + + + lwip_socket::conn + ERR_OK + get_socket + netconn_listen + NULL + + + int + int lwip_read + (int s, void *mem, int len) + lwip_read + + int + s + + + void * + mem + + + int + len + + + + + + + + + lwip_recv + + + int + int lwip_recv + (int s, void *mem, int len, unsigned int flags) + lwip_recv + + int + s + + + void * + mem + + + int + len + + + unsigned int + flags + + + + + + + + + lwip_recvfrom + NULL + lwip_read + + + int + int lwip_recvfrom + (int s, void *mem, int len, unsigned int flags, struct sockaddr *from, int *fromlen) + lwip_recvfrom + + int + s + + + void * + mem + + + int + len + + + unsigned int + flags + + + struct sockaddr * + from + + + int * + fromlen + + + + + + + + + ip_addr::addr + lwip_socket::conn + get_socket + htons + lwip_socket::lastdata + lwip_socket::lastoffset + netbuf_copy_partial + netbuf_delete + netbuf_fromaddr + netbuf_fromport + netbuf_len + netconn_recv + NETCONN_TCP + netconn_type + NULL + lwip_recv + + + int + int lwip_send + (int s, void *data, int size, unsigned int flags) + lwip_send + + int + s + + + void * + data + + + int + size + + + unsigned int + flags + + + + + + + + + lwip_socket::conn + DEBUGF + netbuf::err + ERR_ARG + ERR_OK + get_socket + netbuf_delete + netbuf_new + netbuf_ref + NETCONN_COPY + netconn_send + NETCONN_TCP + netconn_type + NETCONN_UDP + netconn_write + NULL + SOCKETS_DEBUG + lwip_sendto + lwip_write + + + int + int lwip_sendto + (int s, void *data, int size, unsigned int flags, struct sockaddr *to, int tolen) + lwip_sendto + + int + s + + + void * + data + + + int + size + + + unsigned int + flags + + + struct sockaddr * + to + + + int + tolen + + + + + + + + + ip_addr::addr + lwip_socket::conn + get_socket + lwip_send + netconn_connect + netconn_peer + NULL + + + int + int lwip_socket + (int domain, int type, int protocol) + lwip_socket + + int + domain + + + int + type + + + int + protocol + + + + + + + + + alloc_socket + DEBUGF + netconn_delete + netconn_new + NETCONN_TCP + NETCONN_UDP + NULL + SOCK_DGRAM + SOCK_STREAM + SOCKETS_DEBUG + + + int + int lwip_write + (int s, void *data, int size) + lwip_write + + int + s + + + void * + data + + + int + size + + + + + + + + + lwip_socket::conn + DEBUGF + ERR_ARG + ERR_OK + get_socket + lwip_send + NETCONN_COPY + NETCONN_TCP + netconn_type + NETCONN_UDP + netconn_write + NULL + SOCKETS_DEBUG + + + + + struct lwip_socket + struct lwip_socket sockets[NUM_SOCKETS] + [NUM_SOCKETS] + sockets + + + + + + + + alloc_socket + get_socket + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<ubixos/types.h> + +#include"net/debug.h" +#include"net/api.h" + +#include"net/sockets.h" + +#defineNUM_SOCKETS10 + +structlwip_socket{ +structnetconn*conn; +structnetbuf*lastdata; +uInt16lastoffset; +}; + +staticstructlwip_socketsockets[NUM_SOCKETS]; + +/*-----------------------------------------------------------------------------------*/ +staticstructlwip_socket* +get_socket(ints) +{ +structlwip_socket*sock; + +if(s>NUM_SOCKETS){ +/*errno=EBADF;*/ +returnNULL; +} + +sock=&sockets[s]; + +if(sock->conn==NULL){ +/*errno=EBADF;*/ +returnNULL; +} +returnsock; +} +/*-----------------------------------------------------------------------------------*/ +staticint +alloc_socket(structnetconn*newconn) +{ +inti; + +/*allocateanewsocketidentifier*/ +for(i=0;i<NUM_SOCKETS;++i){ +if(sockets[i].conn==NULL){ +sockets[i].conn=newconn; +sockets[i].lastdata=NULL; +sockets[i].lastoffset=0; +returni; +} +} +return-1; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_accept(ints,structsockaddr*addr,int*addrlen) +{ +structlwip_socket*sock; +structnetconn*newconn; +structip_addr*naddr; +uInt16port; +intnewsock; + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +newconn=netconn_accept(sock->conn); + +/*gettheIPaddressandportoftheremotehost*/ +netconn_peer(newconn,&naddr,&port); + +((structsockaddr_in*)addr)->sin_addr.s_addr=naddr->addr; +((structsockaddr_in*)addr)->sin_port=port; + +newsock=alloc_socket(newconn); +if(newsock==-1){ +netconn_delete(newconn); +/*errno=ENOBUFS;*/ +} +returnnewsock; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_bind(ints,structsockaddr*name,intnamelen) +{ +structlwip_socket*sock; +structip_addrremote_addr; +uInt16remote_port; +err_terr; + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +remote_addr.addr=((structsockaddr_in*)name)->sin_addr.s_addr; +remote_port=((structsockaddr_in*)name)->sin_port; + +err=netconn_bind(sock->conn,&remote_addr,ntohs(remote_port)); + +if(err!=ERR_OK){ +/*errno=...*/ +return-1; +} + +return0; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_close(ints) +{ +structlwip_socket*sock; + +DEBUGF(SOCKETS_DEBUG,("close:socket%d\n",s)); +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + + +netconn_delete(sock->conn); +if(sock->lastdata!=NULL){ +netbuf_delete(sock->lastdata); +} +sock->lastdata=NULL; +sock->lastoffset=0; +sock->conn=NULL; +return0; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_connect(ints,structsockaddr*name,intnamelen) +{ +structlwip_socket*sock; +structip_addrremote_addr; +uInt16remote_port; +err_terr; + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +remote_addr.addr=((structsockaddr_in*)name)->sin_addr.s_addr; +remote_port=((structsockaddr_in*)name)->sin_port; + +err=netconn_connect(sock->conn,&remote_addr,ntohs(remote_port)); + +if(err!=ERR_OK){ +/*errno=...*/ +return-1; +} + +return0; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_listen(ints,intbacklog) +{ +structlwip_socket*sock; +err_terr; + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +err=netconn_listen(sock->conn); + +if(err!=ERR_OK){ +/*errno=...*/ +return-1; +} + +return0; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_recvfrom(ints,void*mem,intlen,unsignedintflags, +structsockaddr*from,int*fromlen) +{ +structlwip_socket*sock; +structnetbuf*buf; +uInt16buflen,copylen; +structip_addr*addr; +uInt16port; + + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +/*Checkifthereisdataleftfromthelastrecvoperation.*/ +if(sock->lastdata!=NULL){ +buf=sock->lastdata; +}else{ +/*Nodatawasleftfromthepreviousoperation,sowetrytoget +somefromthenetwork.*/ +buf=netconn_recv(sock->conn); + +if(buf==NULL){ +/*Weshouldreallydosomeerrorcheckinghere.*/ +return0; +} +} + +buflen=netbuf_len(buf); + +buflen-=sock->lastoffset; + +if(len>buflen){ +copylen=buflen; +}else{ +copylen=len; +} + +/*copythecontentsofthereceivedbufferinto +thesuppliedmemorypointermem*/ +netbuf_copy_partial(buf,mem,copylen,sock->lastoffset); + +/*IfthisisaTCPsocket,checkifthereisdataleftinthe +buffer.Ifso,itshouldbesavedinthesockstructurefornext +timearound.*/ +if(netconn_type(sock->conn)==NETCONN_TCP&&buflen-copylen>0){ +sock->lastdata=buf; +sock->lastoffset=buflen-copylen; +}else{ +sock->lastdata=NULL; +sock->lastoffset=0; +netbuf_delete(buf); +} + +/*Checktoseefromwherethedatawas.*/ +if(from!=NULL&&fromlen!=NULL){ +addr=netbuf_fromaddr(buf); +port=htons(netbuf_fromport(buf)); +((structsockaddr_in*)from)->sin_addr.s_addr=addr->addr; +((structsockaddr_in*)from)->sin_port=port; +*fromlen=sizeof(structsockaddr_in); +} + + +/*ifthelengthofthereceiveddataislargerthan +len,thisdataisdiscardedandwereturnlen. +otherwisewereturntheactuallengthofthereceived +data*/ +if(len>copylen){ +returncopylen; +}else{ +returnlen; +} +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_read(ints,void*mem,intlen) +{ +returnlwip_recv(s,mem,len,0); +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_recv(ints,void*mem,intlen,unsignedintflags) +{ +returnlwip_recvfrom(s,mem,len,flags,NULL,NULL); +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_send(ints,void*data,intsize,unsignedintflags) +{ +structlwip_socket*sock; +structnetbuf*buf; +err_terr; + +DEBUGF(SOCKETS_DEBUG,("send:socket%d,size%d\n",s,size)); + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +switch(netconn_type(sock->conn)){ +caseNETCONN_UDP: +/*createabuffer*/ +buf=netbuf_new(); + +if(buf==NULL){ +/*errno=ENOBUFS;*/ +return-1; +} + +/*makethebufferpointtothedatathatshould +besent*/ +netbuf_ref(buf,data,size); + +/*sendthedata*/ +err=netconn_send(sock->conn,buf); + +/*deallocatedthebuffer*/ +netbuf_delete(buf); +break; +caseNETCONN_TCP: +err=netconn_write(sock->conn,data,size,NETCONN_COPY); +break; +default: +err=ERR_ARG; +break; +} +if(err!=ERR_OK){ +/*errno=...*/ +return-1; +} + +returnsize; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_sendto(ints,void*data,intsize,unsignedintflags, +structsockaddr*to,inttolen) +{ +structlwip_socket*sock; +structip_addrremote_addr,*addr; +uInt16remote_port,port; +intret; + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +/*getthepeerifcurrentlyconnected*/ +netconn_peer(sock->conn,&addr,&port); + +remote_addr.addr=((structsockaddr_in*)to)->sin_addr.s_addr; +remote_port=((structsockaddr_in*)to)->sin_port; +netconn_connect(sock->conn,&remote_addr,remote_port); + +ret=lwip_send(s,data,size,flags); + +/*resettheremoteaddressandportnumber +oftheconnection*/ +netconn_connect(sock->conn,addr,port); +returnret; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_socket(intdomain,inttype,intprotocol) +{ +structnetconn*conn; +inti; + +/*createanetconn*/ +switch(type){ +caseSOCK_DGRAM: +conn=netconn_new(NETCONN_UDP); +break; +caseSOCK_STREAM: +conn=netconn_new(NETCONN_TCP); +break; +default: +/*errno=...*/ +return-1; +} + +if(conn==NULL){ +DEBUGF(SOCKETS_DEBUG,("socket:couldnotcreatenetconn.\n")); +/*errno=ENOBUFS;*/ +return-1; +} + +i=alloc_socket(conn); + +if(i==-1){ +/*errno=ENOBUFS;*/ +netconn_delete(conn); +} +returni; +} +/*-----------------------------------------------------------------------------------*/ +int +lwip_write(ints,void*data,intsize) +{ +structlwip_socket*sock; +err_terr; + +DEBUGF(SOCKETS_DEBUG,("write:socket%d,size%d\n",s,size)); + +sock=get_socket(s); +if(sock==NULL){ +return-1; +} + +switch(netconn_type(sock->conn)){ +caseNETCONN_UDP: +returnlwip_send(s,data,size,0); + +caseNETCONN_TCP: +err=netconn_write(sock->conn,data,size,NETCONN_COPY); +break; +default: +err=ERR_ARG; +break; +} +if(err!=ERR_OK){ +/*errno=...*/ +return-1; +} +returnsize; +} +/*-----------------------------------------------------------------------------------*/ + + + + diff --git a/doc/xml/sockets_8h.xml b/doc/xml/sockets_8h.xml new file mode 100644 index 0000000..369012c --- /dev/null +++ b/doc/xml/sockets_8h.xml @@ -0,0 +1,680 @@ + + + + sockets.h + ubixos/types.h + src/sys/lib/net.c + src/sys/net/api/sockets.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + in_addr + sockaddr + sockaddr_in + + + AF_INET + 2 + + + + + + + + + + INADDR_ANY + 0 + + + + + + + + + + INADDR_BROADCAST + 0xffffffff + + + + + + + + + + IPPROTO_TCP + 6 + + + + + + + + + + IPPROTO_UDP + 17 + + + + + + + + + + PF_INET + AF_INET + + + + + + + + + + SOCK_DGRAM + 2 + + + + + + + + lwip_socket + + + SOCK_STREAM + 1 + + + + + + + + lwip_socket + + + + + int + int lwip_accept + (int s, struct sockaddr *addr, int *addrlen) + lwip_accept + + int + s + + + struct sockaddr * + addr + + + int * + addrlen + + + + + + + + + ip_addr::addr + alloc_socket + lwip_socket::conn + get_socket + netconn_accept + netconn_delete + netconn_peer + NULL + + + int + int lwip_bind + (int s, struct sockaddr *name, int namelen) + lwip_bind + + int + s + + + struct sockaddr * + name + + + int + namelen + + + + + + + + + ip_addr::addr + lwip_socket::conn + ERR_OK + get_socket + name + netconn_bind + ntohs + NULL + + + int + int lwip_close + (int s) + lwip_close + + int + s + + + + + + + + + lwip_socket::conn + DEBUGF + get_socket + lwip_socket::lastdata + lwip_socket::lastoffset + netbuf_delete + netconn_delete + NULL + SOCKETS_DEBUG + + + int + int lwip_connect + (int s, struct sockaddr *name, int namelen) + lwip_connect + + int + s + + + struct sockaddr * + name + + + int + namelen + + + + + + + + + ip_addr::addr + lwip_socket::conn + ERR_OK + get_socket + name + netconn_connect + ntohs + NULL + + + int + int lwip_listen + (int s, int backlog) + lwip_listen + + int + s + + + int + backlog + + + + + + + + + lwip_socket::conn + ERR_OK + get_socket + netconn_listen + NULL + + + int + int lwip_read + (int s, void *mem, int len) + lwip_read + + int + s + + + void * + mem + + + int + len + + + + + + + + + lwip_recv + + + int + int lwip_recv + (int s, void *mem, int len, unsigned int flags) + lwip_recv + + int + s + + + void * + mem + + + int + len + + + unsigned int + flags + + + + + + + + + lwip_recvfrom + NULL + lwip_read + + + int + int lwip_recvfrom + (int s, void *mem, int len, unsigned int flags, struct sockaddr *from, int *fromlen) + lwip_recvfrom + + int + s + + + void * + mem + + + int + len + + + unsigned int + flags + + + struct sockaddr * + from + + + int * + fromlen + + + + + + + + + ip_addr::addr + lwip_socket::conn + get_socket + htons + lwip_socket::lastdata + lwip_socket::lastoffset + netbuf_copy_partial + netbuf_delete + netbuf_fromaddr + netbuf_fromport + netbuf_len + netconn_recv + NETCONN_TCP + netconn_type + NULL + lwip_recv + + + int + int lwip_send + (int s, void *dataptr, int size, unsigned int flags) + lwip_send + + int + s + + + void * + dataptr + + + int + size + + + unsigned int + flags + + + + + + + + + lwip_socket::conn + DEBUGF + netbuf::err + ERR_ARG + ERR_OK + get_socket + netbuf_delete + netbuf_new + netbuf_ref + NETCONN_COPY + netconn_send + NETCONN_TCP + netconn_type + NETCONN_UDP + netconn_write + NULL + SOCKETS_DEBUG + lwip_sendto + lwip_write + + + int + int lwip_sendto + (int s, void *dataptr, int size, unsigned int flags, struct sockaddr *to, int tolen) + lwip_sendto + + int + s + + + void * + dataptr + + + int + size + + + unsigned int + flags + + + struct sockaddr * + to + + + int + tolen + + + + + + + + + ip_addr::addr + lwip_socket::conn + get_socket + lwip_send + netconn_connect + netconn_peer + NULL + + + int + int lwip_socket + (int domain, int type, int protocol) + lwip_socket + + int + domain + + + int + type + + + int + protocol + + + + + + + + + alloc_socket + DEBUGF + netconn_delete + netconn_new + NETCONN_TCP + NETCONN_UDP + NULL + SOCK_DGRAM + SOCK_STREAM + SOCKETS_DEBUG + + + int + int lwip_write + (int s, void *dataptr, int size) + lwip_write + + int + s + + + void * + dataptr + + + int + size + + + + + + + + + lwip_socket::conn + DEBUGF + ERR_ARG + ERR_OK + get_socket + lwip_send + NETCONN_COPY + NETCONN_TCP + netconn_type + NETCONN_UDP + netconn_write + NULL + SOCKETS_DEBUG + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + + +#ifndef__LWIP_SOCKETS_H__ +#define__LWIP_SOCKETS_H__ + +#include<ubixos/types.h> + +structin_addr{ +uInt32s_addr; +}; + + +structsockaddr_in{ +uInt8sin_len; +uInt8sin_family; +uInt16sin_port; +structin_addrsin_addr; +charsin_zero[8]; +}; + +structsockaddr{ +uInt8sa_len; +uInt8sa_family; +charsa_data[14]; +}; + +#defineSOCK_STREAM1 +#defineSOCK_DGRAM2 + +#defineAF_INET2 +#definePF_INETAF_INET + +#defineIPPROTO_TCP6 +#defineIPPROTO_UDP17 + +#defineINADDR_ANY0 +#defineINADDR_BROADCAST0xffffffff + +intlwip_accept(ints,structsockaddr*addr,int*addrlen); +intlwip_bind(ints,structsockaddr*name,intnamelen); +intlwip_close(ints); +intlwip_connect(ints,structsockaddr*name,intnamelen); +intlwip_listen(ints,intbacklog); +intlwip_recv(ints,void*mem,intlen,unsignedintflags); +intlwip_read(ints,void*mem,intlen); +intlwip_recvfrom(ints,void*mem,intlen,unsignedintflags, +structsockaddr*from,int*fromlen); +intlwip_send(ints,void*dataptr,intsize,unsignedintflags); +intlwip_sendto(ints,void*dataptr,intsize,unsignedintflags, +structsockaddr*to,inttolen); +intlwip_socket(intdomain,inttype,intprotocol); +intlwip_write(ints,void*dataptr,intsize); + +#ifdefLWIP_COMPAT_SOCKETS +#defineaccept(a,b,c)lwip_accept(a,b,c) +#definebind(a,b,c)lwip_bind(a,b,c) +#defineclose(s)lwip_close(s) +#defineconnect(a,b,c)lwip_connect(a,b,c) +#definelisten(a,b)lwip_listen(a,b) +#definerecv(a,b,c,d)lwip_recv(a,b,c,d) +#defineread(a,b,c)lwip_read(a,b,c) +#definerecvfrom(a,b,c,d,e,f)lwip_recvfrom(a,b,c,d,e,f) +#definesend(a,b,c,d)lwip_send(a,b,c,d) +#definesendto(a,b,c,d,e,f)lwip_sendto(a,b,c,d,e,f) +#definesocket(a,b,c)lwip_socket(a,b,c) +#definewrite(a,b,c)lwip_write(a,b,c) +#endif/*LWIP_NO_COMPAT_SOCKETS*/ + +#endif/*__LWIP_SOCKETS_H__*/ + + + + + diff --git a/doc/xml/spinlock_8c.xml b/doc/xml/spinlock_8c.xml new file mode 100644 index 0000000..43e455f --- /dev/null +++ b/doc/xml/spinlock_8c.xml @@ -0,0 +1,381 @@ + + + + spinlock.c + ubixos/spinlock.h + ubixos/sched.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void spinLock + (spinLock_t *lock) + spinLock + + spinLock_t * + lock + + + + + + + + + sched_yield + spinTryLock + adjustCowCounter + cpuInfo + current_thread + devfs_makeNode + devfs_open + device_add + device_find + device_remove + fclose + fdcRead + fopen + freePage + getEmptyDesc + kernel_function + kfree + kmalloc + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + ne2kAllocBuffer + schedNewTask + smpInit + sys_thread_new + tty_print + ubixfs_cacheAdd + ubixfs_cacheFind + vmm_getFreeMallocPage + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmFindFreePage + vmmFreeProcessPages + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void + void spinLock_scheduler + (spinLock_t *lock) + spinLock_scheduler + + spinLock_t * + lock + + + + + + + + + spinTryLock + + + void + void spinLockInit + (spinLock_t *lock) + spinLockInit + + spinLock_t * + lock + + + + + + + + + SPIN_LOCK_INITIALIZER + + + int + int spinLockLocked + (spinLock_t *lock) + spinLockLocked + + spinLock_t * + lock + + + + + + + + + c_ap_boot + + + int + int spinTryLock + (spinLock_t *lock) + spinTryLock + + spinLock_t * + lock + + + + + + + + + keyboardHandler + sched + spinLock + spinLock_scheduler + + + void + void spinUnlock + (spinLock_t *lock) + spinUnlock + + spinLock_t * + lock + + + + + + + + + adjustCowCounter + cpuInfo + current_thread + devfs_makeNode + devfs_open + device_add + device_find + device_remove + fclose + fdcRead + fopen + freePage + getEmptyDesc + kernel_function + keyboardHandler + kfree + kmalloc + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + ne2kAllocBuffer + schedNewTask + smpInit + sys_thread_new + tty_print + ubixfs_cacheAdd + ubixfs_cacheFind + vmm_getFreeMallocPage + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmFindFreePage + vmmFreeProcessPages + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/spinlock.h> +#include<ubixos/sched.h> + +voidspinLockInit(spinLock_t*lock){ +*lock=SPIN_LOCK_INITIALIZER; +} + +voidspinUnlock(spinLock_t*lock){ +*lock=0x0; +/* +registerintunlocked; +asmvolatile( +"xchgl%0,%1" +:"=&r"(unlocked),"=m"(*lock):"0"(0) +); +*/ +} + +intspinTryLock(spinLock_t*lock){ +registerintlocked; +asmvolatile("xchgl%0,%1" +:"=&r"(locked),"=m"(*lock):"0"(1) +); +return(!locked); +} + +voidspinLock(spinLock_t*lock){ +while(!spinTryLock(lock)) +{ +while(*lock==1) +sched_yield(); +} +} + +voidspinLock_scheduler(spinLock_t*lock){ +while(!spinTryLock(lock)) +while(*lock==1); +} + + +intspinLockLocked(spinLock_t*lock){ +return(*lock!=0); +} + + +/*** +END +***/ + + + + + diff --git a/doc/xml/spinlock_8h.xml b/doc/xml/spinlock_8h.xml new file mode 100644 index 0000000..71c529f --- /dev/null +++ b/doc/xml/spinlock_8h.xml @@ -0,0 +1,487 @@ + + + + spinlock.h + ubixos/types.h + src/sys/devfs/devfs.c + src/sys/isa/atkbd.c + src/sys/isa/fdc.c + src/sys/isa/ne2k.c + src/sys/kernel/sched.c + src/sys/kernel/smp.c + src/sys/kernel/spinlock.c + src/sys/kernel/syscall_new.c + src/sys/kernel/tty.c + src/sys/kernel/ubthread.c + src/sys/kmods/kmod.c + src/sys/lib/kmalloc.c + src/sys/mpi/system.c + src/sys/net/net/sys_arch.c + src/sys/sys/device.c + src/sys/sys/video.c + src/sys/ubixfs/dirCache.c + src/sys/vfs/file.c + src/sys/vmm/copyvirtualspace.c + src/sys/vmm/getfreepage.c + src/sys/vmm/getfreevirtualpage.c + src/sys/vmm/pagefault.c + src/sys/vmm/paging.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SPIN_LOCK_INITIALIZER + 0 + + + + + + + + spinLockInit + + + + + int + typedef volatile int spinLock_t + + spinLock_t + + + + + + + + + + + + void + void spinLock + (spinLock_t *) + spinLock + + spinLock_t * + + + + + + + + + sched_yield + spinTryLock + adjustCowCounter + cpuInfo + current_thread + devfs_makeNode + devfs_open + device_add + device_find + device_remove + fclose + fdcRead + fopen + freePage + getEmptyDesc + kernel_function + kfree + kmalloc + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + ne2kAllocBuffer + schedNewTask + smpInit + sys_thread_new + tty_print + ubixfs_cacheAdd + ubixfs_cacheFind + vmm_getFreeMallocPage + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmFindFreePage + vmmFreeProcessPages + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void + void spinLock_scheduler + (spinLock_t *) + spinLock_scheduler + + spinLock_t * + + + + + + + + + spinTryLock + + + void + void spinLockInit + (spinLock_t *) + spinLockInit + + spinLock_t * + + + + + + + + + SPIN_LOCK_INITIALIZER + + + int + int spinLockLocked + (spinLock_t *) + spinLockLocked + + spinLock_t * + + + + + + + + + c_ap_boot + + + int + int spinTryLock + (spinLock_t *) + spinTryLock + + spinLock_t * + + + + + + + + + keyboardHandler + sched + spinLock + spinLock_scheduler + + + void + void spinUnlock + (spinLock_t *) + spinUnlock + + spinLock_t * + + + + + + + + + adjustCowCounter + cpuInfo + current_thread + devfs_makeNode + devfs_open + device_add + device_find + device_remove + fclose + fdcRead + fopen + freePage + getEmptyDesc + kernel_function + keyboardHandler + kfree + kmalloc + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + ne2kAllocBuffer + schedNewTask + smpInit + sys_thread_new + tty_print + ubixfs_cacheAdd + ubixfs_cacheFind + vmm_getFreeMallocPage + vmm_pageFault + vmm_remapPage + vmmCopyVirtualSpace + vmmFindFreePage + vmmFreeProcessPages + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + + + spinLock_t + spinLock_t Master + + Master + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SPINLOCK_H +#define_SPINLOCK_H + +#include<ubixos/types.h> + +#defineSPIN_LOCK_INITIALIZER0 + +typedefvolatileintspinLock_t; + +externspinLock_tMaster; + +voidspinLockInit(spinLock_t*); +voidspinUnlock(spinLock_t*); +intspinTryLock(spinLock_t*); +voidspinLock(spinLock_t*); + +voidspinLock_scheduler(spinLock_t*);/*Onlyusethisspinlockinthesched.*/ + +intspinLockLocked(spinLock_t*); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/sqrt_8c.xml b/doc/xml/sqrt_8c.xml new file mode 100644 index 0000000..c8636a1 --- /dev/null +++ b/doc/xml/sqrt_8c.xml @@ -0,0 +1,88 @@ + + + + sqrt.c + + + double + double sqrt + (double x) + sqrt + + double + x + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +doublesqrt(doublex){ +return(x);/*QuickHack*/ +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:13reddawg +nomessage + +Revision1.22004/05/1903:46:32reddawg +AFewQuickHacksToMakeThingsWork + +Revision1.1.1.12004/04/1512:07:11reddawg +UbixOSv1.0 + +Revision1.22004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/start_8S.xml b/doc/xml/start_8S.xml new file mode 100644 index 0000000..e2b1e9a --- /dev/null +++ b/doc/xml/start_8S.xml @@ -0,0 +1,387 @@ + + + + start.S + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax cld rep stosb + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax cld rep stosb lgdtl + (loadGDT) mov $0x10 + lgdtl + + loadGDT + + + + + + + + + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx movl + (__bss_start) + movl + + __bss_start + + + + + + + + + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl movl + (_end) + movl + + _end + + + + + + + + + + + + + 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 + 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 $kStack + + $kStack + + + + + + + + + + globl _start text code32 + globl _start text code32 _start + + _start + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + 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 + 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 eax + + eax + + + + + + + + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax cld rep stosb eax mov + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax cld rep stosb eax mov eax + + eax + + + + + + + + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl ecx xorl eax + + eax + + + + + + + + + + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl + globl _start text code32 x472 pushl ebp movl ebp pushl x00000002 popfl ecx edi subl edi + + edi + + + + + + + + + + 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 + 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 esp + + esp + + + + + + + + + + globl _start text code32 x472 pushl ebp movl + globl _start text code32 x472 pushl ebp movl esp + + esp + + + + + + + + + + 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 ax ltr ax ljmp $start_next + 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 ax ltr ax ljmp $start_next start_next + + start_next + + + + + + + + + + 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 ax ltr ax ljmp + 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 ax ltr ax ljmp x08 + + x08 + + + + + + + + + + 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 + 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 x18 + + x18 + + + + + + + + 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 + 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 x20 + + x20 + + + + + + + + clearScreen + cpuInfo + floppyIsrhndlr + hdRead + kprint + lncInt + ne2k_init + seek + tty_print + + + 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 + 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 x2000 + + x2000 + + + + + + + + biosCall + kmain + ubthread_create + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +.globl_start +.text +.code32 +_start: +movw$0x1234,0x472 +pushl%ebp +movl%esp,%ebp +pushl$0x00000002 +popfl +/*CleartheBSS*/ +movl$(_end),%ecx +movl$(__bss_start),%edi +subl%edi,%ecx +xorl%eax,%eax +cld +rep +stosb + +/*LoadGDT*/ +lgdtl(loadGDT) +mov$0x10,%eax +mov%eax,%ds +mov%eax,%es +mov%eax,%fs +mov%eax,%gs +mov%eax,%ss +mov$kStack,%eax +addl$0x2000,%eax +mov%esp,%edx +mov%eax,%esp +mov%eax,%ebp +mov$0x18,%ax +lldt%ax +mov$0x20,%ax +ltr%ax +ljmp$0x08,$start_next +start_next: +push8(%edx) +callkmain + +.data +.commkStack,0x2000 + +/*** +END +***/ + + + + diff --git a/doc/xml/static_8c.xml b/doc/xml/static_8c.xml new file mode 100644 index 0000000..4c31224 --- /dev/null +++ b/doc/xml/static_8c.xml @@ -0,0 +1,106 @@ + + + + static.c + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int static_constructors + (void) + static_constructors + + void + + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<lib/kprintf.h> + +intstatic_constructors(void){ +externvoid(*__ctor_list)(); +void(**l_ctor)()=&__ctor_list; +intl_ctorCount=*(int*)l_ctor; + +//kprintf("Callingstaticconstructors\n"); + +l_ctor++; +while(l_ctorCount){ +(*l_ctor)(); +l_ctorCount--; +l_ctor++; +} +return(0x0); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/static_8h.xml b/doc/xml/static_8h.xml new file mode 100644 index 0000000..75d55b7 --- /dev/null +++ b/doc/xml/static_8h.xml @@ -0,0 +1,56 @@ + + + + static.h + src/sys/include/ubixos/init.h + + + + + + + + + + + + + + + + + + + + + int + int static_constructors + (void) + static_constructors + + void + + + + + + + + + + + + + + + +#ifndef_UBIXOS_STATIC_H +#define_UBIXOS_STATIC_H + +intstatic_constructors(void); + +#endif + + + + diff --git a/doc/xml/stats_8h.xml b/doc/xml/stats_8h.xml new file mode 100644 index 0000000..4afae69 --- /dev/null +++ b/doc/xml/stats_8h.xml @@ -0,0 +1,225 @@ + + + + stats.h + net/opt.h + net/arch/cc.h + net/memp.h + src/sys/net/net/bot.c + src/sys/net/net/shell.c + src/sys/net/net/sys_arch.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void stats_init + (void) + stats_init + + void + + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_STATS_H__ +#define__LWIP_STATS_H__ + +#include"net/opt.h" +#include"net/arch/cc.h" + +#include"net/memp.h" + +#ifdefSTATS + +structstats_proto{ +uInt16xmit;/*Transmittedpackets.*/ +uInt16rexmit;/*Retransmittedpackets.*/ +uInt16recv;/*Receivedpackets.*/ +uInt16fw;/*Forwardedpackets.*/ +uInt16drop;/*Droppedpackets.*/ +uInt16chkerr;/*Checksumerror.*/ +uInt16lenerr;/*Invalidlengtherror.*/ +uInt16memerr;/*Outofmemoryerror.*/ +uInt16rterr;/*Routingerror.*/ +uInt16proterr;/*Protocolerror.*/ +uInt16opterr;/*Errorinoptions.*/ +uInt16err;/*Miscerror.*/ +uInt16cachehit; +}; + +structstats_mem{ +uInt16avail; +uInt16used; +uInt16max; +uInt16err; +uInt16reclaimed; +}; + +structstats_pbuf{ +uInt16avail; +uInt16used; +uInt16max; +uInt16err; +uInt16reclaimed; + +uInt16alloc_locked; +uInt16refresh_locked; +}; + +structstats_syselem{ +uInt16used; +uInt16max; +uInt16err; +}; + +structstats_sys{ +structstats_syselemsem; +structstats_syselemmbox; +}; + +structstats_{ +structstats_protolink; +structstats_protoip; +structstats_protoicmp; +structstats_protoudp; +structstats_prototcp; +structstats_pbufpbuf; +structstats_memmem; +structstats_memmemp[MEMP_MAX]; +structstats_syssys; +}; + +externstructstats_stats; + +#endif/*STATS*/ + +voidstats_init(void); +#endif/*__LWIP_STATS_H__*/ + + + + + + + + diff --git a/doc/xml/stdarg_8h.xml b/doc/xml/stdarg_8h.xml new file mode 100644 index 0000000..9c104cd --- /dev/null +++ b/doc/xml/stdarg_8h.xml @@ -0,0 +1,214 @@ + + + + stdarg.h + src/sys/kernel/kpanic.c + src/sys/lib/kprintf.c + src/sys/lib/vsprintf.c + + + + + + + + + + + + + + + + + + + + + + + + + + + vaArg + ap + type + ((ap)[0] += \ + ((sizeof(type) + sizeof(int) - 1) & ~(sizeof(int) - 1)), \ + (*(type *) ((ap)[0] \ + - ((sizeof(type) + sizeof(int) - 1) & ~(sizeof(int) - 1)) ))) + + + + + + + + vsprintf + + + vaEnd + ap + ((ap)[0] = 0, (void) 0) + + + + + + + + kpanic + kprintf + sprintf + + + vaStart + ap + parm + ((ap)[0] = (char *) &parm \ + + ((sizeof(parm) + sizeof(int) - 1) & ~(sizeof(int) - 1)), (void) 0) + + + + + + + + kpanic + kprintf + sprintf + + + + + char * + typedef char* vaList[1] + [1] + vaList + + + + + + + + + + + + int + int vsprintf + (char *buf, const char *fmt, vaList args) + vsprintf + + char * + buf + + + const char * + fmt + + + vaList + args + + + + + + + + + is_digit + LEFT + number + PLUS + SIGN + skip_atoi + SMALL + SPACE + SPECIAL + strlen + vaArg + ZEROPAD + kpanic + kprintf + sprintf + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_STDARG_H +#define_STDARG_H + +typedefchar*vaList[1]; + +#definevaStart(ap,parm)((ap)[0]=(char*)&parm\ ++((sizeof(parm)+sizeof(int)-1)&~(sizeof(int)-1)),(void)0) + +#definevaArg(ap,type)((ap)[0]+=\ +((sizeof(type)+sizeof(int)-1)&~(sizeof(int)-1)),\ +(*(type*)((ap)[0]\ +-((sizeof(type)+sizeof(int)-1)&~(sizeof(int)-1))))) + +#definevaEnd(ap)((ap)[0]=0,(void)0) + + +intvsprintf(char*buf,constchar*fmt,vaListargs); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:38reddawg +nomessage + +Revision1.22004/05/2115:22:35reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/string_8c.xml b/doc/xml/string_8c.xml new file mode 100644 index 0000000..07392c9 --- /dev/null +++ b/doc/xml/string_8c.xml @@ -0,0 +1,434 @@ + + + + string.c + lib/string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int memcmp + (const void *dst, const void *src, size_t length) + memcmp + + const void * + dst + + + const void * + src + + + size_t + length + + + + + + + + + + + void * + void* memcpyold + (const void *dst, const void *src, size_t length) + memcpyold + + const void * + dst + + + const void * + src + + + size_t + length + + + + + + + + + + + int + int strcmp + (const char *str1, const char *str2) + strcmp + + const char * + str1 + + + const char * + str2 + + + + + + + + + + + char * + char* strcpy + (char *dst, const char *src) + strcpy + + char * + dst + + + const char * + src + + + + + + + + + main + ubixfs_cacheNew + UbixFS::vfs_format + + + int + int strlen + (const char *string) + strlen + + const char * + string + + + + + + + + + + + int + int strncmp + (const char *a, const char *b, size_t c) + strncmp + + const char * + a + + + const char * + b + + + size_t + c + + + + + + + + + + + void + void strncpy + (char *dest, const char *src, size_t size) + strncpy + + char * + dest + + + const char * + src + + + size_t + size + + + + + + + + + bTree::bTree + bTree::Insert + bTree::insertNode + UbixFS::mknod + bTree::splitNode + UbixFS::vfs_mkdir + + + char * + char* strstr + (const char *s, char *find) + strstr + + const char * + s + + + char * + find + + + + + + + + + NULL + strlen + strncmp + fopen + sysChDir + sysMkDir + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<lib/string.h> + +char* +strcpy(char*dst,constchar*src){ +char*tmp=dst; +do{ +*dst=*src; +dst++; +}while(*src++!='\0'); +returntmp; +}/*strcpy*/ + +intstrcmp(constchar*str1,constchar*str2){ +while((*str1==*str2)&&(*str1!=0x0)&&(*str2!=0x0)){ +str1++; +str2++; +} +if(*str1==*str2){ +return(0); +} +elseif(*str1>*str2){ +return(1); +} +else{ +return(-1); +} +} + +intstrncmp(constchar*a,constchar*b,size_tc){ +inti=0; +while(i<c){ +if((a[i]!=b[i])||(a[i]=='\0')||(b[i]=='\0')) +returna[i]-b[i]; +i++; +} +return0; +} + + + +void*memcpyold(constvoid*dst,constvoid*src,size_tlength){ +//size_tx=length>>2; +//size_ty=length;//&0xf; +size_ti; +/* +for(i=0;i<x;i++){ +((unsignedlong*)dst)[i]=((unsignedlong*)src)[i]; +} +*/ +/* +for(i=0;i<y;i++){ +((char*)dst)[length-y+i]=((char*)src)[length-y+i]; +} +*/ +for(i=0x0;i<length;i++) +((char*)dst)[i]=((char*)src)[i]; + +return((void*)dst); +} + + +intstrlen(constchar*string){ +inti=0; + +while(1){ +if(string[i]=='\0') +returni; +i++; +} +return0; +} + +intmemcmp(constvoid*dst,constvoid*src,size_tlength) +{ +size_tx=length>>2; +size_ty=length&0xf; +size_ti; + +for(i=0;i<x;i++) +{ +if(((unsignedlong*)dst)[i]>((unsignedlong*)src)[i]) +return1; +if(((unsignedlong*)dst)[i]<((unsignedlong*)src)[i]) +return-1; +} + +for(i=0;i<y;i++) +{ +if(((char*)dst)[length-y+i]>((char*)src)[length-y+i]) +return1; +if(((char*)dst)[length-y+i]<((char*)src)[length-y+i]) +return-1; +} + +return0; +} + +voidstrncpy(char*dest,constchar*src,size_tsize) +{ +if(size==0) +return; +do +{ +*dest=*src; +dest++;src++; +size--; +} +while(('\0'!=*(src-1))&&(size)); +} + +char*strstr(constchar*s,char*find){ +charc,sc; +size_tlen; + +if((c=*find++)!=0){ +len=strlen(find); +do{ +do{ +if((sc=*s++)==0) +return(NULL); +}while(sc!=c); +}while(strncmp(s,find,len)!=0); +s--; +} +return((char*)s); +} + + +/*** +$Log$ +Revision1.22006/12/0514:10:21reddawg +WorkignDistro + +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:13reddawg +nomessage + +Revision1.62004/07/2815:05:43reddawg +Major: +Pagesnowhavestrictsecurityenforcement. +Manynulldereferenceshavebeenresolved. +Whenappsloadedpermissionssetforpagesrwandro + +Revision1.52004/07/2018:42:41flameshadow +add:strcpy() +chg:modifieddirCache.ctousestrcpy() + +Revision1.42004/07/0523:06:32reddawg +Fixens + +Revision1.32004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.22004/05/1914:40:58reddawg +Cleanedupsomewarningfromleavingouttypedefs + +Revision1.1.1.12004/04/1512:07:11reddawg +UbixOSv1.0 + +Revision1.52004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/string_8h.xml b/doc/xml/string_8h.xml new file mode 100644 index 0000000..f7660bd --- /dev/null +++ b/doc/xml/string_8h.xml @@ -0,0 +1,429 @@ + + + + string.h + ubixos/types.h + src/sys/isa/ne2k.c + src/sys/kernel/fork.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/ld.c + src/sys/kernel/sched.c + src/sys/kernel/systemtask.c + src/sys/kernel/tty.c + src/sys/kernel/vitals.c + src/sys/kmods/kmod.c + src/sys/lib/kmalloc.c + src/sys/lib/bcopy.c + src/sys/lib/memset.c + src/sys/lib/net.c + src/sys/net/net/bot.c + src/sys/net/net/shell.c + src/sys/pci/hd.c + src/sys/sys/idt.c + src/sys/ubixfsv2/btree.cpp + src/sys/ubixfsv2/ramdrive.cpp + src/sys/ubixfsv2/ubixfs.cpp + src/sys/vmm/copyvirtualspace.c + src/sys/vmm/paging.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void * + void* memcpy + (void *dst, const void *src, size_t length) + memcpy + + void * + dst + + + const void * + src + + + size_t + length + + + + + + + + + + + void * + void* memset + (void *dst, int c, size_t length) + memset + + void * + dst + + + int + c + + + size_t + length + + + + + + + + + VAL + WIDEVAL + wmask + wsize + + + int + int sprintf + (char *str, const char *format,...) + sprintf + + char * + str + + + const char * + format + + + ... + + + + + + + + + vaEnd + vaStart + vsprintf + + + int + int strcmp + (const char *, const char *) + strcmp + + const char * + + + const char * + + + + + + + + + + + int + int strlen + (const char *string) + strlen + + const char * + string + + + + + + + + + + + long + long strtol + (const char *__restrict nptr, char **__restrict endptr, int base) + strtol + + const char *__restrict + nptr + + + char **__restrict + endptr + + + int + base + + + + + + + + + LONG_MAX + LONG_MIN + NULL + inet_aton + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_STRING_H +#define_STRING_H + +#include<ubixos/types.h> + +void*memcpy(void*dst,constvoid*src,size_tlength); +void*memset(void*dst,intc,size_tlength); +intstrlen(constchar*string); +intstrcmp(constchar*,constchar*); + +intsprintf(char*str,constchar*format,...); + +longstrtol(constchar*__restrictnptr,char**__restrictendptr,intbase); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:36reddawg +Removed + +Revision1.1.1.12005/09/2617:23:38reddawg +nomessage + +Revision1.52004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.42004/07/0523:06:32reddawg +Fixens + +Revision1.32004/06/0413:29:56reddawg +libc:modifiedmkdir();interface +kpanic:kPanic();nowsayskPanic:%s +system:nowrebootswhenreceivesmessageforreboot +alsowhencommandstartsdeisreceivedbysystemtheSTDisstarted + +Revision1.22004/05/2115:22:35reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/strtok_8c.xml b/doc/xml/strtok_8c.xml new file mode 100644 index 0000000..053fe8c --- /dev/null +++ b/doc/xml/strtok_8c.xml @@ -0,0 +1,197 @@ + + + + strtok.c + lib/string.h + ubixos/types.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + char * + char* strtok + (char *s, const char *delim) + strtok + + char * + s + + + const char * + delim + + + + + + + + + strtok_r + fopen + sysMkDir + unlink + + + char * + char* strtok_r + (char *s, const char *delim, char **last) + strtok_r + + char * + s + + + const char * + delim + + + char ** + last + + + + + + + + + NULL + strtok + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<lib/string.h> +#include<ubixos/types.h> + +char*strtok_r(char*s,constchar*delim,char**last){ +char*spanp; +intc,sc; +char*tok; + +if((s==NULL)&&((s=*last)==NULL)){ +return(NULL); +} + +cont: +c=*s++; +for(spanp=(char*)delim;(sc=*spanp++)!=0;){ +if(c==sc){ +gotocont; +} +} +if(c==0){ +*last=NULL; +return(NULL); +} +tok=s-1; + +for(;;){ +c=*s++; +spanp=(char*)delim; +do{ +if((sc=*spanp++)==c){ +if(c==0){ +s=NULL; +} +else{ +char*w=s-1; +*w='\0'; +} +*last=s; +return(tok); +} +}while(sc!=0); +} +} + +char*strtok(char*s,constchar*delim){ +staticchar*last; +return(strtok_r(s,delim,&last)); +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:13reddawg +nomessage + +Revision1.22004/05/1903:46:32reddawg +AFewQuickHacksToMakeThingsWork + +Revision1.1.1.12004/04/1512:07:11reddawg +UbixOSv1.0 + +Revision1.22004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + + diff --git a/doc/xml/strtol_8c.xml b/doc/xml/strtol_8c.xml new file mode 100644 index 0000000..ef445d5 --- /dev/null +++ b/doc/xml/strtol_8c.xml @@ -0,0 +1,198 @@ + + + + strtol.c + sys/cdefs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + LONG_MAX + 0x7fffffffL + + + + + + + + strtol + + + LONG_MIN + (-0x7fffffffL - 1) + + + + + + + + strtol + + + + + long + long strtol + (const char *__restrict nptr, char **__restrict endptr, int base) + strtol + + const char *__restrict + nptr + + + char **__restrict + endptr + + + int + base + + + + + + + + + LONG_MAX + LONG_MIN + NULL + inet_aton + + + + + + + +#include<sys/cdefs.h> +//#include<limits.h> +//#include<ctype.h> +//#include<stdlib.h> + +#defineLONG_MIN(-0x7fffffffL-1) +#defineLONG_MAX0x7fffffffL + + + +long +strtol(constchar*__restrictnptr,char**__restrictendptr,intbase) +{ +constchar*s; +unsignedlongacc; +charc=0x0;/*toremovewarning*/ +unsignedlongcutoff; +intneg,any,cutlim; + +/* +*Skipwhitespaceandpickupleading+/-signifany. +*Ifbaseis0,allow0xforhexand0foroctal,else +*assumedecimal;ifbaseisalready16,allow0x. +*/ +s=nptr; +/* +do{ +c=*s++; +}while(isspace((unsignedchar)c)); +*/ +if(c=='-'){ +neg=1; +c=*s++; +}else{ +neg=0; +if(c=='+') +c=*s++; +} +if((base==0||base==16)&& +c=='0'&&(*s=='x'||*s=='X')){ +c=s[1]; +s+=2; +base=16; +} +if(base==0) +base=c=='0'?8:10; +acc=any=0; +if(base<2||base>36) +gotonoconv; + +/* +*Computethecutoffvaluebetweenlegalnumbersandillegal +*numbers.Thatisthelargestlegalvalue,dividedbythe +*base.Aninputnumberthatisgreaterthanthisvalue,if +*followedbyalegalinputcharacter,istoobig.Onethat +*isequaltothisvaluemaybevalidornot;thelimit +*betweenvalidandinvalidnumbersisthenbasedonthelast +*digit.Forinstance,iftherangeforlongsis +*[-2147483648..2147483647]andtheinputbaseis10, +*cutoffwillbesetto214748364andcutlimtoeither +*7(neg==0)or8(neg==1),meaningthatifwehaveaccumulated +*avalue>214748364,orequalbutthenextdigitis>7(or8), +*thenumberistoobig,andwewillreturnarangeerror. +* +*Set'any'ifany`digits'consumed;makeitnegativetoindicate +*overflow. +*/ +cutoff=neg?(unsignedlong)-(LONG_MIN+LONG_MAX)+LONG_MAX +:LONG_MAX; +cutlim=cutoff%base; +cutoff/=base; +for(;;c=*s++){ +if(c>='0'&&c<='9') +c-='0'; +elseif(c>='A'&&c<='Z') +c-='A'-10; +elseif(c>='a'&&c<='z') +c-='a'-10; +else +break; +if(c>=base) +break; +if(any<0||acc>cutoff||(acc==cutoff&&c>cutlim)) +any=-1; +else{ +any=1; +acc*=base; +acc+=c; +} +} +if(any<0){ +acc=neg?LONG_MIN:LONG_MAX; +//errno=ERANGE; +}elseif(!any){ +noconv: +//errno=EINVAL; +cutoff=0x0;//UBU +}elseif(neg) +acc=-acc; +if(endptr!=NULL) +*endptr=(char*)(any?s-1:nptr); +return(acc); +} + + + + diff --git a/doc/xml/structDrvGeom.xml b/doc/xml/structDrvGeom.xml new file mode 100644 index 0000000..a15cda2 --- /dev/null +++ b/doc/xml/structDrvGeom.xml @@ -0,0 +1,61 @@ + + + + DrvGeom + fdc.h + + + Int8 + Int8 DrvGeom::heads + + heads + + + + + + + + block2Hts + + + Int8 + Int8 DrvGeom::spt + + spt + + + + + + + + block2Hts + fdcRw + + + Int8 + Int8 DrvGeom::tracks + + tracks + + + + + + + + + + + + + + + + DrvGeomheads + DrvGeomspt + DrvGeomtracks + + + diff --git a/doc/xml/structTMode__Rec.xml b/doc/xml/structTMode__Rec.xml new file mode 100644 index 0000000..52e64f5 --- /dev/null +++ b/doc/xml/structTMode__Rec.xml @@ -0,0 +1,577 @@ + + + + TMode_Rec + ogDisplay_VESA.h + + + uInt8 paddington[461] + uInt8 paddington [461] TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 OffScreenMemSize + uInt16 OffScreenMemSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + void *OffScreenMemOffset + void* OffScreenMemOffset TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 physBasePtr + uInt32 physBasePtr TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 DirectColourMode + uInt8 DirectColourMode TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 AlphaFieldPosition + uInt8 AlphaFieldPosition TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 AlphaMaskSize + uInt8 AlphaMaskSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 BlueFieldPosition + uInt8 BlueFieldPosition TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 BlueMaskSize + uInt8 BlueMaskSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 GreenFieldPosition + uInt8 GreenFieldPosition TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 GreenMaskSize + uInt8 GreenMaskSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 RedFieldPosition + uInt8 RedFieldPosition TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 RedMaskSize + uInt8 RedMaskSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 Reserved + uInt8 Reserved TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 NumOfImagePages + uInt8 NumOfImagePages TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 BankSize + uInt8 BankSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 MemoryModel + uInt8 MemoryModel TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 NumberOfBanks + uInt8 NumberOfBanks TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 BitsPerPixel + uInt8 BitsPerPixel TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 NumBitPlanes + uInt8 NumBitPlanes TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 CharHeight + uInt8 CharHeight TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 CharWidth + uInt8 CharWidth TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 yRes + uInt16 yRes TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 xRes + uInt16 xRes TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 BytesPerLine + uInt16 BytesPerLine TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + void *BankSwitch + void* BankSwitch TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 WindowBSeg + uInt16 WindowBSeg TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 WindowASeg + uInt16 WindowASeg TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 WindowSize + uInt16 WindowSize TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 Granularity + uInt16 Granularity TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 WindowBFlags + uInt8 WindowBFlags TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 WindowAFlags + uInt8 WindowAFlags TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 ModeAttributes + uInt16 ModeAttributes TMode_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + TMode_Rec__attribute__ + + + diff --git a/doc/xml/structTVESA__Rec.xml b/doc/xml/structTVESA__Rec.xml new file mode 100644 index 0000000..b9119e2 --- /dev/null +++ b/doc/xml/structTVESA__Rec.xml @@ -0,0 +1,220 @@ + + + + TVESA_Rec + ogDisplay_VESA.h + + + uInt8 paddington[474] + uInt8 paddington [474] TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMProductRevPtr + uInt32 OEMProductRevPtr TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMProductNamePtr + uInt32 OEMProductNamePtr TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMVendorNamePtr + uInt32 OEMVendorNamePtr TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 OEMSoftwareRev + uInt16 OEMSoftwareRev TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 TotalMemory + uInt16 TotalMemory TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 VideoModePtr + uInt32 VideoModePtr TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 Capabilities + uInt32 Capabilities TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMStringPtr + uInt32 OEMStringPtr TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 majVersion + uInt8 majVersion TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 minVersion + uInt8 minVersion TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + char VBESignature[4] + char VBESignature [4] TVESA_Rec::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + TVESA_Rec__attribute__ + + + diff --git a/doc/xml/struct__UbixUser.xml b/doc/xml/struct__UbixUser.xml new file mode 100644 index 0000000..fb763a1 --- /dev/null +++ b/doc/xml/struct__UbixUser.xml @@ -0,0 +1,103 @@ + + + + _UbixUser + + + int + int _UbixUser::gid + + gid + + + + + + + + sysAuth + + + char * + char* _UbixUser::home + + home + + + + + + + + + + char * + char* _UbixUser::password + + password + + + + + + + + sysAuth + + + char * + char* _UbixUser::shell + + shell + + + + + + + + + + int + int _UbixUser::uid + + uid + + + + + + + + sysAuth + + + char * + char* _UbixUser::username + + username + + + + + + + + sysAuth + + + + + + + + + _UbixUsergid + _UbixUserhome + _UbixUserpassword + _UbixUsershell + _UbixUseruid + _UbixUserusername + + + diff --git a/doc/xml/struct____sigset.xml b/doc/xml/struct____sigset.xml new file mode 100644 index 0000000..f544c8f --- /dev/null +++ b/doc/xml/struct____sigset.xml @@ -0,0 +1,30 @@ + + + + __sigset + signal.h + + + __uint32_t + __uint32_t __sigset::__bits[_SIG_WORDS] + [_SIG_WORDS] + __bits + + + + + + + + + + + + + + + + __sigset__bits + + + diff --git a/doc/xml/struct____timespec.xml b/doc/xml/struct____timespec.xml new file mode 100644 index 0000000..65f1524 --- /dev/null +++ b/doc/xml/struct____timespec.xml @@ -0,0 +1,44 @@ + + + + __timespec + kern_descrip.h + + + long + long __timespec::tv_nsec + + tv_nsec + + + + + + + + + + __time_t + __time_t __timespec::tv_sec + + tv_sec + + + + + + + + + + + + + + + + __timespectv_nsec + __timespectv_sec + + + diff --git a/doc/xml/struct__item__t.xml b/doc/xml/struct__item__t.xml new file mode 100644 index 0000000..90d85d8 --- /dev/null +++ b/doc/xml/struct__item__t.xml @@ -0,0 +1,69 @@ + + + + _item_t + lists.h + + + void * + void* _item_t::data + + data + + + + + + + + kmod_add + + + Item_t * + Item_t* _item_t::Next + + Next + + + + + + + + + + Item_t * + Item_t* _item_t::Previous + + Previous + + + + + + + + + + + + + + + + + + + Next +Previous + + + + + + _item_tdata + _item_tNext + _item_tPrevious + + + diff --git a/doc/xml/struct__list__t.xml b/doc/xml/struct__list__t.xml new file mode 100644 index 0000000..ade5552 --- /dev/null +++ b/doc/xml/struct__list__t.xml @@ -0,0 +1,62 @@ + + + + _list_t + lists.h + + + Item_t * + Item_t* _list_t::First + + First + + + + + + + + + + Item_t * + Item_t* _list_t::Last + + Last + + + + + + + + + + + + + + + + + + + Last +First + + + + + + + Next +Previous + + + + + + _list_tFirst + _list_tLast + + + diff --git a/doc/xml/structapi__msg.xml b/doc/xml/structapi__msg.xml new file mode 100644 index 0000000..6980466 --- /dev/null +++ b/doc/xml/structapi__msg.xml @@ -0,0 +1,178 @@ + + + + api_msg + api_msg.h + + + api_msg_msg + struct api_msg_msg api_msg::msg + + msg + + + + + + + + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + + + enum api_msg_type + enum api_msg_type api_msg::type + + type + + + + + + + + netconn_recv + + + + + + + + + + + + mutex +mail + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + remote_ip + + + next + + + + + + + recvmbox +acceptmbox +mbox + + + sem + + + udp + + + tcp + + + + + + + mbox + + + p + + + ipaddr + + + conn + + + + + + + mutex + + + cond + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + + msg + + + + + + api_msgmsg + api_msgtype + + + diff --git a/doc/xml/structapi__msg__msg.xml b/doc/xml/structapi__msg__msg.xml new file mode 100644 index 0000000..859c3a5 --- /dev/null +++ b/doc/xml/structapi__msg__msg.xml @@ -0,0 +1,344 @@ + + + + api_msg_msg + api_msg.h + + + api_msg_msg::@1::@2 + struct api_msg_msg::@1::@2 api_msg_msg::bc + + bc + + + + + + + + do_bind + do_connect + netconn_bind + netconn_connect + + + netconn * + struct netconn* api_msg_msg::conn + + conn + + + + + + + + do_accept + do_bind + do_close + do_connect + do_delconn + do_listen + do_recv + do_send + do_write + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + + + enum netconn_type + enum netconn_type api_msg_msg::conntype + + conntype + + + + + + + + + + unsigned char + unsigned char api_msg_msg::copy + + copy + + + + + + + + + + void * + void* api_msg_msg::dataptr + + dataptr + + + + + + + + + + ip_addr * + struct ip_addr* api_msg_msg::ipaddr + + ipaddr + + + + + + + + + + uInt16 + uInt16 api_msg_msg::len + + len + + + + + + + + do_recv + netconn_recv + + + sys_mbox_t + sys_mbox_t api_msg_msg::mbox + + mbox + + + + + + + + + + api_msg_msg::@1 + union api_msg_msg::@1 api_msg_msg::msg + + msg + + + + + + + + api_msg_input + api_msg_post + do_bind + do_connect + do_recv + do_send + do_write + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + + + pbuf * + struct pbuf* api_msg_msg::p + + p + + + + + + + + do_send + netconn_send + + + uInt16 + uInt16 api_msg_msg::port + + port + + + + + + + + + + api_msg_msg::@1::@3 + struct api_msg_msg::@1::@3 api_msg_msg::w + + w + + + + + + + + do_write + netconn_write + + + + + + + + + + + + mutex +mail + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + remote_ip + + + next + + + + + + + recvmbox +acceptmbox +mbox + + + sem + + + udp + + + tcp + + + + + + + mbox + + + p + + + ipaddr + + + conn + + + + + + + mutex + + + cond + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + api_msg_msgbc + api_msg_msgconn + api_msg_msgconntype + api_msg_msgcopy + api_msg_msgdataptr + api_msg_msgipaddr + api_msg_msglen + api_msg_msgmbox + api_msg_msgmsg + api_msg_msgp + api_msg_msgport + api_msg_msgw + + + diff --git a/doc/xml/structarp__entry.xml b/doc/xml/structarp__entry.xml new file mode 100644 index 0000000..13c01e6 --- /dev/null +++ b/doc/xml/structarp__entry.xml @@ -0,0 +1,82 @@ + + + + arp_entry + + + uInt8 + uInt8 arp_entry::ctime + + ctime + + + + + + + + add_arp_entry + + + eth_addr + struct eth_addr arp_entry::ethaddr + + ethaddr + + + + + + + + add_arp_entry + + + ip_addr + struct ip_addr arp_entry::ipaddr + + ipaddr + + + + + + + + add_arp_entry + arp_init + arp_tmr + + + + + + + + + + + + + + + + + + + + ethaddr + + + ipaddr + + + + + + arp_entryctime + arp_entryethaddr + arp_entryipaddr + + + diff --git a/doc/xml/structarp__hdr.xml b/doc/xml/structarp__hdr.xml new file mode 100644 index 0000000..e7a8d5a --- /dev/null +++ b/doc/xml/structarp__hdr.xml @@ -0,0 +1,177 @@ + + + + arp_hdr + + + + arp_hdr::PACK_STRUCT_FIELD + (struct ip_addr dipaddr) + PACK_STRUCT_FIELD + + struct ip_addr + dipaddr + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (struct eth_addr dhwaddr) + PACK_STRUCT_FIELD + + struct eth_addr + dhwaddr + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (struct ip_addr sipaddr) + PACK_STRUCT_FIELD + + struct ip_addr + sipaddr + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (struct eth_addr shwaddr) + PACK_STRUCT_FIELD + + struct eth_addr + shwaddr + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (uInt16 opcode) + PACK_STRUCT_FIELD + + uInt16 + opcode + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (uInt16 _hwlen_protolen) + PACK_STRUCT_FIELD + + uInt16 + _hwlen_protolen + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (uInt16 proto) + PACK_STRUCT_FIELD + + uInt16 + proto + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (uInt16 hwtype) + PACK_STRUCT_FIELD + + uInt16 + hwtype + + + + + + + + + + + + arp_hdr::PACK_STRUCT_FIELD + (struct eth_hdr ethhdr) + PACK_STRUCT_FIELD + + struct eth_hdr + ethhdr + + + + + + + + + + + + + + + + + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + arp_hdrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structarpcom.xml b/doc/xml/structarpcom.xml new file mode 100644 index 0000000..500962c --- /dev/null +++ b/doc/xml/structarpcom.xml @@ -0,0 +1,60 @@ + + + + arpcom + lnc.h + + + uInt8 + uInt8 arpcom::ac_enaddr[6] + [6] + ac_enaddr + + + + + + + + initLNC + lncAttach + + + int + int arpcom::ac_multicnt + + ac_multicnt + + + + + + + + + + void * + void* arpcom::ac_netgraph + + ac_netgraph + + + + + + + + + + + + + + + + arpcomac_enaddr + arpcomac_multicnt + arpcomac_netgraph + + + diff --git a/doc/xml/structbNode.xml b/doc/xml/structbNode.xml new file mode 100644 index 0000000..391791e --- /dev/null +++ b/doc/xml/structbNode.xml @@ -0,0 +1,220 @@ + + + + bNode + btree.h + + + char reserved[131] + char reserved [131] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + bool leaf + bool leaf bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 magic2 + uInt32 magic2 bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 childCount[B_MAX_KEYS+1] + uInt32 childCount [B_MAX_KEYS+1] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr tail[B_MAX_KEYS+1] + uPtr tail [B_MAX_KEYS+1] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr head[B_MAX_KEYS+1] + uPtr head [B_MAX_KEYS+1] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + bool present[B_MAX_KEYS+1] + bool present [B_MAX_KEYS+1] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + char keys[B_MAX_KEYS][B_MAX_NAME_LENGTH] + char keys [B_MAX_KEYS][B_MAX_NAME_LENGTH] bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt64 tag + uInt64 tag bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr parent + uPtr parent bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 used + uInt32 used bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 magic1 + uInt32 magic1 bNode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + bNode__attribute__ + + + diff --git a/doc/xml/structbTreeHeader.xml b/doc/xml/structbTreeHeader.xml new file mode 100644 index 0000000..c6dfbab --- /dev/null +++ b/doc/xml/structbTreeHeader.xml @@ -0,0 +1,124 @@ + + + + bTreeHeader + btreeheader.h + + + off_t + off_t bTreeHeader::firstDeleted + + firstDeleted + + + + + + + + bTree::bTree + bTree::Insert + bTree::Save + UbixFS::vfs_format + + + off_t + off_t bTreeHeader::firstNodeOffset + + firstNodeOffset + + + + + + + + bTree::bTree + bTree::Insert + bTree::Save + UbixFS::vfs_format + + + char + char bTreeHeader::paddington[4068] + [4068] + paddington + + + + + + + + + + uInt32 + uInt32 bTreeHeader::treeDepth + + treeDepth + + + + + + + + bTree::bTree + bTree::Info + bTree::Insert + bTree::splitNode + UbixFS::vfs_format + bTree::~bTree + + + uInt32 + uInt32 bTreeHeader::treeLeafCount + + treeLeafCount + + + + + + + + bTree::bTree + bTree::Info + bTree::Insert + UbixFS::vfs_format + bTree::~bTree + + + uInt32 + uInt32 bTreeHeader::treeWidth + + treeWidth + + + + + + + + bTree::bTree + bTree::Info + bTree::Insert + UbixFS::vfs_format + bTree::~bTree + + + + + + + + + bTreeHeaderfirstDeleted + bTreeHeaderfirstNodeOffset + bTreeHeaderpaddington + bTreeHeadertreeDepth + bTreeHeadertreeLeafCount + bTreeHeadertreeWidth + + + diff --git a/doc/xml/structblockAllocationTableEntry.xml b/doc/xml/structblockAllocationTableEntry.xml new file mode 100644 index 0000000..543a324 --- /dev/null +++ b/doc/xml/structblockAllocationTableEntry.xml @@ -0,0 +1,82 @@ + + + + blockAllocationTableEntry + ubixfs.h + + + long + long blockAllocationTableEntry::attributes + + attributes + + + + + + + + freeBlocks + getFreeBlocks + + + long + long blockAllocationTableEntry::nextBlock + + nextBlock + + + + + + + + freeBlocks + getFreeBlocks + ubixfs_loadData + writeFileByte + writeUbixFS + + + long + long blockAllocationTableEntry::realSector + + realSector + + + + + + + + ubixfs_loadData + ubixFSmkDir + writeUbixFS + + + long + long blockAllocationTableEntry::reserved + + reserved + + + + + + + + + + + + + + + + blockAllocationTableEntryattributes + blockAllocationTableEntrynextBlock + blockAllocationTableEntryrealSector + blockAllocationTableEntryreserved + + + diff --git a/doc/xml/structblockRun.xml b/doc/xml/structblockRun.xml new file mode 100644 index 0000000..eaf5199 --- /dev/null +++ b/doc/xml/structblockRun.xml @@ -0,0 +1,67 @@ + + + + blockRun + ubixfs.h + + + unsigned short len + unsigned short len blockRun::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + unsigned short start + unsigned short start blockRun::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int AG + int AG blockRun::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + blockRun__attribute__ + blockRun__attribute__ + blockRun__attribute__ + + + diff --git a/doc/xml/structbootSect.xml b/doc/xml/structbootSect.xml new file mode 100644 index 0000000..6cc29b7 --- /dev/null +++ b/doc/xml/structbootSect.xml @@ -0,0 +1,184 @@ + + + + bootSect + ubixfs.h + + + uInt + uInt bootSect::BytesPerSector + + BytesPerSector + + + + + + + + + + uInt8 + uInt8 bootSect::code[479] + [479] + code + + + + + + + + + + uInt16 + uInt16 bootSect::fsStart + + fsStart + + + + + + + + + + uInt8 + uInt8 bootSect::id[6] + [6] + id + + + + + + + + + + uInt8 + uInt8 bootSect::jmp[4] + [4] + jmp + + + + + + + + + + uInt32 + uInt32 bootSect::krnl_start + + krnl_start + + + + + + + + + + uInt + uInt bootSect::SectersPerTrack + + SectersPerTrack + + + + + + + + + + uInt16 + uInt16 bootSect::tmp + + tmp + + + + + + + + + + uInt16 + uInt16 bootSect::tmp2 + + tmp2 + + + + + + + + + + uInt + uInt bootSect::TotalHeads + + TotalHeads + + + + + + + + + + uInt32 + uInt32 bootSect::TotalSectors + + TotalSectors + + + + + + + + + + uInt16 + uInt16 bootSect::version + + version + + + + + + + + + + + + + + + + bootSectBytesPerSector + bootSectcode + bootSectfsStart + bootSectid + bootSectjmp + bootSectkrnl_start + bootSectSectersPerTrack + bootSecttmp + bootSecttmp2 + bootSectTotalHeads + bootSectTotalSectors + bootSectversion + + + diff --git a/doc/xml/structbsd__disklabel.xml b/doc/xml/structbsd__disklabel.xml new file mode 100644 index 0000000..51cb1ff --- /dev/null +++ b/doc/xml/structbsd__disklabel.xml @@ -0,0 +1,438 @@ + + + + bsd_disklabel + hd.h + bsd_disklabel::partition + + + u_int32_t + u_int32_t bsd_disklabel::d_acylinders + + d_acylinders + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_bbsize + + d_bbsize + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_checksum + + d_checksum + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_cylskew + + d_cylskew + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_drivedata[NDDATA] + [NDDATA] + d_drivedata + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_flags + + d_flags + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_headswitch + + d_headswitch + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_interleave + + d_interleave + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_magic + + d_magic + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_magic2 + + d_magic2 + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_ncylinders + + d_ncylinders + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_npartitions + + d_npartitions + + + + + + + + initHardDisk + + + u_int32_t + u_int32_t bsd_disklabel::d_nsectors + + d_nsectors + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_ntracks + + d_ntracks + + + + + + + + + + char + char bsd_disklabel::d_packname[16] + [16] + d_packname + + + + + + + + + + bsd_disklabel::partition + struct bsd_disklabel::partition bsd_disklabel::d_partitions[MAXPARTITIONS] + [MAXPARTITIONS] + d_partitions + + + + + + + + initHardDisk + + + u_int16_t + u_int16_t bsd_disklabel::d_rpm + + d_rpm + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_sbsize + + d_sbsize + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_secpercyl + + d_secpercyl + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_secperunit + + d_secperunit + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_secsize + + d_secsize + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_spare[NSPARE] + [NSPARE] + d_spare + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_sparespercyl + + d_sparespercyl + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_sparespertrack + + d_sparespertrack + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_subtype + + d_subtype + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_trackskew + + d_trackskew + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::d_trkseek + + d_trkseek + + + + + + + + + + u_int16_t + u_int16_t bsd_disklabel::d_type + + d_type + + + + + + + + + + char + char bsd_disklabel::d_typename[16] + [16] + d_typename + + + + + + + + + + + + + + + + + + + d_partitions + + + + + + + + + + bsd_disklabeld_acylinders + bsd_disklabeld_bbsize + bsd_disklabeld_checksum + bsd_disklabeld_cylskew + bsd_disklabeld_drivedata + bsd_disklabeld_flags + bsd_disklabeld_headswitch + bsd_disklabeld_interleave + bsd_disklabeld_magic + bsd_disklabeld_magic2 + bsd_disklabeld_ncylinders + bsd_disklabeld_npartitions + bsd_disklabeld_nsectors + bsd_disklabeld_ntracks + bsd_disklabeld_packname + bsd_disklabeld_partitions + bsd_disklabeld_rpm + bsd_disklabeld_sbsize + bsd_disklabeld_secpercyl + bsd_disklabeld_secperunit + bsd_disklabeld_secsize + bsd_disklabeld_spare + bsd_disklabeld_sparespercyl + bsd_disklabeld_sparespertrack + bsd_disklabeld_subtype + bsd_disklabeld_trackskew + bsd_disklabeld_trkseek + bsd_disklabeld_type + bsd_disklabeld_typename + + + diff --git a/doc/xml/structbsd__disklabel_1_1partition.xml b/doc/xml/structbsd__disklabel_1_1partition.xml new file mode 100644 index 0000000..ab15a9f --- /dev/null +++ b/doc/xml/structbsd__disklabel_1_1partition.xml @@ -0,0 +1,103 @@ + + + + bsd_disklabel::partition + hd.h + + + u_int16_t + u_int16_t bsd_disklabel::partition::p_cpg + + p_cpg + + + + + + + + + + u_int8_t + u_int8_t bsd_disklabel::partition::p_frag + + p_frag + + + + + + + + + + u_int32_t + u_int32_t bsd_disklabel::partition::p_fsize + + p_fsize + + + + + + + + + + u_int8_t + u_int8_t bsd_disklabel::partition::p_fstype + + p_fstype + + + + + + + + initHardDisk + + + u_int32_t + u_int32_t bsd_disklabel::partition::p_offset + + p_offset + + + + + + + + initHardDisk + + + u_int32_t + u_int32_t bsd_disklabel::partition::p_size + + p_size + + + + + + + + initHardDisk + + + + + + + + + bsd_disklabel::partitionp_cpg + bsd_disklabel::partitionp_frag + bsd_disklabel::partitionp_fsize + bsd_disklabel::partitionp_fstype + bsd_disklabel::partitionp_offset + bsd_disklabel::partitionp_size + + + diff --git a/doc/xml/structbuf.xml b/doc/xml/structbuf.xml new file mode 100644 index 0000000..2d52987 --- /dev/null +++ b/doc/xml/structbuf.xml @@ -0,0 +1,14 @@ + + + + buf + buf.h + + + + + + + + + diff --git a/doc/xml/structcacheNode.xml b/doc/xml/structcacheNode.xml new file mode 100644 index 0000000..c3eb025 --- /dev/null +++ b/doc/xml/structcacheNode.xml @@ -0,0 +1,256 @@ + + + + cacheNode + dirCache.h + + + uInt16 * + uInt16* cacheNode::attributes + + attributes + + + + + + + + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + int + int cacheNode::dirty + + dirty + + + + + + + + ubixfs_cacheNew + + + cacheNode * + struct cacheNode* cacheNode::fileListHead + + fileListHead + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + + + cacheNode * + struct cacheNode* cacheNode::fileListTail + + fileListTail + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + + + void * + void* cacheNode::info + + info + + + + + + + + openFileUbixFS + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + char * + char* cacheNode::name + + name + + + + + + + + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + + + cacheNode * + struct cacheNode* cacheNode::next + + next + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheDelete + ubixfs_cacheFind + ubixfs_cacheNew + + + cacheNode * + struct cacheNode* cacheNode::parent + + parent + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + + + uInt16 * + uInt16* cacheNode::permissions + + permissions + + + + + + + + openFileUbixFS + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + int + int cacheNode::present + + present + + + + + + + + openFileUbixFS + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + cacheNode * + struct cacheNode* cacheNode::prev + + prev + + + + + + + + ubixfs_cacheAdd + ubixfs_cacheFind + ubixfs_cacheNew + + + int * + int* cacheNode::size + + size + + + + + + + + openFileUbixFS + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + uInt32 * + uInt32* cacheNode::startCluster + + startCluster + + + + + + + + openFileUbixFS + ubixfs_cacheFind + ubixfs_cacheNew + ubixfs_initialize + + + + + + + + + + + + prev +next +parent +fileListTail +fileListHead + + + + + + cacheNodeattributes + cacheNodedirty + cacheNodefileListHead + cacheNodefileListTail + cacheNodeinfo + cacheNodename + cacheNodenext + cacheNodeparent + cacheNodepermissions + cacheNodepresent + cacheNodeprev + cacheNodesize + cacheNodestartCluster + + + diff --git a/doc/xml/structclose__args.xml b/doc/xml/structclose__args.xml new file mode 100644 index 0000000..aec2eb6 --- /dev/null +++ b/doc/xml/structclose__args.xml @@ -0,0 +1,59 @@ + + + + close_args + sysproto.h + + + int + int close_args::fd + + fd + + + + + + + + close + + + char + char close_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char close_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + + + + + + + close_argsfd + close_argsfd_l_ + close_argsfd_r_ + + + diff --git a/doc/xml/structconfadd.xml b/doc/xml/structconfadd.xml new file mode 100644 index 0000000..eeed9ed --- /dev/null +++ b/doc/xml/structconfadd.xml @@ -0,0 +1,108 @@ + + + + confadd + pci.h + + + uInt8 + uInt8 confadd::bus + + bus + 8 + + + + + + + + pci_init + + + uInt8 + uInt8 confadd::dev + + dev + 5 + + + + + + + + + + uInt8 + uInt8 confadd::enable + + enable + 1 + + + + + + + + + + uInt8 + uInt8 confadd::func + + func + 3 + + + + + + + + pci_init + + + uInt8 + uInt8 confadd::reg + + reg + 8 + + + + + + + + + + uInt8 + uInt8 confadd::rsvd + + rsvd + 7 + + + + + + + + + + + + + + + + confaddbus + confadddev + confaddenable + confaddfunc + confaddreg + confaddrsvd + + + diff --git a/doc/xml/structcpuinfo__t.xml b/doc/xml/structcpuinfo__t.xml new file mode 100644 index 0000000..fb9c25a --- /dev/null +++ b/doc/xml/structcpuinfo__t.xml @@ -0,0 +1,152 @@ + + + + cpuinfo_t + smp.h + + + uInt8 + uInt8 cpuinfo_t::apic_id + + apic_id + + + + + + + + cpuInfo + + + uInt8 + uInt8 cpuinfo_t::apic_ver + + apic_ver + + + + + + + + cpuInfo + + + char + char cpuinfo_t::brand[49] + [49] + brand + + + + + + + + cpuInfo + + + uInt32 + uInt32 cpuinfo_t::feature + + feature + + + + + + + + cpuInfo + + + uInt8 + uInt8 cpuinfo_t::id + + id + + + + + + + + cpuInfo + kernel_function + + + char + char cpuinfo_t::ident[17] + [17] + ident + + + + + + + + cpuInfo + + + uInt32 + uInt32 cpuinfo_t::max + + max + + + + + + + + cpuInfo + + + uInt8 + uInt8 cpuinfo_t::ok + + ok + + + + + + + + cpuInfo + + + uInt32 + uInt32 cpuinfo_t::signature + + signature + + + + + + + + cpuInfo + + + + + + + + + cpuinfo_tapic_id + cpuinfo_tapic_ver + cpuinfo_tbrand + cpuinfo_tfeature + cpuinfo_tid + cpuinfo_tident + cpuinfo_tmax + cpuinfo_tok + cpuinfo_tsignature + + + diff --git a/doc/xml/structcsum.xml b/doc/xml/structcsum.xml new file mode 100644 index 0000000..8220c0b --- /dev/null +++ b/doc/xml/structcsum.xml @@ -0,0 +1,72 @@ + + + + csum + ufs.h + + + int32_t + int32_t csum::cs_nbfree + + cs_nbfree + + + + + + + + + + int32_t + int32_t csum::cs_ndir + + cs_ndir + + + + + + + + + + int32_t + int32_t csum::cs_nffree + + cs_nffree + + + + + + + + + + int32_t + int32_t csum::cs_nifree + + cs_nifree + + + + + + + + + + + + + + + + csumcs_nbfree + csumcs_ndir + csumcs_nffree + csumcs_nifree + + + diff --git a/doc/xml/structcsum__total.xml b/doc/xml/structcsum__total.xml new file mode 100644 index 0000000..14a11c9 --- /dev/null +++ b/doc/xml/structcsum__total.xml @@ -0,0 +1,100 @@ + + + + csum_total + ufs.h + + + int64_t + int64_t csum_total::cs_nbfree + + cs_nbfree + + + + + + + + + + int64_t + int64_t csum_total::cs_ndir + + cs_ndir + + + + + + + + + + int64_t + int64_t csum_total::cs_nffree + + cs_nffree + + + + + + + + + + int64_t + int64_t csum_total::cs_nifree + + cs_nifree + + + + + + + + + + int64_t + int64_t csum_total::cs_numclusters + + cs_numclusters + + + + + + + + + + int64_t + int64_t csum_total::cs_spare[3] + [3] + cs_spare + + + + + + + + + + + + + + + + csum_totalcs_nbfree + csum_totalcs_ndir + csum_totalcs_nffree + csum_totalcs_nifree + csum_totalcs_numclusters + csum_totalcs_spare + + + diff --git a/doc/xml/structdataStream.xml b/doc/xml/structdataStream.xml new file mode 100644 index 0000000..ffdb87e --- /dev/null +++ b/doc/xml/structdataStream.xml @@ -0,0 +1,135 @@ + + + + dataStream + ubixfs.h + + + off_t size + off_t size dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t maxDoubleIndirectRange + off_t maxDoubleIndirectRange dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + blockRun double_indirect + struct blockRun double_indirect dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t maxIndirectRange + off_t maxIndirectRange dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + blockRun indirect + struct blockRun indirect dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t maxDirectRange + off_t maxDirectRange dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + blockRun direct[NUM_DIRECT_BLOCKS] + struct blockRun direct [NUM_DIRECT_BLOCKS] dataStream::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + dataStream__attribute__ + dataStream__attribute__ + dataStream__attribute__ + dataStream__attribute__ + dataStream__attribute__ + dataStream__attribute__ + dataStream__attribute__ + + + diff --git a/doc/xml/structdevMethodType.xml b/doc/xml/structdevMethodType.xml new file mode 100644 index 0000000..9de0ddc --- /dev/null +++ b/doc/xml/structdevMethodType.xml @@ -0,0 +1,14 @@ + + + + devMethodType + driver.h + + + + + + + + + diff --git a/doc/xml/structdevfs__devices.xml b/doc/xml/structdevfs__devices.xml new file mode 100644 index 0000000..490f16c --- /dev/null +++ b/doc/xml/structdevfs__devices.xml @@ -0,0 +1,124 @@ + + + + devfs_devices + devfs.h + + + uInt16 + uInt16 devfs_devices::devMajor + + devMajor + + + + + + + + devfs_makeNode + devfs_open + devfs_read + devfs_write + + + uInt16 + uInt16 devfs_devices::devMinor + + devMinor + + + + + + + + devfs_makeNode + devfs_open + devfs_read + devfs_write + + + char + char devfs_devices::devName[32] + [32] + devName + + + + + + + + devfs_makeNode + devfs_open + + + uInt8 + uInt8 devfs_devices::devType + + devType + + + + + + + + devfs_makeNode + + + devfs_devices * + struct devfs_devices* devfs_devices::next + + next + + + + + + + + devfs_makeNode + devfs_open + + + devfs_devices * + struct devfs_devices* devfs_devices::prev + + prev + + + + + + + + devfs_makeNode + + + + + + + + + + + + prev +next + + + + + + devfs_devicesdevMajor + devfs_devicesdevMinor + devfs_devicesdevName + devfs_devicesdevType + devfs_devicesnext + devfs_devicesprev + + + diff --git a/doc/xml/structdevfs__info.xml b/doc/xml/structdevfs__info.xml new file mode 100644 index 0000000..aa7bcca --- /dev/null +++ b/doc/xml/structdevfs__info.xml @@ -0,0 +1,50 @@ + + + + devfs_info + devfs.h + + + devfs_devices * + struct devfs_devices* devfs_info::deviceList + + deviceList + + + + + + + + devfs_initialize + devfs_makeNode + devfs_open + + + + + + + + + + + + prev +next + + + + + + + deviceList + + + + + + devfs_infodeviceList + + + diff --git a/doc/xml/structdevice.xml b/doc/xml/structdevice.xml new file mode 100644 index 0000000..71ed6d9 --- /dev/null +++ b/doc/xml/structdevice.xml @@ -0,0 +1,117 @@ + + + + device + device.old.h + + + uInt16 + uInt16 device::ioAddr + + ioAddr + + + + + + + + dp_recv + getblock + low_level_init + low_level_output + ne2k_init + ne2kHandler + NICtoPC + PCtoNIC + + + uInt32 + uInt32 device::irq + + irq + + + + + + + + low_level_init + low_level_output + ne2k_init + + + uInt32 + uInt32 device::mtu + + mtu + + + + + + + + + + net * + struct net* device::net + + net + + + + + + + + + + ei_device * + struct ei_device* device::priv + + priv + + + + + + + + + + + + + + + + + + + + + + + + + + + priv + + + net + + + + + + deviceioAddr + deviceirq + devicemtu + devicenet + devicepriv + + + diff --git a/doc/xml/structdevice__interface.xml b/doc/xml/structdevice__interface.xml new file mode 100644 index 0000000..40100e3 --- /dev/null +++ b/doc/xml/structdevice__interface.xml @@ -0,0 +1,215 @@ + + + + device_interface + device.h + + + void * + void* device_interface::info + + info + + + + + + + + devfs_read + devfs_write + initHardDisk + syncBat + ubixfs_initialize + ubixFSUnlink + + + int(* + int(* device_interface::init)(void *) + )(void *) + init + + + + + + + + device_add + fdc_init + initHardDisk + + + uInt8 + uInt8 device_interface::initialized + + initialized + + + + + + + + device_add + + + void(* + void(* device_interface::ioctl)(void *) + )(void *) + ioctl + + + + + + + + initHardDisk + + + int + int device_interface::major + + major + + + + + + + + device_find + fdc_init + initHardDisk + + + void(* + void(* device_interface::read)(void *, void *, uInt32, uInt32) + )(void *, void *, uInt32, uInt32) + read + + + + + + + + devfs_read + devfs_write + fdc_init + initHardDisk + ubixfs_initialize + ubixFSUnlink + + + void(* + void(* device_interface::reset)(void *) + )(void *) + reset + + + + + + + + fdc_init + initHardDisk + + + uInt32 + uInt32 device_interface::size + + size + + + + + + + + devfs_open + + + void(* + void(* device_interface::standby)(void *) + )(void *) + standby + + + + + + + + initHardDisk + + + void(* + void(* device_interface::start)(void *) + )(void *) + start + + + + + + + + initHardDisk + + + void(* + void(* device_interface::stop)(void *) + )(void *) + stop + + + + + + + + initHardDisk + + + void(* + void(* device_interface::write)(void *, void *, uInt32, uInt32) + )(void *, void *, uInt32, uInt32) + write + + + + + + + + devfs_write + fdc_init + initHardDisk + syncBat + ubixFSUnlink + + + + + + + + + device_interfaceinfo + device_interfaceinit + device_interfaceinitialized + device_interfaceioctl + device_interfacemajor + device_interfaceread + device_interfacereset + device_interfacesize + device_interfacestandby + device_interfacestart + device_interfacestop + device_interfacewrite + + + diff --git a/doc/xml/structdevice__node.xml b/doc/xml/structdevice__node.xml new file mode 100644 index 0000000..3666690 --- /dev/null +++ b/doc/xml/structdevice__node.xml @@ -0,0 +1,202 @@ + + + + device_node + device.h + + + device_t * + struct device_t* device_node::devInfo + + devInfo + + + + + + + + + + device_interface * + struct device_interface* device_node::devInfo + + devInfo + + + + + + + + devfs_open + devfs_read + devfs_write + device_add + device_find + syncBat + ubixfs_initialize + ubixFSUnlink + + + device_resource * + struct device_resource* device_node::devRec + + devRec + + + + + + + + + + device_resource * + struct device_resource* device_node::devRec + + devRec + + + + + + + + + + int + int device_node::minor + + minor + + + + + + + + device_add + device_find + + + device_node * + struct device_node* device_node::next + + next + + + + + + + + + + device_node * + struct device_node* device_node::next + + next + + + + + + + + device_add + device_find + device_remove + + + device_node * + struct device_node* device_node::prev + + prev + + + + + + + + + + device_node * + struct device_node* device_node::prev + + prev + + + + + + + + device_add + + + char + char device_node::type + + type + + + + + + + + device_add + + + + + + + + + + + + + + + + devRec + + + devInfo + + + devInfo + + + prev +next + + + + + + + + + + + + + + device_nodedevInfo + device_nodedevInfo + device_nodedevRec + device_nodedevRec + device_nodeminor + device_nodenext + device_nodenext + device_nodeprev + device_nodeprev + device_nodetype + + + diff --git a/doc/xml/structdevice__resource.xml b/doc/xml/structdevice__resource.xml new file mode 100644 index 0000000..c7eec5b --- /dev/null +++ b/doc/xml/structdevice__resource.xml @@ -0,0 +1,30 @@ + + + + device_resource + device.h + + + uInt8 + uInt8 device_resource::irq + + irq + + + + + + + + + + + + + + + + device_resourceirq + + + diff --git a/doc/xml/structdevice__t.xml b/doc/xml/structdevice__t.xml new file mode 100644 index 0000000..56eb25d --- /dev/null +++ b/doc/xml/structdevice__t.xml @@ -0,0 +1,174 @@ + + + + device_t + device.h + + + void * + void* device_t::info + + info + + + + + + + + + + int(* + int(* device_t::init)(device_t *) + )(device_t *) + init + + + + + + + + + + void(* + void(* device_t::ioctl)(void *) + )(void *) + ioctl + + + + + + + + + + int + int device_t::major + + major + + + + + + + + dev_ramDrive + + + int(* + int(* device_t::read)(device_t *, void *, off_t, size_t) + )(device_t *, void *, off_t, size_t) + read + + + + + + + + dev_ramDrive + + + int(* + int(* device_t::reset)(void *) + )(void *) + reset + + + + + + + + + + uInt32 + uInt32 device_t::sectors + + sectors + + + + + + + + dev_ramDrive + + + void(* + void(* device_t::standby)(void *) + )(void *) + standby + + + + + + + + + + void(* + void(* device_t::start)(void *) + )(void *) + start + + + + + + + + + + void(* + void(* device_t::stop)(void *) + )(void *) + stop + + + + + + + + + + int(* + int(* device_t::write)(device_t *, void *, off_t, size_t) + )(device_t *, void *, off_t, size_t) + write + + + + + + + + dev_ramDrive + + + + + + + + + device_tinfo + device_tinit + device_tioctl + device_tmajor + device_tread + device_treset + device_tsectors + device_tstandby + device_tstart + device_tstop + device_twrite + + + diff --git a/doc/xml/structdirectoryEntry.xml b/doc/xml/structdirectoryEntry.xml new file mode 100644 index 0000000..d8f578b --- /dev/null +++ b/doc/xml/structdirectoryEntry.xml @@ -0,0 +1,152 @@ + + + + directoryEntry + ubixfs.h + + + uInt16 + uInt16 directoryEntry::attributes + + attributes + + + + + + + + ubixFSmkDir + + + uInt32 + uInt32 directoryEntry::creationDate + + creationDate + + + + + + + + + + char + char directoryEntry::fileName[256] + [256] + fileName + + + + + + + + ubixfs_findName + ubixFSmkDir + ubixFSUnlink + writeUbixFS + + + uInt32 + uInt32 directoryEntry::gid + + gid + + + + + + + + + + uInt32 + uInt32 directoryEntry::lastModified + + lastModified + + + + + + + + + + uInt16 + uInt16 directoryEntry::permissions + + permissions + + + + + + + + ubixFSmkDir + + + uInt32 + uInt32 directoryEntry::size + + size + + + + + + + + ubixFSmkDir + writeUbixFS + + + uInt32 + uInt32 directoryEntry::startCluster + + startCluster + + + + + + + + ubixFSmkDir + writeUbixFS + + + uInt32 + uInt32 directoryEntry::uid + + uid + + + + + + + + + + + + + + + + directoryEntryattributes + directoryEntrycreationDate + directoryEntryfileName + directoryEntrygid + directoryEntrylastModified + directoryEntrypermissions + directoryEntrysize + directoryEntrystartCluster + directoryEntryuid + + + diff --git a/doc/xml/structdirectoryList.xml b/doc/xml/structdirectoryList.xml new file mode 100644 index 0000000..a8ecf57 --- /dev/null +++ b/doc/xml/structdirectoryList.xml @@ -0,0 +1,100 @@ + + + + directoryList + ubixfs.h + + + uInt32 + uInt32 directoryList::dirBlock + + dirBlock + + + + + + + + + + char * + char* directoryList::dirCache + + dirCache + + + + + + + + ubixFSLoadDir + + + char + char directoryList::dirName[256] + [256] + dirName + + + + + + + + ubixFSLoadDir + + + directoryList * + struct directoryList* directoryList::next + + next + + + + + + + + ubixFSLoadDir + + + directoryList * + struct directoryList* directoryList::prev + + prev + + + + + + + + ubixFSLoadDir + + + + + + + + + + + + prev +next + + + + + + directoryListdirBlock + directoryListdirCache + directoryListdirName + directoryListnext + directoryListprev + + + diff --git a/doc/xml/structdirent.xml b/doc/xml/structdirent.xml new file mode 100644 index 0000000..619d2ad --- /dev/null +++ b/doc/xml/structdirent.xml @@ -0,0 +1,90 @@ + + + + dirent + ufs.h + + + __uint32_t + __uint32_t dirent::d_fileno + + d_fileno + + + + + + + + fsfind + + + char + char dirent::d_name[MAXNAMLEN+1] + [MAXNAMLEN+1] + d_name + + + + + + + + fsfind + + + __uint8_t + __uint8_t dirent::d_namlen + + d_namlen + + + + + + + + + + __uint16_t + __uint16_t dirent::d_reclen + + d_reclen + + + + + + + + fsfind + + + __uint8_t + __uint8_t dirent::d_type + + d_type + + + + + + + + fsfind + + + + + + + + + direntd_fileno + direntd_name + direntd_namlen + direntd_reclen + direntd_type + + + diff --git a/doc/xml/structdiskSuperBlock.xml b/doc/xml/structdiskSuperBlock.xml new file mode 100644 index 0000000..85b8467 --- /dev/null +++ b/doc/xml/structdiskSuperBlock.xml @@ -0,0 +1,407 @@ + + + + diskSuperBlock + ubixfs.h + + + char pad[368] + char pad [368] diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + inodeAddr indicies + inodeAddr indicies diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + inodeAddr rootDir + inodeAddr rootDir diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 magic3 + int32 magic3 diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t logEnd + off_t logEnd diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t logStart + off_t logStart diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + blockRun logBlocks + blockRun logBlocks diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 flags + int32 flags diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 lastUsedAG + uInt32 lastUsedAG diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 numAGs + uInt32 numAGs diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 AGShift + uInt32 AGShift diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 blocksPerAG + uInt32 blocksPerAG diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 magic2 + uInt32 magic2 diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 inodeSize + uInt32 inodeSize diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 inodeCount + uInt32 inodeCount diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 batSectors + uInt32 batSectors diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t usedBlocks + off_t usedBlocks diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + off_t numBlocks + off_t numBlocks diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 blockShift + uInt32 blockShift diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 blockSize + int32 blockSize diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 fsByteOrder + int32 fsByteOrder diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 magic1 + int32 magic1 diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + char name[32] + char name [32] diskSuperBlock::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + diskSuperBlock__attribute__ + + + diff --git a/doc/xml/structdmadat.xml b/doc/xml/structdmadat.xml new file mode 100644 index 0000000..90ce970 --- /dev/null +++ b/doc/xml/structdmadat.xml @@ -0,0 +1,72 @@ + + + + dmadat + file.h + + + char + char dmadat::blkbuf[VBLKSIZE] + [VBLKSIZE] + blkbuf + + + + + + + + + + char + char dmadat::indbuf[VBLKSIZE] + [VBLKSIZE] + indbuf + + + + + + + + + + char + char dmadat::sbbuf[SBLOCKSIZE] + [SBLOCKSIZE] + sbbuf + + + + + + + + + + char + char dmadat::secbuf[DEV_BSIZE] + [DEV_BSIZE] + secbuf + + + + + + + + + + + + + + + + dmadatblkbuf + dmadatindbuf + dmadatsbbuf + dmadatsecbuf + + + diff --git a/doc/xml/structdos__partition.xml b/doc/xml/structdos__partition.xml new file mode 100644 index 0000000..a135145 --- /dev/null +++ b/doc/xml/structdos__partition.xml @@ -0,0 +1,157 @@ + + + + dos_partition + hd.h + + + unsigned char + unsigned char dos_partition::dp_ecyl + + dp_ecyl + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_ehd + + dp_ehd + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_esect + + dp_esect + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_flag + + dp_flag + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_scyl + + dp_scyl + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_shd + + dp_shd + + + + + + + + + + uInt32 + uInt32 dos_partition::dp_size + + dp_size + + + + + + + + + + unsigned char + unsigned char dos_partition::dp_ssect + + dp_ssect + + + + + + + + + + uInt32 + uInt32 dos_partition::dp_start + + dp_start + + + + + + + + initHardDisk + + + unsigned char + unsigned char dos_partition::dp_type + + dp_type + + + + + + + + + + + + + + + + dos_partitiondp_ecyl + dos_partitiondp_ehd + dos_partitiondp_esect + dos_partitiondp_flag + dos_partitiondp_scyl + dos_partitiondp_shd + dos_partitiondp_size + dos_partitiondp_ssect + dos_partitiondp_start + dos_partitiondp_type + + + diff --git a/doc/xml/structdp__rcvhdr.xml b/doc/xml/structdp__rcvhdr.xml new file mode 100644 index 0000000..48d797d --- /dev/null +++ b/doc/xml/structdp__rcvhdr.xml @@ -0,0 +1,72 @@ + + + + dp_rcvhdr + ne2k.h + + + uInt8 + uInt8 dp_rcvhdr::dr_next + + dr_next + + + + + + + + + + uInt8 + uInt8 dp_rcvhdr::dr_rbch + + dr_rbch + + + + + + + + + + uInt8 + uInt8 dp_rcvhdr::dr_rbcl + + dr_rbcl + + + + + + + + + + uInt8 + uInt8 dp_rcvhdr::dr_status + + dr_status + + + + + + + + + + + + + + + + dp_rcvhdrdr_next + dp_rcvhdrdr_rbch + dp_rcvhdrdr_rbcl + dp_rcvhdrdr_status + + + diff --git a/doc/xml/structdriveInfo.xml b/doc/xml/structdriveInfo.xml new file mode 100644 index 0000000..c158911 --- /dev/null +++ b/doc/xml/structdriveInfo.xml @@ -0,0 +1,210 @@ + + + + driveInfo + hd.h + + + driveDiskLabel * + struct driveDiskLabel* driveInfo::diskLabel + + diskLabel + + + + + + + + + + long + long driveInfo::hdCalc + + hdCalc + + + + + + + + hdRead + hdWrite + + + char + char driveInfo::hdDev + + hdDev + + + + + + + + hdInit + hdRead + hdWrite + initHardDisk + + + char + char driveInfo::hdEnable + + hdEnable + + + + + + + + hdInit + hdRead + hdWrite + + + char + char driveInfo::hdFlags + + hdFlags + + + + + + + + + + long + long driveInfo::hdMask + + hdMask + + + + + + + + hdInit + + + long + long driveInfo::hdMulti + + hdMulti + + + + + + + + hdInit + hdRead + hdWrite + + + long + long driveInfo::hdPort + + hdPort + + + + + + + + hdInit + hdRead + hdWrite + initHardDisk + + + char + char driveInfo::hdSector[512] + [512] + hdSector + + + + + + + + hdInit + + + char + char driveInfo::hdShift + + hdShift + + + + + + + + hdInit + hdRead + hdWrite + + + long + long driveInfo::hdSize + + hdSize + + + + + + + + hdInit + initHardDisk + + + long + long driveInfo::parOffset + + parOffset + + + + + + + + hdRead + hdWrite + initHardDisk + + + + + + + + + driveInfodiskLabel + driveInfohdCalc + driveInfohdDev + driveInfohdEnable + driveInfohdFlags + driveInfohdMask + driveInfohdMulti + driveInfohdPort + driveInfohdSector + driveInfohdShift + driveInfohdSize + driveInfoparOffset + + + diff --git a/doc/xml/structdriverType.xml b/doc/xml/structdriverType.xml new file mode 100644 index 0000000..a31563a --- /dev/null +++ b/doc/xml/structdriverType.xml @@ -0,0 +1,57 @@ + + + + driverType + driver.h + + + const char * + const char* driverType::devName + + devName + + + + + + + + + + devMethod * + devMethod* driverType::methods + + methods + + + + + + + + + + + + + + + + + + + + + + + methods + + + + + + driverTypedevName + driverTypemethods + + + diff --git a/doc/xml/structei__device.xml b/doc/xml/structei__device.xml new file mode 100644 index 0000000..b650ebf --- /dev/null +++ b/doc/xml/structei__device.xml @@ -0,0 +1,128 @@ + + + + ei_device + device.old.h + + + int + int ei_device::currentPage + + currentPage + + + + + + + + + + uInt32 + uInt32 ei_device::pingPong + + pingPong + + + + + + + + + + int + int ei_device::rxStartPage + + rxStartPage + + + + + + + + + + int + int ei_device::stopPage + + stopPage + + + + + + + + + + int + int ei_device::tx1 + + tx1 + + + + + + + + + + int + int ei_device::tx2 + + tx2 + + + + + + + + + + int + int ei_device::txStartPage + + txStartPage + + + + + + + + + + uInt16 + uInt16 ei_device::word16 + + word16 + + + + + + + + + + + + + + + + ei_devicecurrentPage + ei_devicepingPong + ei_devicerxStartPage + ei_devicestopPage + ei_devicetx1 + ei_devicetx2 + ei_devicetxStartPage + ei_deviceword16 + + + diff --git a/doc/xml/structelfDynSym.xml b/doc/xml/structelfDynSym.xml new file mode 100644 index 0000000..85ab58e --- /dev/null +++ b/doc/xml/structelfDynSym.xml @@ -0,0 +1,72 @@ + + + + elfDynSym + elf.h + + + uInt32 + uInt32 elfDynSym::dynInfo + + dynInfo + + + + + + + + + + uInt32 + uInt32 elfDynSym::dynName + + dynName + + + + + + + + + + uInt32 + uInt32 elfDynSym::dynSize + + dynSize + + + + + + + + + + uInt32 + uInt32 elfDynSym::dynValue + + dynValue + + + + + + + + + + + + + + + + elfDynSymdynInfo + elfDynSymdynName + elfDynSymdynSize + elfDynSymdynValue + + + diff --git a/doc/xml/structelfDynamic.xml b/doc/xml/structelfDynamic.xml new file mode 100644 index 0000000..cc5d946 --- /dev/null +++ b/doc/xml/structelfDynamic.xml @@ -0,0 +1,44 @@ + + + + elfDynamic + elf.h + + + uInt32 + uInt32 elfDynamic::dynPtr + + dynPtr + + + + + + + + + + uInt32 + uInt32 elfDynamic::dynVal + + dynVal + + + + + + + + + + + + + + + + elfDynamicdynPtr + elfDynamicdynVal + + + diff --git a/doc/xml/structelfHeader.xml b/doc/xml/structelfHeader.xml new file mode 100644 index 0000000..e486fbd --- /dev/null +++ b/doc/xml/structelfHeader.xml @@ -0,0 +1,236 @@ + + + + elfHeader + elf.h + + + uInt16 + uInt16 elfHeader::eEhsize + + eEhsize + + + + + + + + + + uInt32 + uInt32 elfHeader::eEntry + + eEntry + + + + + + + + execFile + kmod_load + ldEnable + sysExec + + + uInt32 + uInt32 elfHeader::eFlags + + eFlags + + + + + + + + + + uInt8 + uInt8 elfHeader::eIdent[16] + [16] + eIdent + + + + + + + + execFile + sysExec + + + uInt16 + uInt16 elfHeader::eMachine + + eMachine + + + + + + + + + + uInt16 + uInt16 elfHeader::ePhentsize + + ePhentsize + + + + + + + + + + uInt16 + uInt16 elfHeader::ePhnum + + ePhnum + + + + + + + + execFile + kmod_load + ldEnable + sysExec + + + uInt32 + uInt32 elfHeader::ePhoff + + ePhoff + + + + + + + + execFile + kmod_load + ldEnable + sysExec + + + uInt16 + uInt16 elfHeader::eShentsize + + eShentsize + + + + + + + + + + uInt16 + uInt16 elfHeader::eShnum + + eShnum + + + + + + + + kmod_load + ldEnable + sysExec + + + uInt32 + uInt32 elfHeader::eShoff + + eShoff + + + + + + + + kmod_load + ldEnable + sysExec + + + uInt16 + uInt16 elfHeader::eShstrndx + + eShstrndx + + + + + + + + kmod_load + ldEnable + + + uInt16 + uInt16 elfHeader::eType + + eType + + + + + + + + execFile + sysExec + + + uInt32 + uInt32 elfHeader::eVersion + + eVersion + + + + + + + + + + + + + + + + elfHeadereEhsize + elfHeadereEntry + elfHeadereFlags + elfHeadereIdent + elfHeadereMachine + elfHeaderePhentsize + elfHeaderePhnum + elfHeaderePhoff + elfHeadereShentsize + elfHeadereShnum + elfHeadereShoff + elfHeadereShstrndx + elfHeadereType + elfHeadereVersion + + + diff --git a/doc/xml/structelfPltInfo.xml b/doc/xml/structelfPltInfo.xml new file mode 100644 index 0000000..c1846a4 --- /dev/null +++ b/doc/xml/structelfPltInfo.xml @@ -0,0 +1,44 @@ + + + + elfPltInfo + elf.h + + + uInt32 + uInt32 elfPltInfo::pltInfo + + pltInfo + + + + + + + + + + uInt32 + uInt32 elfPltInfo::pltOffset + + pltOffset + + + + + + + + + + + + + + + + elfPltInfopltInfo + elfPltInfopltOffset + + + diff --git a/doc/xml/structelfProgramHeader.xml b/doc/xml/structelfProgramHeader.xml new file mode 100644 index 0000000..cd92818 --- /dev/null +++ b/doc/xml/structelfProgramHeader.xml @@ -0,0 +1,136 @@ + + + + elfProgramHeader + elf.h + + + uInt32 + uInt32 elfProgramHeader::phAlign + + phAlign + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phFilesz + + phFilesz + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phFlags + + phFlags + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phMemsz + + phMemsz + + + + + + + + execFile + kmod_load + ldEnable + sysExec + + + uInt32 + uInt32 elfProgramHeader::phOffset + + phOffset + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phPaddr + + phPaddr + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phType + + phType + + + + + + + + + + uInt32 + uInt32 elfProgramHeader::phVaddr + + phVaddr + + + + + + + + execFile + kmod_load + ldEnable + sysExec + + + + + + + + + elfProgramHeaderphAlign + elfProgramHeaderphFilesz + elfProgramHeaderphFlags + elfProgramHeaderphMemsz + elfProgramHeaderphOffset + elfProgramHeaderphPaddr + elfProgramHeaderphType + elfProgramHeaderphVaddr + + + diff --git a/doc/xml/structelfSectionHeader.xml b/doc/xml/structelfSectionHeader.xml new file mode 100644 index 0000000..b21464b --- /dev/null +++ b/doc/xml/structelfSectionHeader.xml @@ -0,0 +1,158 @@ + + + + elfSectionHeader + elf.h + + + uInt32 + uInt32 elfSectionHeader::shAddr + + shAddr + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shAddralign + + shAddralign + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shEntsize + + shEntsize + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shFlags + + shFlags + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shInfo + + shInfo + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shLink + + shLink + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shName + + shName + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shOffset + + shOffset + + + + + + + + + + uInt32 + uInt32 elfSectionHeader::shSize + + shSize + + + + + + + + kmod_load + ldEnable + + + uInt32 + uInt32 elfSectionHeader::shType + + shType + + + + + + + + + + + + + + + + elfSectionHeadershAddr + elfSectionHeadershAddralign + elfSectionHeadershEntsize + elfSectionHeadershFlags + elfSectionHeadershInfo + elfSectionHeadershLink + elfSectionHeadershName + elfSectionHeadershOffset + elfSectionHeadershSize + elfSectionHeadershType + + + diff --git a/doc/xml/structeth__addr.xml b/doc/xml/structeth__addr.xml new file mode 100644 index 0000000..0b081c9 --- /dev/null +++ b/doc/xml/structeth__addr.xml @@ -0,0 +1,35 @@ + + + + eth_addr + arp.h + + + + eth_addr::PACK_STRUCT_FIELD + (uInt8 addr[6]) + PACK_STRUCT_FIELD + + uInt8 + addr + [6] + + + + + + + + + + + + + + + + + eth_addrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structeth__hdr.xml b/doc/xml/structeth__hdr.xml new file mode 100644 index 0000000..3ae821e --- /dev/null +++ b/doc/xml/structeth__hdr.xml @@ -0,0 +1,70 @@ + + + + eth_hdr + arp.h + + + + eth_hdr::PACK_STRUCT_FIELD + (uInt16 type) + PACK_STRUCT_FIELD + + uInt16 + type + + + + + + + + + + + + eth_hdr::PACK_STRUCT_FIELD + (struct eth_addr src) + PACK_STRUCT_FIELD + + struct eth_addr + src + + + + + + + + + + + + eth_hdr::PACK_STRUCT_FIELD + (struct eth_addr dest) + PACK_STRUCT_FIELD + + struct eth_addr + dest + + + + + + + + + + + + + + + + + eth_hdrPACK_STRUCT_FIELD + eth_hdrPACK_STRUCT_FIELD + eth_hdrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structethernetif.xml b/doc/xml/structethernetif.xml new file mode 100644 index 0000000..3528111 --- /dev/null +++ b/doc/xml/structethernetif.xml @@ -0,0 +1,45 @@ + + + + ethernetif + + + eth_addr * + struct eth_addr* ethernetif::ethaddr + + ethaddr + + + + + + + + ethernetif_input + ethernetif_output + low_level_init + + + + + + + + + + + + + + + + ethaddr + + + + + + ethernetifethaddr + + + diff --git a/doc/xml/structethip__hdr.xml b/doc/xml/structethip__hdr.xml new file mode 100644 index 0000000..69c65fe --- /dev/null +++ b/doc/xml/structethip__hdr.xml @@ -0,0 +1,51 @@ + + + + ethip_hdr + + + + ethip_hdr::PACK_STRUCT_FIELD + (struct ip_hdr ip) + PACK_STRUCT_FIELD + + struct ip_hdr + ip + + + + + + + + + + + + ethip_hdr::PACK_STRUCT_FIELD + (struct eth_hdr eth) + PACK_STRUCT_FIELD + + struct eth_hdr + eth + + + + + + + + + + + + + + + + + ethip_hdrPACK_STRUCT_FIELD + ethip_hdrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structfcntl__args.xml b/doc/xml/structfcntl__args.xml new file mode 100644 index 0000000..3a579e1 --- /dev/null +++ b/doc/xml/structfcntl__args.xml @@ -0,0 +1,145 @@ + + + + fcntl_args + sysproto.h + + + long + long fcntl_args::arg + + arg + + + + + + + + fcntl + + + char + char fcntl_args::arg_l_[PADL_(long)] + [PADL_(long)] + arg_l_ + + + + + + + + + + char + char fcntl_args::arg_r_[PADR_(long)] + [PADR_(long)] + arg_r_ + + + + + + + + + + int + int fcntl_args::cmd + + cmd + + + + + + + + fcntl + + + char + char fcntl_args::cmd_l_[PADL_(int)] + [PADL_(int)] + cmd_l_ + + + + + + + + + + char + char fcntl_args::cmd_r_[PADR_(int)] + [PADR_(int)] + cmd_r_ + + + + + + + + + + int + int fcntl_args::fd + + fd + + + + + + + + fcntl + + + char + char fcntl_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char fcntl_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + + + + + + + fcntl_argsarg + fcntl_argsarg_l_ + fcntl_argsarg_r_ + fcntl_argscmd + fcntl_argscmd_l_ + fcntl_argscmd_r_ + fcntl_argsfd + fcntl_argsfd_l_ + fcntl_argsfd_r_ + + + diff --git a/doc/xml/structfile.xml b/doc/xml/structfile.xml new file mode 100644 index 0000000..f49cfd5 --- /dev/null +++ b/doc/xml/structfile.xml @@ -0,0 +1,33 @@ + + + + file + kern_descrip.h + + + int + int file::f_flag + + f_flag + + + + + + + + fcntl + pipe + schedNewTask + + + + + + + + + filef_flag + + + diff --git a/doc/xml/structfileDescriptor.xml b/doc/xml/structfileDescriptor.xml new file mode 100644 index 0000000..e675645 --- /dev/null +++ b/doc/xml/structfileDescriptor.xml @@ -0,0 +1,124 @@ + + + + fileDescriptor + file.h + + + void * + void* fileDescriptor::inode + + inode + + + + + + + + UbixFS::vfs_init + UbixFS::vfs_mkdir + UbixFS::vfs_open + UbixFS::vfs_read + UbixFS::vfs_stop + UbixFS::vfs_write + + + fileDescriptor * + struct fileDescriptor* fileDescriptor::next + + next + + + + + + + + fclose + fopen + + + off_t + off_t fileDescriptor::offset + + offset + + + + + + + + addDirEntry + fgetc + fopen + fputc + fread + fseek + fsfind + fsread + fwrite + ufs_openFile + UbixFS::vfs_open + + + fileDescriptor * + struct fileDescriptor* fileDescriptor::prev + + prev + + + + + + + + fclose + fopen + + + size_t + size_t fileDescriptor::size + + size + + + + + + + + addDirEntry + devfs_open + fsread + openFileUbixFS + readUbixFS + UbixFS::vfs_open + writeUbixFS + + + + + + + + + + + + prev +next + + + + + + fileDescriptorinode + fileDescriptornext + fileDescriptoroffset + fileDescriptorprev + fileDescriptorsize + + + diff --git a/doc/xml/structfileDescriptorStruct.xml b/doc/xml/structfileDescriptorStruct.xml new file mode 100644 index 0000000..25a71e3 --- /dev/null +++ b/doc/xml/structfileDescriptorStruct.xml @@ -0,0 +1,355 @@ + + + + fileDescriptorStruct + file.h + + + char * + char* fileDescriptorStruct::buffer + + buffer + + + + + + + + + + cacheNode * + struct cacheNode* fileDescriptorStruct::cacheNode + + cacheNode + + + + + + + + + + dmadat * + struct dmadat* fileDescriptorStruct::dmadat + + dmadat + + + + + + + + + + int + int fileDescriptorStruct::dsk_meta + + dsk_meta + + + + + + + + + + char + char fileDescriptorStruct::fileName[512] + [512] + fileName + + + + + + + + + + uInt32 + uInt32 fileDescriptorStruct::ino + + ino + + + + + + + + + + uInt16 + uInt16 fileDescriptorStruct::length + + length + + + + + + + + + + uInt16 + uInt16 fileDescriptorStruct::mode + + mode + + + + + + + + + + vfs_mountPoint * + struct vfs_mountPoint* fileDescriptorStruct::mp + + mp + + + + + + + + + + fileDescriptorStruct * + struct fileDescriptorStruct* fileDescriptorStruct::next + + next + + + + + + + + + + uInt32 + uInt32 fileDescriptorStruct::offset + + offset + + + + + + + + sysFseek + + + uInt32 + uInt32 fileDescriptorStruct::perms + + perms + + + + + + + + + + fileDescriptorStruct * + struct fileDescriptorStruct* fileDescriptorStruct::prev + + prev + + + + + + + + + + uInt32 + uInt32 fileDescriptorStruct::resid + + resid + + + + + + + + + + uInt32 + uInt32 fileDescriptorStruct::size + + size + + + + + + + + sysFopen + + + uInt32 + uInt32 fileDescriptorStruct::start + + start + + + + + + + + + + uInt16 + uInt16 fileDescriptorStruct::status + + status + + + + + + + + + + + + + + + + + + + + + + + devRec + + + devInfo + + + devInfo + + + prev +next + + + + + + + prev +next +parent +fileListTail +fileListHead + + + + + + + partitions + + + + + + + + + + + cacheNode + + + dmadat + + + mp + + + prev +next + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + + + + + + + + + + + + + + + + + prev +next + + + + + + fileDescriptorStructbuffer + fileDescriptorStructcacheNode + fileDescriptorStructdmadat + fileDescriptorStructdsk_meta + fileDescriptorStructfileName + fileDescriptorStructino + fileDescriptorStructlength + fileDescriptorStructmode + fileDescriptorStructmp + fileDescriptorStructnext + fileDescriptorStructoffset + fileDescriptorStructperms + fileDescriptorStructprev + fileDescriptorStructresid + fileDescriptorStructsize + fileDescriptorStructstart + fileDescriptorStructstatus + + + diff --git a/doc/xml/structfileSystem.xml b/doc/xml/structfileSystem.xml new file mode 100644 index 0000000..fd3c2e9 --- /dev/null +++ b/doc/xml/structfileSystem.xml @@ -0,0 +1,188 @@ + + + + fileSystem + vfs.h + + + fileSystem * + struct fileSystem* fileSystem::next + + next + + + + + + + + bTree::Verify + vfsFindFS + vfsRegisterFS + + + fileSystem * + struct fileSystem* fileSystem::prev + + prev + + + + + + + + vfsRegisterFS + + + int(* + int(* fileSystem::vfsInitFS)(void *) + )(void *) + vfsInitFS + + + + + + + + vfs_mount + + + int(* + int(* fileSystem::vfsMakeDir)(char *, void *) + )(char *, void *) + vfsMakeDir + + + + + + + + + + int(* + int(* fileSystem::vfsOpenFile)(void *, void *) + )(void *, void *) + vfsOpenFile + + + + + + + + + + int(* + int(* fileSystem::vfsRead)(void *, char *, long, long) + )(void *, char *, long, long) + vfsRead + + + + + + + + + + int(* + int(* fileSystem::vfsRemDir)(char *) + )(char *) + vfsRemDir + + + + + + + + + + int(* + int(* fileSystem::vfsSync)(void) + )(void) + vfsSync + + + + + + + + + + int + int fileSystem::vfsType + + vfsType + + + + + + + + vfsFindFS + vfsRegisterFS + + + int(* + int(* fileSystem::vfsUnlink)(char *, void *) + )(char *, void *) + vfsUnlink + + + + + + + + unlink + + + int(* + int(* fileSystem::vfsWrite)(void *, char *, long, long) + )(void *, char *, long, long) + vfsWrite + + + + + + + + + + + + + + + + + + + prev +next + + + + + + fileSystemnext + fileSystemprev + fileSystemvfsInitFS + fileSystemvfsMakeDir + fileSystemvfsOpenFile + fileSystemvfsRead + fileSystemvfsRemDir + fileSystemvfsSync + fileSystemvfsType + fileSystemvfsUnlink + fileSystemvfsWrite + + + diff --git a/doc/xml/structfs.xml b/doc/xml/structfs.xml new file mode 100644 index 0000000..388d365 --- /dev/null +++ b/doc/xml/structfs.xml @@ -0,0 +1,1285 @@ + + + + fs + ufs.h + + + u_int * + u_int* fs::fs_active + + fs_active + + + + + + + + + + int32_t + int32_t fs::fs_avgfilesize + + fs_avgfilesize + + + + + + + + + + int32_t + int32_t fs::fs_avgfpdir + + fs_avgfpdir + + + + + + + + + + int32_t + int32_t fs::fs_bmask + + fs_bmask + + + + + + + + + + int32_t + int32_t fs::fs_bshift + + fs_bshift + + + + + + + + + + int32_t + int32_t fs::fs_bsize + + fs_bsize + + + + + + + + + + int32_t + int32_t fs::fs_cblkno + + fs_cblkno + + + + + + + + + + int32_t + int32_t fs::fs_cgrotor + + fs_cgrotor + + + + + + + + + + int32_t + int32_t fs::fs_cgsize + + fs_cgsize + + + + + + + + + + int8_t + int8_t fs::fs_clean + + fs_clean + + + + + + + + + + u_int8_t * + u_int8_t* fs::fs_contigdirs + + fs_contigdirs + + + + + + + + + + int32_t + int32_t fs::fs_contigsumsize + + fs_contigsumsize + + + + + + + + + + ufs2_daddr_t + ufs2_daddr_t fs::fs_csaddr + + fs_csaddr + + + + + + + + + + csum * + struct csum* fs::fs_csp + + fs_csp + + + + + + + + + + int32_t + int32_t fs::fs_cssize + + fs_cssize + + + + + + + + + + csum_total + struct csum_total fs::fs_cstotal + + fs_cstotal + + + + + + + + + + int32_t + int32_t fs::fs_dblkno + + fs_dblkno + + + + + + + + + + int64_t + int64_t fs::fs_dsize + + fs_dsize + + + + + + + + + + int32_t + int32_t fs::fs_firstfield + + fs_firstfield + + + + + + + + + + int32_t + int32_t fs::fs_flags + + fs_flags + + + + + + + + + + int32_t + int32_t fs::fs_fmask + + fs_fmask + + + + + + + + + + int8_t + int8_t fs::fs_fmod + + fs_fmod + + + + + + + + + + int32_t + int32_t fs::fs_fpg + + fs_fpg + + + + + + + + + + int32_t + int32_t fs::fs_frag + + fs_frag + + + + + + + + + + int32_t + int32_t fs::fs_fragshift + + fs_fragshift + + + + + + + + + + int32_t + int32_t fs::fs_fsbtodb + + fs_fsbtodb + + + + + + + + + + int32_t + int32_t fs::fs_fshift + + fs_fshift + + + + + + + + + + int32_t + int32_t fs::fs_fsize + + fs_fsize + + + + + + + + + + u_char + u_char fs::fs_fsmnt[MAXMNTLEN] + [MAXMNTLEN] + fs_fsmnt + + + + + + + + + + int32_t + int32_t fs::fs_iblkno + + fs_iblkno + + + + + + + + + + int32_t + int32_t fs::fs_id[2] + [2] + fs_id + + + + + + + + + + int32_t + int32_t fs::fs_inopb + + fs_inopb + + + + + + + + + + int32_t + int32_t fs::fs_ipg + + fs_ipg + + + + + + + + + + int32_t + int32_t fs::fs_magic + + fs_magic + + + + + + + + fsread + + + int32_t + int32_t fs::fs_maxbpg + + fs_maxbpg + + + + + + + + + + int32_t + int32_t fs::fs_maxbsize + + fs_maxbsize + + + + + + + + + + int32_t * + int32_t* fs::fs_maxcluster + + fs_maxcluster + + + + + + + + + + int32_t + int32_t fs::fs_maxcontig + + fs_maxcontig + + + + + + + + + + u_int64_t + u_int64_t fs::fs_maxfilesize + + fs_maxfilesize + + + + + + + + ffs_read + + + int32_t + int32_t fs::fs_maxsymlinklen + + fs_maxsymlinklen + + + + + + + + + + int32_t + int32_t fs::fs_minfree + + fs_minfree + + + + + + + + + + int32_t + int32_t fs::fs_ncg + + fs_ncg + + + + + + + + + + int32_t + int32_t fs::fs_nindir + + fs_nindir + + + + + + + + + + void * + void* fs::fs_ocsp[NOCSPTRS] + [NOCSPTRS] + fs_ocsp + + + + + + + + + + int32_t + int32_t fs::fs_old_cgmask + + fs_old_cgmask + + + + + + + + + + int32_t + int32_t fs::fs_old_cgoffset + + fs_old_cgoffset + + + + + + + + + + int32_t + int32_t fs::fs_old_cpc + + fs_old_cpc + + + + + + + + + + int32_t + int32_t fs::fs_old_cpg + + fs_old_cpg + + + + + + + + + + int32_t + int32_t fs::fs_old_csaddr + + fs_old_csaddr + + + + + + + + + + csum + struct csum fs::fs_old_cstotal + + fs_old_cstotal + + + + + + + + + + int32_t + int32_t fs::fs_old_dsize + + fs_old_dsize + + + + + + + + + + int8_t + int8_t fs::fs_old_flags + + fs_old_flags + + + + + + + + + + int32_t + int32_t fs::fs_old_inodefmt + + fs_old_inodefmt + + + + + + + + + + int32_t + int32_t fs::fs_old_interleave + + fs_old_interleave + + + + + + + + + + int32_t + int32_t fs::fs_old_ncyl + + fs_old_ncyl + + + + + + + + + + int32_t + int32_t fs::fs_old_npsect + + fs_old_npsect + + + + + + + + + + int32_t + int32_t fs::fs_old_nrpos + + fs_old_nrpos + + + + + + + + + + int32_t + int32_t fs::fs_old_nsect + + fs_old_nsect + + + + + + + + + + int32_t + int32_t fs::fs_old_nspf + + fs_old_nspf + + + + + + + + + + int32_t + int32_t fs::fs_old_postblformat + + fs_old_postblformat + + + + + + + + + + int32_t + int32_t fs::fs_old_rotdelay + + fs_old_rotdelay + + + + + + + + + + int32_t + int32_t fs::fs_old_rps + + fs_old_rps + + + + + + + + + + int32_t + int32_t fs::fs_old_size + + fs_old_size + + + + + + + + + + int32_t + int32_t fs::fs_old_spc + + fs_old_spc + + + + + + + + + + int32_t + int32_t fs::fs_old_time + + fs_old_time + + + + + + + + + + int32_t + int32_t fs::fs_old_trackskew + + fs_old_trackskew + + + + + + + + + + int32_t + int32_t fs::fs_optim + + fs_optim + + + + + + + + + + int32_t + int32_t fs::fs_pad + + fs_pad + + + + + + + + + + int64_t + int64_t fs::fs_pendingblocks + + fs_pendingblocks + + + + + + + + + + int32_t + int32_t fs::fs_pendinginodes + + fs_pendinginodes + + + + + + + + + + int64_t + int64_t fs::fs_qbmask + + fs_qbmask + + + + + + + + + + int64_t + int64_t fs::fs_qfmask + + fs_qfmask + + + + + + + + + + int8_t + int8_t fs::fs_ronly + + fs_ronly + + + + + + + + + + int32_t + int32_t fs::fs_save_cgsize + + fs_save_cgsize + + + + + + + + + + int32_t + int32_t fs::fs_sblkno + + fs_sblkno + + + + + + + + + + int64_t + int64_t fs::fs_sblockloc + + fs_sblockloc + + + + + + + + + + int32_t + int32_t fs::fs_sbsize + + fs_sbsize + + + + + + + + + + int64_t + int64_t fs::fs_size + + fs_size + + + + + + + + + + int32_t + int32_t fs::fs_snapinum[FSMAXSNAP] + [FSMAXSNAP] + fs_snapinum + + + + + + + + + + int32_t + int32_t fs::fs_spare1[2] + [2] + fs_spare1 + + + + + + + + + + int32_t + int32_t fs::fs_spare2 + + fs_spare2 + + + + + + + + + + int32_t + int32_t fs::fs_spare5[2] + [2] + fs_spare5 + + + + + + + + + + int32_t + int32_t fs::fs_sparecon32[26] + [26] + fs_sparecon32 + + + + + + + + + + int64_t + int64_t fs::fs_sparecon64[17] + [17] + fs_sparecon64 + + + + + + + + + + int32_t + int32_t fs::fs_state + + fs_state + + + + + + + + + + u_int64_t + u_int64_t fs::fs_swuid + + fs_swuid + + + + + + + + + + ufs_time_t + ufs_time_t fs::fs_time + + fs_time + + + + + + + + + + int32_t + int32_t fs::fs_unused_1 + + fs_unused_1 + + + + + + + + + + u_char + u_char fs::fs_volname[MAXVOLLEN] + [MAXVOLLEN] + fs_volname + + + + + + + + + + + + + + + + + + + + + + + + + + + fs_old_cstotal +fs_csp + + + fs_cstotal + + + + + + fsfs_active + fsfs_avgfilesize + fsfs_avgfpdir + fsfs_bmask + fsfs_bshift + fsfs_bsize + fsfs_cblkno + fsfs_cgrotor + fsfs_cgsize + fsfs_clean + fsfs_contigdirs + fsfs_contigsumsize + fsfs_csaddr + fsfs_csp + fsfs_cssize + fsfs_cstotal + fsfs_dblkno + fsfs_dsize + fsfs_firstfield + fsfs_flags + fsfs_fmask + fsfs_fmod + fsfs_fpg + fsfs_frag + fsfs_fragshift + fsfs_fsbtodb + fsfs_fshift + fsfs_fsize + fsfs_fsmnt + fsfs_iblkno + fsfs_id + fsfs_inopb + fsfs_ipg + fsfs_magic + fsfs_maxbpg + fsfs_maxbsize + fsfs_maxcluster + fsfs_maxcontig + fsfs_maxfilesize + fsfs_maxsymlinklen + fsfs_minfree + fsfs_ncg + fsfs_nindir + fsfs_ocsp + fsfs_old_cgmask + fsfs_old_cgoffset + fsfs_old_cpc + fsfs_old_cpg + fsfs_old_csaddr + fsfs_old_cstotal + fsfs_old_dsize + fsfs_old_flags + fsfs_old_inodefmt + fsfs_old_interleave + fsfs_old_ncyl + fsfs_old_npsect + fsfs_old_nrpos + fsfs_old_nsect + fsfs_old_nspf + fsfs_old_postblformat + fsfs_old_rotdelay + fsfs_old_rps + fsfs_old_size + fsfs_old_spc + fsfs_old_time + fsfs_old_trackskew + fsfs_optim + fsfs_pad + fsfs_pendingblocks + fsfs_pendinginodes + fsfs_qbmask + fsfs_qfmask + fsfs_ronly + fsfs_save_cgsize + fsfs_sblkno + fsfs_sblockloc + fsfs_sbsize + fsfs_size + fsfs_snapinum + fsfs_spare1 + fsfs_spare2 + fsfs_spare5 + fsfs_sparecon32 + fsfs_sparecon64 + fsfs_state + fsfs_swuid + fsfs_time + fsfs_unused_1 + fsfs_volname + + + diff --git a/doc/xml/structfstat__args.xml b/doc/xml/structfstat__args.xml new file mode 100644 index 0000000..ef5b84d --- /dev/null +++ b/doc/xml/structfstat__args.xml @@ -0,0 +1,115 @@ + + + + fstat_args + sysproto.h + + + int + int fstat_args::fd + + fd + + + + + + + + fstat + + + char + char fstat_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char fstat_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + stat * + struct stat* fstat_args::sb + + sb + + + + + + + + fstat + + + char + char fstat_args::sb_l_[PADL_(struct stat *)] + [PADL_(struct stat *)] + sb_l_ + + + + + + + + + + char + char fstat_args::sb_r_[PADR_(struct stat *)] + [PADR_(struct stat *)] + sb_r_ + + + + + + + + + + + + + + + + + + + sb + + + + + + + + + + fstat_argsfd + fstat_argsfd_l_ + fstat_argsfd_r_ + fstat_argssb + fstat_argssb_l_ + fstat_argssb_r_ + + + diff --git a/doc/xml/structgdtDescriptor.xml b/doc/xml/structgdtDescriptor.xml new file mode 100644 index 0000000..992a583 --- /dev/null +++ b/doc/xml/structgdtDescriptor.xml @@ -0,0 +1,116 @@ + + + + gdtDescriptor + gdt.h + + + unsigned char + unsigned char gdtDescriptor::access + + access + + + + + + + + + + unsigned char + unsigned char gdtDescriptor::baseHigh + + baseHigh + + + + + + + + + + unsigned short + unsigned short gdtDescriptor::baseLow + + baseLow + + + + + + + + + + unsigned char + unsigned char gdtDescriptor::baseMed + + baseMed + + + + + + + + + + unsigned int + unsigned int gdtDescriptor::granularity + + granularity + 4 + + + + + + + + + + unsigned int + unsigned int gdtDescriptor::limitHigh + + limitHigh + 4 + + + + + + + + + + unsigned short + unsigned short gdtDescriptor::limitLow + + limitLow + + + + + + + + + + + + + + + + gdtDescriptoraccess + gdtDescriptorbaseHigh + gdtDescriptorbaseLow + gdtDescriptorbaseMed + gdtDescriptorgranularity + gdtDescriptorlimitHigh + gdtDescriptorlimitLow + + + diff --git a/doc/xml/structgdtGate.xml b/doc/xml/structgdtGate.xml new file mode 100644 index 0000000..894e8e1 --- /dev/null +++ b/doc/xml/structgdtGate.xml @@ -0,0 +1,80 @@ + + + + gdtGate + gdt.h + + + unsigned short + unsigned short gdtGate::access + + access + + + + + + + + setTaskVector + setVector + + + unsigned short + unsigned short gdtGate::offsetHigh + + offsetHigh + + + + + + + + setTaskVector + setVector + + + unsigned short + unsigned short gdtGate::offsetLow + + offsetLow + + + + + + + + setTaskVector + setVector + + + unsigned short + unsigned short gdtGate::selector + + selector + + + + + + + + setTaskVector + setVector + + + + + + + + + gdtGateaccess + gdtGateoffsetHigh + gdtGateoffsetLow + gdtGateselector + + + diff --git a/doc/xml/structgdt__descr.xml b/doc/xml/structgdt__descr.xml new file mode 100644 index 0000000..5cd7b71 --- /dev/null +++ b/doc/xml/structgdt__descr.xml @@ -0,0 +1,49 @@ + + + + gdt_descr + + + uInt32 *base + uInt32* base gdt_descr::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + uInt16 + uInt16 gdt_descr::limit + + limit + + + + + + + + GDT_fixer + + + + + + + + + gdt_descr__attribute__ + gdt_descrlimit + + + diff --git a/doc/xml/structgetdtablesize__args.xml b/doc/xml/structgetdtablesize__args.xml new file mode 100644 index 0000000..ae8a85c --- /dev/null +++ b/doc/xml/structgetdtablesize__args.xml @@ -0,0 +1,30 @@ + + + + getdtablesize_args + sysproto.h + + + register_t + register_t getdtablesize_args::dummy + + dummy + + + + + + + + + + + + + + + + getdtablesize_argsdummy + + + diff --git a/doc/xml/structgetgid__args.xml b/doc/xml/structgetgid__args.xml new file mode 100644 index 0000000..cb6677a --- /dev/null +++ b/doc/xml/structgetgid__args.xml @@ -0,0 +1,30 @@ + + + + getgid_args + sysproto.h + + + register_t + register_t getgid_args::dummy + + dummy + + + + + + + + + + + + + + + + getgid_argsdummy + + + diff --git a/doc/xml/structgetpid__args.xml b/doc/xml/structgetpid__args.xml new file mode 100644 index 0000000..7a198cf --- /dev/null +++ b/doc/xml/structgetpid__args.xml @@ -0,0 +1,30 @@ + + + + getpid_args + sysproto.h + + + register_t + register_t getpid_args::dummy + + dummy + + + + + + + + + + + + + + + + getpid_argsdummy + + + diff --git a/doc/xml/structgettimeofday__args.xml b/doc/xml/structgettimeofday__args.xml new file mode 100644 index 0000000..2c4f986 --- /dev/null +++ b/doc/xml/structgettimeofday__args.xml @@ -0,0 +1,120 @@ + + + + gettimeofday_args + sysproto.h + + + timeval * + struct timeval* gettimeofday_args::tp + + tp + + + + + + + + + + char + char gettimeofday_args::tp_l_[PADL_(struct timeval *)] + [PADL_(struct timeval *)] + tp_l_ + + + + + + + + + + char + char gettimeofday_args::tp_r_[PADR_(struct timeval *)] + [PADR_(struct timeval *)] + tp_r_ + + + + + + + + + + timezone * + struct timezone* gettimeofday_args::tzp + + tzp + + + + + + + + + + char + char gettimeofday_args::tzp_l_[PADL_(struct timezone *)] + [PADL_(struct timezone *)] + tzp_l_ + + + + + + + + + + char + char gettimeofday_args::tzp_r_[PADR_(struct timezone *)] + [PADR_(struct timezone *)] + tzp_r_ + + + + + + + + + + + + + + + + + + + + + + + tzp + + + tp + + + + + + + + + + gettimeofday_argstp + gettimeofday_argstp_l_ + gettimeofday_argstp_r_ + gettimeofday_argstzp + gettimeofday_argstzp_l_ + gettimeofday_argstzp_r_ + + + diff --git a/doc/xml/structgetuid__args.xml b/doc/xml/structgetuid__args.xml new file mode 100644 index 0000000..5ab98c1 --- /dev/null +++ b/doc/xml/structgetuid__args.xml @@ -0,0 +1,30 @@ + + + + getuid_args + sysproto.h + + + register_t + register_t getuid_args::dummy + + dummy + + + + + + + + + + + + + + + + getuid_argsdummy + + + diff --git a/doc/xml/structhostRingEntry.xml b/doc/xml/structhostRingEntry.xml new file mode 100644 index 0000000..1cef903 --- /dev/null +++ b/doc/xml/structhostRingEntry.xml @@ -0,0 +1,71 @@ + + + + hostRingEntry + lnc.h + + + hostRingEntry::@6 + union hostRingEntry::@6 hostRingEntry::buff + + buff + + + + + + + + + + char * + char* hostRingEntry::data + + data + + + + + + + + + + mds * + struct mds* hostRingEntry::md + + md + + + + + + + + + + + + + + + + + + + + + + + md + + + + + + hostRingEntrybuff + hostRingEntrydata + hostRingEntrymd + + + diff --git a/doc/xml/structi386__frame.xml b/doc/xml/structi386__frame.xml new file mode 100644 index 0000000..d81418a --- /dev/null +++ b/doc/xml/structi386__frame.xml @@ -0,0 +1,268 @@ + + + + i386_frame + tss.h + + + uInt32 + uInt32 i386_frame::cs + + cs + + + + + + + + + + uInt32 + uInt32 i386_frame::ds + + ds + + + + + + + + + + uInt32 + uInt32 i386_frame::eax + + eax + + + + + + + + + + uInt32 + uInt32 i386_frame::ebp + + ebp + + + + + + + + + + uInt32 + uInt32 i386_frame::ebx + + ebx + + + + + + + + + + uInt32 + uInt32 i386_frame::ecx + + ecx + + + + + + + + + + uInt32 + uInt32 i386_frame::edi + + edi + + + + + + + + + + uInt32 + uInt32 i386_frame::edx + + edx + + + + + + + + + + uInt32 + uInt32 i386_frame::eip + + eip + + + + + + + + + + uInt32 + uInt32 i386_frame::es + + es + + + + + + + + + + uInt32 + uInt32 i386_frame::esi + + esi + + + + + + + + + + uInt32 + uInt32 i386_frame::esp + + esp + + + + + + + + + + uInt32 + uInt32 i386_frame::flags + + flags + + + + + + + + + + uInt32 + uInt32 i386_frame::fs + + fs + + + + + + + + + + uInt32 + uInt32 i386_frame::gs + + gs + + + + + + + + + + uInt32 + uInt32 i386_frame::ss + + ss + + + + + + + + + + uInt32 + uInt32 i386_frame::user_esp + + user_esp + + + + + + + + + + uInt32 + uInt32 i386_frame::user_ss + + user_ss + + + + + + + + + + + + + + + + i386_framecs + i386_frameds + i386_frameeax + i386_frameebp + i386_frameebx + i386_frameecx + i386_frameedi + i386_frameedx + i386_frameeip + i386_framees + i386_frameesi + i386_frameesp + i386_frameflags + i386_framefs + i386_framegs + i386_framess + i386_frameuser_esp + i386_frameuser_ss + + + diff --git a/doc/xml/structi387Struct.xml b/doc/xml/structi387Struct.xml new file mode 100644 index 0000000..e5342bc --- /dev/null +++ b/doc/xml/structi387Struct.xml @@ -0,0 +1,128 @@ + + + + i387Struct + tss.h + + + long + long i387Struct::cwd + + cwd + + + + + + + + + + long + long i387Struct::fcs + + fcs + + + + + + + + + + long + long i387Struct::fip + + fip + + + + + + + + + + long + long i387Struct::foo + + foo + + + + + + + + + + long + long i387Struct::fos + + fos + + + + + + + + + + long + long i387Struct::st_space[20] + [20] + st_space + + + + + + + + + + long + long i387Struct::swd + + swd + + + + + + + + + + long + long i387Struct::twd + + twd + + + + + + + + + + + + + + + + i387Structcwd + i387Structfcs + i387Structfip + i387Structfoo + i387Structfos + i387Structst_space + i387Structswd + i387Structtwd + + + diff --git a/doc/xml/structicmp__dur__hdr.xml b/doc/xml/structicmp__dur__hdr.xml new file mode 100644 index 0000000..72953c0 --- /dev/null +++ b/doc/xml/structicmp__dur__hdr.xml @@ -0,0 +1,128 @@ + + + + icmp_dur_hdr + icmp.h + + + + icmp_dur_hdr::PACK_STRUCT_FIELD + (uInt32 unused) + PACK_STRUCT_FIELD + + uInt32 + unused + + + + + + + + + + + + icmp_dur_hdr::PACK_STRUCT_FIELD + (uInt16 chksum) + PACK_STRUCT_FIELD + + uInt16 + chksum + + + + + + + + + + + + icmp_dur_hdr::PACK_STRUCT_FIELD + (uInt16 _type_code) + PACK_STRUCT_FIELD + + uInt16 + _type_code + + + + + + + + + + + + + u16_t + u16_t icmp_dur_hdr::chksum + + chksum + + + + + + + + + + u8_t + u8_t icmp_dur_hdr::icode + + icode + + + + + + + + + + u8_t + u8_t icmp_dur_hdr::type + + type + + + + + + + + + + u32_t + u32_t icmp_dur_hdr::unused + + unused + + + + + + + + + + + + + + + + icmp_dur_hdrchksum + icmp_dur_hdricode + icmp_dur_hdrPACK_STRUCT_FIELD + icmp_dur_hdrPACK_STRUCT_FIELD + icmp_dur_hdrPACK_STRUCT_FIELD + icmp_dur_hdrtype + icmp_dur_hdrunused + + + diff --git a/doc/xml/structicmp__echo__hdr.xml b/doc/xml/structicmp__echo__hdr.xml new file mode 100644 index 0000000..7872c5c --- /dev/null +++ b/doc/xml/structicmp__echo__hdr.xml @@ -0,0 +1,160 @@ + + + + icmp_echo_hdr + icmp.h + + + + icmp_echo_hdr::PACK_STRUCT_FIELD + (uInt16 seqno) + PACK_STRUCT_FIELD + + uInt16 + seqno + + + + + + + + + + + + icmp_echo_hdr::PACK_STRUCT_FIELD + (uInt16 id) + PACK_STRUCT_FIELD + + uInt16 + id + + + + + + + + + + + + icmp_echo_hdr::PACK_STRUCT_FIELD + (uInt16 chksum) + PACK_STRUCT_FIELD + + uInt16 + chksum + + + + + + + + + + + + icmp_echo_hdr::PACK_STRUCT_FIELD + (uInt16 _type_code) + PACK_STRUCT_FIELD + + uInt16 + _type_code + + + + + + + + + + + + + u16_t + u16_t icmp_echo_hdr::chksum + + chksum + + + + + + + + + + u8_t + u8_t icmp_echo_hdr::icode + + icode + + + + + + + + + + u16_t + u16_t icmp_echo_hdr::id + + id + + + + + + + + + + u16_t + u16_t icmp_echo_hdr::seqno + + seqno + + + + + + + + + + u8_t + u8_t icmp_echo_hdr::type + + type + + + + + + + + + + + + + + + + icmp_echo_hdrchksum + icmp_echo_hdricode + icmp_echo_hdrid + icmp_echo_hdrPACK_STRUCT_FIELD + icmp_echo_hdrPACK_STRUCT_FIELD + icmp_echo_hdrPACK_STRUCT_FIELD + icmp_echo_hdrPACK_STRUCT_FIELD + icmp_echo_hdrseqno + icmp_echo_hdrtype + + + diff --git a/doc/xml/structicmp__te__hdr.xml b/doc/xml/structicmp__te__hdr.xml new file mode 100644 index 0000000..f65e25e --- /dev/null +++ b/doc/xml/structicmp__te__hdr.xml @@ -0,0 +1,128 @@ + + + + icmp_te_hdr + icmp.h + + + + icmp_te_hdr::PACK_STRUCT_FIELD + (uInt32 unused) + PACK_STRUCT_FIELD + + uInt32 + unused + + + + + + + + + + + + icmp_te_hdr::PACK_STRUCT_FIELD + (uInt16 chksum) + PACK_STRUCT_FIELD + + uInt16 + chksum + + + + + + + + + + + + icmp_te_hdr::PACK_STRUCT_FIELD + (uInt16 _type_code) + PACK_STRUCT_FIELD + + uInt16 + _type_code + + + + + + + + + + + + + u16_t + u16_t icmp_te_hdr::chksum + + chksum + + + + + + + + + + u8_t + u8_t icmp_te_hdr::icode + + icode + + + + + + + + + + u8_t + u8_t icmp_te_hdr::type + + type + + + + + + + + + + u32_t + u32_t icmp_te_hdr::unused + + unused + + + + + + + + + + + + + + + + icmp_te_hdrchksum + icmp_te_hdricode + icmp_te_hdrPACK_STRUCT_FIELD + icmp_te_hdrPACK_STRUCT_FIELD + icmp_te_hdrPACK_STRUCT_FIELD + icmp_te_hdrtype + icmp_te_hdrunused + + + diff --git a/doc/xml/structin__addr.xml b/doc/xml/structin__addr.xml new file mode 100644 index 0000000..1326d68 --- /dev/null +++ b/doc/xml/structin__addr.xml @@ -0,0 +1,31 @@ + + + + in_addr + sockets.h + + + uInt32 + uInt32 in_addr::s_addr + + s_addr + + + + + + + + inet_aton + + + + + + + + + in_addrs_addr + + + diff --git a/doc/xml/structinitBlock.xml b/doc/xml/structinitBlock.xml new file mode 100644 index 0000000..b3aba48 --- /dev/null +++ b/doc/xml/structinitBlock.xml @@ -0,0 +1,114 @@ + + + + initBlock + lnc.h + + + uInt8 + uInt8 initBlock::ladrf[8] + [8] + ladrf + + + + + + + + + + uInt16 + uInt16 initBlock::mode + + mode + + + + + + + + + + uInt8 + uInt8 initBlock::padr[6] + [6] + padr + + + + + + + + + + uInt16 + uInt16 initBlock::rdra + + rdra + + + + + + + + + + uInt16 + uInt16 initBlock::rlen + + rlen + + + + + + + + + + uInt16 + uInt16 initBlock::tdra + + tdra + + + + + + + + + + uInt16 + uInt16 initBlock::tlen + + tlen + + + + + + + + + + + + + + + + initBlockladrf + initBlockmode + initBlockpadr + initBlockrdra + initBlockrlen + initBlocktdra + initBlocktlen + + + diff --git a/doc/xml/structioctl__args.xml b/doc/xml/structioctl__args.xml new file mode 100644 index 0000000..1168e94 --- /dev/null +++ b/doc/xml/structioctl__args.xml @@ -0,0 +1,142 @@ + + + + ioctl_args + sysproto.h + + + u_long + u_long ioctl_args::com + + com + + + + + + + + + + char + char ioctl_args::com_l_[PADL_(u_long)] + [PADL_(u_long)] + com_l_ + + + + + + + + + + char + char ioctl_args::com_r_[PADR_(u_long)] + [PADR_(u_long)] + com_r_ + + + + + + + + + + caddr_t + caddr_t ioctl_args::data + + data + + + + + + + + + + char + char ioctl_args::data_l_[PADL_(caddr_t)] + [PADL_(caddr_t)] + data_l_ + + + + + + + + + + char + char ioctl_args::data_r_[PADR_(caddr_t)] + [PADR_(caddr_t)] + data_r_ + + + + + + + + + + int + int ioctl_args::fd + + fd + + + + + + + + + + char + char ioctl_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char ioctl_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + + + + + + + ioctl_argscom + ioctl_argscom_l_ + ioctl_argscom_r_ + ioctl_argsdata + ioctl_argsdata_l_ + ioctl_argsdata_r_ + ioctl_argsfd + ioctl_argsfd_l_ + ioctl_argsfd_r_ + + + diff --git a/doc/xml/structip__addr.xml b/doc/xml/structip__addr.xml new file mode 100644 index 0000000..db4628e --- /dev/null +++ b/doc/xml/structip__addr.xml @@ -0,0 +1,56 @@ + + + + ip_addr + ip_addr.h + + + + ip_addr::PACK_STRUCT_FIELD + (uInt32 addr) + PACK_STRUCT_FIELD + + uInt32 + addr + + + + + + + + + + + + + u32_t + u32_t ip_addr::addr[4] + [4] + addr + + + + + + + + lwip_accept + lwip_bind + lwip_connect + lwip_recvfrom + lwip_sendto + udpecho_thread + + + + + + + + + ip_addraddr + ip_addrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structip__hdr.xml b/doc/xml/structip__hdr.xml new file mode 100644 index 0000000..a3533cf --- /dev/null +++ b/doc/xml/structip__hdr.xml @@ -0,0 +1,305 @@ + + + + ip_hdr + ip.h + + + + ip_hdr::PACK_STRUCT_FIELD + (struct ip_addr dest) + PACK_STRUCT_FIELD + + struct ip_addr + dest + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (struct ip_addr src) + PACK_STRUCT_FIELD + + struct ip_addr + src + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _chksum) + PACK_STRUCT_FIELD + + uInt16 + _chksum + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _ttl_proto) + PACK_STRUCT_FIELD + + uInt16 + _ttl_proto + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _offset) + PACK_STRUCT_FIELD + + uInt16 + _offset + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _id) + PACK_STRUCT_FIELD + + uInt16 + _id + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _len) + PACK_STRUCT_FIELD + + uInt16 + _len + + + + + + + + + + + + ip_hdr::PACK_STRUCT_FIELD + (uInt16 _v_hl_tos) + PACK_STRUCT_FIELD + + uInt16 + _v_hl_tos + + + + + + + + + + + + + ip_addr src + struct ip_addr src ip_hdr::dest + + dest + + + + + + + + + + u8_t + u8_t ip_hdr::flow1 + + flow1 + 4 + + + + + + + + + + u16_t + u16_t ip_hdr::flow2 + + flow2 + + + + + + + + + + u8_t + u8_t ip_hdr::hoplim + + hoplim + + + + + + + + + + u16_t + u16_t ip_hdr::len + + len + + + + + + + + + + u8_t + u8_t ip_hdr::nexthdr + + nexthdr + + + + + + + + + + u8_t + u8_t ip_hdr::tclass1 + + tclass1 + 4 + + + + + + + + + + u8_t + u8_t ip_hdr::tclass2 + + tclass2 + 4 + + + + + + + + + + u8_t + u8_t ip_hdr::v + + v + 4 + + + + + + + + + + + + + + + + + + + + + + + dest + + + + + + ip_hdrdest + ip_hdrflow1 + ip_hdrflow2 + ip_hdrhoplim + ip_hdrlen + ip_hdrnexthdr + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrPACK_STRUCT_FIELD + ip_hdrtclass1 + ip_hdrtclass2 + ip_hdrv + + + diff --git a/doc/xml/structissetugid__args.xml b/doc/xml/structissetugid__args.xml new file mode 100644 index 0000000..68598d4 --- /dev/null +++ b/doc/xml/structissetugid__args.xml @@ -0,0 +1,30 @@ + + + + issetugid_args + sysproto.h + + + register_t + register_t issetugid_args::dummy + + dummy + + + + + + + + + + + + + + + + issetugid_argsdummy + + + diff --git a/doc/xml/structkmod__struct.xml b/doc/xml/structkmod__struct.xml new file mode 100644 index 0000000..8a4455d --- /dev/null +++ b/doc/xml/structkmod__struct.xml @@ -0,0 +1,110 @@ + + + + kmod_struct + kmod.h + + + uInt32 + uInt32 kmod_struct::address + + address + + + + + + + + + + uInt16 + uInt16 kmod_struct::id + + id + + + + + + + + + + char + char kmod_struct::name[128] + [128] + name + + + + + + + + + + kmod_struct * + struct kmod_struct* kmod_struct::next + + next + + + + + + + + + + kmod_struct * + struct kmod_struct* kmod_struct::prev + + prev + + + + + + + + + + uInt16 + uInt16 kmod_struct::refs + + refs + + + + + + + + + + + + + + + + + + + prev +next + + + + + + kmod_structaddress + kmod_structid + kmod_structname + kmod_structnext + kmod_structprev + kmod_structrefs + + + diff --git a/doc/xml/structlncInfo.xml b/doc/xml/structlncInfo.xml new file mode 100644 index 0000000..16145c8 --- /dev/null +++ b/doc/xml/structlncInfo.xml @@ -0,0 +1,220 @@ + + + + lncInfo + lnc.h + + + arpcom + struct arpcom lncInfo::arpcom + + arpcom + + + + + + + + initLNC + lncAttach + + + int + int lncInfo::bdp + + bdp + + + + + + + + initLNC + readBcr + writeBcr + + + initBlock * + struct initBlock* lncInfo::initBloack + + initBloack + + + + + + + + + + nicInfo + struct nicInfo lncInfo::nic + + nic + + + + + + + + initLNC + lncAttach + + + int + int lncInfo::nrdre + + nrdre + + + + + + + + initLNC + lncAttach + + + int + int lncInfo::ntdre + + ntdre + + + + + + + + initLNC + lncAttach + + + int + int lncInfo::rap + + rap + + + + + + + + initLNC + readBcr + readCsr + writeBcr + writeCsr + + + int + int lncInfo::rdp + + rdp + + + + + + + + initLNC + lanceProbe + lncInt + readCsr + writeCsr + + + hostRingEntry * + struct hostRingEntry* lncInfo::recvRing + + recvRing + + + + + + + + lncAttach + + + hostRingEntry * + struct hostRingEntry* lncInfo::transRings + + transRings + + + + + + + + + + + + + + + + + + + + + + + + + + + arpcom + + + nic + + + recvRing +transRings + + + initBloack + + + + + + + + + + + md + + + + + + + + + + lncInfoarpcom + lncInfobdp + lncInfoinitBloack + lncInfonic + lncInfonrdre + lncInfontdre + lncInforap + lncInfordp + lncInforecvRing + lncInfotransRings + + + diff --git a/doc/xml/structlwip__socket.xml b/doc/xml/structlwip__socket.xml new file mode 100644 index 0000000..b6e61bd --- /dev/null +++ b/doc/xml/structlwip__socket.xml @@ -0,0 +1,197 @@ + + + + lwip_socket + + + netconn * + struct netconn* lwip_socket::conn + + conn + + + + + + + + alloc_socket + get_socket + lwip_accept + lwip_bind + lwip_close + lwip_connect + lwip_listen + lwip_recvfrom + lwip_send + lwip_sendto + lwip_write + + + netbuf * + struct netbuf* lwip_socket::lastdata + + lastdata + + + + + + + + alloc_socket + lwip_close + lwip_recvfrom + + + uInt16 + uInt16 lwip_socket::lastoffset + + lastoffset + + + + + + + + alloc_socket + lwip_close + lwip_recvfrom + + + + + + + + + + + + mutex +mail + + + + + + + + + + + ptr +p + + + fromaddr + + + + + + + lastdata + + + conn + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + remote_ip + + + next + + + + + + + recvmbox +acceptmbox +mbox + + + sem + + + udp + + + tcp + + + + + + + mutex + + + cond + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + lwip_socketconn + lwip_socketlastdata + lwip_socketlastoffset + + + diff --git a/doc/xml/structmMap.xml b/doc/xml/structmMap.xml new file mode 100644 index 0000000..35040b4 --- /dev/null +++ b/doc/xml/structmMap.xml @@ -0,0 +1,98 @@ + + + + mMap + vmm.h + + + int + int mMap::cowCounter + + cowCounter + + + + + + + + adjustCowCounter + freePage + vmmFreeProcessPages + + + uInt32 + uInt32 mMap::pageAddr + + pageAddr + + + + + + + + vmmMemMapInit + + + pid_t + pid_t mMap::pid + + pid + + + + + + + + adjustCowCounter + freePage + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + uInt16 + uInt16 mMap::reserved + + reserved + + + + + + + + + + uInt16 + uInt16 mMap::status + + status + + + + + + + + adjustCowCounter + freePage + vmmMemMapInit + + + + + + + + + mMapcowCounter + mMappageAddr + mMappid + mMapreserved + mMapstatus + + + diff --git a/doc/xml/structmds.xml b/doc/xml/structmds.xml new file mode 100644 index 0000000..12ba029 --- /dev/null +++ b/doc/xml/structmds.xml @@ -0,0 +1,72 @@ + + + + mds + lnc.h + + + uInt16 + uInt16 mds::md0 + + md0 + + + + + + + + + + uInt16 + uInt16 mds::md1 + + md1 + + + + + + + + + + short + short mds::md2 + + md2 + + + + + + + + + + uInt16 + uInt16 mds::md3 + + md3 + + + + + + + + + + + + + + + + mdsmd0 + mdsmd1 + mdsmd2 + mdsmd3 + + + diff --git a/doc/xml/structmemDescriptor.xml b/doc/xml/structmemDescriptor.xml new file mode 100644 index 0000000..44f14c7 --- /dev/null +++ b/doc/xml/structmemDescriptor.xml @@ -0,0 +1,99 @@ + + + + memDescriptor + kmalloc.h + + + void * + void* memDescriptor::baseAddr + + baseAddr + + + + + + + + kfree + kmalloc + mergeMemBlocks + + + uInt32 + uInt32 memDescriptor::limit + + limit + + + + + + + + insertFreeDesc + kfree + kmalloc + mergeMemBlocks + + + memDescriptor * + struct memDescriptor* memDescriptor::next + + next + + + + + + + + getEmptyDesc + insertFreeDesc + kfree + kmalloc + mergeMemBlocks + + + memDescriptor * + struct memDescriptor* memDescriptor::prev + + prev + + + + + + + + getEmptyDesc + insertFreeDesc + kfree + kmalloc + mergeMemBlocks + + + + + + + + + + + + prev +next + + + + + + memDescriptorbaseAddr + memDescriptorlimit + memDescriptornext + memDescriptorprev + + + diff --git a/doc/xml/structmmap__args.xml b/doc/xml/structmmap__args.xml new file mode 100644 index 0000000..1bcefe1 --- /dev/null +++ b/doc/xml/structmmap__args.xml @@ -0,0 +1,313 @@ + + + + mmap_args + sysproto.h + + + caddr_t + caddr_t mmap_args::addr + + addr + + + + + + + + mmap + + + char + char mmap_args::addr_l_[PADL_(caddr_t)] + [PADL_(caddr_t)] + addr_l_ + + + + + + + + + + char + char mmap_args::addr_r_[PADR_(caddr_t)] + [PADR_(caddr_t)] + addr_r_ + + + + + + + + + + int + int mmap_args::fd + + fd + + + + + + + + mmap + + + char + char mmap_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char mmap_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + int + int mmap_args::flags + + flags + + + + + + + + + + char + char mmap_args::flags_l_[PADL_(int)] + [PADL_(int)] + flags_l_ + + + + + + + + + + char + char mmap_args::flags_r_[PADR_(int)] + [PADR_(int)] + flags_r_ + + + + + + + + + + size_t + size_t mmap_args::len + + len + + + + + + + + mmap + + + char + char mmap_args::len_l_[PADL_(size_t)] + [PADL_(size_t)] + len_l_ + + + + + + + + + + char + char mmap_args::len_r_[PADR_(size_t)] + [PADR_(size_t)] + len_r_ + + + + + + + + + + int + int mmap_args::pad + + pad + + + + + + + + + + char + char mmap_args::pad_l_[PADL_(int)] + [PADL_(int)] + pad_l_ + + + + + + + + + + char + char mmap_args::pad_r_[PADR_(int)] + [PADR_(int)] + pad_r_ + + + + + + + + + + off_t + off_t mmap_args::pos + + pos + + + + + + + + + + char + char mmap_args::pos_l_[PADL_(off_t)] + [PADL_(off_t)] + pos_l_ + + + + + + + + + + char + char mmap_args::pos_r_[PADR_(off_t)] + [PADR_(off_t)] + pos_r_ + + + + + + + + + + int + int mmap_args::prot + + prot + + + + + + + + + + char + char mmap_args::prot_l_[PADL_(int)] + [PADL_(int)] + prot_l_ + + + + + + + + + + char + char mmap_args::prot_r_[PADR_(int)] + [PADR_(int)] + prot_r_ + + + + + + + + + + + + + + + + mmap_argsaddr + mmap_argsaddr_l_ + mmap_argsaddr_r_ + mmap_argsfd + mmap_argsfd_l_ + mmap_argsfd_r_ + mmap_argsflags + mmap_argsflags_l_ + mmap_argsflags_r_ + mmap_argslen + mmap_argslen_l_ + mmap_argslen_r_ + mmap_argspad + mmap_argspad_l_ + mmap_argspad_r_ + mmap_argspos + mmap_argspos_l_ + mmap_argspos_r_ + mmap_argsprot + mmap_argsprot_l_ + mmap_argsprot_r_ + + + diff --git a/doc/xml/structmpi__mbox.xml b/doc/xml/structmpi__mbox.xml new file mode 100644 index 0000000..872fe9c --- /dev/null +++ b/doc/xml/structmpi__mbox.xml @@ -0,0 +1,122 @@ + + + + mpi_mbox + mpi.h + + + mpi_message * + struct mpi_message* mpi_mbox::msg + + msg + + + + + + + + + + mpi_message * + struct mpi_message* mpi_mbox::msgLast + + msgLast + + + + + + + + + + char + char mpi_mbox::name[64] + [64] + name + + + + + + + + + + mpi_mbox * + struct mpi_mbox* mpi_mbox::next + + next + + + + + + + + + + pidType + pidType mpi_mbox::pid + + pid + + + + + + + + + + mpi_mbox * + struct mpi_mbox* mpi_mbox::prev + + prev + + + + + + + + mpi_createMbox + + + + + + + + + + + + next + + + + + + + msgLast +msg + + + prev +next + + + + + + mpi_mboxmsg + mpi_mboxmsgLast + mpi_mboxname + mpi_mboxnext + mpi_mboxpid + mpi_mboxprev + + + diff --git a/doc/xml/structmpi__message.xml b/doc/xml/structmpi__message.xml new file mode 100644 index 0000000..60dac09 --- /dev/null +++ b/doc/xml/structmpi__message.xml @@ -0,0 +1,95 @@ + + + + mpi_message + mpi.h + + + char + char mpi_message::data[MESSAGE_LENGTH] + [MESSAGE_LENGTH] + data + + + + + + + + mpi_fetchMessage + mpi_postMessage + mpi_spam + systemTask + + + uInt32 + uInt32 mpi_message::header + + header + + + + + + + + mpi_fetchMessage + mpi_postMessage + mpi_spam + systemTask + ubixfs_thread + + + mpi_message * + struct mpi_message* mpi_message::next + + next + + + + + + + + mpi_postMessage + mpi_spam + + + pidType + pidType mpi_message::pid + + pid + + + + + + + + mpi_fetchMessage + mpi_postMessage + systemTask + + + + + + + + + + + + next + + + + + + mpi_messagedata + mpi_messageheader + mpi_messagenext + mpi_messagepid + + + diff --git a/doc/xml/structmunmap__args.xml b/doc/xml/structmunmap__args.xml new file mode 100644 index 0000000..2777075 --- /dev/null +++ b/doc/xml/structmunmap__args.xml @@ -0,0 +1,100 @@ + + + + munmap_args + sysproto.h + + + void * + void* munmap_args::addr + + addr + + + + + + + + + + char + char munmap_args::addr_l_[PADL_(void *)] + [PADL_(void *)] + addr_l_ + + + + + + + + + + char + char munmap_args::addr_r_[PADR_(void *)] + [PADR_(void *)] + addr_r_ + + + + + + + + + + size_t + size_t munmap_args::len + + len + + + + + + + + + + char + char munmap_args::len_l_[PADL_(size_t)] + [PADL_(size_t)] + len_l_ + + + + + + + + + + char + char munmap_args::len_r_[PADR_(size_t)] + [PADR_(size_t)] + len_r_ + + + + + + + + + + + + + + + + munmap_argsaddr + munmap_argsaddr_l_ + munmap_argsaddr_r_ + munmap_argslen + munmap_argslen_l_ + munmap_argslen_r_ + + + diff --git a/doc/xml/structnet.xml b/doc/xml/structnet.xml new file mode 100644 index 0000000..fc5b95a --- /dev/null +++ b/doc/xml/structnet.xml @@ -0,0 +1,44 @@ + + + + net + device.old.h + + + char + char net::broadcast[6] + [6] + broadcast + + + + + + + + + + char + char net::mac[6] + [6] + mac + + + + + + + + + + + + + + + + netbroadcast + netmac + + + diff --git a/doc/xml/structnetbuf.xml b/doc/xml/structnetbuf.xml new file mode 100644 index 0000000..8249fc6 --- /dev/null +++ b/doc/xml/structnetbuf.xml @@ -0,0 +1,140 @@ + + + + netbuf + api.h + + + err_t + err_t netbuf::err + + err + + + + + + + + lwip_send + + + ip_addr * + struct ip_addr* netbuf::fromaddr + + fromaddr + + + + + + + + netbuf_fromaddr + netconn_recv + recv_udp + + + uInt16 + uInt16 netbuf::fromport + + fromport + + + + + + + + netbuf_fromport + netconn_recv + recv_udp + + + pbuf * + struct pbuf* netbuf::p + + p + + + + + + + + netbuf_alloc + netbuf_chain + netbuf_copy_partial + netbuf_delete + netbuf_first + netbuf_free + netbuf_len + netbuf_new + netbuf_ref + netconn_recv + netconn_send + recv_udp + + + pbuf * + struct pbuf * netbuf::ptr + + ptr + + + + + + + + netbuf_alloc + netbuf_chain + netbuf_data + netbuf_delete + netbuf_first + netbuf_free + netbuf_new + netbuf_next + netbuf_ref + netconn_recv + recv_udp + + + + + + + + + + + + + + + + ptr +p + + + fromaddr + + + + + + + next + + + + + + netbuferr + netbuffromaddr + netbuffromport + netbufp + netbufptr + + + diff --git a/doc/xml/structnetconn.xml b/doc/xml/structnetconn.xml new file mode 100644 index 0000000..1ed0d75 --- /dev/null +++ b/doc/xml/structnetconn.xml @@ -0,0 +1,384 @@ + + + + netconn + api.h + + + sys_mbox_t + sys_mbox_t netconn::acceptmbox + + acceptmbox + + + + + + + + accept_function + do_listen + err_tcp + netconn_accept + netconn_delete + netconn_listen + netconn_new + + + err_t + err_t netconn::err + + err + + + + + + + + accept_function + do_bind + do_close + do_connect + do_connected + do_listen + do_write + err_tcp + netconn_addr + netconn_bind + netconn_close + netconn_connect + netconn_err + netconn_listen + netconn_peer + netconn_recv + netconn_send + netconn_write + recv_tcp + + + sys_mbox_t + sys_mbox_t netconn::mbox + + mbox + + + + + + + + accept_function + do_bind + do_close + do_connect + do_connected + do_delconn + do_listen + do_recv + do_send + do_write + err_tcp + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_new + netconn_recv + netconn_send + netconn_write + + + netconn::@0 + union netconn::@0 netconn::pcb + + pcb + + + + + + + + accept_function + do_accept + do_bind + do_close + do_connect + do_delconn + do_listen + do_recv + do_send + do_write + err_tcp + netconn_addr + netconn_new + netconn_peer + netconn_recv + netconn_write + setup_tcp + + + sys_mbox_t + sys_mbox_t netconn::recvmbox + + recvmbox + + + + + + + + accept_function + err_tcp + netconn_bind + netconn_connect + netconn_delete + netconn_new + netconn_recv + recv_tcp + recv_udp + + + sys_sem_t + sys_sem_t netconn::sem + + sem + + + + + + + + accept_function + err_tcp + netconn_close + netconn_delete + netconn_new + netconn_write + poll_tcp + sent_tcp + + + enum netconn_state + enum netconn_state netconn::state + + state + + + + + + + + netconn_close + netconn_new + netconn_write + poll_tcp + + + tcp_pcb * + struct tcp_pcb* netconn::tcp + + tcp + + + + + + + + accept_function + do_accept + do_bind + do_close + do_connect + do_delconn + do_listen + do_recv + do_send + do_write + err_tcp + netconn_addr + netconn_new + netconn_peer + netconn_recv + netconn_write + setup_tcp + + + enum netconn_type + enum netconn_type netconn::type + + type + + + + + + + + accept_function + do_accept + do_bind + do_close + do_connect + do_connected + do_delconn + do_listen + do_recv + do_send + do_write + netconn_addr + netconn_bind + netconn_delete + netconn_new + netconn_peer + netconn_recv + netconn_type + netconn_write + + + udp_pcb * + struct udp_pcb* netconn::udp + + udp + + + + + + + + do_bind + do_connect + do_delconn + do_send + netconn_addr + netconn_peer + + + + + + + + + + + + mutex +mail + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + remote_ip + + + next + + + + + + + recvmbox +acceptmbox +mbox + + + sem + + + udp + + + tcp + + + + + + + mutex + + + cond + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + netconnacceptmbox + netconnerr + netconnmbox + netconnpcb + netconnrecvmbox + netconnsem + netconnstate + netconntcp + netconntype + netconnudp + + + diff --git a/doc/xml/structnetif.xml b/doc/xml/structnetif.xml new file mode 100644 index 0000000..9adc677 --- /dev/null +++ b/doc/xml/structnetif.xml @@ -0,0 +1,207 @@ + + + + netif + netif.h + + + ip_addr + struct ip_addr netif::gw + + gw + + + + + + + + ethernetif_output + + + char + char netif::hwaddr[6] + [6] + hwaddr + + + + + + + + ethernetif_init + + + err_t(* + err_t(* netif::input)(struct pbuf *p, struct netif *inp) + )(struct pbuf *p, struct netif *inp) + input + + + + + + + + ethernetif_input + loopif_output + + + ip_addr + struct ip_addr netif::ip_addr + + ip_addr + + + + + + + + arp_arp_input + arp_ip_input + arp_query + ethernetif_output + + + err_t(* + err_t(* netif::linkoutput)(struct netif *netif, struct pbuf *p) + )(struct netif *netif, struct pbuf *p) + linkoutput + + + + + + + + ethernetif_init + + + char + char netif::name[2] + [2] + name + + + + + + + + ethernetif_init + loopif_init + + + ip_addr + struct ip_addr netif::netmask + + netmask + + + + + + + + arp_ip_input + ethernetif_output + + + netif * + struct netif* netif::next + + next + + + + + + + + + + uInt8 + uInt8 netif::num + + num + + + + + + + + + + err_t(* + err_t(* netif::output)(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) + )(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) + output + + + + + + + + ethernetif_init + loopif_init + + + void * + void* netif::state + + state + + + + + + + + ethernetif_init + ethernetif_input + ethernetif_output + low_level_init + + + + + + + + + + + + + + + + next + + + netmask +ip_addr +gw + + + + + + netifgw + netifhwaddr + netifinput + netifip_addr + netiflinkoutput + netifname + netifnetmask + netifnext + netifnum + netifoutput + netifstate + + + diff --git a/doc/xml/structnicBuffer.xml b/doc/xml/structnicBuffer.xml new file mode 100644 index 0000000..fe904a0 --- /dev/null +++ b/doc/xml/structnicBuffer.xml @@ -0,0 +1,76 @@ + + + + nicBuffer + ne2k.h + + + char * + char* nicBuffer::buffer + + buffer + + + + + + + + dp_pkt2user + low_level_input + ne2kAllocBuffer + ne2kFreeBuffer + + + int + int nicBuffer::length + + length + + + + + + + + ethernetif_thread + low_level_input + ne2kAllocBuffer + + + nicBuffer * + struct nicBuffer* nicBuffer::next + + next + + + + + + + + ne2kAllocBuffer + ne2kGetBuffer + + + + + + + + + + + + next + + + + + + nicBufferbuffer + nicBufferlength + nicBuffernext + + + diff --git a/doc/xml/structnicInfo.xml b/doc/xml/structnicInfo.xml new file mode 100644 index 0000000..5a72836 --- /dev/null +++ b/doc/xml/structnicInfo.xml @@ -0,0 +1,93 @@ + + + + nicInfo + lnc.h + + + int + int nicInfo::ic + + ic + + + + + + + + initLNC + lncAttach + + + int + int nicInfo::ident + + ident + + + + + + + + initLNC + lncAttach + + + int + int nicInfo::iobase + + iobase + + + + + + + + + + int + int nicInfo::memMode + + memMode + + + + + + + + initLNC + lncAttach + + + int + int nicInfo::mode + + mode + + + + + + + + lncAttach + + + + + + + + + nicInfoic + nicInfoident + nicInfoiobase + nicInfomemMode + nicInfomode + + + diff --git a/doc/xml/structobreak__args.xml b/doc/xml/structobreak__args.xml new file mode 100644 index 0000000..6a4a47c --- /dev/null +++ b/doc/xml/structobreak__args.xml @@ -0,0 +1,59 @@ + + + + obreak_args + sysproto.h + + + char * + char* obreak_args::nsize + + nsize + + + + + + + + obreak + + + char + char obreak_args::nsize_l_[PADL_(char *)] + [PADL_(char *)] + nsize_l_ + + + + + + + + + + char + char obreak_args::nsize_r_[PADR_(char *)] + [PADR_(char *)] + nsize_r_ + + + + + + + + + + + + + + + + obreak_argsnsize + obreak_argsnsize_l_ + obreak_argsnsize_r_ + + + diff --git a/doc/xml/structogModeInfo.xml b/doc/xml/structogModeInfo.xml new file mode 100644 index 0000000..971cc5d --- /dev/null +++ b/doc/xml/structogModeInfo.xml @@ -0,0 +1,577 @@ + + + + ogModeInfo + ogDisplay_UbixOS.h + + + uInt8 paddington[461] + uInt8 paddington [461] ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 offScreenMemSize + uInt16 offScreenMemSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + void *offScreenMemOffset + void* offScreenMemOffset ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 physBasePtr + uInt32 physBasePtr ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 directColourMode + uInt8 directColourMode ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 alphaFieldPosition + uInt8 alphaFieldPosition ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 alphaMaskSize + uInt8 alphaMaskSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 blueFieldPosition + uInt8 blueFieldPosition ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 blueMaskSize + uInt8 blueMaskSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 greenFieldPosition + uInt8 greenFieldPosition ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 greenMaskSize + uInt8 greenMaskSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 redFieldPosition + uInt8 redFieldPosition ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 redMaskSize + uInt8 redMaskSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 reserved + uInt8 reserved ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 numOfImagePages + uInt8 numOfImagePages ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 bankSize + uInt8 bankSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 memoryModel + uInt8 memoryModel ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 numberOfBanks + uInt8 numberOfBanks ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 bitsPerPixel + uInt8 bitsPerPixel ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 numBitPlanes + uInt8 numBitPlanes ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 charHeight + uInt8 charHeight ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 charWidth + uInt8 charWidth ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 yRes + uInt16 yRes ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 xRes + uInt16 xRes ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 bytesPerLine + uInt16 bytesPerLine ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + void *bankSwitch + void* bankSwitch ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 windowBSeg + uInt16 windowBSeg ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 windowASeg + uInt16 windowASeg ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 windowSize + uInt16 windowSize ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 granularity + uInt16 granularity ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 windowBFlags + uInt8 windowBFlags ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 windowAFlags + uInt8 windowAFlags ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 modeAttributes + uInt16 modeAttributes ogModeInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + ogModeInfo__attribute__ + + + diff --git a/doc/xml/structogVESAInfo.xml b/doc/xml/structogVESAInfo.xml new file mode 100644 index 0000000..6f81615 --- /dev/null +++ b/doc/xml/structogVESAInfo.xml @@ -0,0 +1,220 @@ + + + + ogVESAInfo + ogDisplay_UbixOS.h + + + uInt8 paddington[474] + uInt8 paddington [474] ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMProductRevPtr + uInt32 OEMProductRevPtr ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMProductNamePtr + uInt32 OEMProductNamePtr ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMVendorNamePtr + uInt32 OEMVendorNamePtr ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 OEMSoftwareRev + uInt16 OEMSoftwareRev ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt16 totalMemory + uInt16 totalMemory ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 videoModePtr + uInt32 videoModePtr ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 capabilities + uInt32 capabilities ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 OEMStringPtr + uInt32 OEMStringPtr ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 majVersion + uInt8 majVersion ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt8 minVersion + uInt8 minVersion ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + char VBESignature[4] + char VBESignature [4] ogVESAInfo::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + ogVESAInfo__attribute__ + + + diff --git a/doc/xml/structosInfo.xml b/doc/xml/structosInfo.xml new file mode 100644 index 0000000..73c3adf --- /dev/null +++ b/doc/xml/structosInfo.xml @@ -0,0 +1,141 @@ + + + + osInfo + sched.h + + + uInt32 + uInt32 osInfo::controlKeys + + controlKeys + + + + + + + + + + char + char osInfo::cwd[1024] + [1024] + cwd + + + + + + + + fork_copyProcess + sysChDir + sysGetCwd + sysMkDir + + + char * + char* osInfo::stdin + + stdin + + + + + + + + + + uInt32 + uInt32 osInfo::stdinSize + + stdinSize + + + + + + + + + + uInt8 + uInt8 osInfo::timer + + timer + + + + + + + + _int13 + + + bool + bool osInfo::v86If + + v86If + + + + + + + + _int13 + + + uInt8 + uInt8 osInfo::v86Task + + v86Task + + + + + + + + biosCall + + + uInt32 + uInt32 osInfo::vmStart + + vmStart + + + + + + + + execFile + execThread + fork_copyProcess + sysExec + vmmGetFreeVirtualPage + vmmMapFromTask + + + + + + + + + osInfocontrolKeys + osInfocwd + osInfostdin + osInfostdinSize + osInfotimer + osInfov86If + osInfov86Task + osInfovmStart + + + diff --git a/doc/xml/structpartitionInformation.xml b/doc/xml/structpartitionInformation.xml new file mode 100644 index 0000000..6cdcf6e --- /dev/null +++ b/doc/xml/structpartitionInformation.xml @@ -0,0 +1,72 @@ + + + + partitionInformation + ubixfs.h + + + uInt32 + uInt32 partitionInformation::blockAllocationTable + + blockAllocationTable + + + + + + + + + + uInt32 + uInt32 partitionInformation::rootDirectory + + rootDirectory + + + + + + + + + + uInt32 + uInt32 partitionInformation::size + + size + + + + + + + + + + uInt32 + uInt32 partitionInformation::startSector + + startSector + + + + + + + + + + + + + + + + partitionInformationblockAllocationTable + partitionInformationrootDirectory + partitionInformationsize + partitionInformationstartSector + + + diff --git a/doc/xml/structpbuf.xml b/doc/xml/structpbuf.xml new file mode 100644 index 0000000..ab8102a --- /dev/null +++ b/doc/xml/structpbuf.xml @@ -0,0 +1,139 @@ + + + + pbuf + pbuf.h + + + uInt8 + uInt8 pbuf::flags + + flags + + + + + + + + + + uInt16 + uInt16 pbuf::len + + len + + + + + + + + loopif_output + low_level_input + low_level_output + netbuf_copy_partial + netbuf_data + netbuf_ref + + + pbuf * + struct pbuf* pbuf::next + + next + + + + + + + + loopif_output + low_level_input + low_level_output + netbuf_copy_partial + netbuf_next + + + void * + void* pbuf::payload + + payload + + + + + + + + arp_arp_input + arp_ip_input + arp_query + ethernetif_input + ethernetif_output + loopif_output + low_level_input + low_level_output + netbuf_alloc + netbuf_copy_partial + netbuf_data + netbuf_ref + + + uInt8 + uInt8 pbuf::ref + + ref + + + + + + + + + + uInt16 + uInt16 pbuf::tot_len + + tot_len + + + + + + + + arp_arp_input + loopif_output + low_level_output + netbuf_len + netbuf_ref + netconn_recv + netconn_send + + + + + + + + + + + + next + + + + + + pbufflags + pbuflen + pbufnext + pbufpayload + pbufref + pbuftot_len + + + diff --git a/doc/xml/structpciConfig.xml b/doc/xml/structpciConfig.xml new file mode 100644 index 0000000..4a1d220 --- /dev/null +++ b/doc/xml/structpciConfig.xml @@ -0,0 +1,319 @@ + + + + pciConfig + pci.h + + + uInt32 + uInt32 pciConfig::base[6] + [6] + base + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::baseClass + + baseClass + + + + + + + + pci_init + pciProbe + + + uInt8 + uInt8 pciConfig::bist + + bist + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::bus + + bus + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::cacheLineSize + + cacheLineSize + + + + + + + + pciProbe + + + uInt16 + uInt16 pciConfig::command + + command + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::dev + + dev + + + + + + + + pciProbe + + + uInt16 + uInt16 pciConfig::deviceId + + deviceId + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::func + + func + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::headerType + + headerType + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::interface + + interface + + + + + + + + pci_init + pciProbe + + + uInt8 + uInt8 pciConfig::irq + + irq + + + + + + + + pci_init + pciProbe + + + uInt8 + uInt8 pciConfig::latencyTimer + + latencyTimer + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::revisionId + + revisionId + + + + + + + + + + uInt32 + uInt32 pciConfig::size[6] + [6] + size + + + + + + + + pciProbe + + + uInt16 + uInt16 pciConfig::status + + status + + + + + + + + pciProbe + + + uInt8 + uInt8 pciConfig::subClass + + subClass + + + + + + + + pci_init + pciProbe + + + uInt16 + uInt16 pciConfig::subsys + + subsys + + + + + + + + pciProbe + + + uInt16 + uInt16 pciConfig::subsysVendor + + subsysVendor + + + + + + + + pciProbe + + + uInt16 + uInt16 pciConfig::vendorId + + vendorId + + + + + + + + pciProbe + + + + + + + + + pciConfigbase + pciConfigbaseClass + pciConfigbist + pciConfigbus + pciConfigcacheLineSize + pciConfigcommand + pciConfigdev + pciConfigdeviceId + pciConfigfunc + pciConfigheaderType + pciConfiginterface + pciConfigirq + pciConfiglatencyTimer + pciConfigrevisionId + pciConfigsize + pciConfigstatus + pciConfigsubClass + pciConfigsubsys + pciConfigsubsysVendor + pciConfigvendorId + + + diff --git a/doc/xml/structpipe__args.xml b/doc/xml/structpipe__args.xml new file mode 100644 index 0000000..990be95 --- /dev/null +++ b/doc/xml/structpipe__args.xml @@ -0,0 +1,30 @@ + + + + pipe_args + sysproto.h + + + register_t + register_t pipe_args::dummy + + dummy + + + + + + + + + + + + + + + + pipe_argsdummy + + + diff --git a/doc/xml/structreadlink__args.xml b/doc/xml/structreadlink__args.xml new file mode 100644 index 0000000..d2f2c28 --- /dev/null +++ b/doc/xml/structreadlink__args.xml @@ -0,0 +1,144 @@ + + + + readlink_args + sysproto.h + + + char * + char* readlink_args::buf + + buf + + + + + + + + + + char + char readlink_args::buf_l_[PADL_(char *)] + [PADL_(char *)] + buf_l_ + + + + + + + + + + char + char readlink_args::buf_r_[PADR_(char *)] + [PADR_(char *)] + buf_r_ + + + + + + + + + + int + int readlink_args::count + + count + + + + + + + + readlink + + + char + char readlink_args::count_l_[PADL_(int)] + [PADL_(int)] + count_l_ + + + + + + + + + + char + char readlink_args::count_r_[PADR_(int)] + [PADR_(int)] + count_r_ + + + + + + + + + + char * + char* readlink_args::path + + path + + + + + + + + readlink + + + char + char readlink_args::path_l_[PADL_(char *)] + [PADL_(char *)] + path_l_ + + + + + + + + + + char + char readlink_args::path_r_[PADR_(char *)] + [PADR_(char *)] + path_r_ + + + + + + + + + + + + + + + + readlink_argsbuf + readlink_argsbuf_l_ + readlink_argsbuf_r_ + readlink_argscount + readlink_argscount_l_ + readlink_argscount_r_ + readlink_argspath + readlink_argspath_l_ + readlink_argspath_r_ + + + diff --git a/doc/xml/structsdeWindows.xml b/doc/xml/structsdeWindows.xml new file mode 100644 index 0000000..d253290 --- /dev/null +++ b/doc/xml/structsdeWindows.xml @@ -0,0 +1,96 @@ + + + + sdeWindows + sde.h + + + void * + void* sdeWindows::buf + + buf + + + + + + + + + + sdeWindows * + struct sdeWindows* sdeWindows::next + + next + + + + + + + + + + pidType + pidType sdeWindows::pid + + pid + + + + + + + + + + sdeWindows * + struct sdeWindows* sdeWindows::prev + + prev + + + + + + + + + + uInt8 + uInt8 sdeWindows::status + + status + + + + + + + + + + + + + + + + + + + prev +next + + + + + + sdeWindowsbuf + sdeWindowsnext + sdeWindowspid + sdeWindowsprev + sdeWindowsstatus + + + diff --git a/doc/xml/structsigaction__args.xml b/doc/xml/structsigaction__args.xml new file mode 100644 index 0000000..1f60b72 --- /dev/null +++ b/doc/xml/structsigaction__args.xml @@ -0,0 +1,142 @@ + + + + sigaction_args + sysproto.h + + + sigaction * + struct sigaction* sigaction_args::act + + act + + + + + + + + + + char + char sigaction_args::act_l_[PADL_(const struct sigaction *)] + [PADL_(const struct sigaction *)] + act_l_ + + + + + + + + + + char + char sigaction_args::act_r_[PADR_(const struct sigaction *)] + [PADR_(const struct sigaction *)] + act_r_ + + + + + + + + + + sigaction * + struct sigaction* sigaction_args::oact + + oact + + + + + + + + + + char + char sigaction_args::oact_l_[PADL_(struct sigaction *)] + [PADL_(struct sigaction *)] + oact_l_ + + + + + + + + + + char + char sigaction_args::oact_r_[PADR_(struct sigaction *)] + [PADR_(struct sigaction *)] + oact_r_ + + + + + + + + + + int + int sigaction_args::sig + + sig + + + + + + + + + + char + char sigaction_args::sig_l_[PADL_(int)] + [PADL_(int)] + sig_l_ + + + + + + + + + + char + char sigaction_args::sig_r_[PADR_(int)] + [PADR_(int)] + sig_r_ + + + + + + + + + + + + + + + + sigaction_argsact + sigaction_argsact_l_ + sigaction_argsact_r_ + sigaction_argsoact + sigaction_argsoact_l_ + sigaction_argsoact_r_ + sigaction_argssig + sigaction_argssig_l_ + sigaction_argssig_r_ + + + diff --git a/doc/xml/structsigprocmask__args.xml b/doc/xml/structsigprocmask__args.xml new file mode 100644 index 0000000..e56b5ab --- /dev/null +++ b/doc/xml/structsigprocmask__args.xml @@ -0,0 +1,156 @@ + + + + sigprocmask_args + sysproto.h + + + int + int sigprocmask_args::how + + how + + + + + + + + + + char + char sigprocmask_args::how_l_[PADL_(int)] + [PADL_(int)] + how_l_ + + + + + + + + + + char + char sigprocmask_args::how_r_[PADR_(int)] + [PADR_(int)] + how_r_ + + + + + + + + + + sigset_t * + sigset_t* sigprocmask_args::oset + + oset + + + + + + + + + + char + char sigprocmask_args::oset_l_[PADL_(sigset_t *)] + [PADL_(sigset_t *)] + oset_l_ + + + + + + + + + + char + char sigprocmask_args::oset_r_[PADR_(sigset_t *)] + [PADR_(sigset_t *)] + oset_r_ + + + + + + + + + + const sigset_t * + const sigset_t* sigprocmask_args::set + + set + + + + + + + + + + char + char sigprocmask_args::set_l_[PADL_(const sigset_t *)] + [PADL_(const sigset_t *)] + set_l_ + + + + + + + + + + char + char sigprocmask_args::set_r_[PADR_(const sigset_t *)] + [PADR_(const sigset_t *)] + set_r_ + + + + + + + + + + + + + + + + + + + oset +set + + + + + + + + + + sigprocmask_argshow + sigprocmask_argshow_l_ + sigprocmask_argshow_r_ + sigprocmask_argsoset + sigprocmask_argsoset_l_ + sigprocmask_argsoset_r_ + sigprocmask_argsset + sigprocmask_argsset_l_ + sigprocmask_argsset_r_ + + + diff --git a/doc/xml/structsockaddr.xml b/doc/xml/structsockaddr.xml new file mode 100644 index 0000000..b8df700 --- /dev/null +++ b/doc/xml/structsockaddr.xml @@ -0,0 +1,58 @@ + + + + sockaddr + sockets.h + + + char + char sockaddr::sa_data[14] + [14] + sa_data + + + + + + + + + + uInt8 + uInt8 sockaddr::sa_family + + sa_family + + + + + + + + + + uInt8 + uInt8 sockaddr::sa_len + + sa_len + + + + + + + + + + + + + + + + sockaddrsa_data + sockaddrsa_family + sockaddrsa_len + + + diff --git a/doc/xml/structsockaddr__in.xml b/doc/xml/structsockaddr__in.xml new file mode 100644 index 0000000..eecae78 --- /dev/null +++ b/doc/xml/structsockaddr__in.xml @@ -0,0 +1,99 @@ + + + + sockaddr_in + sockets.h + + + in_addr + struct in_addr sockaddr_in::sin_addr + + sin_addr + + + + + + + + + + uInt8 + uInt8 sockaddr_in::sin_family + + sin_family + + + + + + + + + + uInt8 + uInt8 sockaddr_in::sin_len + + sin_len + + + + + + + + + + uInt16 + uInt16 sockaddr_in::sin_port + + sin_port + + + + + + + + + + char + char sockaddr_in::sin_zero[8] + [8] + sin_zero + + + + + + + + + + + + + + + + + + + sin_addr + + + + + + + + + + sockaddr_insin_addr + sockaddr_insin_family + sockaddr_insin_len + sockaddr_insin_port + sockaddr_insin_zero + + + diff --git a/doc/xml/structstat.xml b/doc/xml/structstat.xml new file mode 100644 index 0000000..8139ae5 --- /dev/null +++ b/doc/xml/structstat.xml @@ -0,0 +1,327 @@ + + + + stat + kern_descrip.h + + + long + long stat::__st_atimensec + + __st_atimensec + + + + + + + + + + long + long stat::__st_ctimensec + + __st_ctimensec + + + + + + + + + + long + long stat::__st_mtimensec + + __st_mtimensec + + + + + + + + + + unsigned + unsigned stat::int + + int + (8 / 2) * (16 - (int)sizeof(struct __timespec)) + + + + + + + + + + time_t + time_t stat::st_atime + + st_atime + + + + + + + + + + time_t + time_t stat::st_birthtime + + st_birthtime + + + + + + + + + + long + long stat::st_birthtimensec + + st_birthtimensec + + + + + + + + + + blksize_t + blksize_t stat::st_blksize + + st_blksize + + + + + + + + fstat + + + blkcnt_t + blkcnt_t stat::st_blocks + + st_blocks + + + + + + + + + + time_t + time_t stat::st_ctime + + st_ctime + + + + + + + + + + __dev_t + __dev_t stat::st_dev + + st_dev + + + + + + + + + + fflags_t + fflags_t stat::st_flags + + st_flags + + + + + + + + + + __uint32_t + __uint32_t stat::st_gen + + st_gen + + + + + + + + + + gid_t + gid_t stat::st_gid + + st_gid + + + + + + + + + + ino_t + ino_t stat::st_ino + + st_ino + + + + + + + + + + __int32_t + __int32_t stat::st_lspare + + st_lspare + + + + + + + + + + mode_t + mode_t stat::st_mode + + st_mode + + + + + + + + fstat + + + time_t + time_t stat::st_mtime + + st_mtime + + + + + + + + + + nlink_t + nlink_t stat::st_nlink + + st_nlink + + + + + + + + + + __dev_t + __dev_t stat::st_rdev + + st_rdev + + + + + + + + + + off_t + off_t stat::st_size + + st_size + + + + + + + + + + uid_t + uid_t stat::st_uid + + st_uid + + + + + + + + + + + + + + + + stat__st_atimensec + stat__st_ctimensec + stat__st_mtimensec + statint + statst_atime + statst_birthtime + statst_birthtimensec + statst_blksize + statst_blocks + statst_ctime + statst_dev + statst_flags + statst_gen + statst_gid + statst_ino + statst_lspare + statst_mode + statst_mtime + statst_nlink + statst_rdev + statst_size + statst_uid + + + diff --git a/doc/xml/structsys__mbox.xml b/doc/xml/structsys__mbox.xml new file mode 100644 index 0000000..09aa01a --- /dev/null +++ b/doc/xml/structsys__mbox.xml @@ -0,0 +1,129 @@ + + + + sys_mbox + + + uInt16 + uInt16 sys_mbox::first + + first + + + + + + + + sys_arch_mbox_fetch + sys_mbox_new + sys_mbox_post + + + uInt16 + uInt16 sys_mbox::last + + last + + + + + + + + sys_arch_mbox_fetch + sys_mbox_new + sys_mbox_post + + + sys_sem * + struct sys_sem* sys_mbox::mail + + mail + + + + + + + + sys_arch_mbox_fetch + sys_mbox_free + sys_mbox_new + sys_mbox_post + + + void * + void* sys_mbox::msgs[SYS_MBOX_SIZE] + [SYS_MBOX_SIZE] + msgs + + + + + + + + sys_arch_mbox_fetch + sys_mbox_post + + + sys_sem * + struct sys_sem* sys_mbox::mutex + + mutex + + + + + + + + sys_arch_mbox_fetch + sys_mbox_free + sys_mbox_new + sys_mbox_post + + + + + + + + + + + + mutex +mail + + + + + + + + + + + + + + + mutex + + + cond + + + + + + sys_mboxfirst + sys_mboxlast + sys_mboxmail + sys_mboxmsgs + sys_mboxmutex + + + diff --git a/doc/xml/structsys__mbox__msg.xml b/doc/xml/structsys__mbox__msg.xml new file mode 100644 index 0000000..ea8993c --- /dev/null +++ b/doc/xml/structsys__mbox__msg.xml @@ -0,0 +1,52 @@ + + + + sys_mbox_msg + + + void * + void* sys_mbox_msg::msg + + msg + + + + + + + + + + sys_mbox_msg * + struct sys_mbox_msg* sys_mbox_msg::next + + next + + + + + + + + + + + + + + + + + + + next + + + + + + sys_mbox_msgmsg + sys_mbox_msgnext + + + diff --git a/doc/xml/structsys__sem.xml b/doc/xml/structsys__sem.xml new file mode 100644 index 0000000..ec343b8 --- /dev/null +++ b/doc/xml/structsys__sem.xml @@ -0,0 +1,88 @@ + + + + sys_sem + + + unsigned int + unsigned int sys_sem::c + + c + + + + + + + + sys_arch_sem_wait + sys_sem_new_ + sys_sem_signal + + + ubthread_cond_t + ubthread_cond_t sys_sem::cond + + cond + + + + + + + + sys_arch_sem_wait + sys_sem_free_ + sys_sem_new_ + sys_sem_signal + + + ubthread_mutex_t + ubthread_mutex_t sys_sem::mutex + + mutex + + + + + + + + sys_arch_sem_wait + sys_sem_free_ + sys_sem_new_ + sys_sem_signal + + + + + + + + + + + + + + + + + + + + mutex + + + cond + + + + + + sys_semc + sys_semcond + sys_semmutex + + + diff --git a/doc/xml/structsys__thread.xml b/doc/xml/structsys__thread.xml new file mode 100644 index 0000000..2abf276 --- /dev/null +++ b/doc/xml/structsys__thread.xml @@ -0,0 +1,146 @@ + + + + sys_thread + + + sys_thread * + struct sys_thread* sys_thread::next + + next + + + + + + + + current_thread + sys_thread_new + + + sys_timeouts + struct sys_timeouts sys_thread::timeouts + + timeouts + + + + + + + + sys_arch_timeouts + sys_thread_new + + + kTask_t * + kTask_t* sys_thread::ubthread + + ubthread + + + + + + + + current_thread + sys_thread_new + + + + + + + + + + + + + + + + + + + + + + + + + + + + next + + + ubthread + + + timeouts + + + + + + + prev +next + + + i387 + + + td + + + imageFd + + + term + + + oInfo + + + tss + + + + + + + prev +next + + + + + + + next + + + + + + + + + + + next + + + + + + sys_threadnext + sys_threadtimeouts + sys_threadubthread + + + diff --git a/doc/xml/structsys__timeout.xml b/doc/xml/structsys__timeout.xml new file mode 100644 index 0000000..07635c6 --- /dev/null +++ b/doc/xml/structsys__timeout.xml @@ -0,0 +1,81 @@ + + + + sys_timeout + sys.h + + + void * + void* sys_timeout::arg + + arg + + + + + + + + + + sys_timeout_handler + sys_timeout_handler sys_timeout::h + + h + + + + + + + + + + sys_timeout * + struct sys_timeout* sys_timeout::next + + next + + + + + + + + + + uInt16 + uInt16 sys_timeout::time + + time + + + + + + + + + + + + + + + + + + + next + + + + + + sys_timeoutarg + sys_timeouth + sys_timeoutnext + sys_timeouttime + + + diff --git a/doc/xml/structsys__timeouts.xml b/doc/xml/structsys__timeouts.xml new file mode 100644 index 0000000..23c13c9 --- /dev/null +++ b/doc/xml/structsys__timeouts.xml @@ -0,0 +1,47 @@ + + + + sys_timeouts + sys.h + + + sys_timeout * + struct sys_timeout* sys_timeouts::next + + next + + + + + + + + sys_thread_new + + + + + + + + + + + + next + + + + + + + next + + + + + + sys_timeoutsnext + + + diff --git a/doc/xml/structsysctl__args.xml b/doc/xml/structsysctl__args.xml new file mode 100644 index 0000000..ce3808b --- /dev/null +++ b/doc/xml/structsysctl__args.xml @@ -0,0 +1,273 @@ + + + + sysctl_args + sysproto.h + + + int * + int* sysctl_args::name + + name + + + + + + + + __sysctl + + + char + char sysctl_args::name_l_[PADL_(int *)] + [PADL_(int *)] + name_l_ + + + + + + + + + + char + char sysctl_args::name_r_[PADR_(int *)] + [PADR_(int *)] + name_r_ + + + + + + + + + + u_int + u_int sysctl_args::namelen + + namelen + + + + + + + + __sysctl + + + char + char sysctl_args::namelen_l_[PADL_(u_int)] + [PADL_(u_int)] + namelen_l_ + + + + + + + + + + char + char sysctl_args::namelen_r_[PADR_(u_int)] + [PADR_(u_int)] + namelen_r_ + + + + + + + + + + void * + void* sysctl_args::new + + new + + + + + + + + + + char + char sysctl_args::new_l_[PADL_(void *)] + [PADL_(void *)] + new_l_ + + + + + + + + + + char + char sysctl_args::new_r_[PADR_(void *)] + [PADR_(void *)] + new_r_ + + + + + + + + + + size_t + size_t sysctl_args::newlen + + newlen + + + + + + + + __sysctl + + + char + char sysctl_args::newlen_l_[PADL_(size_t)] + [PADL_(size_t)] + newlen_l_ + + + + + + + + + + char + char sysctl_args::newlen_r_[PADR_(size_t)] + [PADR_(size_t)] + newlen_r_ + + + + + + + + + + void * + void* sysctl_args::old + + old + + + + + + + + __sysctl + + + char + char sysctl_args::old_l_[PADL_(void *)] + [PADL_(void *)] + old_l_ + + + + + + + + + + char + char sysctl_args::old_r_[PADR_(void *)] + [PADR_(void *)] + old_r_ + + + + + + + + + + size_t * + size_t* sysctl_args::oldlenp + + oldlenp + + + + + + + + __sysctl + + + char + char sysctl_args::oldlenp_l_[PADL_(size_t *)] + [PADL_(size_t *)] + oldlenp_l_ + + + + + + + + + + char + char sysctl_args::oldlenp_r_[PADR_(size_t *)] + [PADR_(size_t *)] + oldlenp_r_ + + + + + + + + + + + + + + + + sysctl_argsname + sysctl_argsname_l_ + sysctl_argsname_r_ + sysctl_argsnamelen + sysctl_argsnamelen_l_ + sysctl_argsnamelen_r_ + sysctl_argsnew + sysctl_argsnew_l_ + sysctl_argsnew_r_ + sysctl_argsnewlen + sysctl_argsnewlen_l_ + sysctl_argsnewlen_r_ + sysctl_argsold + sysctl_argsold_l_ + sysctl_argsold_r_ + sysctl_argsoldlenp + sysctl_argsoldlenp_l_ + sysctl_argsoldlenp_r_ + + + diff --git a/doc/xml/structsysctl__entry.xml b/doc/xml/structsysctl__entry.xml new file mode 100644 index 0000000..6f37132 --- /dev/null +++ b/doc/xml/structsysctl__entry.xml @@ -0,0 +1,142 @@ + + + + sysctl_entry + kern_sysctl.h + + + sysctl_entry * + struct sysctl_entry* sysctl_entry::children + + children + + + + + + + + sysctl_add + sysctl_find + sysctl_init + + + int + int sysctl_entry::id + + id + + + + + + + + sysctl_add + sysctl_find + sysctl_init + + + char + char sysctl_entry::name[32] + [32] + name + + + + + + + + sysctl_add + sysctl_init + + + sysctl_entry * + struct sysctl_entry* sysctl_entry::next + + next + + + + + + + + sysctl_add + sysctl_find + sysctl_init + + + sysctl_entry * + struct sysctl_entry* sysctl_entry::prev + + prev + + + + + + + + sysctl_add + sysctl_init + + + int + int sysctl_entry::val_len + + val_len + + + + + + + + __sysctl + sysctl_add + + + void * + void* sysctl_entry::value + + value + + + + + + + + __sysctl + sysctl_add + + + + + + + + + + + + prev +next +children + + + + + + sysctl_entrychildren + sysctl_entryid + sysctl_entryname + sysctl_entrynext + sysctl_entryprev + sysctl_entryval_len + sysctl_entryvalue + + + diff --git a/doc/xml/structtaskStruct.xml b/doc/xml/structtaskStruct.xml new file mode 100644 index 0000000..0468311 --- /dev/null +++ b/doc/xml/structtaskStruct.xml @@ -0,0 +1,366 @@ + + + + taskStruct + sched.h + + + uInt32 + uInt32 taskStruct::gid + + gid + + + + + + + + execFile + fork_copyProcess + getgid + sysGetGid + sysSetGid + + + i387Struct + struct i387Struct taskStruct::i387 + + i387 + + + + + + + + mathStateRestore + + + pidType + pidType taskStruct::id + + id + + + + + + + + __sysctl + _int0 + _int1 + _int10 + _int11 + _int12 + _int13 + _int2 + _int3 + _int4 + _int5 + _int6 + _int8 + _int9 + endTask + execFile + execThread + fork_copyProcess + getpid + intNull + kmod_load + ldEnable + mmap + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + netMainThread + obreak + sched + sched_deleteTask + sched_init + schedEndTask + schedFindTask + schedNewTask + sysExec + sysExit + sysGetFreePage + sysGetpid + systemTask + ubthread_mutex_lock + ubthread_mutex_unlock + vmm_pageFault + vmm_remapPage + vmmGetFreeVirtualPage + + + fileDescriptor * + fileDescriptor* taskStruct::imageFd + + imageFd + + + + + + + + execThread + sysExec + systemTask + + + taskStruct * + struct taskStruct* taskStruct::next + + next + + + + + + + + sched + sched_addDelTask + sched_deleteTask + sched_getDelTask + schedFindTask + schedNewTask + + + osInfo + struct osInfo taskStruct::oInfo + + oInfo + + + + + + + + _int13 + biosCall + execFile + execThread + fork_copyProcess + sysChDir + sysExec + sysGetCwd + sysMkDir + vmmGetFreeVirtualPage + vmmMapFromTask + + + taskStruct * + struct taskStruct* taskStruct::prev + + prev + + + + + + + + sched_addDelTask + sched_deleteTask + schedNewTask + + + tState + tState taskStruct::state + + state + + + + + + + + _int13 + biosCall + fork_copyProcess + sched + sched_setStatus + schedNewTask + sysCheckPid + + + thread + struct thread taskStruct::td + + td + + + + + + + + execFile + fstat + getgid + getpid + getuid + readlink + schedNewTask + syscall + sysExec + vmm_pageFault + vmmGetFreeVirtualPage + + + tty_term * + tty_term* taskStruct::term + + term + + + + + + + + execFile + fork_copyProcess + sysFgetc + sysFwrite + systemTask + + + tssStruct + struct tssStruct taskStruct::tss + + tss + + + + + + + + _int13 + biosCall + execFile + execThread + fork_copyProcess + sysExec + vmmMapFromTask + + + uInt32 + uInt32 taskStruct::uid + + uid + + + + + + + + execFile + fork_copyProcess + getuid + sysGetUid + sysPasswd + sysSetUid + + + uInt16 + uInt16 taskStruct::usedMath + + usedMath + + + + + + + + mathStateRestore + schedNewTask + + + + + + + + + + + + + + + + + + + + + + + + + + + + prev +next + + + i387 + + + td + + + imageFd + + + term + + + oInfo + + + tss + + + + + + + prev +next + + + + + + + + + + taskStructgid + taskStructi387 + taskStructid + taskStructimageFd + taskStructnext + taskStructoInfo + taskStructprev + taskStructstate + taskStructtd + taskStructterm + taskStructtss + taskStructuid + taskStructusedMath + + + diff --git a/doc/xml/structtcp__hdr.xml b/doc/xml/structtcp__hdr.xml new file mode 100644 index 0000000..4735438 --- /dev/null +++ b/doc/xml/structtcp__hdr.xml @@ -0,0 +1,160 @@ + + + + tcp_hdr + tcp.h + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 urgp) + PACK_STRUCT_FIELD + + uInt16 + urgp + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 chksum) + PACK_STRUCT_FIELD + + uInt16 + chksum + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 wnd) + PACK_STRUCT_FIELD + + uInt16 + wnd + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 _offset_flags) + PACK_STRUCT_FIELD + + uInt16 + _offset_flags + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt32 ackno) + PACK_STRUCT_FIELD + + uInt32 + ackno + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt32 seqno) + PACK_STRUCT_FIELD + + uInt32 + seqno + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 dest) + PACK_STRUCT_FIELD + + uInt16 + dest + + + + + + + + + + + + tcp_hdr::PACK_STRUCT_FIELD + (uInt16 src) + PACK_STRUCT_FIELD + + uInt16 + src + + + + + + + + + + + + + + + + + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + tcp_hdrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structtcp__pcb.xml b/doc/xml/structtcp__pcb.xml new file mode 100644 index 0000000..3e4bd4a --- /dev/null +++ b/doc/xml/structtcp__pcb.xml @@ -0,0 +1,675 @@ + + + + tcp_pcb + tcp.h + + + err_t(* + err_t(* tcp_pcb::accept)(void *arg, struct tcp_pcb *newpcb, err_t err) + )(void *arg, struct tcp_pcb *newpcb, err_t err) + accept + + + + + + + + + + uInt16 + uInt16 tcp_pcb::acked + + acked + + + + + + + + + + void * + void* tcp_pcb::callback_arg + + callback_arg + + + + + + + + + + err_t(* + err_t(* tcp_pcb::connected)(void *arg, struct tcp_pcb *pcb, err_t err) + )(void *arg, struct tcp_pcb *pcb, err_t err) + connected + + + + + + + + + + uInt16 + uInt16 tcp_pcb::cwnd + + cwnd + + + + + + + + + + uInt8 + uInt8 tcp_pcb::dupacks + + dupacks + + + + + + + + + + void(* + void(* tcp_pcb::errf)(void *arg, err_t err) + )(void *arg, err_t err) + errf + + + + + + + + + + uInt8 + uInt8 tcp_pcb::flags + + flags + + + + + + + + + + uInt32 + uInt32 tcp_pcb::lastack + + lastack + + + + + + + + + + ip_addr + struct ip_addr tcp_pcb::local_ip + + local_ip + + + + + + + + netconn_addr + + + uInt16 + uInt16 tcp_pcb::local_port + + local_port + + + + + + + + netconn_addr + + + uInt16 + uInt16 tcp_pcb::mss + + mss + + + + + + + + + + tcp_pcb * + struct tcp_pcb* tcp_pcb::next + + next + + + + + + + + + + uInt8 + uInt8 tcp_pcb::nrtx + + nrtx + + + + + + + + + + err_t(* + err_t(* tcp_pcb::poll)(void *arg, struct tcp_pcb *pcb) + )(void *arg, struct tcp_pcb *pcb) + poll + + + + + + + + + + uInt8 + uInt8 tcp_pcb::pollinterval + + pollinterval + + + + + + + + + + uInt8 + uInt8 tcp_pcb::polltmr + + polltmr + + + + + + + + + + uInt32 + uInt32 tcp_pcb::rcv_nxt + + rcv_nxt + + + + + + + + + + uInt16 + uInt16 tcp_pcb::rcv_wnd + + rcv_wnd + + + + + + + + + + err_t(* + err_t(* tcp_pcb::recv)(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) + )(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) + recv + + + + + + + + + + pbuf * + struct pbuf* tcp_pcb::recv_data + + recv_data + + + + + + + + + + ip_addr + struct ip_addr tcp_pcb::remote_ip + + remote_ip + + + + + + + + netconn_peer + + + uInt16 + uInt16 tcp_pcb::remote_port + + remote_port + + + + + + + + netconn_peer + + + uInt8 + uInt8 tcp_pcb::rtime + + rtime + + + + + + + + + + uInt16 + uInt16 tcp_pcb::rto + + rto + + + + + + + + + + uInt32 + uInt32 tcp_pcb::rtseq + + rtseq + + + + + + + + + + uInt16 + uInt16 tcp_pcb::rttest + + rttest + + + + + + + + + + Int32 + Int32 tcp_pcb::sa + + sa + + + + + + + + + + err_t(* + err_t(* tcp_pcb::sent)(void *arg, struct tcp_pcb *pcb, uInt16 space) + )(void *arg, struct tcp_pcb *pcb, uInt16 space) + sent + + + + + + + + + + uInt16 + uInt16 tcp_pcb::snd_buf + + snd_buf + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_lbb + + snd_lbb + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_max + + snd_max + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_nxt + + snd_nxt + + + + + + + + + + uInt8 + uInt8 tcp_pcb::snd_queuelen + + snd_queuelen + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_wl1 + + snd_wl1 + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_wl2 + + snd_wl2 + + + + + + + + + + uInt32 + uInt32 tcp_pcb::snd_wnd + + snd_wnd + + + + + + + + + + uInt16 + uInt16 tcp_pcb::ssthresh + + ssthresh + + + + + + + + + + enum tcp_state + enum tcp_state tcp_pcb::state + + state + + + + + + + + accept_function + do_close + do_delconn + netconn_recv + + + Int32 + Int32 tcp_pcb::sv + + sv + + + + + + + + + + uInt16 + uInt16 tcp_pcb::tmr + + tmr + + + + + + + + + + tcp_seg * + struct tcp_seg* tcp_pcb::unacked + + unacked + + + + + + + + do_write + + + tcp_seg * + struct tcp_seg* tcp_pcb::unsent + + unsent + + + + + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + tcp_pcbaccept + tcp_pcbacked + tcp_pcbcallback_arg + tcp_pcbconnected + tcp_pcbcwnd + tcp_pcbdupacks + tcp_pcberrf + tcp_pcbflags + tcp_pcblastack + tcp_pcblocal_ip + tcp_pcblocal_port + tcp_pcbmss + tcp_pcbnext + tcp_pcbnrtx + tcp_pcbpoll + tcp_pcbpollinterval + tcp_pcbpolltmr + tcp_pcbrcv_nxt + tcp_pcbrcv_wnd + tcp_pcbrecv + tcp_pcbrecv_data + tcp_pcbremote_ip + tcp_pcbremote_port + tcp_pcbrtime + tcp_pcbrto + tcp_pcbrtseq + tcp_pcbrttest + tcp_pcbsa + tcp_pcbsent + tcp_pcbsnd_buf + tcp_pcbsnd_lbb + tcp_pcbsnd_max + tcp_pcbsnd_nxt + tcp_pcbsnd_queuelen + tcp_pcbsnd_wl1 + tcp_pcbsnd_wl2 + tcp_pcbsnd_wnd + tcp_pcbssthresh + tcp_pcbstate + tcp_pcbsv + tcp_pcbtmr + tcp_pcbunacked + tcp_pcbunsent + + + diff --git a/doc/xml/structtcp__pcb__listen.xml b/doc/xml/structtcp__pcb__listen.xml new file mode 100644 index 0000000..959acc8 --- /dev/null +++ b/doc/xml/structtcp__pcb__listen.xml @@ -0,0 +1,116 @@ + + + + tcp_pcb_listen + tcp.h + + + void(* + void(* tcp_pcb_listen::accept)(void *arg, struct tcp_pcb *newpcb) + )(void *arg, struct tcp_pcb *newpcb) + accept + + + + + + + + + + void * + void* tcp_pcb_listen::callback_arg + + callback_arg + + + + + + + + + + ip_addr + struct ip_addr tcp_pcb_listen::local_ip + + local_ip + + + + + + + + + + uInt16 + uInt16 tcp_pcb_listen::local_port + + local_port + + + + + + + + + + tcp_pcb_listen * + struct tcp_pcb_listen* tcp_pcb_listen::next + + next + + + + + + + + + + enum tcp_state + enum tcp_state tcp_pcb_listen::state + + state + + + + + + + + + + + + + + + + + + + + + + + next + + + local_ip + + + + + + tcp_pcb_listenaccept + tcp_pcb_listencallback_arg + tcp_pcb_listenlocal_ip + tcp_pcb_listenlocal_port + tcp_pcb_listennext + tcp_pcb_listenstate + + + diff --git a/doc/xml/structtcp__seg.xml b/doc/xml/structtcp__seg.xml new file mode 100644 index 0000000..512893f --- /dev/null +++ b/doc/xml/structtcp__seg.xml @@ -0,0 +1,112 @@ + + + + tcp_seg + tcp.h + + + void * + void* tcp_seg::dataptr + + dataptr + + + + + + + + + + uInt16 + uInt16 tcp_seg::len + + len + + + + + + + + + + tcp_seg * + struct tcp_seg* tcp_seg::next + + next + + + + + + + + + + pbuf * + struct pbuf* tcp_seg::p + + p + + + + + + + + + + tcp_hdr * + struct tcp_hdr* tcp_seg::tcphdr + + tcphdr + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + next + + + + + + + + + + tcp_segdataptr + tcp_seglen + tcp_segnext + tcp_segp + tcp_segtcphdr + + + diff --git a/doc/xml/structtcpip__msg.xml b/doc/xml/structtcpip__msg.xml new file mode 100644 index 0000000..71a7894 --- /dev/null +++ b/doc/xml/structtcpip__msg.xml @@ -0,0 +1,273 @@ + + + + tcpip_msg + tcpip.h + + + api_msg * + struct api_msg* tcpip_msg::apimsg + + apimsg + + + + + + + + tcpip_apimsg + + + tcpip_msg::@4::@5 + struct tcpip_msg::@4::@5 tcpip_msg::inp + + inp + + + + + + + + tcpip_input + + + tcpip_msg::@4 + union tcpip_msg::@4 tcpip_msg::msg + + msg + + + + + + + + tcpip_apimsg + tcpip_input + tcpip_thread + + + netif * + struct netif* tcpip_msg::netif + + netif + + + + + + + + + + pbuf * + struct pbuf* tcpip_msg::p + + p + + + + + + + + tcpip_input + + + sys_sem_t * + sys_sem_t* tcpip_msg::sem + + sem + + + + + + + + + + enum tcpip_msg_type + enum tcpip_msg_type tcpip_msg::type + + type + + + + + + + + + + + + + + + + + + + mutex +mail + + + + + + + + + + + + + + + + + + + next + + + tcphdr + + + p + + + + + + + netif + + + p + + + apimsg + + + sem + + + + + + + next + + + + + + + remote_ip + + + next + + + + + + + recvmbox +acceptmbox +mbox + + + sem + + + udp + + + tcp + + + + + + + mbox + + + p + + + ipaddr + + + conn + + + + + + + mutex + + + cond + + + + + + + + + + + unsent +unacked + + + recv_data + + + local_ip +remote_ip + + + next + + + + + + + msg + + + + + + + next + + + netmask +ip_addr +gw + + + + + + tcpip_msgapimsg + tcpip_msginp + tcpip_msgmsg + tcpip_msgnetif + tcpip_msgp + tcpip_msgsem + tcpip_msgtype + + + diff --git a/doc/xml/structthread.xml b/doc/xml/structthread.xml new file mode 100644 index 0000000..1cfbcde --- /dev/null +++ b/doc/xml/structthread.xml @@ -0,0 +1,98 @@ + + + + thread + thread.h + + + uInt32 + uInt32 thread::o_files[64] + [64] + o_files + + + + + + + + close + falloc + fcntl + fstat + schedNewTask + + + int + int thread::td_retval[2] + [2] + td_retval + + + + + + + + __sysctl + close + fcntl + getdtablesize + getgid + getpid + getuid + ioctl + mmap + pipe + readlink + syscall + + + char * + char* thread::vm_daddr + + vm_daddr + + + + + + + + execFile + obreak + sysExec + vmm_pageFault + vmmGetFreeVirtualPage + + + int32_t + int32_t thread::vm_dsize + + vm_dsize + + + + + + + + obreak + sysExec + vmm_pageFault + vmmGetFreeVirtualPage + + + + + + + + + threado_files + threadtd_retval + threadvm_daddr + threadvm_dsize + + + diff --git a/doc/xml/structthread__start__param.xml b/doc/xml/structthread__start__param.xml new file mode 100644 index 0000000..aff884b --- /dev/null +++ b/doc/xml/structthread__start__param.xml @@ -0,0 +1,147 @@ + + + + thread_start_param + + + void * + void* thread_start_param::arg + + arg + + + + + + + + + + void(* + void(* thread_start_param::function)(void *) + )(void *) + function + + + + + + + + + + sys_thread * + struct sys_thread* thread_start_param::thread + + thread + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + next + + + ubthread + + + timeouts + + + + + + + prev +next + + + i387 + + + td + + + imageFd + + + term + + + oInfo + + + tss + + + + + + + thread + + + + + + + prev +next + + + + + + + next + + + + + + + + + + + next + + + + + + thread_start_paramarg + thread_start_paramfunction + thread_start_paramthread + + + diff --git a/doc/xml/structtimeStruct.xml b/doc/xml/structtimeStruct.xml new file mode 100644 index 0000000..0c5bfb3 --- /dev/null +++ b/doc/xml/structtimeStruct.xml @@ -0,0 +1,112 @@ + + + + timeStruct + time.h + + + int + int timeStruct::day + + day + + + + + + + + time_init + timeMake + + + int + int timeStruct::hour + + hour + + + + + + + + time_init + timeMake + + + int + int timeStruct::min + + min + + + + + + + + time_init + timeMake + + + int + int timeStruct::mon + + mon + + + + + + + + time_init + timeMake + + + int + int timeStruct::sec + + sec + + + + + + + + time_init + timeMake + + + int + int timeStruct::year + + year + + + + + + + + time_init + timeMake + + + + + + + + + timeStructday + timeStructhour + timeStructmin + timeStructmon + timeStructsec + timeStructyear + + + diff --git a/doc/xml/structtimespec.xml b/doc/xml/structtimespec.xml new file mode 100644 index 0000000..d521879 --- /dev/null +++ b/doc/xml/structtimespec.xml @@ -0,0 +1,46 @@ + + + + timespec + time.h + + + long + long timespec::tv_nsec + + tv_nsec + + + + + + + + cond_wait + + + time_t + time_t timespec::tv_sec + + tv_sec + + + + + + + + cond_wait + + + + + + + + + timespectv_nsec + timespectv_sec + + + diff --git a/doc/xml/structtimeval.xml b/doc/xml/structtimeval.xml new file mode 100644 index 0000000..529067b --- /dev/null +++ b/doc/xml/structtimeval.xml @@ -0,0 +1,50 @@ + + + + timeval + time.h + + + long + long timeval::tv_sec + + tv_sec + + + + + + + + cond_wait + gettimeofday + sys_unix_now + + + suseconds_t + suseconds_t timeval::tv_usec + + tv_usec + + + + + + + + cond_wait + gettimeofday + sys_unix_now + + + + + + + + + timevaltv_sec + timevaltv_usec + + + diff --git a/doc/xml/structtimezone.xml b/doc/xml/structtimezone.xml new file mode 100644 index 0000000..b81acdf --- /dev/null +++ b/doc/xml/structtimezone.xml @@ -0,0 +1,44 @@ + + + + timezone + time.h + + + int + int timezone::tz_dsttime + + tz_dsttime + + + + + + + + + + int + int timezone::tz_minuteswest + + tz_minuteswest + + + + + + + + + + + + + + + + timezonetz_dsttime + timezonetz_minuteswest + + + diff --git a/doc/xml/structtms.xml b/doc/xml/structtms.xml new file mode 100644 index 0000000..9857194 --- /dev/null +++ b/doc/xml/structtms.xml @@ -0,0 +1,72 @@ + + + + tms + times.h + + + clock_t + clock_t tms::tms_cstime + + tms_cstime + + + + + + + + + + clock_t + clock_t tms::tms_cutime + + tms_cutime + + + + + + + + + + clock_t + clock_t tms::tms_stime + + tms_stime + + + + + + + + + + clock_t + clock_t tms::tms_utime + + tms_utime + + + + + + + + + + + + + + + + tmstms_cstime + tmstms_cutime + tmstms_stime + tmstms_utime + + + diff --git a/doc/xml/structtrapframe.xml b/doc/xml/structtrapframe.xml new file mode 100644 index 0000000..09fd90b --- /dev/null +++ b/doc/xml/structtrapframe.xml @@ -0,0 +1,274 @@ + + + + trapframe + trap.h + + + int + int trapframe::tf_cs + + tf_cs + + + + + + + + + + int + int trapframe::tf_ds + + tf_ds + + + + + + + + + + int + int trapframe::tf_eax + + tf_eax + + + + + + + + syscall + + + int + int trapframe::tf_ebp + + tf_ebp + + + + + + + + + + int + int trapframe::tf_ebx + + tf_ebx + + + + + + + + + + int + int trapframe::tf_ecx + + tf_ecx + + + + + + + + + + int + int trapframe::tf_edi + + tf_edi + + + + + + + + + + int + int trapframe::tf_edx + + tf_edx + + + + + + + + syscall + + + int + int trapframe::tf_eflags + + tf_eflags + + + + + + + + syscall + + + int + int trapframe::tf_eip + + tf_eip + + + + + + + + syscall + + + int + int trapframe::tf_err + + tf_err + + + + + + + + syscall + + + int + int trapframe::tf_es + + tf_es + + + + + + + + + + int + int trapframe::tf_esi + + tf_esi + + + + + + + + + + int + int trapframe::tf_esp + + tf_esp + + + + + + + + syscall + + + int + int trapframe::tf_fs + + tf_fs + + + + + + + + + + int + int trapframe::tf_isp + + tf_isp + + + + + + + + + + int + int trapframe::tf_ss + + tf_ss + + + + + + + + + + int + int trapframe::tf_trapno + + tf_trapno + + + + + + + + + + + + + + + + trapframetf_cs + trapframetf_ds + trapframetf_eax + trapframetf_ebp + trapframetf_ebx + trapframetf_ecx + trapframetf_edi + trapframetf_edx + trapframetf_eflags + trapframetf_eip + trapframetf_err + trapframetf_es + trapframetf_esi + trapframetf_esp + trapframetf_fs + trapframetf_isp + trapframetf_ss + trapframetf_trapno + + + diff --git a/doc/xml/structtssStruct.xml b/doc/xml/structtssStruct.xml new file mode 100644 index 0000000..4bf6be3 --- /dev/null +++ b/doc/xml/structtssStruct.xml @@ -0,0 +1,707 @@ + + + + tssStruct + tss.h + + + short + short tssStruct::back_link + + back_link + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::back_link_reserved + + back_link_reserved + + + + + + + + + + long + long tssStruct::cr3 + + cr3 + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + vmmMapFromTask + + + short + short tssStruct::cs + + cs + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::cs_reserved + + cs_reserved + + + + + + + + + + short + short tssStruct::ds + + ds + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ds_reserved + + ds_reserved + + + + + + + + + + long + long tssStruct::eax + + eax + + + + + + + + _int13 + biosCall + fork_copyProcess + + + long + long tssStruct::ebp + + ebp + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::ebx + + ebx + + + + + + + + biosCall + fork_copyProcess + + + long + long tssStruct::ecx + + ecx + + + + + + + + biosCall + fork_copyProcess + + + long + long tssStruct::edi + + edi + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::edx + + edx + + + + + + + + _int13 + biosCall + fork_copyProcess + + + long + long tssStruct::eflags + + eflags + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::eip + + eip + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::es + + es + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::es_reserved + + es_reserved + + + + + + + + + + long + long tssStruct::esi + + esi + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::esp + + esp + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::esp0 + + esp0 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + sysExec + + + long + long tssStruct::esp1 + + esp1 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + long + long tssStruct::esp2 + + esp2 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::fs + + fs + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::fs_reserved + + fs_reserved + + + + + + + + + + short + short tssStruct::gs + + gs + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::gs_reserved + + gs_reserved + + + + + + + + + + short + short tssStruct::io_map + + io_map + + + + + + + + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + char + char tssStruct::io_space[8192] + [8192] + io_space + + + + + + + + + + short + short tssStruct::ldt + + ldt + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ldt_reserved + + ldt_reserved + + + + + + + + + + short + short tssStruct::ss + + ss + + + + + + + + _int13 + _int8 + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ss0 + + ss0 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ss0_reserved + + ss0_reserved + + + + + + + + + + short + short tssStruct::ss1 + + ss1 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ss1_reserved + + ss1_reserved + + + + + + + + + + short + short tssStruct::ss2 + + ss2 + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + short + short tssStruct::ss2_reserved + + ss2_reserved + + + + + + + + + + short + short tssStruct::ss_reserved + + ss_reserved + + + + + + + + + + short + short tssStruct::trace_bitmap + + trace_bitmap + + + + + + + + biosCall + execFile + execThread + fork_copyProcess + idt_init + + + + + + + + + tssStructback_link + tssStructback_link_reserved + tssStructcr3 + tssStructcs + tssStructcs_reserved + tssStructds + tssStructds_reserved + tssStructeax + tssStructebp + tssStructebx + tssStructecx + tssStructedi + tssStructedx + tssStructeflags + tssStructeip + tssStructes + tssStructes_reserved + tssStructesi + tssStructesp + tssStructesp0 + tssStructesp1 + tssStructesp2 + tssStructfs + tssStructfs_reserved + tssStructgs + tssStructgs_reserved + tssStructio_map + tssStructio_space + tssStructldt + tssStructldt_reserved + tssStructss + tssStructss0 + tssStructss0_reserved + tssStructss1 + tssStructss1_reserved + tssStructss2 + tssStructss2_reserved + tssStructss_reserved + tssStructtrace_bitmap + + + diff --git a/doc/xml/structtty__termNode.xml b/doc/xml/structtty__termNode.xml new file mode 100644 index 0000000..4d6e5d2 --- /dev/null +++ b/doc/xml/structtty__termNode.xml @@ -0,0 +1,149 @@ + + + + tty_termNode + tty.h + + + pidType + pidType tty_termNode::owner + + owner + + + + + + + + execFile + fork_copyProcess + + + char + char tty_termNode::stdin[512] + [512] + stdin + + + + + + + + getch + keyboardHandler + + + int + int tty_termNode::stdinSize + + stdinSize + + + + + + + + getch + keyboardHandler + + + char * + char* tty_termNode::tty_buffer + + tty_buffer + + + + + + + + tty_change + tty_init + + + uInt8 + uInt8 tty_termNode::tty_colour + + tty_colour + + + + + + + + tty_init + tty_print + + + char * + char* tty_termNode::tty_pointer + + tty_pointer + + + + + + + + tty_change + tty_init + tty_print + + + uInt16 + uInt16 tty_termNode::tty_x + + tty_x + + + + + + + + backSpace + tty_change + tty_init + tty_print + + + uInt16 + uInt16 tty_termNode::tty_y + + tty_y + + + + + + + + backSpace + tty_change + tty_init + tty_print + + + + + + + + + tty_termNodeowner + tty_termNodestdin + tty_termNodestdinSize + tty_termNodetty_buffer + tty_termNodetty_colour + tty_termNodetty_pointer + tty_termNodetty_x + tty_termNodetty_y + + + diff --git a/doc/xml/structubixDiskLabel.xml b/doc/xml/structubixDiskLabel.xml new file mode 100644 index 0000000..16506dd --- /dev/null +++ b/doc/xml/structubixDiskLabel.xml @@ -0,0 +1,105 @@ + + + + ubixDiskLabel + ubixfs.h + ubixDiskLabel::ubixPartitions + + + uInt16 + uInt16 ubixDiskLabel::driveType + + driveType + + + + + + + + + + uInt32 + uInt32 ubixDiskLabel::magicNum + + magicNum + + + + + + + + ubixfs_initialize + + + uInt32 + uInt32 ubixDiskLabel::magicNum2 + + magicNum2 + + + + + + + + ubixfs_initialize + + + uInt16 + uInt16 ubixDiskLabel::numPartitions + + numPartitions + + + + + + + + + + ubixDiskLabel::ubixPartitions + struct ubixDiskLabel::ubixPartitions ubixDiskLabel::partitions[MAXUBIXPARTITIONS] + [MAXUBIXPARTITIONS] + partitions + + + + + + + + syncBat + ubixfs_initialize + ubixFSUnlink + + + + + + + + + + + + partitions + + + + + + + + + + ubixDiskLabeldriveType + ubixDiskLabelmagicNum + ubixDiskLabelmagicNum2 + ubixDiskLabelnumPartitions + ubixDiskLabelpartitions + + + diff --git a/doc/xml/structubixDiskLabel_1_1ubixPartitions.xml b/doc/xml/structubixDiskLabel_1_1ubixPartitions.xml new file mode 100644 index 0000000..eff2819 --- /dev/null +++ b/doc/xml/structubixDiskLabel_1_1ubixPartitions.xml @@ -0,0 +1,101 @@ + + + + ubixDiskLabel::ubixPartitions + ubixfs.h + + + uInt32 + uInt32 ubixDiskLabel::ubixPartitions::pBatSize + + pBatSize + + + + + + + + ubixfs_initialize + + + uInt8 + uInt8 ubixDiskLabel::ubixPartitions::pFrag + + pFrag + + + + + + + + + + uInt32 + uInt32 ubixDiskLabel::ubixPartitions::pFsSize + + pFsSize + + + + + + + + + + uInt8 + uInt8 ubixDiskLabel::ubixPartitions::pFsType + + pFsType + + + + + + + + + + uInt32 + uInt32 ubixDiskLabel::ubixPartitions::pOffset + + pOffset + + + + + + + + + + uInt32 + uInt32 ubixDiskLabel::ubixPartitions::pSize + + pSize + + + + + + + + + + + + + + + + ubixDiskLabel::ubixPartitionspBatSize + ubixDiskLabel::ubixPartitionspFrag + ubixDiskLabel::ubixPartitionspFsSize + ubixDiskLabel::ubixPartitionspFsType + ubixDiskLabel::ubixPartitionspOffset + ubixDiskLabel::ubixPartitionspSize + + + diff --git a/doc/xml/structubixFSInfo.xml b/doc/xml/structubixFSInfo.xml new file mode 100644 index 0000000..cbbf94b --- /dev/null +++ b/doc/xml/structubixFSInfo.xml @@ -0,0 +1,114 @@ + + + + ubixFSInfo + ubixfs.h + + + uInt32 + uInt32 ubixFSInfo::batEntries + + batEntries + + + + + + + + getFreeBlocks + ubixfs_initialize + + + blockAllocationTableEntry * + struct blockAllocationTableEntry* ubixFSInfo::blockAllocationTable + + blockAllocationTable + + + + + + + + freeBlocks + getFreeBlocks + syncBat + ubixfs_initialize + ubixfs_loadData + ubixFSmkDir + ubixFSUnlink + writeFileByte + writeUbixFS + + + cacheNode * + struct cacheNode* ubixFSInfo::dirCache + + dirCache + + + + + + + + openFileUbixFS + ubixfs_initialize + + + uInt32 + uInt32 ubixFSInfo::rootDir + + rootDir + + + + + + + + ubixfs_initialize + ubixFSUnlink + + + + + + + + + + + + + + + + dirCache + + + blockAllocationTable + + + + + + + prev +next +parent +fileListTail +fileListHead + + + + + + ubixFSInfobatEntries + ubixFSInfoblockAllocationTable + ubixFSInfodirCache + ubixFSInforootDir + + + diff --git a/doc/xml/structubixfsInode.xml b/doc/xml/structubixfsInode.xml new file mode 100644 index 0000000..92f2bb5 --- /dev/null +++ b/doc/xml/structubixfsInode.xml @@ -0,0 +1,305 @@ + + + + ubixfsInode + ubixfs.h + + + char smallData[3200] + char smallData [3200] ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 refCount + uInt32 refCount ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + dataStream blocks + dataStream blocks ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr data + uPtr data ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr prev + uPtr prev ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr next + uPtr next ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uPtr parent + uPtr parent ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 inodeSize + uInt32 inodeSize ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uInt32 type + uInt32 type ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + inodeAddr attributes + inodeAddr attributes ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 flags + int32 flags ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 mode + int32 mode ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + gid_t gid + gid_t gid ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + uid_t uid + uid_t uid ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + char name[MAX_FILENAME_LENGTH] + char name [MAX_FILENAME_LENGTH] ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + inodeAddr inodeNum + inodeAddr inodeNum ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + int32 magic1 + int32 magic1 ubixfsInode::__attribute__ + ((packed)) + __attribute__ + + (packed) + + + + + + + + + + + + + + + + + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + ubixfsInode__attribute__ + + + diff --git a/doc/xml/structubthread.xml b/doc/xml/structubthread.xml new file mode 100644 index 0000000..1d9b3fe --- /dev/null +++ b/doc/xml/structubthread.xml @@ -0,0 +1,93 @@ + + + + ubthread + ubthread.h + + + kTask_t * + kTask_t* ubthread::task + + task + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + task + + + + + + + prev +next + + + i387 + + + td + + + imageFd + + + term + + + oInfo + + + tss + + + + + + + prev +next + + + + + + + + + + ubthreadtask + + + diff --git a/doc/xml/structubthread__cond.xml b/doc/xml/structubthread__cond.xml new file mode 100644 index 0000000..7770c3f --- /dev/null +++ b/doc/xml/structubthread__cond.xml @@ -0,0 +1,49 @@ + + + + ubthread_cond + ubthread.h + + + int + int ubthread_cond::id + + id + + + + + + + + ubthread_cond_init + + + uInt8 + uInt8 ubthread_cond::locked + + locked + + + + + + + + ubthread_cond_init + ubthread_cond_signal + ubthread_cond_timedwait + ubthread_cond_wait + + + + + + + + + ubthread_condid + ubthread_condlocked + + + diff --git a/doc/xml/structubthread__cond__list.xml b/doc/xml/structubthread__cond__list.xml new file mode 100644 index 0000000..45dfa99 --- /dev/null +++ b/doc/xml/structubthread__cond__list.xml @@ -0,0 +1,60 @@ + + + + ubthread_cond_list + ubthread.h + + + ubthread_cond_t * + ubthread_cond_t* ubthread_cond_list::cond + + cond + + + + + + + + + + ubthread_cond_list * + struct ubthread_cond_list* ubthread_cond_list::next + + next + + + + + + + + + + + + + + + + + + + next + + + cond + + + + + + + + + + ubthread_cond_listcond + ubthread_cond_listnext + + + diff --git a/doc/xml/structubthread__list.xml b/doc/xml/structubthread__list.xml new file mode 100644 index 0000000..03f66e0 --- /dev/null +++ b/doc/xml/structubthread__list.xml @@ -0,0 +1,117 @@ + + + + ubthread_list + ubthread.h + + + ubthread_list * + struct ubthread_list* ubthread_list::next + + next + + + + + + + + + + ubthread_t + ubthread_t ubthread_list::thread + + thread + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + next + + + thread + + + + + + + task + + + + + + + prev +next + + + i387 + + + td + + + imageFd + + + term + + + oInfo + + + tss + + + + + + + prev +next + + + + + + + + + + ubthread_listnext + ubthread_listthread + + + diff --git a/doc/xml/structubthread__mutex.xml b/doc/xml/structubthread__mutex.xml new file mode 100644 index 0000000..13a08bb --- /dev/null +++ b/doc/xml/structubthread__mutex.xml @@ -0,0 +1,66 @@ + + + + ubthread_mutex + ubthread.h + + + int + int ubthread_mutex::id + + id + + + + + + + + ubthread_mutex_init + + + uInt8 + uInt8 ubthread_mutex::locked + + locked + + + + + + + + ubthread_cond_timedwait + ubthread_cond_wait + ubthread_mutex_init + ubthread_mutex_lock + ubthread_mutex_unlock + + + pidType + pidType ubthread_mutex::pid + + pid + + + + + + + + ubthread_mutex_lock + ubthread_mutex_unlock + + + + + + + + + ubthread_mutexid + ubthread_mutexlocked + ubthread_mutexpid + + + diff --git a/doc/xml/structubthread__mutex__list.xml b/doc/xml/structubthread__mutex__list.xml new file mode 100644 index 0000000..0f08f76 --- /dev/null +++ b/doc/xml/structubthread__mutex__list.xml @@ -0,0 +1,60 @@ + + + + ubthread_mutex_list + ubthread.h + + + ubthread_mutex_t * + ubthread_mutex_t* ubthread_mutex_list::mutex + + mutex + + + + + + + + + + ubthread_mutex_list * + struct ubthread_mutex_list* ubthread_mutex_list::next + + next + + + + + + + + + + + + + + + + + + + mutex + + + next + + + + + + + + + + ubthread_mutex_listmutex + ubthread_mutex_listnext + + + diff --git a/doc/xml/structudp__hdr.xml b/doc/xml/structudp__hdr.xml new file mode 100644 index 0000000..7d4703d --- /dev/null +++ b/doc/xml/structudp__hdr.xml @@ -0,0 +1,88 @@ + + + + udp_hdr + udp.h + + + + udp_hdr::PACK_STRUCT_FIELD + (uInt16 chksum) + PACK_STRUCT_FIELD + + uInt16 + chksum + + + + + + + + + + + + udp_hdr::PACK_STRUCT_FIELD + (uInt16 len) + PACK_STRUCT_FIELD + + uInt16 + len + + + + + + + + + + + + udp_hdr::PACK_STRUCT_FIELD + (uInt16 dest) + PACK_STRUCT_FIELD + + uInt16 + dest + + + + + + + + + + + + udp_hdr::PACK_STRUCT_FIELD + (uInt16 src) + PACK_STRUCT_FIELD + + uInt16 + src + + + + + + + + + + + + + + + + + udp_hdrPACK_STRUCT_FIELD + udp_hdrPACK_STRUCT_FIELD + udp_hdrPACK_STRUCT_FIELD + udp_hdrPACK_STRUCT_FIELD + + + diff --git a/doc/xml/structudp__pcb.xml b/doc/xml/structudp__pcb.xml new file mode 100644 index 0000000..e0e6c2d --- /dev/null +++ b/doc/xml/structudp__pcb.xml @@ -0,0 +1,148 @@ + + + + udp_pcb + udp.h + + + uInt16 + uInt16 udp_pcb::chksum_len + + chksum_len + + + + + + + + + + uInt8 + uInt8 udp_pcb::flags + + flags + + + + + + + + + + uInt16 + uInt16 udp_pcb::local_port + + local_port + + + + + + + + netconn_addr + + + udp_pcb * + struct udp_pcb* udp_pcb::next + + next + + + + + + + + + + void(* + void(* udp_pcb::recv)(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, uInt16 port) + )(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, uInt16 port) + recv + + + + + + + + + + void * + void* udp_pcb::recv_arg + + recv_arg + + + + + + + + do_delconn + + + ip_addr local_ip + struct ip_addr local_ip udp_pcb::remote_ip + + remote_ip + + + + + + + + netconn_peer + + + uInt16 + uInt16 udp_pcb::remote_port + + remote_port + + + + + + + + netconn_peer + + + + + + + + + + + + + + + + remote_ip + + + next + + + + + + udp_pcbchksum_len + udp_pcbflags + udp_pcblocal_port + udp_pcbnext + udp_pcbrecv + udp_pcbrecv_arg + udp_pcbremote_ip + udp_pcbremote_port + + + diff --git a/doc/xml/structufs1__dinode.xml b/doc/xml/structufs1__dinode.xml new file mode 100644 index 0000000..dc7cbee --- /dev/null +++ b/doc/xml/structufs1__dinode.xml @@ -0,0 +1,282 @@ + + + + ufs1_dinode + ufs.h + + + int32_t + int32_t ufs1_dinode::di_atime + + di_atime + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_atimensec + + di_atimensec + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_blocks + + di_blocks + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_ctime + + di_ctime + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_ctimensec + + di_ctimensec + + + + + + + + + + ufs1_daddr_t + ufs1_daddr_t ufs1_dinode::di_db[NDADDR] + [NDADDR] + di_db + + + + + + + + + + u_int32_t + u_int32_t ufs1_dinode::di_flags + + di_flags + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_gen + + di_gen + + + + + + + + + + u_int32_t + u_int32_t ufs1_dinode::di_gid + + di_gid + + + + + + + + + + ufs1_daddr_t + ufs1_daddr_t ufs1_dinode::di_ib[NIADDR] + [NIADDR] + di_ib + + + + + + + + + + u_int16_t + u_int16_t ufs1_dinode::di_mode + + di_mode + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_mtime + + di_mtime + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_mtimensec + + di_mtimensec + + + + + + + + + + int16_t + int16_t ufs1_dinode::di_nlink + + di_nlink + + + + + + + + + + u_int64_t + u_int64_t ufs1_dinode::di_size + + di_size + + + + + + + + + + int32_t + int32_t ufs1_dinode::di_spare[2] + [2] + di_spare + + + + + + + + + + ufs1_dinode::@7 + union ufs1_dinode::@7 ufs1_dinode::di_u + + di_u + + + + + + + + + + u_int32_t + u_int32_t ufs1_dinode::di_uid + + di_uid + + + + + + + + + + u_int16_t + u_int16_t ufs1_dinode::oldids[2] + [2] + oldids + + + + + + + + + + + + + + + + ufs1_dinodedi_atime + ufs1_dinodedi_atimensec + ufs1_dinodedi_blocks + ufs1_dinodedi_ctime + ufs1_dinodedi_ctimensec + ufs1_dinodedi_db + ufs1_dinodedi_flags + ufs1_dinodedi_gen + ufs1_dinodedi_gid + ufs1_dinodedi_ib + ufs1_dinodedi_mode + ufs1_dinodedi_mtime + ufs1_dinodedi_mtimensec + ufs1_dinodedi_nlink + ufs1_dinodedi_size + ufs1_dinodedi_spare + ufs1_dinodedi_u + ufs1_dinodedi_uid + ufs1_dinodeoldids + + + diff --git a/doc/xml/structufs2__dinode.xml b/doc/xml/structufs2__dinode.xml new file mode 100644 index 0000000..36a02f6 --- /dev/null +++ b/doc/xml/structufs2__dinode.xml @@ -0,0 +1,341 @@ + + + + ufs2_dinode + ufs.h + + + ufs_time_t + ufs_time_t ufs2_dinode::di_atime + + di_atime + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_atimensec + + di_atimensec + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_birthnsec + + di_birthnsec + + + + + + + + + + ufs_time_t + ufs_time_t ufs2_dinode::di_birthtime + + di_birthtime + + + + + + + + + + u_int32_t + u_int32_t ufs2_dinode::di_blksize + + di_blksize + + + + + + + + + + u_int64_t + u_int64_t ufs2_dinode::di_blocks + + di_blocks + + + + + + + + + + ufs_time_t + ufs_time_t ufs2_dinode::di_ctime + + di_ctime + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_ctimensec + + di_ctimensec + + + + + + + + + + ufs2_daddr_t + ufs2_daddr_t ufs2_dinode::di_db[NDADDR] + [NDADDR] + di_db + + + + + + + + fsread + + + ufs2_daddr_t + ufs2_daddr_t ufs2_dinode::di_extb[NXADDR] + [NXADDR] + di_extb + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_extsize + + di_extsize + + + + + + + + + + u_int32_t + u_int32_t ufs2_dinode::di_flags + + di_flags + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_gen + + di_gen + + + + + + + + + + u_int32_t + u_int32_t ufs2_dinode::di_gid + + di_gid + + + + + + + + + + ufs2_daddr_t + ufs2_daddr_t ufs2_dinode::di_ib[NIADDR] + [NIADDR] + di_ib + + + + + + + + fsread + + + u_int32_t + u_int32_t ufs2_dinode::di_kernflags + + di_kernflags + + + + + + + + + + u_int16_t + u_int16_t ufs2_dinode::di_mode + + di_mode + + + + + + + + + + ufs_time_t + ufs_time_t ufs2_dinode::di_mtime + + di_mtime + + + + + + + + + + int32_t + int32_t ufs2_dinode::di_mtimensec + + di_mtimensec + + + + + + + + + + int16_t + int16_t ufs2_dinode::di_nlink + + di_nlink + + + + + + + + + + u_int64_t + u_int64_t ufs2_dinode::di_size + + di_size + + + + + + + + fsread + + + int64_t + int64_t ufs2_dinode::di_spare[3] + [3] + di_spare + + + + + + + + + + u_int32_t + u_int32_t ufs2_dinode::di_uid + + di_uid + + + + + + + + + + + + + + + + ufs2_dinodedi_atime + ufs2_dinodedi_atimensec + ufs2_dinodedi_birthnsec + ufs2_dinodedi_birthtime + ufs2_dinodedi_blksize + ufs2_dinodedi_blocks + ufs2_dinodedi_ctime + ufs2_dinodedi_ctimensec + ufs2_dinodedi_db + ufs2_dinodedi_extb + ufs2_dinodedi_extsize + ufs2_dinodedi_flags + ufs2_dinodedi_gen + ufs2_dinodedi_gid + ufs2_dinodedi_ib + ufs2_dinodedi_kernflags + ufs2_dinodedi_mode + ufs2_dinodedi_mtime + ufs2_dinodedi_mtimensec + ufs2_dinodedi_nlink + ufs2_dinodedi_size + ufs2_dinodedi_spare + ufs2_dinodedi_uid + + + diff --git a/doc/xml/structuserFileDescriptorStruct.xml b/doc/xml/structuserFileDescriptorStruct.xml new file mode 100644 index 0000000..bd44a89 --- /dev/null +++ b/doc/xml/structuserFileDescriptorStruct.xml @@ -0,0 +1,157 @@ + + + + userFileDescriptorStruct + file.h + + + fileDescriptorStruct * + struct fileDescriptorStruct* userFileDescriptorStruct::fd + + fd + + + + + + + + sysFclose + sysFgetc + sysFopen + sysFread + sysFseek + sysFwrite + + + uInt32 + uInt32 userFileDescriptorStruct::fdSize + + fdSize + + + + + + + + sysFopen + + + + + + + + + + + + + + + + devRec + + + devInfo + + + devInfo + + + prev +next + + + + + + + prev +next +parent +fileListTail +fileListHead + + + + + + + partitions + + + + + + + + + + + cacheNode + + + dmadat + + + mp + + + prev +next + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + + + + + + + + + + + + + fd + + + + + + + + + + + prev +next + + + + + + userFileDescriptorStructfd + userFileDescriptorStructfdSize + + + diff --git a/doc/xml/structvfs__mountPoint.xml b/doc/xml/structvfs__mountPoint.xml new file mode 100644 index 0000000..48e90b0 --- /dev/null +++ b/doc/xml/structvfs__mountPoint.xml @@ -0,0 +1,234 @@ + + + + vfs_mountPoint + mount.h + + + device_node * + struct device_node* vfs_mountPoint::device + + device + + + + + + + + syncBat + ubixfs_initialize + ubixFSUnlink + vfs_mount + + + ubixDiskLabel * + struct ubixDiskLabel* vfs_mountPoint::diskLabel + + diskLabel + + + + + + + + syncBat + ubixfs_initialize + ubixFSUnlink + + + fileSystem * + struct fileSystem* vfs_mountPoint::fs + + fs + + + + + + + + unlink + vfs_mount + + + void * + void* vfs_mountPoint::fsInfo + + fsInfo + + + + + + + + devfs_initialize + devfs_makeNode + syncBat + ubixfs_initialize + ubixFSUnlink + + + char + char vfs_mountPoint::mountPoint[1024] + [1024] + mountPoint + + + + + + + + unlink + vfs_findMount + vfs_mount + + + vfs_mountPoint * + struct vfs_mountPoint* vfs_mountPoint::next + + next + + + + + + + + vfs_addMount + vfs_findMount + + + int + int vfs_mountPoint::partition + + partition + + + + + + + + syncBat + ubixfs_initialize + ubixFSUnlink + vfs_mount + + + char + char vfs_mountPoint::perms + + perms + + + + + + + + vfs_mount + + + vfs_mountPoint * + struct vfs_mountPoint* vfs_mountPoint::prev + + prev + + + + + + + + vfs_addMount + + + + + + + + + + + + + + + + devRec + + + devInfo + + + devInfo + + + prev +next + + + + + + + partitions + + + + + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + + + + + + + + + + + + + prev +next + + + + + + vfs_mountPointdevice + vfs_mountPointdiskLabel + vfs_mountPointfs + vfs_mountPointfsInfo + vfs_mountPointmountPoint + vfs_mountPointnext + vfs_mountPointpartition + vfs_mountPointperms + vfs_mountPointprev + + + diff --git a/doc/xml/structvitalsStruct.xml b/doc/xml/structvitalsStruct.xml new file mode 100644 index 0000000..5310468 --- /dev/null +++ b/doc/xml/structvitalsStruct.xml @@ -0,0 +1,298 @@ + + + + vitalsStruct + vitals.h + + + uInt32 + uInt32 vitalsStruct::dQuantum + + dQuantum + + + + + + + + vitals_init + + + fileSystem * + struct fileSystem* vitalsStruct::fileSystems + + fileSystems + + + + + + + + vfs_init + vfsFindFS + vfsRegisterFS + + + void * + void* vitalsStruct::font + + font + + + + + + + + ogPrintf + + + uInt32 + uInt32 vitalsStruct::freePages + + freePages + + + + + + + + adjustCowCounter + freePage + kmain + vmmFindFreePage + vmmFreeProcessPages + + + vfs_mountPoint * + struct vfs_mountPoint* vitalsStruct::mountPoints + + mountPoints + + + + + + + + vfs_addMount + vfs_findMount + + + uInt32 + uInt32 vitalsStruct::openFiles + + openFiles + + + + + + + + fclose + fopen + + + char * + char* vitalsStruct::packet + + packet + + + + + + + + + + uInt32 + uInt32 vitalsStruct::packetLength + + packetLength + + + + + + + + + + uInt32 + uInt32 vitalsStruct::quantum + + quantum + + + + + + + + vitals_init + + + void * + void* vitalsStruct::screen + + screen + + + + + + + + ogPrintf + + + uInt32 + uInt32 vitalsStruct::sysTicks + + sysTicks + + + + + + + + sysGetUptime + systemTask + + + uInt32 + uInt32 vitalsStruct::sysUptime + + sysUptime + + + + + + + + sysGetTime + systemTask + ubthread_cond_timedwait + + + uInt32 + uInt32 vitalsStruct::timeStart + + timeStart + + + + + + + + sysGetTime + time_init + + + + + + + + + + + + + + + + devRec + + + devInfo + + + devInfo + + + prev +next + + + + + + + partitions + + + + + + + + + + + diskLabel + + + device + + + fs + + + prev +next + + + + + + + fileSystems + + + mountPoints + + + + + + + + + + + + + + + prev +next + + + + + + vitalsStructdQuantum + vitalsStructfileSystems + vitalsStructfont + vitalsStructfreePages + vitalsStructmountPoints + vitalsStructopenFiles + vitalsStructpacket + vitalsStructpacketLength + vitalsStructquantum + vitalsStructscreen + vitalsStructsysTicks + vitalsStructsysUptime + vitalsStructtimeStart + + + diff --git a/doc/xml/structwrite__args.xml b/doc/xml/structwrite__args.xml new file mode 100644 index 0000000..bd8729e --- /dev/null +++ b/doc/xml/structwrite__args.xml @@ -0,0 +1,145 @@ + + + + write_args + sysproto.h + + + const void * + const void* write_args::buf + + buf + + + + + + + + sys_write + + + char + char write_args::buf_l_[PADL_(const void *)] + [PADL_(const void *)] + buf_l_ + + + + + + + + + + char + char write_args::buf_r_[PADR_(const void *)] + [PADR_(const void *)] + buf_r_ + + + + + + + + + + int + int write_args::fd + + fd + + + + + + + + sys_write + + + char + char write_args::fd_l_[PADL_(int)] + [PADL_(int)] + fd_l_ + + + + + + + + + + char + char write_args::fd_r_[PADR_(int)] + [PADR_(int)] + fd_r_ + + + + + + + + + + size_t + size_t write_args::nbyte + + nbyte + + + + + + + + sys_write + + + char + char write_args::nbyte_l_[PADL_(size_t)] + [PADL_(size_t)] + nbyte_l_ + + + + + + + + + + char + char write_args::nbyte_r_[PADR_(size_t)] + [PADR_(size_t)] + nbyte_r_ + + + + + + + + + + + + + + + + write_argsbuf + write_argsbuf_l_ + write_argsbuf_r_ + write_argsfd + write_argsfd_l_ + write_argsfd_r_ + write_argsnbyte + write_argsnbyte_l_ + write_argsnbyte_r_ + + + diff --git a/doc/xml/sys_8h.xml b/doc/xml/sys_8h.xml new file mode 100644 index 0000000..983ba19 --- /dev/null +++ b/doc/xml/sys_8h.xml @@ -0,0 +1,650 @@ + + + + sys.h + arch/cc.h + arch/sys_arch.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/include/net/tcp.h + src/sys/net/api/api_msg.c + src/sys/net/api/tcpip.c + src/sys/net/net/init.c + src/sys/net/net/sys_arch.c + src/sys/net/net/udpecho.c + src/sys/net/netif/ethernetif.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sys_timeout + sys_timeouts + + + void(*) + typedef void(* ) sys_timeout_handler(void *arg) + (void *arg) + sys_timeout_handler + + + + + + + + + + + + uInt16 + uInt16 sys_arch_mbox_fetch + (sys_mbox_t mbox, void **msg, uInt16 timeout) + sys_arch_mbox_fetch + + sys_mbox_t + mbox + + + void ** + msg + + + uInt16 + timeout + + + + + + + + + netconn_delete + + + uInt16 + uInt16 sys_arch_sem_wait + (sys_sem_t sem, uInt16 timeout) + sys_arch_sem_wait + + sys_sem_t + sem + + + uInt16 + timeout + + + + + + + + + sys_arch_mbox_fetch + + + sys_timeouts * + struct sys_timeouts* sys_arch_timeouts + (void) + sys_arch_timeouts + + void + + + + + + + + + current_thread + sys_thread::timeouts + + + void + void sys_init + (void) + sys_init + + void + + + + + + + + + gettimeofday + starttime + net_init + + + void + void sys_mbox_fetch + (sys_mbox_t mbox, void **msg) + sys_mbox_fetch + + sys_mbox_t + mbox + + + void ** + msg + + + + + + + + + netconn_accept + netconn_bind + netconn_close + netconn_connect + netconn_delete + netconn_listen + netconn_recv + netconn_send + netconn_write + tcpip_thread + + + void + void sys_mbox_free + (sys_mbox_t mbox) + sys_mbox_free + + sys_mbox_t + mbox + + + + + + + + + accept_function + netconn_delete + netconn_recv + + + sys_mbox_t + sys_mbox_t sys_mbox_new + (void) + sys_mbox_new + + void + + + + + + + + + sys_mbox::first + kmalloc + sys_mbox::last + sys_mbox::mail + mbox + sys_mbox::mutex + sys_sem_new_ + accept_function + do_listen + netconn_bind + netconn_connect + netconn_listen + netconn_new + tcpip_init + + + void + void sys_mbox_post + (sys_mbox_t mbox, void *msg) + sys_mbox_post + + sys_mbox_t + mbox + + + void * + msg + + + + + + + + + accept_function + do_bind + do_close + do_connect + do_connected + do_delconn + do_listen + do_recv + do_send + do_write + err_tcp + recv_tcp + recv_udp + tcpip_apimsg + tcpip_input + + + unsigned long + unsigned long sys_now + (void) + sys_now + + void + + + + + + + + + + + void + void sys_sem_free + (sys_sem_t sem) + sys_sem_free + + sys_sem_t + sem + + + + + + + + + netconn_delete + netconn_write + netMainThread + + + sys_sem_t + sys_sem_t sys_sem_new + (uInt8 count) + sys_sem_new + + uInt8 + count + + + + + + + + + sys_sem_new_ + accept_function + netconn_write + netMainThread + + + void + void sys_sem_signal + (sys_sem_t sem) + sys_sem_signal + + sys_sem_t + sem + + + + + + + + + err_tcp + poll_tcp + sent_tcp + sys_arch_mbox_fetch + sys_mbox_post + tcpip_init_done + + + void + void sys_sem_wait + (sys_sem_t sem) + sys_sem_wait + + sys_sem_t + sem + + + + + + + + + netconn_close + netconn_write + netMainThread + sys_mbox_free + sys_mbox_post + + + void + void sys_thread_new + (void(*function)(void), void *arg) + sys_thread_new + + void(*)(void) + function + + + void * + arg + + + + + + + + + kmalloc + kpanic + kprintf + netThreadSpinlock + sys_thread::next + sys_timeouts::next + NULL + spinLock + spinUnlock + threads + sys_thread::timeouts + sys_thread::ubthread + ubthread_create + bot_init + low_level_init + net_init + shell_init + tcpip_init + udpecho_init + + + void + void sys_timeout + (uInt16 msecs, sys_timeout_handler h, void *arg) + sys_timeout + + uInt16 + msecs + + + sys_timeout_handler + h + + + void * + arg + + + + + + + + + arp_timer + ethernetif_init + tcpip_tcp_timer + tcpip_thread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_SYS_H__ +#define__LWIP_SYS_H__ + +#include"arch/cc.h" +#include"arch/sys_arch.h" + +typedefvoid(*sys_timeout_handler)(void*arg); + +structsys_timeout{ +structsys_timeout*next; +uInt16time; +sys_timeout_handlerh; +void*arg; +}; + +structsys_timeouts{ +structsys_timeout*next; +}; + +/*sys_init()mustbecalledbeforeanthingelse.*/ +voidsys_init(void); + +/* +*sys_timeout(): +* +*Scheduleatimeoutaspecifiedamountofmillisecondsinthe +*future.Whenthetimeoutoccurs,thespecifiedtimeouthandlerwill +*becalled.Thehandlerwillbepassedthe"arg"argumentwhen +*called. +* +*/ +voidsys_timeout(uInt16msecs,sys_timeout_handlerh,void*arg); +structsys_timeouts*sys_arch_timeouts(void); + +/*Semaphorefunctions.*/ +sys_sem_tsys_sem_new(uInt8count); +voidsys_sem_signal(sys_sem_tsem); +uInt16sys_arch_sem_wait(sys_sem_tsem,uInt16timeout); +voidsys_sem_free(sys_sem_tsem); + +voidsys_sem_wait(sys_sem_tsem); + +/*Mailboxfunctions.*/ +sys_mbox_tsys_mbox_new(void); +voidsys_mbox_post(sys_mbox_tmbox,void*msg); +uInt16sys_arch_mbox_fetch(sys_mbox_tmbox,void**msg,uInt16timeout); +voidsys_mbox_free(sys_mbox_tmbox); + +voidsys_mbox_fetch(sys_mbox_tmbox,void**msg); + +/*Threadfunctions.*/ +//voidsys_thread_new(void(*thread)(void*arg),void*arg); +voidsys_thread_new(void(*function)(void),void*arg); + +/*ThefollowingfunctionsareusedonlyinUnixcode,and +canbeomittedwhenportingthestack.*/ +/*Returnsthecurrenttimeinmicroseconds.*/ +unsignedlongsys_now(void); + +#endif/*__LWIP_SYS_H__*/ + + + + diff --git a/doc/xml/sys__arch_8c.xml b/doc/xml/sys__arch_8c.xml new file mode 100644 index 0000000..69d2c54 --- /dev/null +++ b/doc/xml/sys__arch_8c.xml @@ -0,0 +1,1141 @@ + + + + sys_arch.c + ubixos/types.h + ubixos/sched.h + ubixos/ubthread.h + ubixos/kpanic.h + lib/kprintf.h + lib/kmalloc.h + net/debug.h + net/sys.h + net/opt.h + net/stats.h + ubixos/spinlock.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sys_mbox + sys_mbox_msg + sys_sem + sys_thread + thread_start_param + + + SYS_MBOX_SIZE + 100 + + + + + + + + sys_arch_mbox_fetch + sys_mbox_post + + + UMAX + a + b + ((a) > (b) ? (a) : (b)) + + + + + + + + + + + + uInt16 + static uInt16 cond_wait + (ubthread_cond_t *cond, ubthread_mutex_t *mutex, uInt16 timeout) + cond_wait + + ubthread_cond_t * + cond + + + ubthread_mutex_t * + mutex + + + uInt16 + timeout + + + + + + + + + ETIMEDOUT + gettimeofday + mutex + timespec::tv_nsec + timespec::tv_sec + timeval::tv_sec + timeval::tv_usec + ubthread_cond_timedwait + ubthread_cond_wait + sys_arch_sem_wait + + + struct sys_thread * + static struct sys_thread* current_thread + (void) + current_thread + + void + + + + + + + + + netThreadSpinlock + sys_thread::next + NULL + spinLock + spinUnlock + threads + sys_thread::ubthread + ubthread_self + sys_arch_timeouts + + + uInt16 + uInt16 sys_arch_mbox_fetch + (struct sys_mbox *mbox, void **msg, uInt16 timeout) + sys_arch_mbox_fetch + + struct sys_mbox * + mbox + + + void ** + msg + + + uInt16 + timeout + + + + + + + + + sys_mbox::first + sys_mbox::last + sys_mbox::mail + mbox + sys_mbox::msgs + sys_mbox::mutex + NULL + sys_arch_sem_wait + SYS_MBOX_SIZE + sys_sem_signal + + + uInt16 + uInt16 sys_arch_sem_wait + (struct sys_sem *sem, uInt16 timeout) + sys_arch_sem_wait + + struct sys_sem * + sem + + + uInt16 + timeout + + + + + + + + + sys_sem::c + sys_sem::cond + cond_wait + sys_sem::mutex + ubthread_mutex_lock + ubthread_mutex_unlock + + + sys_timeouts * + struct sys_timeouts* sys_arch_timeouts + (void) + sys_arch_timeouts + + void + + + + + + + + + current_thread + sys_thread::timeouts + + + void + void sys_init + () + sys_init + + + + + + + + gettimeofday + starttime + net_init + + + void + void sys_mbox_free + (struct sys_mbox *mbox) + sys_mbox_free + + struct sys_mbox * + mbox + + + + + + + + + kfree + sys_mbox::mail + mbox + sys_mbox::mutex + NULL + SYS_MBOX_NULL + sys_sem_free_ + sys_sem_wait + + + sys_mbox * + struct sys_mbox* sys_mbox_new + () + sys_mbox_new + + + + + + + + sys_mbox::first + kmalloc + sys_mbox::last + sys_mbox::mail + mbox + sys_mbox::mutex + sys_sem_new_ + accept_function + do_listen + netconn_bind + netconn_connect + netconn_listen + netconn_new + tcpip_init + + + void + void sys_mbox_post + (struct sys_mbox *mbox, void *msg) + sys_mbox_post + + struct sys_mbox * + mbox + + + void * + msg + + + + + + + + + sys_mbox::first + sys_mbox::last + sys_mbox::mail + mbox + sys_mbox::msgs + sys_mbox::mutex + SYS_MBOX_SIZE + sys_sem_signal + sys_sem_wait + + + void + void sys_sem_free + (struct sys_sem *sem) + sys_sem_free + + struct sys_sem * + sem + + + + + + + + + sys_sem_free_ + SYS_SEM_NULL + + + void + static void sys_sem_free_ + (struct sys_sem *sem) + sys_sem_free_ + + struct sys_sem * + sem + + + + + + + + + sys_sem::cond + kfree + sys_sem::mutex + ubthread_cond_destroy + ubthread_mutex_destroy + sys_mbox_free + sys_sem_free + + + sys_sem * + struct sys_sem* sys_sem_new + (uInt8 count) + sys_sem_new + + uInt8 + count + + + + + + + + + sys_sem_new_ + accept_function + netconn_write + netMainThread + + + struct sys_sem * + static struct sys_sem * sys_sem_new_ + (uInt8 count) + sys_sem_new_ + + uInt8 + count + + + + + + + + + sys_sem::c + sys_sem::cond + kmalloc + sys_sem::mutex + NULL + ubthread_cond_init + ubthread_mutex_init + sys_mbox_new + sys_sem_new + + + void + void sys_sem_signal + (struct sys_sem *sem) + sys_sem_signal + + struct sys_sem * + sem + + + + + + + + + sys_sem::c + sys_sem::cond + sys_sem::mutex + ubthread_cond_signal + ubthread_mutex_lock + ubthread_mutex_unlock + + + void + void sys_thread_new + (void(*function)(void), void *arg) + sys_thread_new + + void(*)(void) + function + + + void * + arg + + + + + + + + + kmalloc + kpanic + kprintf + netThreadSpinlock + sys_timeouts::next + sys_thread::next + NULL + spinLock + spinUnlock + threads + sys_thread::timeouts + sys_thread::ubthread + ubthread_create + bot_init + low_level_init + net_init + shell_init + tcpip_init + udpecho_init + + + unsigned long + unsigned long sys_unix_now + () + sys_unix_now + + + + + + + + gettimeofday + starttime + timeval::tv_sec + timeval::tv_usec + + + + + spinLock_t + spinLock_t netThreadSpinlock + + netThreadSpinlock + SPIN_LOCK_INITIALIZER + + + + + + + + current_thread + sys_thread_new + + + struct timeval + struct timeval starttime + + starttime + + + + + + + + sys_init + sys_unix_now + + + struct sys_thread * + struct sys_thread* threads + + threads + 0x0 + + + + + + + + current_thread + sys_thread_new + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +*SubAuthor:ChristopherOlsen<colsen@domaintlantic.com> +* +*Notes: +*Modifiedtoworkwiththeubixoperatingsystem +* +*$Log$ +*Revision1.1.1.12006/06/0112:46:16reddawg +*ubix2 +* +*Revision1.22005/10/1200:13:37reddawg +*Removed +* +*Revision1.1.1.12005/09/2617:24:31reddawg +*nomessage +* +*Revision1.62004/09/1121:30:37apwillia +*Fixraceconditionsinnetthreadandscheduler +* +*Revision1.52004/09/0720:58:35reddawg +*timetorollbackican'tthinkstraightbyfriday +* +*Revision1.42004/05/2522:49:29reddawg +*StupidOldCODE!!! +* +*Revision1.32004/05/1904:07:43reddawg +*kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen +* +*Revision1.22004/05/1903:35:02reddawg +*FixedAFewOrderingIssuesInTheServiceStartupRoutine +* +*Revision1.1.1.12004/04/1512:07:14reddawg +*UbixOSv1.0 +* +*Revision1.132004/04/1321:29:53reddawg +*Wenowhavesocketsworking.Lotsoffunctionalitytobeaddedtocontinually +*improveontheexistinglayersnowitscleanuptimetogetthingsinabetter +*workingorder. +* +*Revision1.122004/04/1316:08:07reddawg +*Removedalloftheolddebugcodetheproblemseemstobeinubthreadswith +*ubthread_mutex_init +* +*Revision1.112004/04/1316:05:40reddawg +*FunctionRenaming +* +* +* +*$Id$ +*/ + +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<ubixos/ubthread.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> + +#include"net/debug.h" +#include"net/sys.h" +#include"net/opt.h" +#include"net/stats.h" + +#include<ubixos/spinlock.h> + +#defineUMAX(a,b)((a)>(b)?(a):(b)) + +staticstructsys_thread*threads=0x0; +staticspinLock_tnetThreadSpinlock=SPIN_LOCK_INITIALIZER; + +structsys_mbox_msg{ +structsys_mbox_msg*next; +void*msg; +}; + +#defineSYS_MBOX_SIZE100 + +structsys_mbox{ +uInt16first,last; +void*msgs[SYS_MBOX_SIZE]; +structsys_sem*mail; +structsys_sem*mutex; +}; + +structsys_sem{ +unsignedintc; +ubthread_cond_tcond; +ubthread_mutex_tmutex; +}; + +structsys_thread{ +structsys_thread*next; +structsys_timeoutstimeouts; +kTask_t*ubthread; +}; + + +staticstructtimevalstarttime; + +staticstructsys_sem*sys_sem_new_(uInt8count); +staticvoidsys_sem_free_(structsys_sem*sem); + +staticuInt16cond_wait(ubthread_cond_t*cond,ubthread_mutex_t*mutex,uInt16timeout); + +staticstructsys_thread*current_thread(void){ +structsys_thread*st; +kTask_t*pt; +pt=ubthread_self(); +spinLock(&netThreadSpinlock); +for(st=threads;st!=NULL;st=st->next){ +if(st->ubthread==pt){ +spinUnlock(&netThreadSpinlock); +returnst; +} +} +spinUnlock(&netThreadSpinlock); +kprintf("sys:current_thread:couldnotfindcurrentthread!\n"); +kprintf("ThisisduetoaraceconditionintheLinuxThreads\n"); +kprintf("ubthreadsimplementation.Starttheprogramagain.\n"); + +kpanic("ABORT"); +return(0x0); +} + + +structthread_start_param{ +structsys_thread*thread; +void(*function)(void*); +void*arg; +}; + +/* +staticvoid*thread_start(void*arg){ +structthread_start_param*tp=arg; +tp->thread->ubthread=ubthread_self(); +tp->function(tp->arg); +kfree(tp); +return(NULL); +} +*/ + +voidsys_thread_new(void(*function)(void),void*arg){ +structsys_thread*thread=0x0; +//structthread_start_param*thread_param; +kprintf("sys_thread:[0x%X]\n",sizeof(structsys_thread)); + +thread=kmalloc(sizeof(structsys_thread)); +kprintf("THREAD:[0x%X]\n",thread); +spinLock(&netThreadSpinlock); +thread->next=threads; +thread->timeouts.next=NULL; +thread->ubthread=0x0; +threads=thread; +spinUnlock(&netThreadSpinlock); + + +/* +thread_param=kmalloc(sizeof(structthread_start_param)); + +thread_param->function=function; +thread_param->arg=arg; +thread_param->thread=thread; +*/ +//execThread((void*)function,0x0,0x0); + +kprintf("thread->ubthread:[0x%X]\n",thread->ubthread); +if(ubthread_create(&thread->ubthread,0x0,(void*)(function),arg)!=0x0){ +kpanic("sys_thread_new:ubthread_create"); +} +kprintf("thread->ubthread:[0x%X]\n",thread->ubthread); + +} + +structsys_mbox*sys_mbox_new(){ +structsys_mbox*mbox; + +mbox=kmalloc(sizeof(structsys_mbox)); +mbox->first=mbox->last=0; +mbox->mail=sys_sem_new_(0); +mbox->mutex=sys_sem_new_(1); + +return(mbox); +} + +voidsys_mbox_free(structsys_mbox*mbox){ +if(mbox!=SYS_MBOX_NULL){ +sys_sem_wait(mbox->mutex); + +sys_sem_free_(mbox->mail); +sys_sem_free_(mbox->mutex); +mbox->mail=mbox->mutex=NULL; +//kprintf("sys_mbox_free:mbox0x%lx\n",mbox); +kfree(mbox); +} +} + +voidsys_mbox_post(structsys_mbox*mbox,void*msg){ +uInt8first; + +sys_sem_wait(mbox->mutex); + +//kprintf("sys_mbox_post:mbox%pmsg%p\n",mbox,msg); + +mbox->msgs[mbox->last]=msg; + +if(mbox->last==mbox->first){ +first=1; +} +else{ +first=0; +} + +mbox->last++; +if(mbox->last==SYS_MBOX_SIZE){ +mbox->last=0; +} + +if(first){ +sys_sem_signal(mbox->mail); +} +sys_sem_signal(mbox->mutex); +} + +uInt16sys_arch_mbox_fetch(structsys_mbox*mbox,void**msg,uInt16timeout){ +uInt16time=1; + +/*Themutexlockisquicksowedon'tbotherwiththetimeout +stuffhere.*/ +sys_arch_sem_wait(mbox->mutex,0); + +while(mbox->first==mbox->last){ +sys_sem_signal(mbox->mutex); + +/*Weblockwhilewaitingforamailtoarriveinthemailbox.We +mustbepreparedtotimeout.*/ +if(timeout!=0){ +time=sys_arch_sem_wait(mbox->mail,timeout); + +/*Iftime==0,thesem_waittimedout,andwereturn0.*/ +if(time==0){ +return0; +} +}else{ +sys_arch_sem_wait(mbox->mail,0); +} + +sys_arch_sem_wait(mbox->mutex,0); +} + +if(msg!=NULL){ +//kprintf("sys_mbox_fetch:mbox%pmsg%p\n",mbox,*msg); +*msg=mbox->msgs[mbox->first]; +} + +mbox->first++; +if(mbox->first==SYS_MBOX_SIZE){ +mbox->first=0; +} + +sys_sem_signal(mbox->mutex); + +return(time); +} + +structsys_sem*sys_sem_new(uInt8count){ +returnsys_sem_new_(count); +} + +staticstructsys_sem*sys_sem_new_(uInt8count){ +structsys_sem*sem; + +sem=kmalloc(sizeof(structsys_sem)); +sem->c=count; + +ubthread_cond_init(&(sem->cond),NULL); +ubthread_mutex_init(&(sem->mutex),NULL); + +returnsem; +} + +staticuInt16cond_wait(ubthread_cond_t*cond,ubthread_mutex_t*mutex,uInt16timeout){ +unsignedinttdiff; +unsignedlongsec,usec; +structtimevalrtime1,rtime2; +structtimespects; +structtimezonetz; +intretval; + +if(timeout>0){ +/*Getatimestampandaddthetimeoutvalue.*/ +gettimeofday(&rtime1,&tz); +sec=rtime1.tv_sec; +usec=rtime1.tv_usec; +usec+=timeout%1000*1000; +sec+=(int)(timeout/1000)+(int)(usec/1000000); +usec=usec%1000000; +ts.tv_nsec=usec*1000; +ts.tv_sec=sec; + +retval=ubthread_cond_timedwait(cond,mutex,&ts); +if(retval==ETIMEDOUT){ +return0; +} +else{ +/*Calculateforhowlongwewaitedforthecond.*/ +gettimeofday(&rtime2,&tz); +tdiff=(rtime2.tv_sec-rtime1.tv_sec)*1000+ +(rtime2.tv_usec-rtime1.tv_usec)/1000; +if(tdiff==0){ +return1; +} +returntdiff; +} +} +else{ +ubthread_cond_wait(cond,mutex); +return0; +} +} + +uInt16sys_arch_sem_wait(structsys_sem*sem,uInt16timeout){ +uInt16time=1; +ubthread_mutex_lock(&(sem->mutex)); +while(sem->c<=0){ +if(timeout>0){ +time=cond_wait(&(sem->cond),&(sem->mutex),timeout); +if(time==0){ +ubthread_mutex_unlock(&(sem->mutex)); +return0; +} +}else{ +cond_wait(&(sem->cond),&(sem->mutex),0); +} +} +sem->c--; +ubthread_mutex_unlock(&(sem->mutex)); +return(time); +} + +voidsys_sem_signal(structsys_sem*sem){ +ubthread_mutex_lock(&(sem->mutex)); +sem->c++; +if(sem->c>1) +sem->c=1; +ubthread_cond_signal(&(sem->cond)); +ubthread_mutex_unlock(&(sem->mutex)); +} + +voidsys_sem_free(structsys_sem*sem){ +if(sem!=SYS_SEM_NULL){ +sys_sem_free_(sem); +} +} + +staticvoidsys_sem_free_(structsys_sem*sem){ +ubthread_cond_destroy(&(sem->cond)); +ubthread_mutex_destroy(&(sem->mutex)); +kfree(sem); +} + +unsignedlongsys_unix_now(){ +structtimevaltv; +structtimezonetz; +longsec,usec; +unsignedlongmsec; +gettimeofday(&tv,&tz); + +sec=tv.tv_sec-starttime.tv_sec; +usec=tv.tv_usec-starttime.tv_usec; +msec=sec*1000+usec/1000; +returnmsec; +} + +voidsys_init(){ +structtimezonetz; +gettimeofday(&starttime,&tz); +} + +structsys_timeouts*sys_arch_timeouts(void){ +structsys_thread*thread; +thread=current_thread(); +return(&thread->timeouts); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/sys__arch_8h.xml b/doc/xml/sys__arch_8h.xml new file mode 100644 index 0000000..fc966ce --- /dev/null +++ b/doc/xml/sys__arch_8h.xml @@ -0,0 +1,280 @@ + + + + sys_arch.h + src/sys/include/net/sys.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SYS_MBOX_NULL + NULL + + + + + + + + accept_function + do_delconn + do_listen + err_tcp + netconn_bind + netconn_connect + netconn_delete + netconn_listen + netconn_new + netconn_recv + recv_tcp + recv_udp + sys_mbox_free + + + SYS_SEM_NULL + NULL + + + + + + + + accept_function + err_tcp + netconn_close + netconn_delete + netconn_new + netconn_write + poll_tcp + sent_tcp + sys_sem_free + + + + + sys_mbox * + typedef struct sys_mbox* sys_mbox_t + + sys_mbox_t + + + + + + + + + + sys_sem * + typedef struct sys_sem* sys_sem_t + + sys_sem_t + + + + + + + + + + sys_thread * + typedef struct sys_thread* sys_thread_t + + sys_thread_t + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__ARCH_SYS_ARCH_H__ +#define__ARCH_SYS_ARCH_H__ + +#defineSYS_MBOX_NULLNULL +#defineSYS_SEM_NULLNULL + +structsys_sem; +typedefstructsys_sem*sys_sem_t; + +structsys_mbox; +typedefstructsys_mbox*sys_mbox_t; + +structsys_thread; +typedefstructsys_thread*sys_thread_t; + +#endif/*__ARCH_SYS_ARCH_H__*/ + + + + + diff --git a/doc/xml/sys__call_8S.xml b/doc/xml/sys__call_8S.xml new file mode 100644 index 0000000..6faebfc --- /dev/null +++ b/doc/xml/sys__call_8S.xml @@ -0,0 +1,84 @@ + + + + sys_call.S + + + globl _sysCall text code32 + globl _sysCall text code32 _sysCall + + _sysCall + + + + + + + + idt_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +.globl_sysCall +.text +.code32 +_sysCall: +cmpltotalCalls,%eax +jaeinvalidSysCall + +cld +pushl%edx +pushl%ecx +pushl%ebx +call*systemCalls(,%eax,4) +popl%ebx +popl%ecx +popl%edx/*RestoreRegisters*/ + +iret + +invalidSysCall: +movl$-1,%eax +iret + +/*** +END +***/ + + + + + diff --git a/doc/xml/sys__call__new_8S.xml b/doc/xml/sys__call__new_8S.xml new file mode 100644 index 0000000..6c8a894 --- /dev/null +++ b/doc/xml/sys__call__new_8S.xml @@ -0,0 +1,189 @@ + + + + sys_call_new.S + + + FAKE_MCOUNT + caller + pushl caller ; call __mcount ; popl %ecx + + + + + + + + + + + + globl _sysCall_new text code32 + globl _sysCall_new text code32 _sysCall_new + + _sysCall_new + + + + + + + + idt_init + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl fs call syscall popl fs popl es popl ds popal + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl fs call syscall popl fs popl es popl ds popal addl + + addl + + + + + + + + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl eax + + eax + + + + + + + + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl eax + + eax + + + + + + + + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl eax + + eax + + + + + + + + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl fs call syscall popl fs popl es popl ds popal esp iret + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl eax movl ds movl es movl fs call syscall popl fs popl es popl ds popal esp iret invalidSysCall + + invalidSysCall + + + + + + + + + + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl + globl _sysCall_new text code32 esp pushal pushl ds pushl es pushl fs movl x10 + + x10 + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#defineFAKE_MCOUNT(caller)pushlcaller;call__mcount;popl%ecx + +.globl_sysCall_new +.text +.code32 +_sysCall_new: +pushl$2/*sizeof"int0x80"*/ +subl$4,%esp/*skipovertf_trapno*/ +pushal +pushl%ds +pushl%es +pushl%fs +/*switchtokernelsegments*/ +movl$0x10,%eax +movl%eax,%ds +movl%eax,%es +movl%eax,%fs +//FAKE_MCOUNT(TF_EIP(%esp)) +callsyscall +//MEXITCOUNT +//jmpdoreti +popl%fs +popl%es +popl%ds +popal +addl$8,%esp +iret + +invalidSysCall: +push%eax +callinvalidCall +pop%eax +movl$-1,%eax +iret + +/*** +END +***/ + + + + + diff --git a/doc/xml/syscall_8c.xml b/doc/xml/syscall_8c.xml new file mode 100644 index 0000000..14db0e8 --- /dev/null +++ b/doc/xml/syscall_8c.xml @@ -0,0 +1,1030 @@ + + + + syscall.c + ubixos/syscall.h + ubixos/syscalls.h + ubixos/sched.h + ubixos/types.h + ubixos/exec.h + ubixos/elf.h + ubixos/endtask.h + ubixos/time.h + sys/video.h + sys/trap.h + vfs/file.h + ubixfs/ubixfs.h + lib/string.h + lib/kprintf.h + lib/kmalloc.h + ubixos/vitals.h + mpi/mpi.h + vmm/vmm.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _UbixUser + + + _UbixUser + typedef struct _UbixUser UbixUser + + UbixUser + + + + + + + + + + + + + asm + (".globl _sysCallNew \n""_sysCallNew: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" cmpl totalCalls,%eax \n"" jae invalidSysCallNew \n"" mov %esp,%ebx \n"" add $12,%ebx \n"" push (%ebx) \n"" call *systemCalls(,%eax,4) \n"" add $4,%esp \n"" jmp doneNew \n""invalidSysCallNew: \n"" call InvalidSystemCall \n""doneNew: \n"" pop %gs \n"" pop %fs \n"" pop %es \n"" pop %ds \n"" pop %ss \n"" popa \n"" iret \n") + asm + + ".globl _sysCallNew \n""_sysCallNew: \n"" pusha \n"" push %ss \n"" push %ds \n"" push %es \n"" push %fs \n"" push %gs \n"" cmpl + totalCalls + + + %eax\n""jae invalidSysCallNew\n""mov% + esp + + + %ebx\n""add $ + 12 + + + %ebx\n""push(%ebx)\n""call *systemCalls(,%eax, 4)\n""add $ + 4 + + + %esp\n""jmp doneNew\n""invalidSysCallNew:\n""call InvalidSystemCall\n""doneNew:\n""pop%gs\n""pop%fs\n""pop%es\n""pop%ds\n""pop%ss\n""popa\n""iret\n" + + + + + + + + + + + long + long fuword + (const void *base) + fuword + + const void * + base + + + + + + + + + + + void + void invalidCall + (int sys_call) + invalidCall + + int + sys_call + + + + + + + + + kprintf + + + void + void InvalidSystemCall + () + InvalidSystemCall + + + + + + + + kprintf + + + void + void sdeTestThread + () + sdeTestThread + + + + + + + + + + void + void sysAddModule + () + sysAddModule + + + + + + + + + + void + void sysAuth + (UbixUser *uu) + sysAuth + + UbixUser * + uu + + + + + + + + + _UbixUser::gid + kprintf + _UbixUser::password + _UbixUser::uid + _UbixUser::username + + + void + void sysCheckPid + (int pid, int *ptr) + sysCheckPid + + int + pid + + + int * + ptr + + + + + + + + + schedFindTask + taskStruct::state + + + void + void sysExit + (int status) + sysExit + + int + status + + + + + + + + + _current + endTask + taskStruct::id + + + void + void sysGetCwd + (char *data, int len) + sysGetCwd + + char * + data + + + int + len + + + + + + + + + _current + osInfo::cwd + taskStruct::oInfo + sprintf + + + void + void sysGetDrives + (uInt32 *ptr) + sysGetDrives + + uInt32 * + ptr + + + + + + + + + + + void + void sysGetFreePage + (long *ptr, int count, int type) + sysGetFreePage + + long * + ptr + + + int + count + + + int + type + + + + + + + + + _current + taskStruct::id + VM_TASK + VM_THRD + vmmGetFreeVirtualPage + + + void + void sysGetGid + (int *gid) + sysGetGid + + int * + gid + + + + + + + + + _current + taskStruct::gid + + + void + void sysGetpid + (int *pid) + sysGetpid + + int * + pid + + + + + + + + + _current + taskStruct::id + + + void + void sysGetTime + (uInt32 *ptr) + sysGetTime + + uInt32 * + ptr + + + + + + + + + systemVitals + vitalsStruct::sysUptime + vitalsStruct::timeStart + + + void + void sysGetUid + (int *uid) + sysGetUid + + int * + uid + + + + + + + + + _current + taskStruct::uid + + + void + void sysGetUptime + (uInt32 *ptr) + sysGetUptime + + uInt32 * + ptr + + + + + + + + + systemVitals + vitalsStruct::sysTicks + + + void + void sysPasswd + (char *passwd) + sysPasswd + + char * + passwd + + + + + + + + + _current + kprintf + taskStruct::uid + + + void + void sysRmModule + () + sysRmModule + + + + + + + + + + void + void sysSchedYield + () + sysSchedYield + + + + + + + + sched_yield + + + void + void sysSetGid + (int gid, int *status) + sysSetGid + + int + gid + + + int * + status + + + + + + + + + _current + taskStruct::gid + + + void + void sysSetUid + (int uid, int *status) + sysSetUid + + int + uid + + + int * + status + + + + + + + + + _current + taskStruct::uid + + + void + void sysStartSDE + () + sysStartSDE + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/syscall.h> +#include<ubixos/syscalls.h> +#include<ubixos/sched.h> +#include<ubixos/types.h> +#include<ubixos/exec.h> +#include<ubixos/elf.h> +#include<ubixos/endtask.h> +#include<ubixos/time.h> +#include<sys/video.h> +#include<sys/trap.h> +#include<vfs/file.h> +#include<ubixfs/ubixfs.h> +#include<lib/string.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<ubixos/vitals.h> +/*#include<sde/sde.h>*/ +#include<mpi/mpi.h> +#include<vmm/vmm.h> + +longfuword(constvoid*base); + +voidsdeTestThread(); + +asm( +".globl_sysCallNew\n" +"_sysCallNew:\n" +"pusha\n" +"push%ss\n" +"push%ds\n" +"push%es\n" +"push%fs\n" +"push%gs\n" +"cmpltotalCalls,%eax\n" +"jaeinvalidSysCallNew\n" +"mov%esp,%ebx\n" +"add$12,%ebx\n" +"push(%ebx)\n" +"call*systemCalls(,%eax,4)\n" +"add$4,%esp\n" +"jmpdoneNew\n" +"invalidSysCallNew:\n" +"callInvalidSystemCall\n" +"doneNew:\n" +"pop%gs\n" +"pop%fs\n" +"pop%es\n" +"pop%ds\n" +"pop%ss\n" +"popa\n" +"iret\n" +); + +voidInvalidSystemCall() +{ +kprintf("attemptwasmadetoaninvalidsystemcall\n"); +return; +} + +typedefstruct_UbixUserUbixUser; +struct_UbixUser +{ +char*username; +char*password; +intuid; +intgid; +char*home; +char*shell; +}; + +voidsysAuth(UbixUser*uu) +{ +kprintf("authenticatinguser%s\n",uu->username); +if(uu->username=="root"&&uu->password=="user") +{ +uu->uid=0; +uu->gid=0; +} +uu->uid=-1; +uu->gid=-1; +return; +} + +voidsysPasswd(char*passwd) +{ +kprintf("changinguserpasswordforuser%d\n",_current->uid); +return; +} + +voidsysAddModule() +{ +return; +} + +voidsysRmModule() +{ +return; +} + +voidsysGetpid(int*pid) +{ +if(pid) +*pid=_current->id; +return; +} + +voidsysGetUid(int*uid){ +if(uid) +*uid=_current->uid; +return; +} + +voidsysGetGid(int*gid){ +if(gid) +*gid=_current->gid; +return; +} + +voidsysSetUid(intuid,int*status){ +if(_current->uid==0x0){ +_current->uid=uid; +if(status) +*status=0x0; +} +else{ +if(status) +*status=1; +} +return; +} + +voidsysSetGid(intgid,int*status){ +if(_current->gid==0x0){ +_current->gid=gid; +if(status) +*status=0x0; +} +else{ +if(status) +*status=1; +} +return; +} + +voidsysExit(intstatus) +{ +endTask(_current->id); +} + +voidsysCheckPid(intpid,int*ptr) +{ +kTask_t*tmpTask=schedFindTask(pid); +if((tmpTask!=0x0)&&(ptr!=0x0)) +*ptr=tmpTask->state; +else +*ptr=0x0; +return; +} + +/************************************************************************ + +Function:voidsysGetFreePage(); +Description:AllocsAPageToTheUsersVMSpace +Notes: + +************************************************************************/ +voidsysGetFreePage(long*ptr,intcount,inttype){ +if(ptr){ +if(type==2) +*ptr=(long)vmmGetFreeVirtualPage(_current->id,count,VM_THRD); +else +*ptr=(long)vmmGetFreeVirtualPage(_current->id,count,VM_TASK); +} +return; +} + +voidsysGetDrives(uInt32*ptr) +{ +if(ptr) +*ptr=0x0;//(uInt32)devices; +return; +} + +voidsysGetUptime(uInt32*ptr) +{ +if(ptr) +*ptr=systemVitals->sysTicks; +return; +} + +voidsysGetTime(uInt32*ptr) +{ +if(ptr) +*ptr=systemVitals->sysUptime+systemVitals->timeStart; +return; +} + + +voidsysGetCwd(char*data,intlen) +{ +if(data) +sprintf(data,"%s",_current->oInfo.cwd); +return; +} + +voidsysSchedYield(){ +sched_yield(); +} + +voidsysStartSDE(){ +inti=0x0; +for(i=0;i<1400;i++){ +asm("hlt"); +} +//execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); +for(i=0;i<1400;i++){ +asm("hlt"); +} +return; +} + +voidinvalidCall(intsys_call){ +kprintf("InvalidSystemCall#[%i]\n",sys_call); +return; +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/syscall_8h.xml b/doc/xml/syscall_8h.xml new file mode 100644 index 0000000..d84d18c --- /dev/null +++ b/doc/xml/syscall_8h.xml @@ -0,0 +1,156 @@ + + + + syscall.h + ubixos/types.h + src/sys/kernel/syscall.c + src/sys/sys/idt.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void _sysCall + () + _sysCall + + + + + + + + + + void + void _sysCall_new + () + _sysCall_new + + + + + + + + + + void + void invalidCall + () + invalidCall + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SYSCALL_H +#define_SYSCALL_H + +#include<ubixos/types.h> + +void_sysCall(); +void_sysCall_new(); +voidinvalidCall(); + +#endif + +/*** +$Log$ +Revision1.22006/10/2623:52:02reddawg +Cleaned + +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:56reddawg +nomessage + +Revision1.32004/07/0523:06:32reddawg +Fixens + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/syscall__new_8c.xml b/doc/xml/syscall__new_8c.xml new file mode 100644 index 0000000..9121d62 --- /dev/null +++ b/doc/xml/syscall__new_8c.xml @@ -0,0 +1,306 @@ + + + + syscall_new.c + ubixos/syscalls_new.h + ubixos/sched.h + ubixos/types.h + ubixos/endtask.h + ubixos/spinlock.h + sys/trap.h + lib/string.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void syscall + (struct trapframe frame) + syscall + + struct trapframe + frame + + + + + + + + + _current + EJUSTRETURN + ERESTART + kprintf + memcpy + PSL_C + systemCalls_new + taskStruct::td + thread::td_retval + trapframe::tf_eax + trapframe::tf_edx + trapframe::tf_eflags + trapframe::tf_eip + trapframe::tf_err + trapframe::tf_esp + totalCalls_new + + + + + spinLock_t + spinLock_t Master + + Master + SPIN_LOCK_INITIALIZER + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/syscalls_new.h> +#include<ubixos/sched.h> +#include<ubixos/types.h> +#include<ubixos/endtask.h> +#include<ubixos/spinlock.h> +#include<sys/trap.h> +#include<lib/string.h> +#include<lib/kprintf.h> + +spinLock_tMaster=SPIN_LOCK_INITIALIZER; + +voidsyscall(structtrapframeframe){ +uInt32code=0x0; +caddr_tparams; +structthread*td=&_current->td; +intargs[8]; +interror=0x0; + +params=(caddr_t)frame.tf_esp+sizeof(int); + +code=frame.tf_eax; +if(code==198){ +memcpy(&code,params,sizeof(int)); +params+=sizeof(quad_t); +} + +if(code>totalCalls_new){ +kprintf("InvalidCall:[%i]\n",frame.tf_eax); +} +elseif((uInt32)systemCalls_new[code]==0x0){ +kprintf("InvalidCall:[%i][0x%X]\n",code,(uInt32)systemCalls_new[code]); +frame.tf_eax=-1; +frame.tf_edx=0x0; +} +else{ +memcpy(args,params,8*sizeof(int)); +td->td_retval[0]=0; +td->td_retval[1]=frame.tf_edx; + +error=(int)systemCalls_new[code](td,args); +switch(error){ +case0: +frame.tf_eax=td->td_retval[0]; +frame.tf_edx=td->td_retval[1]; +frame.tf_eflags&=~PSL_C; +break; +caseERESTART: +frame.tf_eip-=frame.tf_err; +break; +caseEJUSTRETURN: +break; +default: +frame.tf_eax=error; +frame.tf_eflags|=PSL_C; +break; + +} +} +} + + +/*** +END +***/ + + + + + diff --git a/doc/xml/syscalls_8h.xml b/doc/xml/syscalls_8h.xml new file mode 100644 index 0000000..fa28670 --- /dev/null +++ b/doc/xml/syscalls_8h.xml @@ -0,0 +1,863 @@ + + + + syscalls.h + ubixos/sched.h + vfs/file.h + src/sys/kernel/syscall.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void(*) + typedef void(*) functionPTR() + () + functionPTR + + + + + + + + + + + + void + void sysAddModule + () + sysAddModule + + + + + + + + + + void + void sysAuth + () + sysAuth + + + + + + + + + + void + void sysChDir + () + sysChDir + + + + + + + + + + void + void sysCheckPid + () + sysCheckPid + + + + + + + + + + void + void sysExec + () + sysExec + + + + + + + + + + void + void sysExit + () + sysExit + + + + + + + + + + void + void sysFclose + () + sysFclose + + + + + + + + + + void + void sysFgetc + () + sysFgetc + + + + + + + + + + void + void sysFopen + () + sysFopen + + + + + + + + + + void + void sysFork + () + sysFork + + + + + + + + + + void + void sysFread + () + sysFread + + + + + + + + + + void + void sysFseek + () + sysFseek + + + + + + + + + + void + void sysFwrite + () + sysFwrite + + + + + + + + + + void + void sysGetCwd + () + sysGetCwd + + + + + + + + + + void + void sysGetDrives + () + sysGetDrives + + + + + + + + + + void + void sysGetFreePage + () + sysGetFreePage + + + + + + + + + + void + void sysGetGid + () + sysGetGid + + + + + + + + + + void + void sysGetpid + () + sysGetpid + + + + + + + + + + void + void sysGetTime + () + sysGetTime + + + + + + + + + + void + void sysGetUid + () + sysGetUid + + + + + + + + + + void + void sysGetUptime + () + sysGetUptime + + + + + + + + + + void + void sysMkDir + () + sysMkDir + + + + + + + + + + void + void sysMpiCreateMbox + () + sysMpiCreateMbox + + + + + + + + + + void + void sysMpiDestroyMbox + () + sysMpiDestroyMbox + + + + + + + + + + void + void sysMpiFetchMessage + () + sysMpiFetchMessage + + + + + + + + + + void + void sysMpiPostMessage + () + sysMpiPostMessage + + + + + + + + + + void + void sysMpiSpam + () + sysMpiSpam + + + + + + + + + + void + void sysPasswd + () + sysPasswd + + + + + + + + + + void + void sysRmDir + () + sysRmDir + + + + + + + + + + void + void sysRmModule + () + sysRmModule + + + + + + + + + + void + void sysSchedYield + () + sysSchedYield + + + + + + + + sched_yield + + + void + void sysSDE + () + sysSDE + + + + + + + + + + void + void sysSetGid + () + sysSetGid + + + + + + + + + + void + void sysSetUid + () + sysSetUid + + + + + + + + + + void + void sysStartSDE + () + sysStartSDE + + + + + + + + + + void + void sysUnlink + () + sysUnlink + + + + + + + + + + + + functionPTR + functionPTR systemCalls[] + [] + systemCalls + { + invalidCall, + sysGetpid, + sysExit, + sysExec, + sysFork, + sysFgetc, + sysCheckPid, + sysGetFreePage, + sysFopen, + invalidCall, + sysFclose, + sysSchedYield, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + sysFopen, + sysFclose, + sysFread, + sysFwrite, + sysMkDir, + sysRmDir, + sysGetCwd, + sysFseek, + sysChDir, + sysMkDir, + sysUnlink, + sysGetUid, + sysGetGid, + sysSetUid, + sysSetGid, + sysAuth, + sysPasswd, + sysAddModule, + sysRmModule, + invalidCall, + + invalidCall, + invalidCall, + invalidCall, + invalidCall, + invalidCall, + sysGetDrives, + sysGetUptime, + sysGetTime, + sysStartSDE, + invalidCall, + sysMpiCreateMbox, + sysMpiDestroyMbox, + sysMpiPostMessage, + sysMpiFetchMessage, + sysMpiSpam, + } + + + + + + + + + + int + int totalCalls + + totalCalls + sizeof(systemCalls)/sizeof(functionPTR) + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SYSCALLS_H +#define_SYSCALLS_H + +#include<ubixos/sched.h> +#include<vfs/file.h> + +voidsysAuth(); +voidsysPasswd(); +voidsysAddModule(); +voidsysRmModule(); +voidsysGetpid(); +voidsysExit(); +voidsysExec(); +voidsysFork(); +voidsysCheckPid(); +voidsysGetFreePage(); + +voidsysFwrite(); +voidsysFgetc(); +voidsysFopen(); +voidsysFread(); +voidsysFclose(); +voidsysSchedYield(); +voidsysFseek(); +voidsysMkDir(); +voidsysRmDir(); +voidsysGetUid(); +voidsysGetGid(); +voidsysSetUid(); +voidsysSetGid(); +voidsysSDE(); +voidsysGetDrives(); +voidsysGetCwd(); +voidsysChDir(); +voidsysGetUptime(); +voidsysGetTime(); +voidsysStartSDE(); +voidsysUnlink(); +voidsysMpiCreateMbox(); +voidsysMpiDestroyMbox(); +voidsysMpiPostMessage(); +voidsysMpiFetchMessage(); +voidsysMpiSpam(); + +typedefvoid(*functionPTR)(); + +functionPTRsystemCalls[]={ +invalidCall, +sysGetpid, +sysExit, +sysExec, +sysFork, +sysFgetc, +sysCheckPid, +sysGetFreePage, +sysFopen, +invalidCall, +sysFclose, +sysSchedYield, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +sysFopen, +sysFclose, +sysFread, +sysFwrite, +sysMkDir, +sysRmDir, +sysGetCwd, +sysFseek, +sysChDir, +sysMkDir, +sysUnlink, +sysGetUid, +sysGetGid, +sysSetUid, +sysSetGid, +sysAuth, +sysPasswd, +sysAddModule, +sysRmModule, +invalidCall, +//sysSDE,/**40SDEKernelInterface**/ +invalidCall, +invalidCall, +invalidCall, +invalidCall, +invalidCall, +sysGetDrives, +sysGetUptime, +sysGetTime, +sysStartSDE, +invalidCall, +sysMpiCreateMbox, +sysMpiDestroyMbox, +sysMpiPostMessage, +sysMpiFetchMessage, +sysMpiSpam, +}; + +inttotalCalls=sizeof(systemCalls)/sizeof(functionPTR); + +#endif + +/*** +$Log$ +Revision1.22006/10/1217:05:44reddawg +RemovingSDE + +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:56reddawg +nomessage + +Revision1.52005/08/0422:48:39fsdfs + +added4newsyscalls:sysAuth(),sysPasswd(),sysAddModule(),sysRmModule() + +Revision1.42004/05/2615:39:22reddawg +mpi:broughtmpiDestroyMbox(char*name)intotheuserland + +Revision1.32004/05/2515:42:19reddawg +EnabledmpiSpam(); + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/syscalls__new_8h.xml b/doc/xml/syscalls__new_8h.xml new file mode 100644 index 0000000..4def8cb --- /dev/null +++ b/doc/xml/syscalls__new_8h.xml @@ -0,0 +1,910 @@ + + + + syscalls_new.h + src/sys/kernel/syscall_new.c + + + + + + + + + + + + + + + EJUSTRETURN + (-2) + + + + + + + + syscall + + + ERESTART + (-1) + + + + + + + + syscall + + + invalid_call + 0x0 + + + + + + + + + + PSL_C + 0x00000001 + + + + + + + + syscall + + + + + int(*) + typedef int(*) functionPTR() + () + functionPTR + + + + + + + + + + + + int + int __sysctl + () + __sysctl + + + + + + + + + + int + int close + () + close + + + + + + + + + + int + int fcntl + () + fcntl + + + + + + + + + + int + int fstat + () + fstat + + + + + + + + + + int + int getdtablesize + () + getdtablesize + + + + + + + + + + int + int getgid + () + getgid + + + + + + + + + + int + int getpid + () + getpid + + + + + + + + + + int + int gettimeofday_new + () + gettimeofday_new + + + + + + + + + + int + int getuid + () + getuid + + + + + + + + + + int + int ioctl + () + ioctl + + + + + + + + + + int + int issetugid + () + issetugid + + + + + + + + + + int + int mmap + () + mmap + + + + + + + + + + int + int munmap + () + munmap + + + + + + + + + + int + int obreak + () + obreak + + + + + + + + + + int + int pipe + () + pipe + + + + + + + + + + int + int readlink + () + readlink + + + + + + + + + + int + int sigaction + () + sigaction + + + + + + + + + + int + int sigprocmask + () + sigprocmask + + + + + + + + + + int + int sys_write + () + sys_write + + + + + + + + + + int + int sysExit + () + sysExit + + + + + + + + + + + + functionPTR + functionPTR systemCalls_new[] + [] + systemCalls_new + + + + + + + + syscall + + + int + int totalCalls_new + + totalCalls_new + sizeof(systemCalls_new)/sizeof(functionPTR) + + + + + + + + syscall + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SYSCALLS_NEW_H +#define_SYSCALLS_NEW_H + +intsysExit(); +intsys_write(); +intgetpid(); +intfcntl(); +intissetugid(); +int__sysctl(); +intpipe(); +intreadlink(); +intgetuid(); +intgetgid(); +intclose(); +intmmap(); +intobreak(); +intsigaction(); +intgetdtablesize(); +intmunmap(); +intsigprocmask(); +intgettimeofday_new(); +intfstat(); +intioctl(); + +#defineinvalid_call0x0 +#definePSL_C0x00000001/*carrybit*/ +#defineEJUSTRETURN(-2)/*don'tmodifyregs,justreturn*/ +#defineERESTART(-1)/*restartsyscall*/ + +typedefint(*functionPTR)(); + +functionPTRsystemCalls_new[]={ +invalid_call, +sysExit, +invalid_call, +invalid_call, +sys_write, +invalid_call, +close, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +obreak, +invalid_call, +invalid_call, +getpid, +invalid_call, +invalid_call, +invalid_call, +getuid, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +pipe, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +getgid, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +ioctl, +invalid_call, +invalid_call, +invalid_call, +readlink, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +munmap, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +getdtablesize, +invalid_call, +invalid_call, +fcntl, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +gettimeofday_new, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +fstat, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +mmap, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +__sysctl, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +issetugid, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +sigprocmask, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +sigaction, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +invalid_call, +}; + +inttotalCalls_new=sizeof(systemCalls_new)/sizeof(functionPTR); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/sysproto_8h.xml b/doc/xml/sysproto_8h.xml new file mode 100644 index 0000000..7f03a8e --- /dev/null +++ b/doc/xml/sysproto_8h.xml @@ -0,0 +1,516 @@ + + + + sysproto.h + sys/signal.h + src/sys/include/sys/gen_calls.h + src/sys/include/sys/kern_descrip.h + src/sys/include/sys/kern_sig.h + src/sys/include/sys/kern_sysctl.h + src/sys/include/sys/pipe.h + src/sys/include/vmm/paging.h + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/pipe.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + close_args + fcntl_args + fstat_args + getdtablesize_args + getgid_args + getpid_args + gettimeofday_args + getuid_args + ioctl_args + issetugid_args + mmap_args + munmap_args + obreak_args + pipe_args + readlink_args + sigaction_args + sigprocmask_args + sysctl_args + write_args + + + PAD_ + t + (sizeof(register_t) <= sizeof(t) ? \ + 0 : sizeof(register_t) - sizeof(t)) + + + + + + + + + + PADL_ + t + 0 + + + + + + + + + + PADR_ + t + PAD_(t) + + + + + + + + + + + + int + typedef int register_t + + register_t + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SYSPROTO_H +#define_SYSPROTO_H + +#include<sys/signal.h> + +typedefintregister_t; + +#definePAD_(t)(sizeof(register_t)<=sizeof(t)?\ +0:sizeof(register_t)-sizeof(t)) + +#ifBYTE_ORDER==LITTLE_ENDIAN +#definePADL_(t)0 +#definePADR_(t)PAD_(t) +#else +#definePADL_(t)PAD_(t) +#definePADR_(t)0 +#endif + + +structwrite_args{ +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +charbuf_l_[PADL_(constvoid*)];constvoid*buf;charbuf_r_[PADR_(constvoid*)]; +charnbyte_l_[PADL_(size_t)];size_tnbyte;charnbyte_r_[PADR_(size_t)]; +}; + +structsysctl_args{ +charname_l_[PADL_(int*)];int*name;charname_r_[PADR_(int*)]; +charnamelen_l_[PADL_(u_int)];u_intnamelen;charnamelen_r_[PADR_(u_int)]; +charold_l_[PADL_(void*)];void*old;charold_r_[PADR_(void*)]; +charoldlenp_l_[PADL_(size_t*)];size_t*oldlenp;charoldlenp_r_[PADR_(size_t*)]; +charnew_l_[PADL_(void*)];void*new;charnew_r_[PADR_(void*)]; +charnewlen_l_[PADL_(size_t)];size_tnewlen;charnewlen_r_[PADR_(size_t)]; +}; + +structgetpid_args{ +register_tdummy; +}; +structissetugid_args{ +register_tdummy; +}; +structfcntl_args{ +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +charcmd_l_[PADL_(int)];intcmd;charcmd_r_[PADR_(int)]; +chararg_l_[PADL_(long)];longarg;chararg_r_[PADR_(long)]; +}; + +structpipe_args{ +register_tdummy; +}; + +structreadlink_args{ +charpath_l_[PADL_(char*)];char*path;charpath_r_[PADR_(char*)]; +charbuf_l_[PADL_(char*)];char*buf;charbuf_r_[PADR_(char*)]; +charcount_l_[PADL_(int)];intcount;charcount_r_[PADR_(int)]; +}; + +structgetuid_args{ +register_tdummy; +}; + +structgetgid_args{ +register_tdummy; +}; +structclose_args{ +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +}; + +structmmap_args{ +charaddr_l_[PADL_(caddr_t)];caddr_taddr;charaddr_r_[PADR_(caddr_t)]; +charlen_l_[PADL_(size_t)];size_tlen;charlen_r_[PADR_(size_t)]; +charprot_l_[PADL_(int)];intprot;charprot_r_[PADR_(int)]; +charflags_l_[PADL_(int)];intflags;charflags_r_[PADR_(int)]; +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +charpad_l_[PADL_(int)];intpad;charpad_r_[PADR_(int)]; +charpos_l_[PADL_(off_t)];off_tpos;charpos_r_[PADR_(off_t)]; +}; + +structobreak_args{ +charnsize_l_[PADL_(char*)];char*nsize;charnsize_r_[PADR_(char*)]; +}; + +structsigaction_args{ +charsig_l_[PADL_(int)];intsig;charsig_r_[PADR_(int)]; +charact_l_[PADL_(conststructsigaction*)];conststructsigaction*act;charact_r_[PADR_(conststructsigaction*)]; +charoact_l_[PADL_(structsigaction*)];structsigaction*oact;charoact_r_[PADR_(structsigaction*)]; +}; + +structgetdtablesize_args{ +register_tdummy; +}; + +structmunmap_args{ +charaddr_l_[PADL_(void*)];void*addr;charaddr_r_[PADR_(void*)]; +charlen_l_[PADL_(size_t)];size_tlen;charlen_r_[PADR_(size_t)]; +}; + +structsigprocmask_args{ +charhow_l_[PADL_(int)];inthow;charhow_r_[PADR_(int)]; +charset_l_[PADL_(constsigset_t*)];constsigset_t*set;charset_r_[PADR_(constsigset_t*)]; +charoset_l_[PADL_(sigset_t*)];sigset_t*oset;charoset_r_[PADR_(sigset_t*)]; +}; +structgettimeofday_args{ +chartp_l_[PADL_(structtimeval*)];structtimeval*tp;chartp_r_[PADR_(structtimeval*)]; +chartzp_l_[PADL_(structtimezone*)];structtimezone*tzp;chartzp_r_[PADR_(structtimezone*)]; +}; +structfstat_args{ +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +charsb_l_[PADL_(structstat*)];structstat*sb;charsb_r_[PADR_(structstat*)]; +}; +structioctl_args{ +charfd_l_[PADL_(int)];intfd;charfd_r_[PADR_(int)]; +charcom_l_[PADL_(u_long)];u_longcom;charcom_r_[PADR_(u_long)]; +chardata_l_[PADL_(caddr_t)];caddr_tdata;chardata_r_[PADR_(caddr_t)]; +}; + + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/system_8c.xml b/doc/xml/system_8c.xml new file mode 100644 index 0000000..4eb1019 --- /dev/null +++ b/doc/xml/system_8c.xml @@ -0,0 +1,633 @@ + + + + system.c + mpi/mpi.h + lib/kmalloc.h + lib/string.h + ubixos/spinlock.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int mpi_createMbox + (char *name) + mpi_createMbox + + char * + name + + + + + + + + + _current + taskStruct::id + kmalloc + mbox + mboxList + mpi_findMbox + mpiSpinLock + mpi_mbox::prev + spinLock + spinUnlock + sprintf + sysMpiCreateMbox + systemTask + ubixfs_thread + + + int + int mpi_destroyMbox + (char *name) + mpi_destroyMbox + + char * + name + + + + + + + + + _current + taskStruct::id + kfree + mbox + mboxList + mpiSpinLock + spinLock + spinUnlock + strcmp + sysMpiDestroyMbox + + + int + int mpi_fetchMessage + (char *name, mpi_message_t *msg) + mpi_fetchMessage + + char * + name + + + mpi_message_t * + msg + + + + + + + + + _current + mpi_message::data + mpi_message::header + taskStruct::id + kfree + mbox + memcpy + MESSAGE_LENGTH + mpi_findMbox + mpiSpinLock + mpi_message::pid + spinLock + spinUnlock + sysMpiFetchMessage + systemTask + ubixfs_thread + + + mpi_mbox_t * + static mpi_mbox_t* mpi_findMbox + (char *name) + mpi_findMbox + + char * + name + + + + + + + + + mbox + mboxList + strcmp + mpi_createMbox + mpi_fetchMessage + mpi_postMessage + + + int + int mpi_postMessage + (char *name, uInt32 type, mpi_message_t *msg) + mpi_postMessage + + char * + name + + + uInt32 + type + + + mpi_message_t * + msg + + + + + + + + + _current + mpi_message::data + mpi_message::header + taskStruct::id + kmalloc + mbox + memcpy + MESSAGE_LENGTH + mpi_findMbox + mpiSpinLock + mpi_message::next + mpi_message::pid + spinLock + spinUnlock + x1 + sysMpiPostMessage + + + int + int mpi_spam + (uInt32 type, void *data) + mpi_spam + + uInt32 + type + + + void * + data + + + + + + + + + mpi_message::data + mpi_message::header + kmalloc + mbox + mboxList + memcpy + MESSAGE_LENGTH + mpiSpinLock + mpi_message::next + spinLock + spinUnlock + sysMpiSpam + + + + + mpi_mbox_t * + mpi_mbox_t* mboxList + + mboxList + 0x0 + + + + + + + + mpi_createMbox + mpi_destroyMbox + mpi_findMbox + mpi_spam + + + spinLock_t + spinLock_t mpiSpinLock + + mpiSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_postMessage + mpi_spam + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<mpi/mpi.h> +#include<lib/kmalloc.h> +#include<lib/string.h> +#include<ubixos/spinlock.h> + +staticmpi_mbox_t*mboxList=0x0; +staticspinLock_tmpiSpinLock=SPIN_LOCK_INITIALIZER; + +/***************************************************************************************** + +Function:staticmpiMbox_t*mpiFindMbox(char*name) + +Description:Thisfunctionwillfindamailboxthatmatchesthesuppliedname + +Notes:Thisfunctionisnottask-safe!Lockmustbedonebeforecall. + +*****************************************************************************************/ +staticmpi_mbox_t*mpi_findMbox(char*name){ +mpi_mbox_t*mbox=0x0; + +for(mbox=mboxList;mbox;mbox=mbox->next){ +if(!strcmp(mbox->name,name)){ +return(mbox); +} +} + +return(0x0); +} + +/***************************************************************************************** + +Function:intmpiCreateMbox(char*name) + +Description:Thisfunctionwillcreateanewmailboxifitfailsitwillreturn-1 +otherwiseitreturns0x0 + +Notes: + +*****************************************************************************************/ +intmpi_createMbox(char*name){ +mpi_mbox_t*mbox=0x0; + +spinLock(&mpiSpinLock); +if(mpi_findMbox(name)!=0x0){ +spinUnlock(&mpiSpinLock); +return(-1); +} + +mbox=(mpi_mbox_t*)kmalloc(sizeof(mpi_mbox_t)); + +sprintf(mbox->name,name); +mbox->pid=_current->id; + +if(mboxList==0x0){ +mbox->prev=0x0; +mbox->next=0x0; +mboxList=mbox; +} +else{ +mbox->next=mboxList; +mbox->prev=0x0; +mboxList->prev=mbox; +mboxList=mbox; +} + +spinUnlock(&mpiSpinLock); +return(0x0); +} + +/***************************************************************************************** + +Function:intmpiSpam(uInt32type,void*data) + +Description:Thisfunctionwillsendamessagetoeverymailbox + +Notes: + +*****************************************************************************************/ +intmpi_spam(uInt32type,void*data){ +mpi_mbox_t*mbox=0x0; +mpi_message_t*message=0x0; + +spinLock(&mpiSpinLock); + +for(mbox=mboxList;mbox;mbox=mbox->next){ +message=(mpi_message_t*)kmalloc(sizeof(mpi_message_t)); + +message->header=type; +memcpy(message->data,data,MESSAGE_LENGTH); +message->next=0x0; + +if(mbox->msg==0x0){ +mbox->msg=message; +} +else{ +mbox->msgLast->next=message; +mbox->msgLast=message; +} +} + +spinUnlock(&mpiSpinLock); +return(0x0); +} + +/***************************************************************************************** + +Function:intmpiPostMessage(char*name,uInt32type,void*data) + +Description:Thisfunctionwillpostamessagetospecifiedmailbox + +Notes: + +*****************************************************************************************/ +intmpi_postMessage(char*name,uInt32type,mpi_message_t*msg){ +mpi_mbox_t*mbox=0x0; +mpi_message_t*message=0x0; + +spinLock(&mpiSpinLock); + +mbox=mpi_findMbox(name); + +if(mbox==0x0){ +spinUnlock(&mpiSpinLock); +return(0x1); +} + +message=(mpi_message_t*)kmalloc(sizeof(mpi_message_t)); + +message->header=msg->header; +memcpy(message->data,msg->data,MESSAGE_LENGTH); +message->pid=_current->id; +message->next=0x0; + +if(mbox->msg==0x0){ +mbox->msg=message; +} +else{ +mbox->msgLast->next=message; +mbox->msgLast=message; +} + +spinUnlock(&mpiSpinLock); + +if(type==0x2){ +while(mbox->msgLast!=0x0); +} + +return(0x0); +} + +/***************************************************************************************** + +Function:intmpiFetchMessage(char*name,mpiMessage_t*msg) + +Description:Thisfunctionwillfetchthenextmessageoutofthespecifiedmailbox + +Notes: + +*****************************************************************************************/ +intmpi_fetchMessage(char*name,mpi_message_t*msg){ +mpi_mbox_t*mbox=0x0; +mpi_message_t*tmpMsg=0x0; + +spinLock(&mpiSpinLock); + +mbox=mpi_findMbox(name); + +if(mbox==0x0){ +spinUnlock(&mpiSpinLock); +return(-1); +} + +if(mbox->msg==0x0){ +spinUnlock(&mpiSpinLock); +return(-1); +} + +if(mbox->pid!=_current->id){ +spinUnlock(&mpiSpinLock); +return(-1); +} + +msg->header=mbox->msg->header; +memcpy(msg->data,mbox->msg->data,MESSAGE_LENGTH); +msg->pid=mbox->msg->pid; + +tmpMsg=mbox->msg; +mbox->msg=mbox->msg->next; + +kfree(tmpMsg); + +spinUnlock(&mpiSpinLock); +return(0x0); +} + +/***************************************************************************************** + +Function:intmpiDestroyMbox(char*name) + +Description:Thisfunctionwillfetchthenextmessageoutofthespecifiedmailbox + +Notes: + +*****************************************************************************************/ +intmpi_destroyMbox(char*name){ +mpi_mbox_t*mbox=0x0; + +spinLock(&mpiSpinLock); + +for(mbox=mboxList;mbox;mbox=mbox->next){ +if(!strcmp(mbox->name,name)){ +if(mbox->pid!=_current->id){ +spinUnlock(&mpiSpinLock); +return(-1); +} +mbox->prev->next=mbox->next; +mbox->next->prev=mbox->prev; +kfree(mbox); +spinUnlock(&mpiSpinLock); +return(0x0); +} +} + +spinUnlock(&mpiSpinLock); +return(-1); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/systemtask_8c.xml b/doc/xml/systemtask_8c.xml new file mode 100644 index 0000000..1c161ee --- /dev/null +++ b/doc/xml/systemtask_8c.xml @@ -0,0 +1,451 @@ + + + + systemtask.c + ubixos/systemtask.h + ubixos/kpanic.h + ubixos/exec.h + ubixos/tty.h + ubixos/sched.h + ubixos/vitals.h + lib/kmalloc.h + lib/kprintf.h + lib/bioscall.h + sde/sde.h + sys/io.h + vmm/vmm.h + mpi/mpi.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void systemTask + () + systemTask + + + + + + + + biosCall + mpi_message::data + fclose + mpi_message::header + taskStruct::id + taskStruct::imageFd + inportByte + kfree + kpanic + kprintf + mpi_createMbox + mpi_fetchMessage + outportByte + mpi_message::pid + printOff + sched_getDelTask + sched_yield + schedFindTask + strcmp + systemVitals + vitalsStruct::sysTicks + vitalsStruct::sysUptime + taskStruct::term + tty_find + videoBuffer + vmmFreeProcessPages + x10 + kmain + + + + + unsigned char * + unsigned char* videoBuffer + + videoBuffer + (char *)0xB8000 + + + + + + + + backSpace + clearScreen + kprint + systemTask + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/systemtask.h> +#include<ubixos/kpanic.h> +#include<ubixos/exec.h> +#include<ubixos/tty.h> +#include<ubixos/sched.h> +#include<ubixos/vitals.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/bioscall.h> +#include<sde/sde.h> +#include<sys/io.h> +#include<vmm/vmm.h> +#include<mpi/mpi.h> +#include<string.h> + +staticunsignedchar*videoBuffer=(char*)0xB8000; + + +voidsystemTask(){ +mpi_message_tmyMsg; +uInt32counter=0x0; +inti=0x0; +int*x=0x0; +kTask_t*tmpTask=0x0; + +if(mpi_createMbox("system")!=0x0){ +kpanic("Error:Errorcreatingmailbox:system\n"); +} + +while(1){ +if(mpi_fetchMessage("system",&myMsg)==0x0){ +kprintf("A"); +switch(myMsg.header){ +case0x69: +x=(int*)&myMsg.data; +kprintf("Switchingtoterm:[%i][%i]\n",*x,myMsg.pid); +schedFindTask(myMsg.pid)->term=tty_find(*x); +break; +case1000: +kprintf("Restartingthesystemin5seconds\n"); +counter=systemVitals->sysUptime+5; +while(systemVitals->sysUptime<counter){ +sched_yield(); +} +kprintf("RebootingNOW!!!\n"); +while(inportByte(0x64)&0x02); +outportByte(0x64,0xFE); +break; +case31337: +kprintf("system:backdooropened\n"); +break; +case0x80: +if(!strcmp(myMsg.data,"sdeStart")){ +kprintf("StartingSDE\n"); +//execThread(sdeThread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); +} +elseif(!strcmp(myMsg.data,"freePage")){ +kprintf("kkkFreePages"); +} +elseif(!strcmp(myMsg.data,"sdeStop")){ +printOff=0x0; +biosCall(0x10,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0); +for(i=0x0;i<100;i++)asm("hlt"); +} +break; +default: +kprintf("system:Receivedmessage%i:%s\n",myMsg.header,myMsg.data); +break; +} +} + +/* +Herewegetthenexttaskfromthedeletetaskqueue +wefirstchecktoseeifithasanfdattachedforthebinaryandafterthat +wefreethepagesfortheprocessandthenfreethetask +*/ +tmpTask=sched_getDelTask(); +if(tmpTask!=0x0){ +if(tmpTask->imageFd!=0x0) +fclose(tmpTask->imageFd); +vmmFreeProcessPages(tmpTask->id); +kfree(tmpTask); +} +videoBuffer[0]=systemVitals->sysTicks; +sched_yield(); +} + +return; +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/systemtask_8h.xml b/doc/xml/systemtask_8h.xml new file mode 100644 index 0000000..6235d1c --- /dev/null +++ b/doc/xml/systemtask_8h.xml @@ -0,0 +1,156 @@ + + + + systemtask.h + ubixos/types.h + src/sys/init/main.c + src/sys/kernel/systemtask.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void systemTask + () + systemTask + + + + + + + + biosCall + mpi_message::data + fclose + mpi_message::header + taskStruct::id + taskStruct::imageFd + inportByte + kfree + kpanic + kprintf + mpi_createMbox + mpi_fetchMessage + outportByte + mpi_message::pid + printOff + sched_getDelTask + sched_yield + schedFindTask + strcmp + systemVitals + vitalsStruct::sysTicks + vitalsStruct::sysUptime + taskStruct::term + tty_find + videoBuffer + vmmFreeProcessPages + x10 + kmain + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_SYSTEMTASK_H +#define_SYSTEMTASK_H + +#include<ubixos/types.h> + +voidsystemTask(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:56reddawg +nomessage + +Revision1.22004/06/0417:49:32reddawg +Wontworkwithoutthemakefileupdated + +Revision1.12004/06/0417:33:33reddawg +Changedidletasktosystemtask + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/tcp_8h.xml b/doc/xml/tcp_8h.xml new file mode 100644 index 0000000..82d8716 --- /dev/null +++ b/doc/xml/tcp_8h.xml @@ -0,0 +1,1980 @@ + + + + tcp.h + net/sys.h + net/mem.h + net/pbuf.h + net/opt.h + net/ipv4/ip.h + net/ipv4/icmp.h + net/err.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/net/api/tcpip.c + src/sys/net/netif/loopif.c + src/sys/net/netif/tcpdump.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tcp_hdr + tcp_pcb + tcp_pcb_listen + tcp_seg + + + tcp_ack + pcb + if((pcb)->flags & TF_ACK_DELAY) { \ + (pcb)->flags |= TF_ACK_NOW; \ + tcp_output(pcb); \ + } else { \ + (pcb)->flags |= TF_ACK_DELAY; \ + } + + + + + + + + + + TCP_ACK + 0x10 + + + + + + + + + + tcp_ack_now + pcb + (pcb)->flags |= TF_ACK_NOW; \ + tcp_output(pcb) + + + + + + + + + + TCP_FAST_INTERVAL + 200 + + + + + + + + + + TCP_FIN + 0x01 + + + + + + + + + + TCP_FIN_WAIT_TIMEOUT + 20000 + + + + + + + + + + TCP_HLEN + 20 + + + + + + + + + + TCP_MSL + 60000 + + + + + + + + + + TCP_OOSEQ_TIMEOUT + 6 + + + + + + + + + + tcp_pcbs_sane + + 1 + + + + + + + + + + TCP_PSH + 0x08 + + + + + + + + + + TCP_REG + pcbs + npcb + do { \ + npcb->next = *pcbs; \ + *pcbs = npcb; \ + } while(0) + + + + + + + + + + TCP_RMV + pcbs + npcb + do { \ + if(*pcbs == npcb) { \ + *pcbs = (*pcbs)->next; \ + } else for(tcp_tmp_pcb = *pcbs; tcp_tmp_pcb != NULL; tcp_tmp_pcb = tcp_tmp_pcb->next) { \ + if(tcp_tmp_pcb->next != NULL && tcp_tmp_pcb->next == npcb) { \ + tcp_tmp_pcb->next = npcb->next; \ + break; \ + } \ + } \ + npcb->next = NULL; \ + } while(0) + + + + + + + + + + TCP_RST + 0x04 + + + + + + + + + + TCP_SEQ_GEQ + a + b + ((Int32)((a)-(b)) >= 0) + + + + + + + + + + TCP_SEQ_GT + a + b + ((Int32)((a)-(b)) > 0) + + + + + + + + + + TCP_SEQ_LEQ + a + b + ((Int32)((a)-(b)) <= 0) + + + + + + + + + + TCP_SEQ_LT + a + b + ((Int32)((a)-(b)) < 0) + + + + + + + + + + TCP_SLOW_INTERVAL + 500 + + + + + + + + + + tcp_sndbuf + pcb + ((pcb)->snd_buf) + + + + + + + + netconn_write + + + TCP_SYN + 0x02 + + + + + + + + + + TCP_SYN_RCVD_TIMEOUT + 20000 + + + + + + + + + + TCP_TCPLEN + seg + ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & TCP_FIN || \ + TCPH_FLAGS((seg)->tcphdr) & TCP_SYN)? 1: 0)) + + + + + + + + + + TCP_TMR_INTERVAL + 100 + + + + + + + + tcpip_tcp_timer + tcpip_thread + + + TCP_URG + 0x20 + + + + + + + + + + TCPH_FLAGS + hdr + (NTOHS((hdr)->_offset_flags) & 0xff) + + + + + + + + + + TCPH_FLAGS_SET + hdr + flags + (hdr)->_offset_flags = HTONS((TCPH_OFFSET(hdr) << 8) | (flags)) + + + + + + + + + + TCPH_OFFSET + hdr + (NTOHS((hdr)->_offset_flags) >> 8) + + + + + + + + + + TCPH_OFFSET_SET + hdr + offset + (hdr)->_offset_flags = HTONS(((offset) << 8) | TCPH_FLAGS(hdr)) + + + + + + + + + + TF_ACK_DELAY + 0x01 + + + + + + + + + + TF_ACK_NOW + 0x02 + + + + + + + + + + TF_CLOSED + 0x10 + + + + + + + + + + TF_GOT_FIN + 0x20 + + + + + + + + + + TF_INFR + 0x04 + + + + + + + + + + TF_RESET + 0x08 + + + + + + + + + + + + tcp_state + + CLOSED + 0 + + + + + + + LISTEN + 1 + + + + + + + SYN_SENT + 2 + + + + + + + SYN_RCVD + 3 + + + + + + + ESTABLISHED + 4 + + + + + + + FIN_WAIT_1 + 5 + + + + + + + FIN_WAIT_2 + 6 + + + + + + + CLOSE_WAIT + 7 + + + + + + + CLOSING + 8 + + + + + + + LAST_ACK + 9 + + + + + + + TIME_WAIT + 10 + + + + + + + + + + + + + + + + + void + void tcp_abort + (struct tcp_pcb *pcb) + tcp_abort + + struct tcp_pcb * + pcb + + + + + + + + + do_delconn + + + void + void tcp_accept + (struct tcp_pcb *pcb, err_t(*accept)(void *arg, struct tcp_pcb *newpcb, err_t err)) + tcp_accept + + struct tcp_pcb * + pcb + + + err_t(*)(void *arg, struct tcp_pcb *newpcb, err_t err) + accept + + + + + + + + + do_delconn + do_listen + + + void + void tcp_arg + (struct tcp_pcb *pcb, void *arg) + tcp_arg + + struct tcp_pcb * + pcb + + + void * + arg + + + + + + + + + do_delconn + do_listen + setup_tcp + + + err_t + err_t tcp_bind + (struct tcp_pcb *pcb, struct ip_addr *ipaddr, uInt16 port) + tcp_bind + + struct tcp_pcb * + pcb + + + struct ip_addr * + ipaddr + + + uInt16 + port + + + + + + + + + do_bind + + + err_t + err_t tcp_close + (struct tcp_pcb *pcb) + tcp_close + + struct tcp_pcb * + pcb + + + + + + + + + do_close + do_delconn + + + err_t + err_t tcp_connect + (struct tcp_pcb *pcb, struct ip_addr *ipaddr, uInt16 port, err_t(*connected)(void *arg, struct tcp_pcb *tpcb, err_t err)) + tcp_connect + + struct tcp_pcb * + pcb + + + struct ip_addr * + ipaddr + + + uInt16 + port + + + err_t(*)(void *arg, struct tcp_pcb *tpcb, err_t err) + connected + + + + + + + + + do_connect + + + err_t + err_t tcp_enqueue + (struct tcp_pcb *pcb, void *dataptr, uInt16 len, uInt8 flags, uInt8 copy, uInt8 *optdata, uInt8 optlen) + tcp_enqueue + + struct tcp_pcb * + pcb + + + void * + dataptr + + + uInt16 + len + + + uInt8 + flags + + + uInt8 + copy + + + uInt8 * + optdata + + + uInt8 + optlen + + + + + + + + + + + void + void tcp_err + (struct tcp_pcb *pcb, void(*err)(void *arg, err_t err)) + tcp_err + + struct tcp_pcb * + pcb + + + void(*)(void *arg, err_t err) + err + + + + + + + + + do_delconn + setup_tcp + + + void + void tcp_fasttmr + (void) + tcp_fasttmr + + void + + + + + + + + + + + void + void tcp_init + (void) + tcp_init + + void + + + + + + + + + tcpip_thread + + + void + void tcp_input + (struct pbuf *p, struct netif *inp) + tcp_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + + + tcp_pcb * + struct tcp_pcb* tcp_listen + (struct tcp_pcb *pcb) + tcp_listen + + struct tcp_pcb * + pcb + + + + + + + + + do_listen + + + tcp_pcb * + struct tcp_pcb* tcp_new + (void) + tcp_new + + void + + + + + + + + + do_bind + do_connect + + + uInt32 + uInt32 tcp_next_iss + (void) + tcp_next_iss + + void + + + + + + + + + + + err_t + err_t tcp_output + (struct tcp_pcb *pcb) + tcp_output + + struct tcp_pcb * + pcb + + + + + + + + + do_write + + + tcp_pcb * + struct tcp_pcb* tcp_pcb_copy + (struct tcp_pcb *pcb) + tcp_pcb_copy + + struct tcp_pcb * + pcb + + + + + + + + + + + void + void tcp_pcb_purge + (struct tcp_pcb *pcb) + tcp_pcb_purge + + struct tcp_pcb * + pcb + + + + + + + + + + + void + void tcp_pcb_remove + (struct tcp_pcb **pcblist, struct tcp_pcb *pcb) + tcp_pcb_remove + + struct tcp_pcb ** + pcblist + + + struct tcp_pcb * + pcb + + + + + + + + + + + void + void tcp_poll + (struct tcp_pcb *pcb, err_t(*poll)(void *arg, struct tcp_pcb *tpcb), uInt8 interval) + tcp_poll + + struct tcp_pcb * + pcb + + + err_t(*)(void *arg, struct tcp_pcb *tpcb) + poll + + + uInt8 + interval + + + + + + + + + do_delconn + setup_tcp + + + void + void tcp_recv + (struct tcp_pcb *pcb, err_t(*recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)) + tcp_recv + + struct tcp_pcb * + pcb + + + err_t(*)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) + recv + + + + + + + + + do_delconn + setup_tcp + + + void + void tcp_recved + (struct tcp_pcb *pcb, uInt16 len) + tcp_recved + + struct tcp_pcb * + pcb + + + uInt16 + len + + + + + + + + + do_recv + + + void + void tcp_rexmit_seg + (struct tcp_pcb *pcb, struct tcp_seg *seg) + tcp_rexmit_seg + + struct tcp_pcb * + pcb + + + struct tcp_seg * + seg + + + + + + + + + + + void + void tcp_rst + (uInt32 seqno, uInt32 ackno, struct ip_addr *local_ip, struct ip_addr *remote_ip, uInt16 local_port, uInt16 remote_port) + tcp_rst + + uInt32 + seqno + + + uInt32 + ackno + + + struct ip_addr * + local_ip + + + struct ip_addr * + remote_ip + + + uInt16 + local_port + + + uInt16 + remote_port + + + + + + + + + + + tcp_seg * + struct tcp_seg* tcp_seg_copy + (struct tcp_seg *seg) + tcp_seg_copy + + struct tcp_seg * + seg + + + + + + + + + + + uInt8 + uInt8 tcp_seg_free + (struct tcp_seg *seg) + tcp_seg_free + + struct tcp_seg * + seg + + + + + + + + + + + uInt8 + uInt8 tcp_segs_free + (struct tcp_seg *seg) + tcp_segs_free + + struct tcp_seg * + seg + + + + + + + + + + + err_t + err_t tcp_send_ctrl + (struct tcp_pcb *pcb, uInt8 flags) + tcp_send_ctrl + + struct tcp_pcb * + pcb + + + uInt8 + flags + + + + + + + + + + + void + void tcp_sent + (struct tcp_pcb *pcb, err_t(*sent)(void *arg, struct tcp_pcb *tpcb, uInt16 len)) + tcp_sent + + struct tcp_pcb * + pcb + + + err_t(*)(void *arg, struct tcp_pcb *tpcb, uInt16 len) + sent + + + + + + + + + do_delconn + setup_tcp + + + void + void tcp_slowtmr + (void) + tcp_slowtmr + + void + + + + + + + + + + + void + void tcp_tmr + (void) + tcp_tmr + + void + + + + + + + + + tcpip_tcp_timer + + + err_t + err_t tcp_write + (struct tcp_pcb *pcb, const void *dataptr, uInt16 len, uInt8 copy) + tcp_write + + struct tcp_pcb * + pcb + + + const void * + dataptr + + + uInt16 + len + + + uInt8 + copy + + + + + + + + + do_write + + + + + tcp_hdr + struct tcp_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + tcp_pcb * + struct tcp_pcb* tcp_active_pcbs + + tcp_active_pcbs + + + + + + + + + + tcp_pcb_listen * + struct tcp_pcb_listen* tcp_listen_pcbs + + tcp_listen_pcbs + + + + + + + + + + uInt32 + uInt32 tcp_ticks + + tcp_ticks + + + + + + + + + + tcp_pcb * + struct tcp_pcb* tcp_tmp_pcb + + tcp_tmp_pcb + + + + + + + + + + tcp_pcb * + struct tcp_pcb* tcp_tw_pcbs + + tcp_tw_pcbs + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_TCP_H__ +#define__LWIP_TCP_H__ + +#include"net/sys.h" +#include"net/mem.h" + +#include"net/pbuf.h" +#include"net/opt.h" +//UBU +#include"net/ipv4/ip.h" +//UBU +#include"net/ipv4/icmp.h" + +#include"net/sys.h" + +#include"net/err.h" + +structtcp_pcb; + +/*FunctionsforinterfacingwithTCP:*/ + +/*LowerlayerinterfacetoTCP:*/ +voidtcp_init(void);/*Mustbecalledfirstto +initializeTCP.*/ +voidtcp_tmr(void);/*Mustbecalledevery +TCP_TMR_INTERVAL +ms.(Typically100ms).*/ +/*Applicationprogram'sinterface:*/ +structtcp_pcb*tcp_new(void); + +voidtcp_arg(structtcp_pcb*pcb,void*arg); +voidtcp_accept(structtcp_pcb*pcb, +err_t(*accept)(void*arg,structtcp_pcb*newpcb, +err_terr)); +voidtcp_recv(structtcp_pcb*pcb, +err_t(*recv)(void*arg,structtcp_pcb*tpcb, +structpbuf*p,err_terr)); +voidtcp_sent(structtcp_pcb*pcb, +err_t(*sent)(void*arg,structtcp_pcb*tpcb, +uInt16len)); +voidtcp_poll(structtcp_pcb*pcb, +err_t(*poll)(void*arg,structtcp_pcb*tpcb), +uInt8interval); +voidtcp_err(structtcp_pcb*pcb, +void(*err)(void*arg,err_terr)); + +#definetcp_sndbuf(pcb)((pcb)->snd_buf) + +voidtcp_recved(structtcp_pcb*pcb,uInt16len); +err_ttcp_bind(structtcp_pcb*pcb,structip_addr*ipaddr, +uInt16port); +err_ttcp_connect(structtcp_pcb*pcb,structip_addr*ipaddr, +uInt16port,err_t(*connected)(void*arg, +structtcp_pcb*tpcb, +err_terr)); +structtcp_pcb*tcp_listen(structtcp_pcb*pcb); +voidtcp_abort(structtcp_pcb*pcb); +err_ttcp_close(structtcp_pcb*pcb); +err_ttcp_write(structtcp_pcb*pcb,constvoid*dataptr,uInt16len, +uInt8copy); + +/*Itisalsopossibletocallthesetwofunctionsattheright +intervals(insteadofcallingtcp_tmr()).*/ +voidtcp_slowtmr(void); +voidtcp_fasttmr(void); + + +/*OnlyusedbyIPtopassaTCPsegmenttoTCP:*/ +voidtcp_input(structpbuf*p,structnetif*inp); +/*UsedwithintheTCPcodeonly:*/ +err_ttcp_output(structtcp_pcb*pcb); + + + + +#defineTCP_SEQ_LT(a,b)((Int32)((a)-(b))<0) +#defineTCP_SEQ_LEQ(a,b)((Int32)((a)-(b))<=0) +#defineTCP_SEQ_GT(a,b)((Int32)((a)-(b))>0) +#defineTCP_SEQ_GEQ(a,b)((Int32)((a)-(b))>=0) + +#defineTCP_FIN0x01 +#defineTCP_SYN0x02 +#defineTCP_RST0x04 +#defineTCP_PSH0x08 +#defineTCP_ACK0x10 +#defineTCP_URG0x20 + +/*LengthoftheTCPheader,excludingoptions.*/ +#defineTCP_HLEN20 + +#defineTCP_TMR_INTERVAL100/*TheTCPtimerintervalin +milliseconds.*/ + +#defineTCP_FAST_INTERVAL200/*thefinegrainedtimeoutin +milliseconds*/ +#defineTCP_SLOW_INTERVAL500/*thecoarsegrainedtimeoutin +milliseconds*/ +#defineTCP_FIN_WAIT_TIMEOUT20000/*milliseconds*/ +#defineTCP_SYN_RCVD_TIMEOUT20000/*milliseconds*/ + +#defineTCP_OOSEQ_TIMEOUT6/*xRTO*/ + +#defineTCP_MSL60000/*Themaximumsegmentlifetimeinmicroseconds*/ + +structtcp_hdr{ +PACK_STRUCT_FIELD(uInt16src); +PACK_STRUCT_FIELD(uInt16dest); +PACK_STRUCT_FIELD(uInt32seqno); +PACK_STRUCT_FIELD(uInt32ackno); +PACK_STRUCT_FIELD(uInt16_offset_flags); +PACK_STRUCT_FIELD(uInt16wnd); +PACK_STRUCT_FIELD(uInt16chksum); +PACK_STRUCT_FIELD(uInt16urgp); +}PACK_STRUCT_STRUCT; + +#defineTCPH_OFFSET(hdr)(NTOHS((hdr)->_offset_flags)>>8) +#defineTCPH_FLAGS(hdr)(NTOHS((hdr)->_offset_flags)&0xff) + +#defineTCPH_OFFSET_SET(hdr,offset)(hdr)->_offset_flags=HTONS(((offset)<<8)|TCPH_FLAGS(hdr)) +#defineTCPH_FLAGS_SET(hdr,flags)(hdr)->_offset_flags=HTONS((TCPH_OFFSET(hdr)<<8)|(flags)) + +#defineTCP_TCPLEN(seg)((seg)->len+((TCPH_FLAGS((seg)->tcphdr)&TCP_FIN||\ +TCPH_FLAGS((seg)->tcphdr)&TCP_SYN)?1:0)) + +enumtcp_state{ +CLOSED=0, +LISTEN=1, +SYN_SENT=2, +SYN_RCVD=3, +ESTABLISHED=4, +FIN_WAIT_1=5, +FIN_WAIT_2=6, +CLOSE_WAIT=7, +CLOSING=8, +LAST_ACK=9, +TIME_WAIT=10 +}; + + +/*theTCPprotocolcontrolblock*/ +structtcp_pcb{ +structtcp_pcb*next;/*forthelinkedlist*/ + +enumtcp_statestate;/*TCPstate*/ + +void*callback_arg; + +/*Functiontocallwhenalistenerhasbeenconnected.*/ +err_t(*accept)(void*arg,structtcp_pcb*newpcb,err_terr); + +structip_addrlocal_ip; +uInt16local_port; + +structip_addrremote_ip; +uInt16remote_port; + +/*receivervarables*/ +uInt32rcv_nxt;/*nextseqnoexpected*/ +uInt16rcv_wnd;/*receiverwindow*/ + +/*Timers*/ +uInt16tmr; + +/*Retransmissiontimer.*/ +uInt8rtime; + +uInt16mss;/*maximumsegmentsize*/ + +uInt8flags; +#defineTF_ACK_DELAY0x01/*DelayedACK.*/ +#defineTF_ACK_NOW0x02/*ImmediateACK.*/ +#defineTF_INFR0x04/*Infastrecovery.*/ +#defineTF_RESET0x08/*Connectionwasreset.*/ +#defineTF_CLOSED0x10/*Connectionwassucessfullyclosed.*/ +#defineTF_GOT_FIN0x20/*Connectionwasclosedbytheremoteend.*/ + +/*RTTestimationvariables.*/ +uInt16rttest;/*RTTestimatein500msticks*/ +uInt32rtseq;/*sequencenumberbeingtimed*/ +Int32sa,sv; + +uInt16rto;/*retransmissiontime-out*/ +uInt8nrtx;/*numberofretransmissions*/ + +/*fastretransmit/recovery*/ +uInt32lastack;/*Highestacknowledgedseqno.*/ +uInt8dupacks; + +/*congestionavoidance/controlvariables*/ +uInt16cwnd; +uInt16ssthresh; + +/*sendervariables*/ +uInt32snd_nxt,/*nextseqnotobesent*/ +snd_max,/*Highestseqnosent.*/ +snd_wnd,/*senderwindow*/ +snd_wl1,snd_wl2, +snd_lbb; + +uInt16snd_buf;/*Avaliablebufferspaceforsending.*/ +uInt8snd_queuelen; + +/*Functiontobecalledwhenmoresendbufferspaceisavaliable.*/ +err_t(*sent)(void*arg,structtcp_pcb*pcb,uInt16space); +uInt16acked; + +/*Functiontobecalledwhen(in-sequence)datahasarrived.*/ +err_t(*recv)(void*arg,structtcp_pcb*pcb,structpbuf*p,err_terr); +structpbuf*recv_data; + +/*Functiontobecalledwhenaconnectionhasbeensetup.*/ +err_t(*connected)(void*arg,structtcp_pcb*pcb,err_terr); + +/*Functionwhichiscalledperiodically.*/ +err_t(*poll)(void*arg,structtcp_pcb*pcb); + +/*Functiontobecalledwheneverafatalerroroccurs.*/ +void(*errf)(void*arg,err_terr); + +uInt8polltmr,pollinterval; + +/*Theseareorderedbysequencenumber:*/ +structtcp_seg*unsent;/*Unsent(queued)segments.*/ +structtcp_seg*unacked;/*Sentbutunacknowledgedsegments.*/ +#ifTCP_QUEUE_OOSEQ +structtcp_seg*ooseq;/*Receivedoutofsequencesegments.*/ +#endif/*TCP_QUEUE_OOSEQ*/ + +}; + +structtcp_pcb_listen{ +structtcp_pcb_listen*next;/*forthelinkedlist*/ + +enumtcp_statestate;/*TCPstate*/ + +void*callback_arg; + +/*Functiontocallwhenalistenerhasbeenconnected.*/ +void(*accept)(void*arg,structtcp_pcb*newpcb); + +structip_addrlocal_ip; +uInt16local_port; +}; + +/*ThisstructureisusedtorepressentTCPsegments.*/ +structtcp_seg{ +structtcp_seg*next;/*usedwhenputtingsegementsonaqueue*/ +structpbuf*p;/*buffercontainingdata+TCPheader*/ +void*dataptr;/*pointertotheTCPdatainthepbuf*/ +uInt16len;/*theTCPlengthofthissegment*/ +structtcp_hdr*tcphdr;/*theTCPheader*/ +}; + +/*Internalfunctionsandglobalvariables:*/ +structtcp_pcb*tcp_pcb_copy(structtcp_pcb*pcb); +voidtcp_pcb_purge(structtcp_pcb*pcb); +voidtcp_pcb_remove(structtcp_pcb**pcblist,structtcp_pcb*pcb); + +uInt8tcp_segs_free(structtcp_seg*seg); +uInt8tcp_seg_free(structtcp_seg*seg); +structtcp_seg*tcp_seg_copy(structtcp_seg*seg); + +#definetcp_ack(pcb)if((pcb)->flags&TF_ACK_DELAY){\ +(pcb)->flags|=TF_ACK_NOW;\ +tcp_output(pcb);\ +}else{\ +(pcb)->flags|=TF_ACK_DELAY;\ +} + +#definetcp_ack_now(pcb)(pcb)->flags|=TF_ACK_NOW;\ +tcp_output(pcb) + +err_ttcp_send_ctrl(structtcp_pcb*pcb,uInt8flags); +err_ttcp_enqueue(structtcp_pcb*pcb,void*dataptr,uInt16len, +uInt8flags,uInt8copy, +uInt8*optdata,uInt8optlen); + +voidtcp_rexmit_seg(structtcp_pcb*pcb,structtcp_seg*seg); + +voidtcp_rst(uInt32seqno,uInt32ackno, +structip_addr*local_ip,structip_addr*remote_ip, +uInt16local_port,uInt16remote_port); + +uInt32tcp_next_iss(void); + +externuInt32tcp_ticks; + +#ifTCP_DEBUG||TCP_INPUT_DEBUG||TCP_OUTPUT_DEBUG +voidtcp_debug_print(structtcp_hdr*tcphdr); +voidtcp_debug_print_flags(uInt8flags); +voidtcp_debug_print_state(enumtcp_states); +voidtcp_debug_print_pcbs(void); +inttcp_pcbs_sane(void); +#else +#definetcp_pcbs_sane()1 +#endif/*TCP_DEBUG*/ + + +/*TheTCPPCBlists.*/ +externstructtcp_pcb_listen*tcp_listen_pcbs;/*ListofallTCPPCBsinLISTENstate.*/ +externstructtcp_pcb*tcp_active_pcbs;/*ListofallTCPPCBsthatareina +stateinwhichtheyacceptorsend +data.*/ +externstructtcp_pcb*tcp_tw_pcbs;/*ListofallTCPPCBsinTIME-WAIT.*/ + +externstructtcp_pcb*tcp_tmp_pcb;/*Onlyusedfortemporarystorage.*/ + +/*Axoimsabouttheabovelists: +1)EveryTCPPCBthatisnotCLOSEDisinoneofthelists. +2)APCBisonlyinoneofthelists. +3)AllPCBsinthetcp_listen_pcbslistisinLISTENstate. +4)AllPCBsinthetcp_tw_pcbslistisinTIME-WAITstate. +*/ + +/*Definetwomacros,TCP_REGandTCP_RMVthatregistersaTCPPCB +withaPCBlistorremovesaPCBfromalist,respectively.*/ +#ifdefLWIP_DEBUG +#defineTCP_REG(pcbs,npcb)do{\ +DEBUGF(TCP_DEBUG,("TCP_REG%plocalport%d\n",npcb,npcb->local_port));\ +for(tcp_tmp_pcb=*pcbs;\ +tcp_tmp_pcb!=NULL;\ +tcp_tmp_pcb=tcp_tmp_pcb->next){\ +ASSERT("TCP_REG:alreadyregistered\n",tcp_tmp_pcb!=npcb);\ +}\ +ASSERT("TCP_REG:pcb->state!=CLOSED",npcb->state!=CLOSED);\ +npcb->next=*pcbs;\ +ASSERT("TCP_REG:npcb->next!=npcb",npcb->next!=npcb);\ +*pcbs=npcb;\ +ASSERT("TCP_RMV:tcp_pcbssane",tcp_pcbs_sane());\ +}while(0) +#defineTCP_RMV(pcbs,npcb)do{\ +ASSERT("TCP_RMV:pcbs!=NULL",*pcbs!=NULL);\ +DEBUGF(TCP_DEBUG,("TCP_RMV:removing%pfrom%p\n",npcb,*pcbs));\ +if(*pcbs==npcb){\ +*pcbs=(*pcbs)->next;\ +}elsefor(tcp_tmp_pcb=*pcbs;tcp_tmp_pcb!=NULL;tcp_tmp_pcb=tcp_tmp_pcb->next){\ +if(tcp_tmp_pcb->next!=NULL&&tcp_tmp_pcb->next==npcb){\ +tcp_tmp_pcb->next=npcb->next;\ +break;\ +}\ +}\ +npcb->next=NULL;\ +ASSERT("TCP_RMV:tcp_pcbssane",tcp_pcbs_sane());\ +DEBUGF(TCP_DEBUG,("TCP_RMV:removed%pfrom%p\n",npcb,*pcbs));\ +}while(0) + +#else/*LWIP_DEBUG*/ +#defineTCP_REG(pcbs,npcb)do{\ +npcb->next=*pcbs;\ +*pcbs=npcb;\ +}while(0) +#defineTCP_RMV(pcbs,npcb)do{\ +if(*pcbs==npcb){\ +*pcbs=(*pcbs)->next;\ +}elsefor(tcp_tmp_pcb=*pcbs;tcp_tmp_pcb!=NULL;tcp_tmp_pcb=tcp_tmp_pcb->next){\ +if(tcp_tmp_pcb->next!=NULL&&tcp_tmp_pcb->next==npcb){\ +tcp_tmp_pcb->next=npcb->next;\ +break;\ +}\ +}\ +npcb->next=NULL;\ +}while(0) +#endif/*LWIP_DEBUG*/ +#endif/*__LWIP_TCP_H__*/ + + + + + + + diff --git a/doc/xml/tcpdump_8c.xml b/doc/xml/tcpdump_8c.xml new file mode 100644 index 0000000..e87c662 --- /dev/null +++ b/doc/xml/tcpdump_8c.xml @@ -0,0 +1,504 @@ + + + + tcpdump.c + vfs/file.h + ubixos/kpanic.h + netif/tcpdump.h + net/ipv4/ip.h + net/tcp.h + net/udp.h + net/ipv4/inet.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void tcpdump + (struct pbuf *p) + tcpdump + + struct pbuf * + p + + + + + + + + + file + NULL + loopif_output + + + void + void tcpdump_init + (void) + tcpdump_init + + void + + + + + + + + + file + fopen + kpanic + NULL + + + + + fileDescriptor * + fileDescriptor* file + + file + NULL + + + + + + + + tcpdump + tcpdump_init + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<vfs/file.h> +#include<ubixos/kpanic.h> + +#include"netif/tcpdump.h" +#include"net/ipv4/ip.h" +#include"net/tcp.h" +#include"net/udp.h" +#include"net/ipv4/inet.h" + +fileDescriptor*file=NULL; + +voidtcpdump_init(void){ +char*fname; + +fname="tcpdump"; +file=fopen(fname,"wb"); +if(file==NULL){ +kpanic("tcpdump_init:fopen\n"); +} +} + +voidtcpdump(structpbuf*p){ +/* +structip_hdr*iphdr; +structtcp_hdr*tcphdr; +structudp_hdr*udphdr; +charflags[5]; +inti; +intlen; +intoffset; +*/ +if(file==NULL){ +return; +} + +/* +iphdr=p->payload; +switch(IPH_PROTO(iphdr)){ +caseIP_PROTO_TCP: +tcphdr=(structtcp_hdr*)((char*)iphdr+IP_HLEN); + +pbuf_header(p,-IP_HLEN); +if(inet_chksum_pseudo(p,(structip_addr*)&(iphdr->src), +(structip_addr*)&(iphdr->dest), +IP_PROTO_TCP,p->tot_len)!=0){ +DEBUGF(TCPDUMP_DEBUG,("tcpdump:IPchecksumfailed!\n")); +fprintf(file,"!chksum"); +} + +i=0; +if(TCPH_FLAGS(tcphdr)&TCP_SYN){ +flags[i++]='S'; +} +if(TCPH_FLAGS(tcphdr)&TCP_PSH){ +flags[i++]='P'; +} +if(TCPH_FLAGS(tcphdr)&TCP_FIN){ +flags[i++]='F'; +} +if(TCPH_FLAGS(tcphdr)&TCP_RST){ +flags[i++]='R'; +} +if(i==0){ +flags[i++]='.'; +} +flags[i++]=0; + + + +fprintf(file,"%d.%d.%d.%d.%u>%d.%d.%d.%d.%u:", +(int)(ntohl(iphdr->src.addr)>>24)&0xff, +(int)(ntohl(iphdr->src.addr)>>16)&0xff, +(int)(ntohl(iphdr->src.addr)>>8)&0xff, +(int)(ntohl(iphdr->src.addr)>>0)&0xff, +ntohs(tcphdr->src), +(int)(ntohl(iphdr->dest.addr)>>24)&0xff, +(int)(ntohl(iphdr->dest.addr)>>16)&0xff, +(int)(ntohl(iphdr->dest.addr)>>8)&0xff, +(int)(ntohl(iphdr->dest.addr)>>0)&0xff, +ntohs(tcphdr->dest)); +offset=TCPH_OFFSET(tcphdr)>>4; + +len=ntohs(IPH_LEN(iphdr))-offset*4-IP_HLEN; +if(len!=0||flags[0]!='.'){ +fprintf(file,"%s%lu:%lu(%u)", +flags, +ntohl(tcphdr->seqno), +ntohl(tcphdr->seqno)+len, +len); +} +if(TCPH_FLAGS(tcphdr)&TCP_ACK){ +fprintf(file,"ack%lu", +ntohl(tcphdr->ackno)); +} +fprintf(file,"wnd%u\n", +ntohs(tcphdr->wnd)); + +fflush(file); + +pbuf_header(p,IP_HLEN); +break; + +caseIP_PROTO_UDP: +udphdr=(structudp_hdr*)((char*)iphdr+IP_HLEN); + +pbuf_header(p,-IP_HLEN); +if(inet_chksum_pseudo(p,(structip_addr*)&(iphdr->src), +(structip_addr*)&(iphdr->dest), +IP_PROTO_UDP,p->tot_len)!=0){ +kprintf("tcpdump:IPchecksumfailed!\n"); +fprintf(file,"!chksum"); +} + +fprintf(file,"%d.%d.%d.%d.%u>%d.%d.%d.%d.%u:", +(int)(ntohl(iphdr->src.addr)>>24)&0xff, +(int)(ntohl(iphdr->src.addr)>>16)&0xff, +(int)(ntohl(iphdr->src.addr)>>8)&0xff, +(int)(ntohl(iphdr->src.addr)>>0)&0xff, +ntohs(udphdr->src), +(int)(ntohl(iphdr->dest.addr)>>24)&0xff, +(int)(ntohl(iphdr->dest.addr)>>16)&0xff, +(int)(ntohl(iphdr->dest.addr)>>8)&0xff, +(int)(ntohl(iphdr->dest.addr)>>0)&0xff, +ntohs(udphdr->dest)); +fprintf(file,"U"); +len=ntohs(IPH_LEN(iphdr))-sizeof(structudp_hdr)-IP_HLEN; +fprintf(file,"%d\n",len); + +fflush(file); + +pbuf_header(p,IP_HLEN); +break; + +} +*/ +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/tcpdump_8h.xml b/doc/xml/tcpdump_8h.xml new file mode 100644 index 0000000..92c3ac6 --- /dev/null +++ b/doc/xml/tcpdump_8h.xml @@ -0,0 +1,162 @@ + + + + tcpdump.h + net/pbuf.h + src/sys/net/net/init.c + src/sys/net/netif/loopif.c + src/sys/net/netif/tcpdump.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void tcpdump + (struct pbuf *p) + tcpdump + + struct pbuf * + p + + + + + + + + + file + NULL + loopif_output + + + void + void tcpdump_init + (void) + tcpdump_init + + void + + + + + + + + + file + fopen + kpanic + NULL + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__NETIF_TCPDUMP_H__ +#define__NETIF_TCPDUMP_H__ + +#include"net/pbuf.h" + +voidtcpdump_init(void); +voidtcpdump(structpbuf*p); + +#endif/*__NETIF_TCPDUMP_H__*/ + + + + diff --git a/doc/xml/tcpip_8c.xml b/doc/xml/tcpip_8c.xml new file mode 100644 index 0000000..17c0c58 --- /dev/null +++ b/doc/xml/tcpip_8c.xml @@ -0,0 +1,737 @@ + + + + tcpip.c + ubixos/exec.h + lib/kmalloc.h + net/debug.h + net/opt.h + net/sys.h + net/memp.h + net/pbuf.h + net/ipv4/ip.h + net/udp.h + net/tcp.h + net/tcpip.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void tcpip_apimsg + (struct api_msg *apimsg) + tcpip_apimsg + + struct api_msg * + apimsg + + + + + + + + + tcpip_msg::apimsg + mbox + memp_free + memp_mallocp + MEMP_TCPIP_MSG + tcpip_msg::msg + NULL + sys_mbox_post + TCPIP_MSG_API + api_msg_post + + + void + void tcpip_init + (void(*initfunc)(void *), void *arg) + tcpip_init + + void(*)(void *) + initfunc + + + void * + arg + + + + + + + + + mbox + NULL + sys_mbox_new + sys_thread_new + tcpip_init_done + tcpip_init_done_arg + tcpip_thread + netMainThread + + + err_t + err_t tcpip_input + (struct pbuf *p, struct netif *inp) + tcpip_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + ERR_MEM + ERR_OK + tcpip_msg::inp + mbox + memp_mallocp + MEMP_TCPIP_MSG + tcpip_msg::msg + NULL + tcpip_msg::p + pbuf_free + sys_mbox_post + TCPIP_MSG_INPUT + netMainThread + + + void + static void tcpip_tcp_timer + (void *arg) + tcpip_tcp_timer + + void * + arg + + + + + + + + + NULL + sys_timeout + tcp_tmr + TCP_TMR_INTERVAL + tcpip_thread + + + void + static void tcpip_thread + (void *arg) + tcpip_thread + + void * + arg + + + + + + + + + api_msg_input + ip_init + ip_input + mbox + memp_freep + MEMP_TCPIP_MSG + tcpip_msg::msg + NULL + sys_mbox_fetch + sys_timeout + tcp_init + TCP_TMR_INTERVAL + tcpip_init_done + tcpip_init_done_arg + TCPIP_MSG_API + TCPIP_MSG_INPUT + tcpip_tcp_timer + udp_init + tcpip_init + + + + + sys_mbox_t + sys_mbox_t mbox + + mbox + + + + + + + + accept_function + mpi_createMbox + mpi_destroyMbox + mpi_fetchMessage + mpi_findMbox + mpi_postMessage + mpi_spam + sys_arch_mbox_fetch + sys_mbox_free + sys_mbox_new + sys_mbox_post + tcpip_apimsg + tcpip_init + tcpip_input + tcpip_thread + + + void(*) + void(* ) tcpip_init_done(void *arg) + (void *arg) + tcpip_init_done + NULL + + + + + + + + netMainThread + tcpip_init + tcpip_thread + + + void * + void* tcpip_init_done_arg + + tcpip_init_done_arg + + + + + + + + tcpip_init + tcpip_thread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<ubixos/exec.h> +#include<lib/kmalloc.h> + +#include"net/debug.h" + +#include"net/opt.h" + +#include"net/sys.h" + +#include"net/memp.h" +#include"net/pbuf.h" + +#include"net/ipv4/ip.h" +#include"net/udp.h" +#include"net/tcp.h" + +#include"net/tcpip.h" + +staticvoid(*tcpip_init_done)(void*arg)=NULL; +staticvoid*tcpip_init_done_arg; +staticsys_mbox_tmbox; + +/*-----------------------------------------------------------------------------------*/ +staticvoid +tcpip_tcp_timer(void*arg) +{ +tcp_tmr(); +sys_timeout(TCP_TMR_INTERVAL,(sys_timeout_handler)tcpip_tcp_timer,NULL); +} +/*-----------------------------------------------------------------------------------*/ + +staticvoid +tcpip_thread(void*arg) +{ +structtcpip_msg*msg; + +ip_init(); +udp_init(); +tcp_init(); + +sys_timeout(TCP_TMR_INTERVAL,(sys_timeout_handler)tcpip_tcp_timer,NULL); + +if(tcpip_init_done!=NULL){ +tcpip_init_done(tcpip_init_done_arg); +} + +while(1){/*MAINLoop*/ +sys_mbox_fetch(mbox,(void*)&msg); +switch(msg->type){ +caseTCPIP_MSG_API: +//kprintf("tcpip_thread:APImessage%p\n",msg); +api_msg_input(msg->msg.apimsg); +break; +caseTCPIP_MSG_INPUT: +//kprintf("tcpip_thread:IPpacket%p\n",msg); +ip_input(msg->msg.inp.p,msg->msg.inp.netif); +break; +default: +break; +} +memp_freep(MEMP_TCPIP_MSG,msg); +} +} +/*-----------------------------------------------------------------------------------*/ +err_t +tcpip_input(structpbuf*p,structnetif*inp) +{ +structtcpip_msg*msg; + +msg=memp_mallocp(MEMP_TCPIP_MSG); +if(msg==NULL){ +//kprintf("BADMESSAGE!!!\n"); +pbuf_free(p); +returnERR_MEM; +} +//kprintf("GOODMESSAGE\n"); + +msg->type=TCPIP_MSG_INPUT; +msg->msg.inp.p=p; +msg->msg.inp.netif=inp; +sys_mbox_post(mbox,msg); +returnERR_OK; +} +/*-----------------------------------------------------------------------------------*/ +void +tcpip_apimsg(structapi_msg*apimsg) +{ +structtcpip_msg*msg; +msg=memp_mallocp(MEMP_TCPIP_MSG); +if(msg==NULL){ +memp_free(MEMP_TCPIP_MSG,apimsg); +return; +} +msg->type=TCPIP_MSG_API; +msg->msg.apimsg=apimsg; +sys_mbox_post(mbox,msg); +} +/*-----------------------------------------------------------------------------------*/ +void +tcpip_init(void(*initfunc)(void*),void*arg) +{ +tcpip_init_done=initfunc; +tcpip_init_done_arg=arg; +mbox=sys_mbox_new(); +sys_thread_new((void*)tcpip_thread,NULL); +} +/*-----------------------------------------------------------------------------------*/ + + + + + + + diff --git a/doc/xml/tcpip_8h.xml b/doc/xml/tcpip_8h.xml new file mode 100644 index 0000000..ffb6c30 --- /dev/null +++ b/doc/xml/tcpip_8h.xml @@ -0,0 +1,454 @@ + + + + tcpip.h + net/api_msg.h + net/pbuf.h + src/sys/net/api/api_msg.c + src/sys/net/api/tcpip.c + src/sys/net/net/init.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tcpip_msg + + + tcpip_msg_type + + TCPIP_MSG_API + + + + + + + TCPIP_MSG_INPUT + + + + + + + + + + + + + + + + + void + void tcpip_apimsg + (struct api_msg *apimsg) + tcpip_apimsg + + struct api_msg * + apimsg + + + + + + + + + tcpip_msg::apimsg + mbox + memp_free + memp_mallocp + MEMP_TCPIP_MSG + tcpip_msg::msg + NULL + sys_mbox_post + TCPIP_MSG_API + api_msg_post + + + void + void tcpip_init + (void(*tcpip_init_done)(void *), void *arg) + tcpip_init + + void(*)(void *) + tcpip_init_done + + + void * + arg + + + + + + + + + mbox + NULL + sys_mbox_new + sys_thread_new + tcpip_init_done + tcpip_init_done_arg + tcpip_thread + netMainThread + + + err_t + err_t tcpip_input + (struct pbuf *p, struct netif *inp) + tcpip_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + ERR_MEM + ERR_OK + tcpip_msg::inp + mbox + memp_mallocp + MEMP_TCPIP_MSG + tcpip_msg::msg + NULL + tcpip_msg::p + pbuf_free + sys_mbox_post + TCPIP_MSG_INPUT + netMainThread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_TCPIP_H__ +#define__LWIP_TCPIP_H__ + +#include"net/api_msg.h" +#include"net/pbuf.h" + +voidtcpip_init(void(*tcpip_init_done)(void*),void*arg); +voidtcpip_apimsg(structapi_msg*apimsg); +err_ttcpip_input(structpbuf*p,structnetif*inp); + +enumtcpip_msg_type{ +TCPIP_MSG_API, +TCPIP_MSG_INPUT +}; + +structtcpip_msg{ +enumtcpip_msg_typetype; +sys_sem_t*sem; +union{ +structapi_msg*apimsg; +struct{ +structpbuf*p; +structnetif*netif; +}inp; +}msg; +}; + + +#endif/*__LWIP_TCPIP_H__*/ + + + + diff --git a/doc/xml/thread_8c.xml b/doc/xml/thread_8c.xml new file mode 100644 index 0000000..e6116b1 --- /dev/null +++ b/doc/xml/thread_8c.xml @@ -0,0 +1,294 @@ + + + + thread.c + ubixfs/ubixfs.h + ubixos/kpanic.h + vfs/vfs.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void ubixfs_thread + (struct vfs_mountPoint *mp) + ubixfs_thread + + struct vfs_mountPoint * + mp + + + + + + + + + mpi_message::header + kpanic + kprintf + mpi_createMbox + mpi_fetchMessage + ubixFS_Info + + + + + int + int mounts + + mounts + + + + + + + + + + struct @15 + struct @15 ubixFS_Info + + ubixFS_Info + + + + + + + + ubixfs_thread + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<ubixfs/ubixfs.h> +#include<ubixos/kpanic.h> +#include<vfs/vfs.h> +#include<lib/kprintf.h> + +staticstruct{ +intmounts; +}ubixFS_Info; + +voidubixfs_thread(structvfs_mountPoint*mp){ +mpi_message_tmyMsg; + +ubixFS_Info.mounts=0; + +if(mp==0x0) +kpanic("bah"); + +if(mpi_createMbox("ubixfs")!=0x0){ +kpanic("Error:Errorcreatingmailbox:ubixfs\n"); +} +while(1){ +if(mpi_fetchMessage("ubixfs",&myMsg)==0x0){ +switch(myMsg.header){ +default: +kprintf("UnhandledMessage:%i\n",myMsg.header); +break; +} +} +} +} + +/*** +$Log$ +Revision1.22006/12/0514:10:21reddawg +WorkignDistro + +Revision1.1.1.12006/06/0112:46:17reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:41reddawg +nomessage + +Revision1.32004/08/1411:23:02reddawg +Changes + +Revision1.22004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.12004/06/2818:12:44reddawg +Weneedthesefiles + +END +***/ + + + + diff --git a/doc/xml/thread_8h.xml b/doc/xml/thread_8h.xml new file mode 100644 index 0000000..ff69925 --- /dev/null +++ b/doc/xml/thread_8h.xml @@ -0,0 +1,640 @@ + + + + thread.h + ubixos/types.h + src/sys/include/sys/gen_calls.h + src/sys/include/sys/kern_descrip.h + src/sys/include/sys/kern_sig.h + src/sys/include/sys/kern_sysctl.h + src/sys/include/sys/pipe.h + src/sys/include/ubixos/sched.h + src/sys/include/vmm/paging.h + src/sys/kernel/gen_calls.c + src/sys/kernel/kern_descrip.c + src/sys/kernel/kern_sig.c + src/sys/kernel/kern_sysctl.c + src/sys/kernel/pipe.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_THREAD_H +#define_THREAD_H + +#include<ubixos/types.h> + +structthread{ +inttd_retval[2]; +uInt32o_files[64]; +char*vm_daddr; +int32_tvm_dsize; +}; + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/time_8c.xml b/doc/xml/time_8c.xml new file mode 100644 index 0000000..a8ec42b --- /dev/null +++ b/doc/xml/time_8c.xml @@ -0,0 +1,414 @@ + + + + time.c + ubixos/types.h + ubixos/time.h + ubixos/vitals.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int gettimeofday + (struct timeval *tp, struct timezone *tzp) + gettimeofday + + struct timeval * + tp + + + struct timezone * + tzp + + + + + + + + + timeval::tv_sec + timeval::tv_usec + cond_wait + sys_init + sys_unix_now + + + int + int time_init + () + time_init + + + + + + + + BCD_TO_BIN + timeStruct::day + timeStruct::hour + kprintf + timeStruct::min + timeStruct::mon + timeStruct::sec + systemVitals + timeCmosRead + timeMake + vitalsStruct::timeStart + timeStruct::year + + + int + static int timeCmosRead + (int addr) + timeCmosRead + + int + addr + + + + + + + + + inportByte + outportByteP + time_init + + + uInt32 + uInt32 timeMake + (struct timeStruct *time) + timeMake + + struct timeStruct * + time + + + + + + + + + timeStruct::day + DAY + timeStruct::hour + HOUR + timeStruct::min + MINUTE + timeStruct::mon + month + timeStruct::sec + YEAR + timeStruct::year + time_init + + + + + int + int month[12] + [12] + month + { + 0, + DAY*(31), + DAY*(31+29), + DAY*(31+29+31), + DAY*(31+29+31+30), + DAY*(31+29+31+30+31), + DAY*(31+29+31+30+31+30), + DAY*(31+29+31+30+31+30+31), + DAY*(31+29+31+30+31+30+31+31), + DAY*(31+29+31+30+31+30+31+31+30), + DAY*(31+29+31+30+31+30+31+31+30+31), + DAY*(31+29+31+30+31+30+31+31+30+31+30) +} + + + + + + + + timeMake + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/types.h> +#include<ubixos/time.h> +#include<ubixos/vitals.h> +#include<lib/kprintf.h> +#include<assert.h> + +staticintmonth[12]={ +0, +DAY*(31), +DAY*(31+29), +DAY*(31+29+31), +DAY*(31+29+31+30), +DAY*(31+29+31+30+31), +DAY*(31+29+31+30+31+30), +DAY*(31+29+31+30+31+30+31), +DAY*(31+29+31+30+31+30+31+31), +DAY*(31+29+31+30+31+30+31+31+30), +DAY*(31+29+31+30+31+30+31+31+30+31), +DAY*(31+29+31+30+31+30+31+31+30+31+30) +}; + +staticinttimeCmosRead(intaddr){ +outportByteP(0x70,addr); +return((int)inportByte(0x71)); +} + +inttime_init(){ +inti; +structtimeStructtime; + +for(i=0;i<1000000;i++){ +if(!(timeCmosRead(10)&0x80)){ +break; +} +} + +do{ +time.sec=timeCmosRead(0); +time.min=timeCmosRead(2); +time.hour=timeCmosRead(4); +time.day=timeCmosRead(7); +time.mon=timeCmosRead(8); +time.year=timeCmosRead(9); +}while(time.sec!=timeCmosRead(0)); + +BCD_TO_BIN(time.sec); +BCD_TO_BIN(time.min); +BCD_TO_BIN(time.hour); +BCD_TO_BIN(time.day); +BCD_TO_BIN(time.mon); +BCD_TO_BIN(time.year); + +/*Setupourstarttimeinseconds*/ +systemVitals->timeStart=timeMake(&time); + +kprintf("%i/%i/%i%i:%i.%i\n",time.mon,time.day,time.year,time.hour,time.min,time.sec); + + +/*Returnsoweknowallwentwell*/ +return(0x0); +} + +uInt32timeMake(structtimeStruct*time){ +uInt32res; +intyear; + +year=(time->year+100)-70; +/*magicoffsets(y+1)neededtogetleapyearsright.*/ +res=YEAR*year+DAY*((year+1)/4); +res+=month[time->mon]; +/*and(y+2)here.Ifitwasn'taleap-year,wehavetoadjust*/ +if(time->mon>1&&((year+2)%4)) +res-=DAY; +res+=DAY*(time->day-1); +res+=HOUR*time->hour; +res+=MINUTE*time->min; +res+=time->sec; +return(res); +} + +intgettimeofday(structtimeval*tp,structtimezone*tzp){ +//tp->tv_sec=systemVitals->timeStart+systemVitals->sysUptime; +tp->tv_sec=0x0;//systemVitals->sysUptime; +tp->tv_usec=0x0; +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/time_8h.xml b/doc/xml/time_8h.xml new file mode 100644 index 0000000..01be6a3 --- /dev/null +++ b/doc/xml/time_8h.xml @@ -0,0 +1,453 @@ + + + + time.h + ubixos/types.h + sys/io.h + src/sys/include/ubixos/init.h + src/sys/include/ubixos/ubthread.h + src/sys/kernel/syscall.c + src/sys/kernel/time.c + src/sys/kernel/ubthread.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + timespec + timeStruct + timeval + timezone + + + BCD_TO_BIN + val + ((val)=((val)&15) + ((val)>>4)*10) + + + + + + + + time_init + + + DAY + (24*HOUR) + + + + + + + + timeMake + + + HOUR + (60*MINUTE) + + + + + + + + timeMake + + + MINUTE + 60 + + + + + + + + timeMake + + + YEAR + (365*DAY) + + + + + + + + timeMake + + + + + long + typedef long suseconds_t + + suseconds_t + + + + + + + + + + __time_t + typedef __time_t time_t + + time_t + + + + + + + + + + + + int + int gettimeofday + (struct timeval *tp, struct timezone *tzp) + gettimeofday + + struct timeval * + tp + + + struct timezone * + tzp + + + + + + + + + timeval::tv_sec + timeval::tv_usec + cond_wait + sys_init + sys_unix_now + + + int + int time_init + () + time_init + + + + + + + + BCD_TO_BIN + timeStruct::day + timeStruct::hour + kprintf + timeStruct::min + timeStruct::mon + timeStruct::sec + systemVitals + timeCmosRead + timeMake + vitalsStruct::timeStart + timeStruct::year + + + uInt32 + uInt32 timeMake + (struct timeStruct *time) + timeMake + + struct timeStruct * + time + + + + + + + + + DAY + timeStruct::day + HOUR + timeStruct::hour + timeStruct::min + MINUTE + timeStruct::mon + month + timeStruct::sec + timeStruct::year + YEAR + time_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TIME_H +#define_TIME_H + +#include<ubixos/types.h> +#include<sys/io.h> + +typedeflongsuseconds_t; + +#defineBCD_TO_BIN(val)((val)=((val)&15)+((val)>>4)*10) + +#defineMINUTE60 +#defineHOUR(60*MINUTE) +#defineDAY(24*HOUR) +#defineYEAR(365*DAY) + +#ifndef_TIME_T_DECLARED +typedef__time_ttime_t; +#define_TIME_T_DECLARED +#endif + +structtimespec{ +time_ttv_sec;/*seconds*/ +longtv_nsec;/*andnanoseconds*/ +}; + + + +structtimeStruct{ +intsec; +intmin; +inthour; +intday; +intmon; +intyear; +}; + + +structtimezone{ +inttz_minuteswest;/*minuteswestofGreenwich*/ +inttz_dsttime;/*typeofdstcorrection*/ +}; + +structtimeval{ +longtv_sec;/*seconds(XXXshouldbetime_t)*/ +suseconds_ttv_usec;/*andmicroseconds*/ +}; + +intgettimeofday(structtimeval*tp,structtimezone*tzp); + + + +inttime_init(); +uInt32timeMake(structtimeStruct*time); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:14reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:56reddawg +nomessage + +Revision1.42004/07/0913:37:30reddawg +time:timeInittotime_init +Adjustedinitializationroutines + +Revision1.32004/06/2911:41:44reddawg +Fixedsomeglobalvariables + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + +END +***/ + + + + diff --git a/doc/xml/timer_8S.xml b/doc/xml/timer_8S.xml new file mode 100644 index 0000000..386902b --- /dev/null +++ b/doc/xml/timer_8S.xml @@ -0,0 +1,188 @@ + + + + timer.S + + + globl timerInt text code32 dx mov ax outb dx movl ecx + globl timerInt text code32 dx mov ax outb dx movl ecx incl + (%ecx) movl 4(%ecx) + incl + + % + ecx + + + + + + + + + + + + + globl timerInt text code32 dx mov ax outb + globl timerInt text code32 dx mov ax outb al + + al + + + + + + + + + + globl timerInt text code32 dx mov ax outb dx movl ecx eax ebx xor edx div ebx test + globl timerInt text code32 dx mov ax outb dx movl ecx eax ebx xor edx div ebx test edx + + edx + + + + + + + + + + globl timerInt text code32 dx mov ax outb dx movl ecx eax ebx xor + globl timerInt text code32 dx mov ax outb dx movl ecx eax ebx xor edx + + edx + + + + + + + + + + globl timerInt text code32 dx mov ax outb dx movl ecx eax + globl _vmm_pageFault text code32 esp eax pushl ebx movl + + movl + + + + + + + + + + globl timerInt text code32 dx mov ax outb dx movl + globl timerInt text code32 dx mov ax outb dx movl systemVitals + + systemVitals + + + + + + + + + + globl timerInt text code32 + globl timerInt text code32 timerInt + + timerInt + + + + + + + + idt_init + + + globl timerInt text code32 dx mov + globl timerInt text code32 dx mov x20 + + x20 + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +.globltimerInt +.text +.code32 +timerInt: +pusha/*Savealloftheregisters*/ +mov$0x20,%dx/*TheFollowingSendsOurEOIToTheMPIC*/ +mov$0x20,%ax +outb%al,%dx +movlsystemVitals,%ecx/*PutLocationOfSystemVitalsIntoECX*/ +incl4(%ecx)/*IncrementsysTicksour1000mscounter*/ +movl4(%ecx),%eax/*IncrementoursysUptimeby1Sif1000MS*/ +movl$200,%ebx/*HavePassed*/ +xor%edx,%edx +div%ebx +test%edx,%edx +jnznext +incl8(%ecx) +next: +movl4(%ecx),%eax/*TestIfquantumHasPassedIfSoThen*/ +movl12(%ecx),%ebx/*WeCanCALLsched*/ +xor%edx,%edx +div%ebx +test%edx,%edx +jnzdone +callsched +done: +popa/*RestoreRegisters*/ +iret + +/*** +END +***/ + + + + + diff --git a/doc/xml/times_8h.xml b/doc/xml/times_8h.xml new file mode 100644 index 0000000..8538820 --- /dev/null +++ b/doc/xml/times_8h.xml @@ -0,0 +1,130 @@ + + + + times.h + ubixos/types.h + sys/_types.h + src/sys/include/net/arch/perf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tms + + + __clock_t + typedef __clock_t clock_t + + clock_t + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TIMES_H +#define_TIMES_H + +#include<ubixos/types.h> +#include<sys/_types.h> + +#ifndef_CLOCK_T_DECLARED +typedef__clock_tclock_t; +#define_CLOCK_T_DECLARED +#endif + +structtms{ +clock_ttms_utime;/*UserCPUtime*/ +clock_ttms_stime;/*SystemCPUtime*/ +clock_ttms_cutime;/*UserCPUtimeofterminatedchildprocs*/ +clock_ttms_cstime;/*SystemCPUtimeofterminatedchildprocs*/ +}; + +#endif + +/*** +$Log$ +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.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/trap_8h.xml b/doc/xml/trap_8h.xml new file mode 100644 index 0000000..a5db7ea --- /dev/null +++ b/doc/xml/trap_8h.xml @@ -0,0 +1,96 @@ + + + + trap.h + src/sys/kernel/syscall.c + src/sys/kernel/syscall_new.c + + + + + + + + + + + + + + + + + + + trapframe + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TRAP_H +#define_TRAP_H + +structtrapframe{ +inttf_fs; +inttf_es; +inttf_ds; +inttf_edi; +inttf_esi; +inttf_ebp; +inttf_isp; +inttf_ebx; +inttf_edx; +inttf_ecx; +inttf_eax; +inttf_trapno; +/*belowportiondefinedin386hardware*/ +inttf_err; +inttf_eip; +inttf_cs; +inttf_eflags; +/*belowonlywhencrossingrings(e.g.usertokernel)*/ +inttf_esp; +inttf_ss; +}; + + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/tss_8h.xml b/doc/xml/tss_8h.xml new file mode 100644 index 0000000..8976d0a --- /dev/null +++ b/doc/xml/tss_8h.xml @@ -0,0 +1,580 @@ + + + + tss.h + ubixos/types.h + src/sys/include/ubixos/sched.h + src/sys/init/main.c + src/sys/kernel/bioscall.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i386_frame + i387Struct + tssStruct + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TSS_H +#define_TSS_H + +#include<ubixos/types.h> + +structtssStruct{ +shortback_link; +shortback_link_reserved; +longesp0; +shortss0; +shortss0_reserved; +longesp1; +shortss1; +shortss1_reserved; +longesp2; +shortss2; +shortss2_reserved; +longcr3; +longeip; +longeflags; +longeax,ecx,edx,ebx; +longesp; +longebp; +longesi; +longedi; +shortes; +shortes_reserved; +shortcs; +shortcs_reserved; +shortss; +shortss_reserved; +shortds; +shortds_reserved; +shortfs; +shortfs_reserved; +shortgs; +shortgs_reserved; +shortldt; +shortldt_reserved; +shorttrace_bitmap; +shortio_map; +chario_space[8192]; +}; + +structi387Struct{ +longcwd; +longswd; +longtwd; +longfip; +longfcs; +longfoo; +longfos; +longst_space[20];/*8*10bytesforeachFP-reg=80bytes*/ +}; + +structi386_frame{ +uInt32gs; +uInt32fs; +uInt32es; +uInt32ds; +uInt32ss; +uInt32edi; +uInt32esi; +uInt32ebp; +uInt32esp; +uInt32ebx; +uInt32edx; +uInt32ecx; +uInt32eax; +/* +uInt32vector; +uInt32error_code; +*/ +uInt32eip; +uInt32cs; +uInt32flags; +uInt32user_esp; +uInt32user_ss; +}; + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:53reddawg +nomessage + +Revision1.62004/07/2707:42:29reddawg +*burp* + +Revision1.52004/07/2707:40:41reddawg +doesitcompilenow? + +Revision1.42004/07/2707:27:50reddawg +chg:Iwasfooledthoughtwefailedbutitwasacastingissue + +Revision1.32004/07/2220:53:07reddawg +atkbd:fixedproblem + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/tty_8c.xml b/doc/xml/tty_8c.xml new file mode 100644 index 0000000..808413d --- /dev/null +++ b/doc/xml/tty_8c.xml @@ -0,0 +1,431 @@ + + + + tty.c + ubixos/tty.h + ubixos/kpanic.h + ubixos/spinlock.h + lib/kprintf.h + lib/kmalloc.h + sys/io.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int tty_change + (uInt16 tty) + tty_change + + uInt16 + tty + + + + + + + + + kpanic + memcpy + outportByte + terms + tty_termNode::tty_buffer + tty_foreground + TTY_MAX_TERMS + tty_termNode::tty_pointer + tty_termNode::tty_x + tty_termNode::tty_y + keyboardHandler + + + tty_term * + tty_term* tty_find + (uInt16 tty) + tty_find + + uInt16 + tty + + + + + + + + + terms + execFile + kprint + systemTask + + + int + int tty_init + () + tty_init + + + + + + + + inportByte + kmalloc + kpanic + kprintf + outportByte + terms + tty_termNode::tty_buffer + tty_termNode::tty_colour + tty_foreground + TTY_MAX_TERMS + tty_termNode::tty_pointer + tty_termNode::tty_x + tty_termNode::tty_y + + + int + int tty_print + (char *string, tty_term *term) + tty_print + + char * + string + + + tty_term * + term + + + + + + + + + outportByte + spinLock + spinUnlock + tty_termNode::tty_colour + tty_foreground + tty_termNode::tty_pointer + tty_spinLock + tty_termNode::tty_x + tty_termNode::tty_y + x20 + kprint + sysFwrite + + + + + tty_term * + tty_term* terms + + terms + 0x0 + + + + + + + + tty_change + tty_find + tty_init + + + tty_term * + tty_term* tty_foreground + + tty_foreground + 0x0 + + + + + + + + backSpace + getch + keyboardHandler + kpanic + kprint + sysFgetc + tty_change + tty_init + tty_print + + + spinLock_t + spinLock_t tty_spinLock + + tty_spinLock + SPIN_LOCK_INITIALIZER + + + + + + + + tty_print + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/tty.h> +#include<ubixos/kpanic.h> +#include<ubixos/spinlock.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<sys/io.h> +#include<string.h> + +statictty_term*terms=0x0; +tty_term*tty_foreground=0x0; +staticspinLock_ttty_spinLock=SPIN_LOCK_INITIALIZER; + +inttty_init(){ +inti=0x0; + +/*Allocatememoryforterminals*/ +terms=(tty_term*)kmalloc(sizeof(tty_term)*TTY_MAX_TERMS); +if(terms==0x0) +kpanic("tty_init:Failedtoallocatememory.File:%s,Line:%i\n",__FILE__,__LINE__); + +/*Setupalldefaultterminalinformation*/ +for(i=0;i<TTY_MAX_TERMS;i++){ +terms[i].tty_buffer=(char*)kmalloc(80*60*2); +if(terms[i].tty_buffer==0x0) +kpanic("tty_init:Failedtoallocatebuffermemory.File:%s,Line:%i\n",__FILE__,__LINE__); + +terms[i].tty_pointer=terms[i].tty_buffer;/*Setupttypointertointernalbuffer*/ +terms[i].tty_x=0x0;/*SetupdefaultXposition*/ +terms[i].tty_y=0x0;/*SetupdefaultYposition*/ +terms[i].tty_colour=0x0A+i;/*Setupdefaultttytextcolour*/ +} + +/*Readtty0currentposition(tomigratefromkprintf).*/ +outportByte(0x3D4,0x0e); +terms[0].tty_y=inportByte(0x3D5); +outportByte(0x3D4,0x0f); +terms[0].tty_x=inportByte(0x3D5); + + +/*Setuppointerfortheforegroundtty*/ +tty_foreground=&terms[0]; + +/*Setuptheforegroundttysinformation*/ +tty_foreground->tty_pointer=(char*)0xB8000; + +/*Returntoletkernelknowinitializationiscomplete*/ +kprintf("tty0-Initialized\n"); + +return(0x0); +} + + +/* +Thiswillchangethespecifiedtty.Itultimatelycopiesthescreen +totheforegroundbuffercopiesthenewttysbuffertothescreenand +adjustsacouplepointersandwearegoodtogo. +*/ +inttty_change(uInt16tty){ + +if(tty>TTY_MAX_TERMS) +kpanic("Error:Changingtoaninvalidtty.File:%s,Line:%i\n",__FILE__,__LINE__); + +/*Copydisplaybuffertottybuffer*/ +memcpy(tty_foreground->tty_buffer,(char*)0xB8000,(80*60*2)); + +/*Copynewttybuffertodisplaybuffer*/ +memcpy((char*)0xB8000,terms[tty].tty_buffer,(80*60*2)); + +/* +Setthetty_pointertotheinternalbuffersoIcancontinue +writingtowhatitbelievesisthescreen +*/ +tty_foreground->tty_pointer=tty_foreground->tty_buffer; + +terms[tty].tty_pointer=(char*)0xB8000; + +/*setnewforegroundtty*/ +tty_foreground=&terms[tty]; + +/*Adjustcursorwhenwechangeconsoles*/ +outportByte(0x3D4,0x0F); +outportByte(0x3D5,tty_foreground->tty_x); +outportByte(0x3D4,0x0E); +outportByte(0x3D5,tty_foreground->tty_y); + +return(0x0); +} + +inttty_print(char*string,tty_term*term){ +unsignedintbufferOffset=0x0,character=0x0,i=0x0; +spinLock(&tty_spinLock); + +/*WeNeedToGetTheYPosition*/ +bufferOffset=term->tty_y; +bufferOffset<<=8; + +/*ThenWeNeedToAddTheXPosition*/ +bufferOffset+=term->tty_x; +bufferOffset<<=1; + +while((character=*string++)){ +switch(character){ +case'\n': +bufferOffset=(bufferOffset/160)*160+160; +break; +default: +term->tty_pointer[bufferOffset++]=character; +term->tty_pointer[bufferOffset++]=term->tty_colour; +break; +}/*switch*/ + +/*CheckToSeeIfWeAreOutOfBounds*/ +if(bufferOffset>=160*25){ +for(i=0;i<160*24;i++){ +term->tty_pointer[i]=term->tty_pointer[i+160]; +} +for(i=0;i<80;i++){ +term->tty_pointer[(160*24)+(i*2)]=0x20; +term->tty_pointer[(160*24)+(i*2)+1]=term->tty_colour; +} +bufferOffset-=160; +} +} + +bufferOffset>>=1;/*Setthenewcursorposition*/ +term->tty_x=(bufferOffset&0xFF); +term->tty_y=(bufferOffset>>0x8); + +if(term==tty_foreground){ +outportByte(0x3D4,0x0f); +outportByte(0x3D5,term->tty_x); +outportByte(0x3D4,0x0e); +outportByte(0x3D5,term->tty_y); +} + +spinUnlock(&tty_spinLock); + +return(0x0); +} + +tty_term*tty_find(uInt16tty){ +return(&terms[tty]); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/tty_8h.xml b/doc/xml/tty_8h.xml new file mode 100644 index 0000000..63d00de --- /dev/null +++ b/doc/xml/tty_8h.xml @@ -0,0 +1,717 @@ + + + + tty.h + ubixos/types.h + src/sys/include/ubixos/init.h + src/sys/include/ubixos/sched.h + src/sys/isa/atkbd.c + src/sys/kernel/fork.c + src/sys/kernel/kpanic.c + src/sys/kernel/systemtask.c + src/sys/kernel/tty.c + src/sys/sys/video.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tty_termNode + + + TTY_MAX_TERMS + 5 + + + + + + + + tty_change + tty_init + + + + + tty_termNode + typedef struct tty_termNode tty_term + + tty_term + + + + + + + + + + + + int + int tty_change + (uInt16) + tty_change + + uInt16 + + + + + + + + + kpanic + memcpy + outportByte + terms + tty_termNode::tty_buffer + tty_foreground + TTY_MAX_TERMS + tty_termNode::tty_pointer + tty_termNode::tty_x + tty_termNode::tty_y + keyboardHandler + + + tty_term * + tty_term* tty_find + (uInt16) + tty_find + + uInt16 + + + + + + + + + terms + execFile + kprint + systemTask + + + int + int tty_init + () + tty_init + + + + + + + + inportByte + kmalloc + kpanic + kprintf + outportByte + terms + tty_termNode::tty_buffer + tty_termNode::tty_colour + tty_foreground + TTY_MAX_TERMS + tty_termNode::tty_pointer + tty_termNode::tty_x + tty_termNode::tty_y + + + int + int tty_print + (char *, tty_term *) + tty_print + + char * + + + tty_term * + + + + + + + + + outportByte + spinLock + spinUnlock + tty_termNode::tty_colour + tty_foreground + tty_termNode::tty_pointer + tty_spinLock + tty_termNode::tty_x + tty_termNode::tty_y + x20 + kprint + sysFwrite + + + + + tty_term * + tty_term* tty_foreground + + tty_foreground + + + + + + + + backSpace + getch + keyboardHandler + kpanic + kprint + sysFgetc + tty_change + tty_init + tty_print + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_TTY_H +#define_TTY_H + +#include<ubixos/types.h> + +#defineTTY_MAX_TERMS5 + +typedefstructtty_termNode{ +char*tty_buffer; +char*tty_pointer; +uInt8tty_colour; +uInt16tty_x; +uInt16tty_y; +pidTypeowner; +charstdin[512]; +intstdinSize; +}tty_term; + +inttty_init(); +inttty_change(uInt16); +tty_term*tty_find(uInt16); +inttty_print(char*,tty_term*); + +externtty_term*tty_foreground; + +#endif + +/*** +$Log$ +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.82004/09/0622:11:29reddawg +tty:noweachttyhasastdin.... + +Revision1.72004/08/1411:23:02reddawg +Changes + +Revision1.62004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce + +Revision1.52004/08/0905:40:31reddawg +tty:removedcurrentandmadeaforeground + +Revision1.42004/08/0622:32:16reddawg +UbixWorksAgain + +Revision1.22004/08/0408:17:57reddawg +tty:wehaveprimativettystryf1-f5soitiseasiertouseanddebug +ubixos + +Revision1.12004/08/0321:44:24reddawg +ttys + +END +***/ + + + + + diff --git a/doc/xml/ubixfs_8c.xml b/doc/xml/ubixfs_8c.xml new file mode 100644 index 0000000..b23e4e8 --- /dev/null +++ b/doc/xml/ubixfs_8c.xml @@ -0,0 +1,1141 @@ + + + + ubixfs.c + ubixfs/ubixfs.h + ubixfs/dirCache.h + vfs/vfs.h + ubixos/types.h + ubixos/sched.h + ubixos/kpanic.h + ubixos/exec.h + lib/kmalloc.h + lib/string.h + lib/kprintf.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + static int openFileUbixFS + (const char *file, fileDescriptor *fd) + openFileUbixFS + + const char * + file + + + fileDescriptor * + fd + + + + + + + + + assert + ubixFSInfo::dirCache + fileRead + fileWrite + cacheNode::info + kmalloc + kprintf + NULL + cacheNode::permissions + cacheNode::present + fileDescriptor::size + cacheNode::size + cacheNode::startCluster + UBIXFS_ALIGN + ubixfs_cacheFind + ubixfs_loadData + x1 + ubixfs_init + + + int + int readUbixFS + (fileDescriptor *fd, char *data, uInt32 offset, long size) + readUbixFS + + fileDescriptor * + fd + + + char * + data + + + uInt32 + offset + + + long + size + + + + + + + + + assert + buffer + fdEof + kpanic + NULL + fileDescriptor::size + addDirEntry + ubixfs_init + + + int + int ubixfs_init + () + ubixfs_init + + + + + + + + kpanic + NULL + openFileUbixFS + readUbixFS + ubixfs_initialize + ubixFSmkDir + ubixFSUnlink + vfsRegisterFS + writeUbixFS + x1 + + + int + int ubixfs_initialize + (struct vfs_mountPoint *mp) + ubixfs_initialize + + struct vfs_mountPoint * + mp + + + + + + + + + assert + cacheNode::attributes + ubixFSInfo::batEntries + ubixFSInfo::blockAllocationTable + vfs_mountPoint::device + device_node::devInfo + ubixFSInfo::dirCache + vfs_mountPoint::diskLabel + vfs_mountPoint::fsInfo + cacheNode::info + device_interface::info + kmalloc + kprintf + ubixDiskLabel::magicNum + ubixDiskLabel::magicNum2 + vfs_mountPoint::partition + ubixDiskLabel::partitions + ubixDiskLabel::ubixPartitions::pBatSize + cacheNode::permissions + cacheNode::present + device_interface::read + ubixFSInfo::rootDir + cacheNode::size + cacheNode::startCluster + UBIXDISKMAGIC + ubixfs_cacheNew + x1 + + + int + static int ubixfs_loadData + (fileDescriptor *fd, char *data, uInt32 size, uInt32 batIndex) + ubixfs_loadData + + fileDescriptor * + fd + + + char * + data + + + uInt32 + size + + + uInt32 + batIndex + + + + + + + + + assert + ubixFSInfo::blockAllocationTable + blockSize + blockAllocationTableEntry::nextBlock + NULL + blockAllocationTableEntry::realSector + UBIXFS_ALIGN + UBIXFS_BLOCKSIZE_BYTES + openFileUbixFS + + + void + void ubixFSUnlink + (char *path, struct vfs_mountPoint *mp) + ubixFSUnlink + + char * + path + + + struct vfs_mountPoint * + mp + + + + + + + + + ubixFSInfo::blockAllocationTable + vfs_mountPoint::device + device_node::devInfo + vfs_mountPoint::diskLabel + directoryEntry::fileName + vfs_mountPoint::fsInfo + device_interface::info + kmalloc + kprintf + vfs_mountPoint::partition + ubixDiskLabel::partitions + device_interface::read + ubixFSInfo::rootDir + strcmp + typeDeleted + device_interface::write + x1000 + ubixfs_init + + + int + int writeFileByte + (int ch, fileDescriptor *fd, long offset) + writeFileByte + + int + ch + + + fileDescriptor * + fd + + + long + offset + + + + + + + + + assert + ubixFSInfo::blockAllocationTable + fdOpen + fdRead + blockAllocationTableEntry::nextBlock + NULL + + + int + int writeUbixFS + (fileDescriptor *fd, char *data, long offset, long size) + writeUbixFS + + fileDescriptor * + fd + + + char * + data + + + long + offset + + + long + size + + + + + + + + + assert + ubixFSInfo::blockAllocationTable + blockSize + EOBC + directoryEntry::fileName + getFreeBlocks + kfree + kmalloc + blockAllocationTableEntry::nextBlock + NULL + blockAllocationTableEntry::realSector + directoryEntry::size + fileDescriptor::size + directoryEntry::startCluster + strcmp + x1000 + addDirEntry + ubixfs_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<ubixfs/ubixfs.h> +#include<ubixfs/dirCache.h> +#include<vfs/vfs.h> +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<ubixos/kpanic.h> +#include<ubixos/exec.h> +#include<lib/kmalloc.h> +#include<lib/string.h> +#include<lib/kprintf.h> +#include<assert.h> + +/*Staticdefines*/ +staticintubixfs_loadData(fileDescriptor*fd,char*data,uInt32size,uInt32batIndex); + + +staticintopenFileUbixFS(constchar*file,fileDescriptor*fd){ +//intx=0; +/*mjistructdirectoryEntry*dirEntry=(structdirectoryEntry*)kmalloc(0x4000);*/ +structcacheNode*cacheNode=NULL; +//structdirectoryEntry*dirEntry=NULL; +structubixFSInfo*fsInfo=fd->mp->fsInfo; + + + +/*kprintf("openFileUbixFS(%s),cwd:%s\n",file,_current->oInfo.cwd);*/ + +//if(fsInfo->dirCache==NULL)kprintf("dirCacheisnull!\n"); +assert(fd); +assert(fd->mp); +assert(fd->mp->device); +assert(fd->mp->device->devInfo); +assert(fd->mp->device->devInfo->read); +assert(fsInfo); +assert(fsInfo->dirCache); +assert(file); + +if((fd->mode&fileRead)==fileRead){ +do{ +cacheNode=ubixfs_cacheFind(fsInfo->dirCache,(char*)file); +if(cacheNode==NULL)return0; +if(cacheNode->present==1)break; +assert(cacheNode->size); +if(*cacheNode->size!=0&&cacheNode->info==NULL){ +//kprintf("cachingname(size):%s(%d)\n",cacheNode->name,*cacheNode->size); +cacheNode->info=kmalloc(UBIXFS_ALIGN(*cacheNode->size)); +fd->size=*cacheNode->size; +assert(cacheNode->startCluster); +ubixfs_loadData(fd, +cacheNode->info, +*cacheNode->size, +*cacheNode->startCluster); +cacheNode->present=1; +}/*if*/ +}while(1); + +assert(cacheNode); +if(cacheNode==NULL)return0;/*thisshouldbecaughtabove*/ + +fd->start=*cacheNode->startCluster; +fd->size=*cacheNode->size; +fd->perms=*cacheNode->permissions; +fd->cacheNode=cacheNode;/*DirectoryStartSector*/ +/* +if(cacheNode->size!=0x0&&cacheNode->info==NULL){ +cacheNode->info=kmalloc(UBIXFS_ALIGN(*cacheNode->size)); +ubixfs_loadData(fd,cacheNode->info,cacheNode->size,cacheNode->startCluster); +cacheNode->present=0x1; +} +*/ +return(0x1); +} +else +if((fd->mode&fileWrite)==fileWrite){ +kprintf("Ouch!infilewrite!\n"); +#if0 +fd->start=dirEntry->startCluster; +fd->size=dirEntry->size; +fd->perms=dirEntry->permissions; +//fd->dirBlock=0x0;/*DirectoryStartSector*/ +#endif +return(0x1); +} + +return0; + +} + +intwriteFileByte(intch,fileDescriptor*fd,longoffset){ + +intblockCount=0x0,batIndex=0x0,batIndexPrev=0x0; +uInt32i=0x0; +structdirectoryEntry*dirEntry=0x0; +structubixFSInfo*fsInfo=NULL; + +assert(fd); +assert(fd->mp); +assert(fd->mp->diskLabel); + +batIndexPrev=fd->start; +fsInfo=fd->mp->fsInfo; + +/*FindOutHowManyBlocksLongThisFileIs*/ +blockCount=(offset/4096); + +/*FindTheBlockIfItDoesn'tExistWeWillHaveToAllocateOne*/ +for(i=0x0;i<=fd->mp->diskLabel->partitions[fd->mp->partition].pBatSize; +i++){ +batIndex=fsInfo->blockAllocationTable[batIndexPrev].nextBlock; +if(batIndex==0x0){ +break; +} +batIndexPrev=batIndex; +} + +if((offset%4096==0)&&(fd->status==fdRead)){ +fd->status=fdOpen; +} + +/*IfbatIndex==0x0ThenWeMustAllocateANewBlock*/ +if(batIndex==0x0){ +for(i=1;i<fsInfo->batEntries;i++){ +if(fsInfo->blockAllocationTable[i].attributes==0x0){ +fsInfo->blockAllocationTable[batIndexPrev].nextBlock=i; +fsInfo->blockAllocationTable[batIndex].nextBlock=-1; +batIndex=i; +fd->start=i; +break; +} +} +/*fd->mp->drive->read(fd->mp->drive->driveInfoStruct,diskLabel->partitions[0].pOffset+blockAllocationTable[batIndex].realSector,8,fd->buffer);*/ +fd->buffer[offset-(blockCount*4096)]=ch; +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[batIndex].realSector,8); +} +else{ +if(fd->status!=fdRead){ +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[batIndex].realSector,8); +fd->status=fdRead; +} +fd->buffer[offset-(blockCount*4096)]=ch; +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[batIndex].realSector,8); +} +if((uInt32)offset>fd->size){ +fd->size=offset; +dirEntry=(structdirectoryEntry*)kmalloc(4096); +/* +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,dirEntry,(fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[fd->dirBlock].realSector),8); +*/ +for(i=0x0;i<(4096/sizeof(structdirectoryEntry));i++){ +if((int)!strcmp(dirEntry[i].fileName,fd->fileName)) +break; +} +dirEntry[i].size=fd->size; +/* +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,dirEntry,(fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[fd->dirBlock].realSector),8); +*/ +kfree(dirEntry); +} +return(ch); +} + +/*VerifiedFunctions*/ + + +intreadUbixFS(fileDescriptor*fd,char*data,uInt32offset,longsize){ +inti=0x0; +char*buffer=0x0; +structubixFSInfo*fsInfo=NULL; + +assert(fd); +assert(fd->mp); +assert(fd->mp->fsInfo); + +fsInfo=fd->mp->fsInfo; + +if(fd->cacheNode->present!=1) +kpanic("ERRORwithcachenode\n"); + +buffer=(char*)fd->cacheNode->info; + +for(i=0x0;i<size;i++){ +if(offset>fd->size){ +/*SetFileEOFIfThereIsNothingToDo*/ +/*data[i]='\0';Isthissafe?*/ +fd->status=fdEof; +return(size); +} +/*CopyDataFromBufferToData*/ +data[i]=buffer[i+offset]; +} +/*Return*/ +return(size); +} + + +/************************************************************************ + +Function:intwriteUbixFS(fileDescriptor*fd,char*data,longoffset,longsize) +Description:WriteDataIntoFile +Notes: + +************************************************************************/ +intwriteUbixFS(fileDescriptor*fd,char*data,longoffset,longsize){ +uInt32blockOffset=0x0; +uInt32blockIndex; +uInt32blockIndexPrev; +uInt32i=0x0; +structubixFSInfo*fsInfo=NULL; +structdirectoryEntry*dirEntry=0x0; + +assert(fd); +assert(fd->mp); +assert(fd->mp->fsInfo); +assert(fd->mp->device); +assert(fd->mp->device->devInfo); + +blockIndex=blockIndexPrev=fd->start; +fsInfo=fd->mp->fsInfo; + +blockOffset=(offset/0x1000); + +if(fd->size!=0x0){ +for(i=0x0;i<blockOffset;i++){ +blockIndex=fsInfo->blockAllocationTable[blockIndexPrev].nextBlock; +if((int)blockIndex==EOBC){ +blockIndex=getFreeBlocks(1,fd); +fsInfo->blockAllocationTable[blockIndexPrev].nextBlock=blockIndex; +fsInfo->blockAllocationTable[blockIndex].nextBlock=EOBC; +break; +} +blockIndexPrev=blockIndex; +} +} + +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[blockIndex].realSector,blockSize); +for(i=0x0;i<(uInt32)size;i++){ + +fd->buffer[(offset-(blockOffset*0x1000))]=data[i]; +offset++; + +if(offset%4096==0x0){ +blockOffset++; +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[blockIndex].realSector,blockSize); + +if(fsInfo->blockAllocationTable[blockIndex].nextBlock==EOBC){ +blockIndexPrev=blockIndex; +blockIndex=getFreeBlocks(1,fd); +fsInfo->blockAllocationTable[blockIndexPrev].nextBlock=blockIndex; +fsInfo->blockAllocationTable[blockIndex].nextBlock=EOBC; +} +else{ +blockIndex=fsInfo->blockAllocationTable[blockIndex].nextBlock; +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[blockIndex].realSector,blockSize); +} +} +} +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,fd->buffer,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[blockIndex].realSector,blockSize); + +if((uInt32)offset>fd->size){ +fd->size=offset; +dirEntry=(structdirectoryEntry*)kmalloc(4096); +/* +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,dirEntry,(fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[fd->dirBlock].realSector),blockSize); +*/ +for(i=0x0;i<(4096/sizeof(structdirectoryEntry));i++){ +if((int)!strcmp(dirEntry[i].fileName,fd->fileName)) +break; +} +dirEntry[i].size=fd->size; +dirEntry[i].startCluster=fd->start; +/* +fd->mp->device->devInfo->write(fd->mp->device->devInfo->info,dirEntry,(fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[fd->dirBlock].realSector),blockSize); +*/ +kfree(dirEntry); +} +/*Return*/ +return(size); +} + +voidubixFSUnlink(char*path,structvfs_mountPoint*mp){ +intx=0; +structdirectoryEntry*dirEntry=(structdirectoryEntry*)kmalloc(0x1000); +structubixFSInfo*fsInfo=mp->fsInfo; + +mp->device->devInfo->read(mp->device->devInfo->info,dirEntry,(mp->diskLabel->partitions[mp->partition].pOffset+fsInfo->blockAllocationTable[fsInfo->rootDir].realSector),8); + +for(x=0;(uInt32)x<(4096/sizeof(structdirectoryEntry));x++){ +if((int)!strcmp(dirEntry[x].fileName,path)){ +dirEntry[x].attributes|=typeDeleted; +dirEntry[x].fileName[0]='?'; +mp->device->devInfo->write(mp->device->devInfo->info,dirEntry,(mp->diskLabel->partitions[mp->partition].pOffset+fsInfo->blockAllocationTable[fsInfo->rootDir].realSector),8); +return; +} +} +kprintf("FileNotFound\n"); +return; +} + + +/***************************************************************************************** + +Function:static +intubixfs_loadData(fileDescriptor*fd,char*data,uInt32size,uInt32batIndex) + +Description:Thiswillloadthenodedatainfromthedisk + +Notes: +07/23/2004-Thisloadscompleteblocksfromdisksoitisalignedto0x1000notthe +actualfilesize + +*****************************************************************************************/ +staticintubixfs_loadData(fileDescriptor*fd,char*data,uInt32size,uInt32batIndex){ +uInt32i=0x0; + +structubixFSInfo*fsInfo=NULL; + +assert(fd); +assert(fd->mp); +assert(fd->mp->fsInfo); + +fsInfo=fd->mp->fsInfo; + +size=UBIXFS_ALIGN(size); +/*Loopbyblocksize*/ + +for(i=0x0;i<size;i+=(UBIXFS_BLOCKSIZE_BYTES)){ +/*Getnextblockifwearereadyforit*/ +if(i!=0x0) +batIndex=fsInfo->blockAllocationTable[batIndex].nextBlock; +/*Readdatainfrommedia*/ +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,data+i,fd->mp->diskLabel->partitions[fd->mp->partition].pOffset+fsInfo->blockAllocationTable[batIndex].realSector,blockSize); +} +/*Return*/ +return(0x0); +} + + +/***************************************************************************************** + +Function:intubixfs_initialize() + +Description:ThiswillinitializeamountpointitloadstheBATandCachestherootDir + +Notes: + +*****************************************************************************************/ +intubixfs_initialize(structvfs_mountPoint*mp){ +structubixFSInfo*fsInfo=0x0; + +assert(mp); +assert(mp->diskLabel); +assert(mp->diskLabel->partitions); + +mp->fsInfo=(structubixFSInfo*)kmalloc(sizeof(structubixFSInfo)); +assert(mp->fsInfo); + +fsInfo=mp->fsInfo; +fsInfo->rootDir=0x0;/*Rootdirectoryisalways0x0ontheUbixFS*/ + +/* +CheckthedisklabeltoensurethisisanUbixFSpartition +*/ +if((mp->diskLabel->magicNum==UBIXDISKMAGIC)&&(mp->diskLabel->magicNum2==UBIXDISKMAGIC)){ + +/*AllocatememoryforBAT*/ +fsInfo->blockAllocationTable=(structblockAllocationTableEntry*)kmalloc(mp->diskLabel->partitions[mp->partition].pBatSize*512); +assert(fsInfo->blockAllocationTable); + +/*SetuptheamountofBATentries*/ +fsInfo->batEntries=(mp->diskLabel->partitions[mp->partition].pBatSize*512)/sizeof(structblockAllocationTableEntry); + +/*ReadtheBATtomemory*/ +assert(mp->device->devInfo->read); +mp->device->devInfo->read(mp->device->devInfo->info, +fsInfo->blockAllocationTable, +mp->diskLabel->partitions[mp->partition].pOffset, +mp->diskLabel->partitions[mp->partition].pBatSize); + +/*Setuprootdirectorycache*/ +fsInfo->dirCache=ubixfs_cacheNew("/"); +assert(fsInfo->dirCache); +fsInfo->dirCache->info=(structdirectoryEntry*)kmalloc(0x4000);/*allocaterootdir*/ +fsInfo->dirCache->present=1; +fsInfo->dirCache->size=kmalloc(sizeof(fsInfo->dirCache->size)); +fsInfo->dirCache->startCluster=kmalloc(sizeof(fsInfo->dirCache->startCluster)); +fsInfo->dirCache->attributes=kmalloc(sizeof(fsInfo->dirCache->attributes)); +fsInfo->dirCache->permissions=kmalloc(sizeof(fsInfo->dirCache->permissions)); + +*fsInfo->dirCache->size=0x4000; +*fsInfo->dirCache->startCluster=fsInfo->rootDir; + +assert(fsInfo->dirCache->info); +/*Readrootdirinfromdiskitisalways0x4000byteslong*/ +mp->device->devInfo->read(mp->device->devInfo->info, +fsInfo->dirCache->info, +(mp->diskLabel->partitions[mp->partition].pOffset+fsInfo->blockAllocationTable[fsInfo->rootDir].realSector), +0x4000/512); + +/*Startourubixfs_threadtomanagethemountpoint*/ +/* +UBUdisablefornow +execThread(ubixfs_Thread,(uInt32)(kmalloc(0x2000)+0x2000),0x0); +*/ +kprintf("Offset:[%i],Partition:[%i]\n", +mp->diskLabel->partitions[mp->partition].pOffset,mp->partition); +kprintf("UbixFSInitialized\n"); +return(0x1); +} + +kprintf("NotavalidUbixFSdisk.\n"); +/*Return*/ +return(0x0); +} + +/***************************************************************************************** + +Function:intubixfs_init() + +Description:ThisisthemasterinitializationfortheUbixFileSystemitwillmakethe +OSUbixFSaware. +Itdoesnotinanywayshapeorformconnectamountpointanmediumthatis +uptotheubixfs_initialize()function + +Notes: + +*****************************************************************************************/ +intubixfs_init(){ +/*Setupourfilesystemstructure*/ +structfileSystemubixFileSystem= +{NULL,/*prev*/ +NULL,/*next*/ +(void*)ubixfs_initialize,/*vfsInitFS*/ +(void*)readUbixFS,/*vfsRead*/ +(void*)writeUbixFS,/*vfsWrite*/ +(void*)openFileUbixFS,/*vfsOpenFile*/ +(void*)ubixFSUnlink,/*vfsUnlink*/ +(void*)ubixFSmkDir,/*vfsMakeDir*/ +NULL,/*vfsRemDir*/ +NULL,/*vfsSync*/ +0/*vfsType*/ +};/*ubixFileSystem*/ + +/*AddUbixFS*/ +if(vfsRegisterFS(ubixFileSystem)!=0x0){ +kpanic("UnableToEnableUbixFS"); +return(0x1); +} + +/*Return*/ +return(0x0); +} + +/*** +$Log$ +Revision1.22006/12/0514:10:21reddawg +WorkignDistro + +Revision1.1.1.12006/06/0112:46:17reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:42reddawg +nomessage + +Revision1.442004/08/2622:51:19reddawg +TCAtouchedme:(ithinkhelikesmen.... + + +sched.h:kTask_taddedparentPid +endtask.c:fixedtermbacktoparentPid +exec.c:cleanedwarnings +fork.c:fixedtermtochildPid +sched.c:cleanupfordeadtasks +systemtask.c:cleanupdeadtasks +kmalloc.c:cleanedupwarnings +udp.c:cleanedupwarnings +bot.c:cleanedupwarnings +shell.c:cleanedupwarnings +tcpdump.c:tookadump +hd.c:cleanedupwarnings +ubixfs.c:stoppedprningdebuginfo + +Revision1.432004/08/1411:23:02reddawg +Changes + +Revision1.422004/08/0912:58:05reddawg +letmeknowwhenyougotthesurce + +Revision1.412004/08/0117:58:39flameshadow +chg:fixedstringallocationbuginubixfs_cacheNew() + +Revision1.402004/07/2817:07:29flameshadow +chg:re-addedmovingcachednodestothefrontofthelistwhenfound +add:addedanassert()inubixfs.c + +Revision1.392004/07/2719:24:31flameshadow +chg:reducedthenumberofdebuggingstatementsinthekernel. + +Revision1.382004/07/2712:02:01reddawg +chg:fixedmarksbugreadFiledidalookupwhichiswhyitlookedlikeitwaslooppingsomuch + +Revision1.372004/07/2709:05:43flameshadow +chg:fixedfilenotfoundbug.Stillcan'tfindloopingissue + +Revision1.362004/07/2704:05:20flameshadow +chg:kindafixedit.Addedbunchesofdebuginfo + +Revision1.352004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.342004/07/2423:04:44reddawg +Changes...markletmeknowifyoufaultatpid185whenyoutypestress + +Revision1.332004/07/2309:10:06reddawg +ubixfs:cleanedupsomefunctionsplayedwiththecachingabit +vfs:renamedabunchoffunctions +cleanedupafewmiscbugs + +Revision1.322004/07/2223:01:51reddawg +OkcheckinginbeforeIsleep + +Revision1.312004/07/2222:37:03reddawg +CachingisworkingnowtheFSisextremelyfastbutneedstobeoptimizedtodo32bitcopiesover8bit + +Revision1.302004/07/2219:01:59flameshadow +chg:moredirectoryandfilecaching + +Revision1.292004/07/2216:34:32flameshadow +add:fileanddircachingkindawork + +Revision1.282004/07/2122:07:18flameshadow +chg:renamedcachingfunctions(again) + +Revision1.272004/07/2121:08:05flameshadow +add:addedprovisionsforfilecaching + +Revision1.262004/07/2023:21:31flameshadow +syncing + +Revision1.252004/07/2021:39:53reddawg +ubixfs:doesproppercachingnowproblemwasyoudidnotseekrealSectorhowevertheosstartsbutIamgettingasegfaultcouldbefromanythinghaven'tlookedintoitrightquick + +Revision1.242004/07/2021:38:08flameshadow +trynow + + +Revision1.232004/07/2021:35:09reddawg +Letmecommitbeforewestarttooverlap + +Revision1.222004/07/2021:28:16flameshadow +oops + +Revision1.202004/07/2019:36:49reddawg +UBUTags + +Revision1.192004/07/2018:09:37flameshadow +add:directorycachingrelatedstuff + +Revision1.182004/07/1703:21:34flameshadow +chg:cleanedupcode;addedassert()statements + +Revision1.152004/07/1412:21:49reddawg +ubixfs:enableUbixFstoubixfs_init +ChangedStartupRoutines + +Revision1.142004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.132004/06/2818:12:44reddawg +Weneedthesefiles + +Revision1.122004/06/2811:57:58reddawg +FixingUpFilesystem + +Revision1.102004/06/0413:20:22reddawg +ubixFSmkDir():playedwithitabittoseeifitstillworked + +Revision1.92004/06/0410:19:42reddawg +notes:wecompileagain,thankg-danywaysiwasabouttocry + +Revision1.82004/06/0100:04:53reddawg +Trynowmark + +Revision1.72004/05/1915:20:06reddawg +Fixedreferenceproblemsduetochangesindrivesubsystem + +Revision1.62004/05/1904:07:43reddawg +kmalloc(size,pid)nomoreitisnokmalloc(size);thewayitshouldofbeen + +Revision1.52004/04/2915:45:19reddawg +Fixedsomebugssonowtheautomadeimageswillworkcorrectly + +Revision1.42004/04/2821:10:40reddawg +LotsOfchangestomakeitworkwithexistingos + +Revision1.32004/04/2813:33:09reddawg +OverhaultoubixfsandbootloaderandMBRtoworkwellwithourschema +nowBATanddirandfileentriesarealloffset64Sectorsfromthestartofthepartition + +Revision1.22004/04/2802:22:55reddawg +Thisisafiarlylargecommitbutwearestartingtousenewdrivermodel +allaround + +Revision1.1.1.12004/04/1512:07:08reddawg +UbixOSv1.0 + +Revision1.312004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + + diff --git a/doc/xml/ubixfs_8cpp.xml b/doc/xml/ubixfs_8cpp.xml new file mode 100644 index 0000000..d27e1d1 --- /dev/null +++ b/doc/xml/ubixfs_8cpp.xml @@ -0,0 +1,1135 @@ + + + + ubixfs.cpp + stddef.h + stdlib.h + unistd.h + string.h + assert.h + iostream + ubixfs.h + btree.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include<stddef.h> +#include<stdlib.h> +#include<unistd.h> +#include<string.h> +#include<assert.h> +#include<iostream> + +#include"ubixfs.h" +#include"btree.h" + +usingnamespacestd; + +UbixFS::UbixFS(void){ +device=NULL; +freeBlockList=NULL; +superBlock=NULL; +root=NULL; +}//UbixFS::UbixFS + + +UbixFS::UbixFS(device_t*dev){ +device=dev; +freeBlockList=NULL; +superBlock=NULL; +root=NULL; +}//UbixFS::UbixFS + +void +UbixFS::printSuperBlock(void){ +printf("superBlock->name...........%s\n",superBlock->name); +printf("superBlock->magic1.........%X\n",superBlock->magic1); +printf("superBlock->fsByteOrder....%d\n",superBlock->fsByteOrder); +printf("superBlock->blockSize......%d\n",superBlock->blockSize); +printf("superBlock->blockShift.....%d\n",superBlock->blockShift); +printf("superBlock->numBlocks......%lld\n",superBlock->numBlocks); +printf("superBlock->usedBlocks.....%lld\n",superBlock->usedBlocks); +printf("superBlock->batSectors.....%d\n",superBlock->batSectors); +printf("superBlock->inodeCount.....%d\n",superBlock->inodeCount); +printf("superBlock->magic2.........%X\n",superBlock->magic2); +printf("superBlock->blocksPerAG....%d\n",superBlock->blocksPerAG); +printf("superBlock->AGShift........%d\n",superBlock->AGShift); +printf("superBlock->numAGs.........%d\n",superBlock->numAGs); +printf("superBlock->lastUsedAG.....%d\n",superBlock->lastUsedAG); +printf("superBlock->flags..........%X\n",superBlock->flags); +printf("superBlock->magic3.........%X\n",superBlock->magic3); +return; +}//UbixFS::printSuperBlock + +int +UbixFS::vfs_init(void){ +assert(device); +size_tresult; +cout<<"vfs_init()"<<endl; +assert(device); + +if(device==NULL)return-1; +if(superBlock!=NULL)deletesuperBlock; +superBlock=newdiskSuperBlock; +assert(superBlock); +if(superBlock==NULL)return-1; + +//readinthesuperBlock.It'salwaysthelastblockonthepartition +cout<<"readinginsuperBlock"<<endl; +device->read(device,superBlock,device->sectors-1,1); +cout<<"done"<<endl; + +assert(superBlock->magic1==UBIXFS_MAGIC1); +assert(superBlock->magic2==UBIXFS_MAGIC2); +assert(superBlock->magic3==UBIXFS_MAGIC3); +assert(strcmp(superBlock->name,"UbixFS")==0); +assert((1<<superBlock->blockShift)==superBlock->blockSize); +assert((unsigned)(1<<superBlock->AGShift)==superBlock->blocksPerAG); +assert(superBlock->flags==UBIXFS_CLEAN); + +if(freeBlockList!=NULL)delete[]freeBlockList; +freeBlockList=newsignedchar[superBlock->batSectors*512]; +assert(freeBlockList); +memset(freeBlockList,0,superBlock->batSectors*512); + +device->read(device, +freeBlockList, +device->sectors-superBlock->batSectors-1, +superBlock->batSectors +);//device->read() + +root=newfileDescriptor; +assert(root); +memset(root,0,sizeof(fileDescriptor)); +cout<<"allocatingrootdirinode"<<endl; +root->inode=newubixfsInode; +memset(root->inode,0,sizeof(ubixfsInode)); +cout<<"rootdirinodestartingsector:"<< +((superBlock->rootDir.AG<<superBlock->AGShift) ++superBlock->rootDir.start)*(superBlock->blockSize/512) +<<endl; + +cout<<"readinginrootdirinode"<<endl; + +device->read(device, +root->inode, +((superBlock->rootDir.AG<<superBlock->AGShift) ++superBlock->rootDir.start)*(superBlock->blockSize/512), +sizeof(ubixfsInode)/512 +); +cout<<"done"<<endl; +ubixfsInode*rootInode=static_cast<ubixfsInode*>(root->inode); +assert(rootInode); + +/*thebTreeconstructornowloadsintheheader*/ + +rootInode->data.btPtr=newbTree(this,root); +rootInode->data.btPtr->Info(); +printSuperBlock(); +return0; +}//UbixFS::init + +int +UbixFS::vfs_format(device_t*dev){ +cout<<"vfs_format()"<<endl; +charsector[512]; +uInt32blocks,batSect,batSize; +if(dev==NULL)return-1; + +//zerooutthesector +memset(&sector,0x0,sizeof(sector)); + +//fillthedriveinwithzeroedoutsectors +cout<<"dev->sectors:"<<dev->sectors<<endl; +cout<<"clearingdevice..."; + +for(unsignedinti=0;i<dev->sectors;i++){ +dev->write(dev,&sector,i,1); +}//fori + +cout<<"done"<<endl; + +//allocateanewsuperBlockandclearit + +diskSuperBlock*sb=newdiskSuperBlock; +if(sb==NULL)return-1; +memset(sb,0,sizeof(diskSuperBlock)); + +//dev->sectorsisthenumberof512bytesectors + +blocks=(dev->sectors-1)/8;//4kblocks +batSize=(dev->sectors-1)%8;//remainder + +//computetheBATsize + +while((batSize*4096)<blocks){ +batSize+=8; +--blocks; +}//while + +//batSizeisinsectors +batSect=blocks*8; + +strcpy(sb->name,"UbixFS"); +sb->magic1=UBIXFS_MAGIC1; +sb->fsByteOrder=0; +sb->blockSize=4096; +sb->blockShift=12; +sb->numBlocks=blocks; +sb->usedBlocks=2;//rootdirtakestwoblocks(inode+bTreeheader) +sb->inodeCount=1; +sb->inodeSize=4096; +sb->magic2=UBIXFS_MAGIC2; +sb->blocksPerAG=2048; +sb->AGShift=11; +sb->numAGs=(sb->numBlocks+2047)/2048; +sb->lastUsedAG=0; + +//theBATexistsoutsideourofficialblockcount,sono +//entriesintheBATneedtobesetforit +sb->batSectors=batSize; + +sb->flags=0x434C454E;//CLEN +sb->logBlocks.AG=0; +sb->logBlocks.start=0; +sb->logBlocks.len=0; +sb->logStart=0; +sb->logEnd=0; +sb->magic3=UBIXFS_MAGIC3; +sb->indicies.AG=0; +sb->indicies.start=0; +sb->indicies.len=0; + +sb->rootDir.AG=0; +sb->rootDir.start=0; +sb->rootDir.len=1; + +//writeoutthesuperBlock + +dev->write(dev,sb,dev->sectors-1,1); + +//markthefirsttwo4kblocksused +memset(&sector,0,sizeof(sector)); +sector[0]=(1<<7)|(1<<6); + +//writeoutthefirstsectoroftheBAT + +dev->write(dev,&sector,batSect,1); +//cleartherest +sector[0]=0; + +//writeouttherestoftheBAT + +for(unsignedinti=1;i<batSize;i++){ +dev->write(dev,&sector,(batSect)+i,1); +}//fori + +/*allocatepartoftherootdir*/ + +//sanitychecks +assert(sb->blockSize); +assert((unsigned)sb->blockSize>=sizeof(bTreeHeader)); + +bTreeHeader*bth=newbTreeHeader; +assert(bth); +memset(bth,0,sizeof(bTreeHeader)); + +bth->firstDeleted=-1; +bth->firstNodeOffset=-1; +bth->treeDepth=1; +bth->treeWidth=0; +bth->treeLeafCount=0; + +/*createtherootdirinodehere*/ + +ubixfsInode*inode=newubixfsInode; +assert(inode); +if(inode==NULL)return-1; +memset(inode,0,sizeof(ubixfsInode)); + +inode->magic1=UBIXFS_INODE_MAGIC; + +//inodespointtothemselves +inode->inodeNum.AG=0; +inode->inodeNum.start=0; +inode->inodeNum.len=1; + +//rootdirhasnoparentdirectory +inode->parent.iAddr.AG=0; +inode->parent.iAddr.start=0; +inode->parent.iAddr.len=0; + +/*thisispartoftherootdirstructure(thebTreeHeader)*/ +inode->blocks.direct[0].AG=0; +inode->blocks.direct[0].start=1; +inode->blocks.direct[0].len=1; + +inode->blocks.maxDirectRange=sizeof(bTreeHeader); +inode->blocks.size=sizeof(bTreeHeader); + +strcpy(inode->name,"/"); +inode->uid=getuid(); +inode->gid=getgid(); +//inode->mode +inode->flags=INODE_DIRECTORY; +//inode->createTime +//inode->lastModifiedTime +//inode->type + +inode->attributes.AG=0; +inode->attributes.start=0; +inode->attributes.len=0; + +inode->inodeSize=sb->inodeSize; + +/* +*nextandprevareusedinmemorytoholdpointerstothenext/prev +*inodesinthisdir.Ondisktheymayhaveanothervalue,butfor +*nowtheyshouldbesettonull. +*/ + +inode->next.offset=0; +inode->prev.offset=0; + +//writeoutthe"root"dirinode + +dev->write(dev, +inode, +((inode->inodeNum.AG<<sb->AGShift)+ +inode->inodeNum.start)*(sb->blockSize/512), +sb->inodeSize/512 +);//dev->write + +//writeoutthe"root"dir + +dev->write(dev, +bth, +((inode->blocks.direct[0].AG<<sb->AGShift)+ +inode->blocks.direct[0].start)*(sb->blockSize/512), +sb->blockSize/512 +);//dev->write + +deleteinode; +deletebth; +deletesb; +cout<<"formatcomplete"<<endl; +return0; +}//UbixFS::vfs_format + +void* +UbixFS::vfs_mknod(constchar*path,mode_tmode){ +returnmknod(path,0,mode);//<-thisprobablyisn'tcorrect +}//UbixFS::vfs_mknod + +int +UbixFS::vfs_open(constchar*filename,fileDescriptor*fd,intflags,...){ +if(filename==NULL||fd==NULL)return-1; +flags=flags; +fd->inode=NULL; +fd->offset=0; +fd->size=0; +//lookupthefilehere +return0; +}//UbixFS::vfs_open + +size_t +UbixFS::vfs_read(fileDescriptor*fd,void*data,off_toffset,size_tsize){ + +unsignedinti; +off_tsum,startingBlock; +size_trunSize,sectorCount,totalSize,bSize;//blockSize +ubixfsInode*inode=NULL; + +if(fd==NULL||data==NULL)return~0; + +if(size==0)return0;//don'tfailifsizeis0? + +assert(device); +assert(superBlock); + +inode=static_cast<ubixfsInode*>(fd->inode); + +assert(inode); + +bSize=superBlock->blockSize; + +totalSize=sum=i=0; + +while(size>0){ + +/* +*placecheckheretoseewhichsetofblockswe'relookingthrough +*/ + +//scanthroughdirectblocks +do{ +if(offset>=sum&&offset<sum+inode->blocks.direct[i].len*bSize)break; + +sum+=inode->blocks.direct[i++].len*bSize; + +}while(i<NUM_DIRECT_BLOCKS); + +startingBlock=(inode->blocks.direct[i].AG<<superBlock->AGShift)+ +inode->blocks.direct[i].start+((offset-sum)/bSize); + +runSize=inode->blocks.direct[i].len*bSize; + +//startingBlockisin4kblocks +startingBlock*=(bSize/512); +//startingBlockisnowinsectors + +if(runSize>=size){ +runSize=size; +size=0; +}else{ +size-=runSize; +}//else + +sectorCount=runSize/512; + +cout<<"device->read(device,data,"<<startingBlock<<","; +cout<<sectorCount<<");"<<endl; + +device->read(device,data,startingBlock,sectorCount); + +(uInt8*)data+=runSize; +totalSize+=runSize; +}//while +returntotalSize; +}//UbixFS::vfs_read + +size_t +UbixFS::vfs_write(fileDescriptor*fd,void*data,off_toffset,size_tsize){ +//char*sector[512];//usedtopad +unsignedinti,whichBlocks; +off_tsum,startingBlock,EORPos,maxRange; +size_trunSize,runRemainder,sectorCount,totalSize,bSize;//blockSize +ubixfsInode*inode=NULL; +blockRunbr; + +if(fd==NULL||data==NULL)return~0; + +if(size==0)return0;//don'tfailifsizeis0? + +assert(device); +assert(superBlock); + +inode=static_cast<ubixfsInode*>(fd->inode); + +assert(inode); + +bSize=superBlock->blockSize; +assert(bSize!=0); + +totalSize=sum=i=whichBlocks=0; + +EORPos=offset+size;//computeEndOfRunPosition +maxRange=inode->blocks.maxDirectRange; + +if(inode->blocks.maxIndirectRange>maxRange){ +maxRange=inode->blocks.maxIndirectRange; +whichBlocks=1; +} + +if(inode->blocks.maxDoubleIndirectRange>maxRange){ +maxRange=inode->blocks.maxDoubleIndirectRange; +whichBlocks=2; +} + +if(EORPos>maxRange){ +/* +*Theoffset+sizeisgreaterthanthesizeofthefile,soweneedto +*extendoutthefile.Scanthroughthedirectblocks(FIXLATER) +*tofindoutwhereweneedtoextend +*/ +switch(whichBlocks){ +case0: +while(i<NUM_DIRECT_BLOCKS&&inode->blocks.direct[i].len!=0)++i; +//iholdswhichdirectblockwe'regoingtoaddto +break; +case1: +case2: +assert(false);//UNFINISHED +break; +default: +assert(false);//sanitycheck +}//switch + +/* +*NOTE:it'spossiblethatifwescanthroughtofindwherethe +*rungoes,wemightbeabletoextendthepreviousblockextent. +*Thiswillrequirethatwesetupbr.starttobewherewe'dliketo +*startlookingthroughthefreeblocklist,andthenmodifying +*getFreeBlock()tohonourthat. +*/ + +br.AG=inode->inodeNum.AG;//requestasaneallocationgroup +br.start=0;//getFreeBlock()willignorethis + +/* +*Thelengththatweneedisdeterminedbyhowmuchextraslackwe +*alreadyhaveinthepre-allocatedblocks. +*e.g.(assumes4kblocks) +*bSize=4096 +*maxRange=4096 +*size=3000 +*offset=3000 +*size=4000 +*[---datablock---][---datablock---]<----blocksondisk +*<-filedata-><----actualfilesize +*<-----><----slack +*[datablocksize]<----maxRange +*|<----offset +******************<----newdata +* +*Intheaboveexample,you'dneedatleastonemoreblocktowrite +*outthedata. +*((offset+size)-maxRange+(bSize-1))/bSize +*((3000+4000)-4096+(4095))/4096==1(roundeddown) +*Andthenweexpanditbyalittleextrasowedon'thavetokeep +*lookingformoreblocks.Currentlyweuse32kofslack(or8blocks) +*/ + +br.len=((EORPos-maxRange+(bSize-1))/bSize); + +if(br.len<8)br.len=8;//weallocate32kifthefileneedstogrow + +br=getFreeBlock(br); +assert(br.len>0); +switch(whichBlocks){ +case0: +inode->blocks.direct[i]=br; +inode->blocks.maxDirectRange+=br.len*bSize; +break; +case1: +assert(false);//UNFINISHED +inode->blocks.maxIndirectRange+=br.len*bSize; +break; +case2: +assert(false);//UNFINISHED +inode->blocks.maxDoubleIndirectRange+=br.len*bSize; +break; +default: +assert(false);//sanitycheck +}//switch + +inode->blocks.size=EORPos; +}//if + + +runRemainder=size%512; +size-=runRemainder; + +totalSize=sum=i=0; + +while(size>0){ + +/* +*placecheckheretoseewhichsetofblockswe'relookingthrough +*/ + +//scanthroughdirectblocks +do{ +if(offset>=sum&&offset<sum+inode->blocks.direct[i].len*bSize) +break; + +sum+=inode->blocks.direct[i++].len*bSize; + +}while(i<NUM_DIRECT_BLOCKS); + +startingBlock=(inode->blocks.direct[i].AG<<superBlock->AGShift)+ +inode->blocks.direct[i].start+((offset-sum)/bSize); + +runSize=inode->blocks.direct[i].len*bSize; + +//startingBlockisin4kblocks +startingBlock*=(bSize/512); +//startingBlockisnowinsectors + +if(runSize>=size){ +runSize=size; +size=0; +}else{ +size-=runSize; +}//else + +sectorCount=runSize/512; + +cout<<"device->write(device,data,"<<startingBlock<<","; +cout<<sectorCount<<");"<<endl; + +device->write(device,data,startingBlock,sectorCount); + +(uInt8*)data+=runSize; +totalSize+=runSize; +}//while + +assert(runRemainder!=0);//UNFINISHED +returntotalSize; +}//UbixFS::vfs_write + +int +UbixFS::vfs_stop(void){ +if(vfs_sync()!=0)return-1; + +//youmustdeletetherootdirfirst,incaseitneedsto +//stillwriteanythingout + +if(root!=NULL){ +ubixfsInode*rootInode=static_cast<ubixfsInode*>(root->inode); +deleterootInode->data.btPtr; +deleterootInode; +root->inode=NULL; + +}//if + +deleteroot; +delete[]freeBlockList; +deletesuperBlock; + +freeBlockList=NULL; +superBlock=NULL; +root=NULL; + +/* +*Thedeviceisn'tnullatthispoint,allowingforpeopletorestart +*themountpoint.Or,alternatively,toblowthingsup. +*/ + +return0; +}//UbixFS::vfs_stop + +int +UbixFS::vfs_sync(void){ +if(device==NULL||superBlock==NULL||freeBlockList==NULL)return-1; +device->write(device, +freeBlockList, +device->sectors-superBlock->batSectors-1, +superBlock->batSectors +); +device->write(device,superBlock,device->sectors-1,1); +return0; +}//UbixFS::vfs_sync + +void +UbixFS::setFreeBlock(blockRunibr){ +signedchar*ptr; + +if(superBlock==NULL||freeBlockList==NULL)return; +if(ibr.len==0)return; +ptr=freeBlockList+((ibr.AG<<superBlock->AGShift)>>3); +ptr+=ibr.start>>3; + +if(ibr.start%8!=0){ + +ibr.len-=ibr.start%8; +}//if + +}//UbixFS::setFreeBlock + +blockRun +UbixFS::getFreeBlock(blockRunibr){ +signedchar*ptr; +signedchar*holdPtr; +int32count,holdCount; + +blockRunobr={0,0,0};//outputblockrun + +//Checktomakesurenoneofthesearenull +if(device==NULL||freeBlockList==NULL||superBlock==NULL)returnobr; + +if(ibr.len==0)returnobr; + +if(ibr.len>superBlock->numBlocks)returnobr; + +if(ibr.len==1)returngetFreeBlock(ibr.AG); +/* +*countistheblockfromthebaseofthelist. +*Sincewe'regivenaspecificAGtolookthrough,westartthecountat +*AG<<AGShift,whereAGShiftistheshiftvalueofthenumberofblocks +*inanAG +*/ + +count=(ibr.AG<<superBlock->AGShift); + +/* +*ThefreeBlockListisabitmapofthefree/usedblocks. +*Used=onbit +*Unused=offbit +*Thereare8bitsperbyte(hopefully)andsowehavetodividethecount +*by8togetourstartingbyteoffsettolookfrom +*/ + +ptr=freeBlockList+(count>>3); + +rescan: +//lookforthefirstfree8blocks(thismaycreateholes) +while(*ptr!=0){ +++ptr; +count+=8; +if(count+8>superBlock->numBlocks){ +ptr=freeBlockList; +count=0; +}//if +}//while*ptr!=0 + +holdPtr=ptr; +holdCount=count; + +for(unsignedshorti=0;i<((ibr.len+7)/8);i++){ +++ptr; +count+=8; +if(count+8>superBlock->numBlocks){ +ptr=freeBlockList; +count=0; +gotorescan; +}//if +if(*ptr!=0)gotorescan; +}//fori + +//wehavefoundarangeofblocksthatworkforus + +obr.AG=holdCount/superBlock->blocksPerAG; +obr.start=holdCount%superBlock->blocksPerAG; +obr.len=ibr.len; + +for(unsignedshorti=0;i<(ibr.len/8);i++){ +*holdPtr=-1; +++holdPtr; +}//for + +if(ibr.len%8!=0)*holdPtr=(-1<<(8-(ibr.len%8))); + +superBlock->usedBlocks+=ibr.len;//incrementthenumberofusedblocks +returnobr; +}//UbixFS::getFreeBlock + +blockRun +UbixFS::getFreeBlock(uInt32AG){ +//AG==AllocationGroup +blockRunbr; +signedchar*ptr; +int32count; +int32subCount=128; + +br.AG=0; +br.start=0; +br.len=0; +//Checktomakesureneitherofthesearenull +if(device==NULL||freeBlockList==NULL||superBlock==NULL)returnbr; + +//Arethereanyblocksavailable? +if(superBlock->numBlocks==superBlock->usedBlocks)returnbr; + +/* +*countistheblockfromthebaseofthelist. +*Sincewe'regivenaspecificAGtolookthrough,westartthecountat +*AG<<AGShift,whereAGShiftistheshiftvalueofthenumberofblocks +*inanAG +*/ + +count=(AG<<superBlock->AGShift); + +/* +*ThefreeBlockListisabitmapofthefree/usedblocks. +*Used=onbit +*Unused=offbit +*Thereare8bitsperbyte(hopefully)andsowehavetodividethecount +*by8togetourstartingbyteoffsettolookfrom +*/ + +ptr=freeBlockList+(count>>3); + +//ScanthroughthefreeBlockList + +rescan: +while(*ptr==-1){ +++ptr; +count+=8; +if(count+8>superBlock->numBlocks)break; +}//while*ptr==-1 + +subCount=128; + +do{ +if((*ptr&subCount)==0)break; +subCount>>=1; +++count; +if(count==superBlock->numBlocks){ +count=0; +ptr=freeBlockList; +gotorescan; +}//if +}while(subCount>1); + +*ptr|=subCount;//markthisblockasused +++superBlock->usedBlocks;//incrementthenumberofusedblocks + +br.AG=count/superBlock->blocksPerAG; +br.start=count%superBlock->blocksPerAG; +br.len=1; +returnbr;//returntheallocatedblocknumber +}//Ubixfs::getFreeBlock + +uInt32 +UbixFS::getNextAG(void){ + +if(superBlock->lastUsedAG==superBlock->numAGs) +superBlock->lastUsedAG=0; +else +superBlock->lastUsedAG++; +returnsuperBlock->lastUsedAG; + +}//UbixFS::getNextAG + +/* +*UbixFS::getFreeBlock(void) +*uponsuccessreturnsafreeblockbasedonthenextAGafterthelastUsedAG +*failurereturns-1 +*/ + +blockRun +UbixFS::getFreeBlock(void){ +returngetFreeBlock(getNextAG()); +}//UbixFS::getFreeBlock + +blockRun +UbixFS::get8FreeBlocks(uInt32AG){ +//AG==AllocationGroup +blockRunbr; +signedchar*ptr; +signedchar*endPtr; +int32count; + +br.AG=0; +br.start=0; +br.len=0; + +if(device==NULL||freeBlockList==NULL||superBlock==NULL)returnbr; + +//Arethereanyblocksavailable? +if(superBlock->usedBlocks+8>superBlock->numBlocks)returnbr; + +/* +*countistheblockfromthebaseofthelist. +*Sincewe'regivenaspecificAGtolookthrough,westartthecountat +*AG<<AGShift,whereAGShiftistheshiftvalueofthenumberofblocks +*inanAG +*/ + +count=(AG<<superBlock->AGShift); + +ptr=freeBlockList+(count>>3); + +endPtr=freeBlockList+(superBlock->numBlocks>>3); + +boolsecondTime=false; +while(*ptr!=0){ +++ptr; +count+=8; +if(ptr==endPtr){ +if(secondTime) +returnbr; +else +secondTime=true; + +count=0; +ptr=freeBlockList; +}//if +}//while + +*ptr=-1;//mark8blocksastaken + +br.AG=count/superBlock->blocksPerAG; +br.start=count%superBlock->blocksPerAG; +br.len=8; +returnbr; +}//UbixFS::get8FreeBlocks + +void* +UbixFS::mknod(constchar*filename,ubixfsInode*parent,mode_tmode){ +ubixfsInode*inode=NULL; + +inode=newubixfsInode; +assert(inode); +if(inode==NULL)returnNULL; +memset(inode,0,sizeof(ubixfsInode)); + +inode->magic1=UBIXFS_INODE_MAGIC; + +/* +*inretrospect..I'mnotsurewhyparentwouldbenull..onlythe +*rootdirectorywouldhaveanullparent,butthat'smanuallyallocated +*invfs_format() +*/ + +if(parent==NULL){ +inode->inodeNum=getFreeBlock(); +inode->parent.iAddr.AG=0; +inode->parent.iAddr.start=0; +inode->parent.iAddr.len=0; +}else{ +inode->inodeNum=getFreeBlock(parent->inodeNum.AG); +inode->parent.iAddr=parent->inodeNum; +}//else + +strncpy(inode->name,filename,MAX_FILENAME_LENGTH); + +inode->uid=getuid(); +inode->gid=getgid(); +//inode->mode +inode->flags=mode; +//inode->createTime +//inode->lastModifiedTime +inode->inodeSize=superBlock->inodeSize; + +inode->attributes.AG=0; +inode->attributes.start=0; +inode->attributes.len=0; + +//inode->type + +/* +*nextandprevareusedinmemorytoholdpointerstothenext/prev +*inodesinthisdir.Ondisktheymayhaveanothervalue,butfor +*nowtheyshouldbesettonull. +*/ + +inode->next.offset=0; +inode->prev.offset=0; +inode->refCount=0; +++superBlock->inodeCount; +returninode; +}//UbixFS::mknod + +int +UbixFS::vfs_mkdir(constchar*path,mode_tmode){ +charname[MAX_FILENAME_LENGTH]; +unsignedintstart,end,len,nameStart; +ubixfsInode*dir=static_cast<ubixfsInode*>(root->inode); +ubixfsInode*inode=NULL; + +assert(path);//badinput:vfs_mkdir(NULL); +assert(*path);//badinput:vfs_mkdir(""); + +memset(&name,0,sizeof(name)); +//findthedirname +len=strlen(path); + +assert(path[0]=='/');//badinput:vfsisn'tdoingitsjob +assert(len>1);//badinput:mkdir/ + +//removetrailing"/"ifpresent +if(path[len-1]=='/')--len; + +assert(len>1);//badinput:mkdir// + +nameStart=len-1; + +assert(path[nameStart]!='/');//badinput:mkdir/a// + +/* +*we'reguaranteedbytheassert()abovethatthereis +*atleastone"/"beforeourlocation.Ifyouremovetheassert +*youmightneedtomakesurenameStartstaysabove0inthefollowing +*while +*/ + +while(path[nameStart]!='/')--nameStart; +++nameStart; +assert(len-nameStart>0); + +/*e.g. +*v---------------------start +*v------------------end +*v------nameStart +*/usr/local/data/dirname/<---ignorestrailing/ +*<---------23---------->len +*/ + +start=end=1;//skipleading/ +while(end<nameStart){ +do{++end;}while(path[end]!='/'); + +assert(end-start+1<sizeof(name)); +//thisisprobablywrong: +strncpy(name,&path[start],end-start+1); +cout<<name<<endl; +dir=dir->data.btPtr->Find(name); +assert(dir); +assert(dir->flags&INODE_DIRECTORY==INODE_DIRECTORY); +start=++end; +} + +strncpy(name,&path[nameStart],len-nameStart); +inode=(ubixfsInode*)mknod(name,dir,mode|INODE_DIRECTORY); + +/* +*keepinmindthatthereasonforpassinginthenameisbecause +*wethoughtaboutallowingkeynamestobedifferentfrominode +*names.Inretrospect,Idon'tthinkthat'sagoodideasinceadir +*listingwillprinttheactualdirnameinsteadof.and.. +*Thus:thefirstparameterofbtPtr->Insert()maygoaway. +*/ + +assert(dir->data.btPtr->Insert(inode->name,inode)); + +return0; +}//UbixFS::vfs_mkdir + +void +UbixFS::printFreeBlockList(uInt32AG){ +unsignedintj; +if(superBlock==NULL||freeBlockList==NULL)return; +printf("AG=%d\n",AG); +for(unsignedinti=0;i<superBlock->blocksPerAG/8;i++){ +j=128; +signedcharfoo=freeBlockList[(AG<<superBlock->AGShift)+i]; +while(j>0){ +if((foo&j)==j) +printf("1"); +else +printf("0"); +j>>=1; + +} +}//fori +printf("\n"); +return; +}//UbixFS::printFreeBlockList + +UbixFS::~UbixFS(void){ +delete[]freeBlockList; +return; +} + + + + diff --git a/doc/xml/ubixfsv2_2device_8h.xml b/doc/xml/ubixfsv2_2device_8h.xml new file mode 100644 index 0000000..101d2e9 --- /dev/null +++ b/doc/xml/ubixfsv2_2device_8h.xml @@ -0,0 +1,259 @@ + + + + device.h + sys/types.h + types.h + src/sys/ubixfsv2/fsAbstract.h + src/sys/ubixfsv2/main.cpp + src/sys/ubixfsv2/ramdrive.h + src/sys/ubixfsv2/ramdrive.cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + device_node + device_resource + device_t + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_DEVICE_H +#define_DEVICE_H + +//#include<ubixos/types.h> +#include<sys/types.h> +#include"types.h" + +structdevice_node{ +structdevice_node*prev; +structdevice_node*next; +structdevice_t*devInfo; +structdevice_resource*devRec; +chartype; +intminor; +}; + +structdevice_resource{ +uInt8irq; +}; + +typedefstructdevice_t{ +intmajor; +void*info; +uInt32sectors; +int(*read)(device_t*,void*,off_t,size_t); +int(*write)(device_t*,void*,off_t,size_t); +int(*reset)(void*); +int(*init)(device_t*); +void(*ioctl)(void*); +void(*stop)(void*); +void(*start)(void*); +void(*standby)(void*); +}; + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:44reddawg +nomessage + +Revision1.42004/09/2000:53:04flameshadow +chg:UbixFS::vfs_read()nowworksfordirectblockextents +chg:UbixFS::vfs_read()returns~0onerror,orthesizereadinonsuccess +chg:UbixFS::rootmemberisnowafileDescriptor +chg:UbixFS::vfs_init()createsafiledescriptorfortherootdir +chg:UbixFS::vfs_format()nowsetsallvaluesinthebTreeHeaderbeforewriting +chg:UbixFS::vfs_format()setstheinodemagicnumber +chg:device_t::read(device_t*,void*,off_t,size_t) +chg:device_t::write(device_t*,void*,off_t,size_t) +chg:vfs_abstract::vfs_read(fileDescriptor*,void*,off_t,size_t) +chg:vfs_abstract::vfs_write(fileDescriptor*,void*,off_t,size_t) +chg:ramDrive_read(device_t*dev,void*ptr,off_toffset,size_tlength) +chg:ramDrive_write(device_t*dev,void*ptr,off_toffset,size_tlength) + +Revision1.32004/09/1315:21:26flameshadow +add:ramdrive.h +chg:renameddevice_t.sizetosectors +chg:made#defineforsizeoframdisk +chg:calculatedsectorsoframdiskandstoredinthedevice_tstruct + +Revision1.22004/09/1122:05:59flameshadow +chg:modifiedUbixFS::vfs_format()toproperlyinitthedevice +chg:modifiedUbixFS::vfs_init()toverifythatit'saubixfspartition +add:addedBATblockRuninthesuperBlock + +Revision1.12004/09/1112:43:42flameshadow +add:device.h,types.h.Temporarilymovedcustomubixtypedefstotypes.h +(<ubixos/types.h>supercedesthisfilewhenthiscodeisincludedinto +thekernel) +chg:changeddev_ttodevice_interfacesoastonotconflictwithbsd/linux +definitions +chg:fixedupcompilerwarningsinbtree.cpp + +Revision1.142004/08/1500:33:02reddawg +Wowtheidedriverworksagain + +Revision1.132004/08/1421:56:44reddawg +Addedinitializedbytetothedevicesystemtomakeiteasytoaddchilddeviceswhichuseparenthardware. + +Revision1.122004/07/2110:02:09reddawg +devfs:renamedfunctions +devicesystem:renamedfunctions +fdc:fixedafewpotentialbugsandcleanedupsomeunusedvariables +strol:fixeddefinition +endtask:madeitprintoutfreepagedebuginfo +kmalloc:fixedahugememoryleakwehadsomeunhandleddescriptorinsertionsosomedescriptorswerelost +ld:fixedapointerconversion +file:cleanedupafewunusedvariables +sched:broketaskdeletion +kprintf:fixedogPrintfdefinition + +Revision1.112004/05/2202:40:04ionix + + +fixedtypoindevice.handinitializedpreviousindevice.c:) + +Revision1.102004/05/2202:34:03ionix + + +Addedproto + +Revision1.92004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + + diff --git a/doc/xml/ubixfsv2_2file_8h.xml b/doc/xml/ubixfsv2_2file_8h.xml new file mode 100644 index 0000000..79f5286 --- /dev/null +++ b/doc/xml/ubixfsv2_2file_8h.xml @@ -0,0 +1,146 @@ + + + + file.h + ubixfs.h + src/sys/ubixfsv2/fsAbstract.h + src/sys/ubixfsv2/ubixfs.h + src/sys/ubixfsv2/btree.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fileDescriptor + + + + + +#ifndefFILE_H +#defineFILE_H + +#include"ubixfs.h" + +typedefstructfileDescriptor{ +structfileDescriptor*prev; +structfileDescriptor*next; +void*inode; +off_toffset; +size_tsize; +}fileDescriptor; + +#endif/*!FILE_H*/ + + + + diff --git a/doc/xml/ubixfsv2_2types_8h.xml b/doc/xml/ubixfsv2_2types_8h.xml new file mode 100644 index 0000000..bb26e1e --- /dev/null +++ b/doc/xml/ubixfsv2_2types_8h.xml @@ -0,0 +1,190 @@ + + + + types.h + src/sys/ubixfsv2/ubixfs.h + src/sys/ubixfsv2/device.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + typedef int int32 + + int32 + + + + + + + + + + signed long long + typedef signed long long int64 + + int64 + + + + + + + + + + signed char + typedef signed char int8 + + int8 + + + + + + + + + + unsigned int + typedef unsigned int uInt32 + + uInt32 + + + + + + + + + + unsigned long long + typedef unsigned long long uInt64 + + uInt64 + + + + + + + + + + unsigned char + typedef unsigned char uInt8 + + uInt8 + + + + + + + + + + + + + + +#ifndefTYPES_H +#defineTYPES_H + +typedefsignedcharint8; +typedefunsignedcharuInt8; +typedefunsignedintuInt32; +typedefintint32; +typedefunsignedlonglonguInt64; +typedefsignedlonglongint64; + +#endif/*!TYPES_H*/ + + + + diff --git a/doc/xml/ubixfsv2_2ubixfs_8h.xml b/doc/xml/ubixfsv2_2ubixfs_8h.xml new file mode 100644 index 0000000..fe4b33c --- /dev/null +++ b/doc/xml/ubixfsv2_2ubixfs_8h.xml @@ -0,0 +1,525 @@ + + + + ubixfs.h + sys/types.h + unistd.h + fsAbstract.h + types.h + file.h + src/sys/ubixfsv2/btree.h + src/sys/ubixfsv2/file.h + src/sys/ubixfsv2/btree.cpp + src/sys/ubixfsv2/main.cpp + src/sys/ubixfsv2/ubixfs.cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + blockRun + dataStream + diskSuperBlock + UbixFS + ubixfsInode + uPtr + + + ATTR_INODE + 0x00000004 + + + + + + + + + + INODE_DELETED + 0x00000010 + + + + + + + + + + INODE_DIRECTORY + 0x00000002 + + + + + + + + UbixFS::vfs_format + UbixFS::vfs_mkdir + + + INODE_IN_USE + 0x00000001 + + + + + + + + + + INODE_LOGGED + 0x00000008 + + + + + + + + + + INODE_NO_CACHE + 0x00010000 + + + + + + + + + + INODE_WAS_WRITTEN + 0x00020000 + + + + + + + + + + MAX_FILENAME_LENGTH + 256 + + + + + + + + UbixFS::mknod + UbixFS::vfs_mkdir + + + NO_TRANSACTION + 0x00040000 + + + + + + + + + + NUM_DIRECT_BLOCKS + 64 + + + + + + + + UbixFS::vfs_read + UbixFS::vfs_write + + + PERMANENT_FLAGS + 0x0000ffff + + + + + + + + + + UBIXFS_CLEAN + 0x434C454E + + + + + + + + UbixFS::vfs_init + + + UBIXFS_DIRTY + 0x44495254 + + + + + + + + + + UBIXFS_INODE_MAGIC + 0x3bbe0ad9 + + + + + + + + UbixFS::mknod + UbixFS::vfs_format + + + UBIXFS_MAGIC1 + 0xA0A0A0A + + + + + + + + UbixFS::vfs_format + UbixFS::vfs_init + + + UBIXFS_MAGIC2 + 0xB0B0B0B + + + + + + + + UbixFS::vfs_format + UbixFS::vfs_init + + + UBIXFS_MAGIC3 + 0xC0C0C0C + + + + + + + + UbixFS::vfs_format + UbixFS::vfs_init + + + + + blockRun + typedef struct blockRun inodeAddr + + inodeAddr + + + + + + + + + + + + + + +#ifndefUBIXFS_H +#defineUBIXFS_H + +#include<sys/types.h> +#include<unistd.h> +#include"fsAbstract.h" +#include"types.h" +#include"file.h" + +#defineINODE_IN_USE0x00000001 +#defineINODE_DIRECTORY0x00000002 +#defineATTR_INODE0x00000004 +#defineINODE_LOGGED0x00000008 +#defineINODE_DELETED0x00000010 +#definePERMANENT_FLAGS0x0000ffff +#defineINODE_NO_CACHE0x00010000 +#defineINODE_WAS_WRITTEN0x00020000 +#defineNO_TRANSACTION0x00040000 + +#defineNUM_DIRECT_BLOCKS64 +#defineMAX_FILENAME_LENGTH256 + +#defineUBIXFS_MAGIC10xA0A0A0A +#defineUBIXFS_MAGIC20xB0B0B0B +#defineUBIXFS_MAGIC30xC0C0C0C +#defineUBIXFS_INODE_MAGIC0x3bbe0ad9 + +/*befsmagicnumbers +#defineSUPER_BLOCK_MAGIC10x42465331//BFS1 +#defineSUPER_BLOCK_MAGIC20xdd121031 +#defineSUPER_BLOCK_MAGIC30x15b6830e +*/ +#defineUBIXFS_CLEAN0x434C454E//CLEN +#defineUBIXFS_DIRTY0x44495254//DIRT + + +typedefstructblockRun{ +intAG__attribute__((packed)); +unsignedshortstart__attribute__((packed)); +unsignedshortlen__attribute__((packed)); +}inodeAddr; + +structbNode; +structubixfsInode; +classbTree; + +typedefunionuPtr{ +inodeAddriAddr; +bNode*bPtr; +bTree*btPtr; +ubixfsInode*iPtr; +void*vPtr; +off_toffset; +}; + +typedefstructdiskSuperBlock{ +charname[32]__attribute__((packed)); +int32magic1__attribute__((packed)); +int32fsByteOrder__attribute__((packed)); + +//blockSizeondisk(4096forUbixFSv2) +int32blockSize__attribute__((packed)); + +//numberofbitsneededtoshiftablocknumbertogetabyteaddress +uInt32blockShift__attribute__((packed)); + +off_tnumBlocks__attribute__((packed)); +off_tusedBlocks__attribute__((packed)); + +//BlockAllocationTable +uInt32batSectors__attribute__((packed)); + +uInt32inodeCount__attribute__((packed)); +uInt32inodeSize__attribute__((packed)); +uInt32magic2__attribute__((packed)); +uInt32blocksPerAG__attribute__((packed)); +uInt32AGShift__attribute__((packed)); +uInt32numAGs__attribute__((packed)); +uInt32lastUsedAG__attribute__((packed)); +//flagstellswhethertheFSisclean(0x434C454E)ordirty(0x44495954) +int32flags__attribute__((packed)); + +//journalinformation +blockRunlogBlocks__attribute__((packed)); +off_tlogStart__attribute__((packed)); +off_tlogEnd__attribute__((packed)); + +int32magic3__attribute__((packed)); + +//rootdiroftheSYScontainer +inodeAddrrootDir__attribute__((packed)); + +//indicies +inodeAddrindicies__attribute__((packed)); + +charpad[368]__attribute__((packed)); + +}diskSuperBlock; + +typedefstructdataStream{ +structblockRundirect[NUM_DIRECT_BLOCKS]__attribute__((packed)); +off_tmaxDirectRange__attribute__((packed)); +structblockRunindirect__attribute__((packed)); +off_tmaxIndirectRange__attribute__((packed)); +structblockRundouble_indirect__attribute__((packed)); +off_tmaxDoubleIndirectRange__attribute__((packed)); +off_tsize__attribute__((packed)); +}dataStream; + +typedefstructubixfsInode{ +int32magic1__attribute__((packed)); +inodeAddrinodeNum__attribute__((packed)); +charname[MAX_FILENAME_LENGTH]__attribute__((packed)); +uid_tuid__attribute__((packed)); +gid_tgid__attribute__((packed)); +int32mode__attribute__((packed)); +int32flags__attribute__((packed)); +//uInt64createTime__attribute__((packed)); +//uInt64lastModifiedTime__attribute__(packed)); +inodeAddrattributes__attribute__((packed)); +uInt32type__attribute__((packed)); +uInt32inodeSize__attribute__((packed)); +uPtrparent__attribute__((packed)); +uPtrnext__attribute__((packed)); +uPtrprev__attribute__((packed)); +uPtrdata__attribute__((packed)); +dataStreamblocks__attribute__((packed)); +uInt32refCount__attribute__((packed)); +charsmallData[3200]__attribute__((packed)); +}ubixfsInode; + +classUbixFS:publicvfs_abstract{ +protected: +signedchar*freeBlockList; +diskSuperBlock*superBlock; +fileDescriptor*root; + +blockRungetFreeBlock(blockRun); +blockRungetFreeBlock(uInt32); +blockRungetFreeBlock(void); +blockRunget8FreeBlocks(uInt32); +uInt32getNextAG(void); +void*mknod(constchar*,ubixfsInode*,mode_t); +voidprintSuperBlock(void); +voidprintFreeBlockList(uInt32); +voidsetFreeBlock(blockRun); +public: +UbixFS(void); +UbixFS(device_t*); +virtualintvfs_init(void); +virtualintvfs_format(device_t*); +virtualvoid*vfs_mknod(constchar*,mode_t); +virtualintvfs_mkdir(constchar*,mode_t); +virtualintvfs_open(constchar*,fileDescriptor*,int,...); +virtualsize_tvfs_read(fileDescriptor*,void*,off_t,size_t); +virtualsize_tvfs_write(fileDescriptor*,void*,off_t,size_t); +virtualintvfs_sync(void); +virtualintvfs_stop(void); +virtual~UbixFS(void); +friendclassbTree; +};//UbixFS + +#endif//!UBIXFS_H + + + + diff --git a/doc/xml/ubixfsv2_2vfs_8h.xml b/doc/xml/ubixfsv2_2vfs_8h.xml new file mode 100644 index 0000000..1493cd6 --- /dev/null +++ b/doc/xml/ubixfsv2_2vfs_8h.xml @@ -0,0 +1,78 @@ + + + + vfs.h + stdlib.h + stdio.h + src/sys/ubixfsv2/main.cpp + src/sys/ubixfsv2/vfs.cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiskFS + FileSystemAbstract + + + + + +#ifndefVFS_H +#defineVFS_H + +#include<stdlib.h> +#include<stdio.h> + +classFileSystemAbstract{ +protected: +public: +virtualintread(char*,long,long)=0; +virtualintwrite(char*,long,long)=0; +virtual~FileSystemAbstract(void){}; +};//FileSystemAbstract + +classDiskFS:publicFileSystemAbstract{ +protected: +FILE*diskFile; +public: +DiskFS(constchar*); +virtualintwrite(constvoid*,long,long); +virtualintread(void*,long,long); +virtual~DiskFS(void){}; +};//DiskFS + +#endif//!VFS_H + + + + diff --git a/doc/xml/ubixos_2init_8h.xml b/doc/xml/ubixos_2init_8h.xml new file mode 100644 index 0000000..d46e5d8 --- /dev/null +++ b/doc/xml/ubixos_2init_8h.xml @@ -0,0 +1,515 @@ + + + + init.h + vmm/vmm.h + vfs/vfs.h + isa/8259.h + sys/idt.h + ubixos/sched.h + isa/pit.h + isa/atkbd.h + ubixos/time.h + net/net.h + isa/ne2k.h + devfs/devfs.h + pci/pci.h + ubixfs/ubixfs.h + isa/fdc.h + ubixos/tty.h + ufs/ufs.h + ubixos/static.h + pci/hd.h + sys/kern_sysctl.h + ubixos/vitals.h + src/sys/init/main.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int(*) + typedef int(*) intFunctionPTR(void) + (void) + intFunctionPTR + + + + + + + + + + + + intFunctionPTR + intFunctionPTR init_tasks[] + [] + init_tasks + { + vmm_init, + static_constructors, + i8259_init, + idt_init, + vitals_init, + sysctl_init, + vfs_init, + sched_init, + pit_init, + atkbd_init, + time_init, + + + devfs_init, + + + + tty_init, + ufs_init, + initHardDisk, + } + + + + + + + + kmain + + + int + int init_tasksTotal + + init_tasksTotal + sizeof(init_tasks)/sizeof(intFunctionPTR) + + + + + + + + kmain + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_INIT_H +#define_INIT_H + +#include<vmm/vmm.h> +#include<vfs/vfs.h> +#include<isa/8259.h> +#include<sys/idt.h> +#include<ubixos/sched.h> +#include<isa/pit.h> +#include<isa/atkbd.h> +#include<ubixos/time.h> +#include<net/net.h> +#include<isa/ne2k.h> +#include<devfs/devfs.h> +#include<pci/pci.h> +#include<ubixfs/ubixfs.h> +#include<isa/fdc.h> +#include<ubixos/tty.h> +#include<ufs/ufs.h> +#include<ubixos/static.h> +#include<pci/hd.h> +#include<sys/kern_sysctl.h> +#include<ubixos/vitals.h> + +typedefint(*intFunctionPTR)(void); + +intFunctionPTRinit_tasks[]={ +vmm_init, +static_constructors, +i8259_init, +idt_init, +vitals_init, +sysctl_init, +vfs_init, +sched_init, +pit_init, +atkbd_init, +time_init, +//net_init, +//ne2k_init, +devfs_init, +//pci_init, +//ubixfs_init, +//fdc_init, +tty_init, +ufs_init, +initHardDisk, +}; + +intinit_tasksTotal=sizeof(init_tasks)/sizeof(intFunctionPTR); + +#endif + +/*** +END +***/ + + + + diff --git a/doc/xml/ubthread_8c.xml b/doc/xml/ubthread_8c.xml new file mode 100644 index 0000000..3e3584d --- /dev/null +++ b/doc/xml/ubthread_8c.xml @@ -0,0 +1,632 @@ + + + + ubthread.c + ubixos/ubthread.h + ubixos/exec.h + ubixos/sched.h + ubixos/time.h + ubixos/spinlock.h + ubixos/vitals.h + lib/kmalloc.h + lib/kprintf.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int ubthread_cond_destroy + (ubthread_cond_t *cond) + ubthread_cond_destroy + + ubthread_cond_t * + cond + + + + + + + + + kfree + sys_sem_free_ + + + int + int ubthread_cond_init + (ubthread_cond_t *cond, const uInt32 attr) + ubthread_cond_init + + ubthread_cond_t * + cond + + + const uInt32 + attr + + + + + + + + + ubthread_cond::id + kmalloc + ubthread_cond::locked + UNLOCKED + sys_sem_new_ + + + int + int ubthread_cond_signal + (ubthread_cond_t *cond) + ubthread_cond_signal + + ubthread_cond_t * + cond + + + + + + + + + ubthread_cond::locked + UNLOCKED + sys_sem_signal + + + int + int ubthread_cond_timedwait + (ubthread_cond_t *cond, ubthread_mutex_t *mutex, const struct timespec *abstime) + ubthread_cond_timedwait + + ubthread_cond_t * + cond + + + ubthread_mutex_t * + mutex + + + const struct timespec * + abstime + + + + + + + + + ubthread_mutex::locked + ubthread_cond::locked + mutex + sched_yield + systemVitals + vitalsStruct::sysUptime + UNLOCKED + cond_wait + + + int + int ubthread_cond_wait + (ubthread_cond_t *cond, ubthread_mutex_t *mutex) + ubthread_cond_wait + + ubthread_cond_t * + cond + + + ubthread_mutex_t * + mutex + + + + + + + + + ubthread_mutex::locked + LOCKED + ubthread_cond::locked + mutex + sched_yield + UNLOCKED + cond_wait + + + int + int ubthread_create + (kTask_t **thread, const uInt32 *attr, void(*tproc)(void), void *arg) + ubthread_create + + kTask_t ** + thread + + + const uInt32 * + attr + + + void(*)(void) + tproc + + + void * + arg + + + + + + + + + execThread + kmalloc + x2000 + sys_thread_new + + + int + int ubthread_mutex_destroy + (ubthread_mutex_t *mutex) + ubthread_mutex_destroy + + ubthread_mutex_t * + mutex + + + + + + + + + kfree + mutex + sys_sem_free_ + + + int + int ubthread_mutex_init + (ubthread_mutex_t *mutex, const uInt32 attr) + ubthread_mutex_init + + ubthread_mutex_t * + mutex + + + const uInt32 + attr + + + + + + + + + ubthread_mutex::id + kmalloc + ubthread_mutex::locked + mutex + UNLOCKED + sys_sem_new_ + + + int + int ubthread_mutex_lock + (ubthread_mutex_t *mutex) + ubthread_mutex_lock + + ubthread_mutex_t * + mutex + + + + + + + + + _current + taskStruct::id + kprintf + LOCKED + ubthread_mutex::locked + mutex + ubthread_mutex::pid + sys_arch_sem_wait + sys_sem_signal + + + int + int ubthread_mutex_unlock + (ubthread_mutex_t *mutex) + ubthread_mutex_unlock + + ubthread_mutex_t * + mutex + + + + + + + + + _current + taskStruct::id + ubthread_mutex::locked + mutex + ubthread_mutex::pid + UNLOCKED + sys_arch_sem_wait + sys_sem_signal + + + kTask_t * + kTask_t* ubthread_self + () + ubthread_self + + + + + + + + _current + current_thread + + + + + ubthread_cond_list * + struct ubthread_cond_list* conds + + conds + 0x0 + + + + + + + + + + ubthread_mutex_list * + struct ubthread_mutex_list* mutex + + mutex + 0x0 + + + + + + + + cond_wait + ubthread_cond_timedwait + ubthread_cond_wait + ubthread_mutex_destroy + ubthread_mutex_init + ubthread_mutex_lock + ubthread_mutex_unlock + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +/*Allthesemustbeconvertedtobedoneatomically*/ + +#include<ubixos/ubthread.h> +#include<ubixos/exec.h> +#include<ubixos/sched.h> +#include<ubixos/time.h> +#include<ubixos/spinlock.h> +#include<ubixos/vitals.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> + +structubthread_cond_list*conds=0x0; +structubthread_mutex_list*mutex=0x0; + +kTask_t*ubthread_self(){ +return(_current); +} + +intubthread_cond_init(ubthread_cond_t*cond,constuInt32attr){ +ubthread_cond_tubcond=kmalloc(sizeof(structubthread_cond)); +ubcond->id=(int)cond; +ubcond->locked=UNLOCKED; +*cond=ubcond; +return(0x0); +} + +intubthread_mutex_init(ubthread_mutex_t*mutex,constuInt32attr){ +ubthread_mutex_tubmutex=kmalloc(sizeof(structubthread_mutex)); +ubmutex->id=(int)mutex; +ubmutex->locked=UNLOCKED; +*mutex=ubmutex; +return(0x0); +} + +intubthread_cond_destroy(ubthread_cond_t*cond){ +kfree(*cond); +*cond=0x0; +return(0x0); +} + +intubthread_mutex_destroy(ubthread_mutex_t*mutex){ +kfree(*mutex); +*mutex=0x0; +return(0x0); +} + +intubthread_create(kTask_t**thread,constuInt32*attr,void(*tproc)(void),void*arg){ +*thread=(void*)execThread(tproc,(int)(kmalloc(0x2000)+0x2000),arg); +return(0x0); +} + +intubthread_mutex_lock(ubthread_mutex_t*mutex){ +ubthread_mutex_tubmutex=*mutex; +if(ubmutex->locked==LOCKED){ +kprintf("MutexAlreadyLockBy%xTryingToBeRelockedBy%x\n",ubmutex->pid,_current->id); +while(ubmutex->locked==LOCKED); +} +ubmutex->locked=LOCKED; +ubmutex->pid=_current->id; +return(0x0); +} + +intubthread_mutex_unlock(ubthread_mutex_t*mutex){ +ubthread_mutex_tubmutex=*mutex; +if(ubmutex->pid==_current->id){ +ubmutex->locked=UNLOCKED; +return(0x0); +} +else{ +//kprintf("TryingToUnlockMutexFromNoLockingThread\n"); +ubmutex->locked=UNLOCKED; +return(-1); +} +} + +intubthread_cond_timedwait(ubthread_cond_t*cond,ubthread_mutex_t*mutex,conststructtimespec*abstime){ +ubthread_cond_tubcond=*cond; +ubthread_mutex_tubmutex=*mutex; +uInt32enterTime=systemVitals->sysUptime+20; +while(enterTime>systemVitals->sysUptime){ +if(ubcond->locked==UNLOCKED)break; +sched_yield(); +} +ubmutex->locked=UNLOCKED; +return(0x0); +} + +intubthread_cond_wait(ubthread_cond_t*cond,ubthread_mutex_t*mutex){ +ubthread_cond_tubcond=*cond; +ubthread_mutex_tubmutex=*mutex; +while(ubcond->locked==LOCKED)sched_yield(); +ubmutex->locked=UNLOCKED; +return(0x0); +} + +intubthread_cond_signal(ubthread_cond_t*cond){ +ubthread_cond_tubcond=*cond; +ubcond->locked=UNLOCKED; +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/ubthread_8h.xml b/doc/xml/ubthread_8h.xml new file mode 100644 index 0000000..81448d5 --- /dev/null +++ b/doc/xml/ubthread_8h.xml @@ -0,0 +1,712 @@ + + + + ubthread.h + ubixos/types.h + ubixos/sched.h + ubixos/time.h + src/sys/include/ubixos/vitals.h + src/sys/kernel/ubthread.c + src/sys/net/net/sys_arch.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ubthread + ubthread_cond + ubthread_cond_list + ubthread_list + ubthread_mutex + ubthread_mutex_list + + + ETIMEDOUT + -1 + + + + + + + + cond_wait + + + LOCKED + 1 + + + + + + + + ubthread_cond_wait + ubthread_mutex_lock + + + UNLOCKED + 0 + + + + + + + + ubthread_cond_init + ubthread_cond_signal + ubthread_cond_timedwait + ubthread_cond_wait + ubthread_mutex_init + ubthread_mutex_unlock + + + + + ubthread_cond * + typedef struct ubthread_cond* ubthread_cond_t + + ubthread_cond_t + + + + + + + + + + ubthread_mutex * + typedef struct ubthread_mutex* ubthread_mutex_t + + ubthread_mutex_t + + + + + + + + + + ubthread * + typedef struct ubthread* ubthread_t + + ubthread_t + + + + + + + + + + + + int + int ubthread_cond_destroy + (ubthread_cond_t *cond) + ubthread_cond_destroy + + ubthread_cond_t * + cond + + + + + + + + + kfree + sys_sem_free_ + + + int + int ubthread_cond_init + (ubthread_cond_t *cond, const uInt32 attr) + ubthread_cond_init + + ubthread_cond_t * + cond + + + const uInt32 + attr + + + + + + + + + ubthread_cond::id + kmalloc + ubthread_cond::locked + UNLOCKED + sys_sem_new_ + + + int + int ubthread_cond_signal + (ubthread_cond_t *cond) + ubthread_cond_signal + + ubthread_cond_t * + cond + + + + + + + + + ubthread_cond::locked + UNLOCKED + sys_sem_signal + + + int + int ubthread_cond_timedwait + (ubthread_cond_t *cond, ubthread_mutex_t *mutex, const struct timespec *abstime) + ubthread_cond_timedwait + + ubthread_cond_t * + cond + + + ubthread_mutex_t * + mutex + + + const struct timespec * + abstime + + + + + + + + + ubthread_cond::locked + ubthread_mutex::locked + mutex + sched_yield + systemVitals + vitalsStruct::sysUptime + UNLOCKED + cond_wait + + + int + int ubthread_cond_wait + (ubthread_cond_t *cond, ubthread_mutex_t *mutex) + ubthread_cond_wait + + ubthread_cond_t * + cond + + + ubthread_mutex_t * + mutex + + + + + + + + + ubthread_cond::locked + LOCKED + ubthread_mutex::locked + mutex + sched_yield + UNLOCKED + cond_wait + + + int + int ubthread_create + (kTask_t **thread, const uInt32 *attr, void(*tproc)(void), void *arg) + ubthread_create + + kTask_t ** + thread + + + const uInt32 * + attr + + + void(*)(void) + tproc + + + void * + arg + + + + + + + + + execThread + kmalloc + x2000 + sys_thread_new + + + int + int ubthread_mutex_destroy + (ubthread_mutex_t *mutex) + ubthread_mutex_destroy + + ubthread_mutex_t * + mutex + + + + + + + + + kfree + mutex + sys_sem_free_ + + + int + int ubthread_mutex_init + (ubthread_mutex_t *mutex, const uInt32 attr) + ubthread_mutex_init + + ubthread_mutex_t * + mutex + + + const uInt32 + attr + + + + + + + + + ubthread_mutex::id + kmalloc + ubthread_mutex::locked + mutex + UNLOCKED + sys_sem_new_ + + + int + int ubthread_mutex_lock + (ubthread_mutex_t *mutex) + ubthread_mutex_lock + + ubthread_mutex_t * + mutex + + + + + + + + + _current + taskStruct::id + kprintf + ubthread_mutex::locked + LOCKED + mutex + ubthread_mutex::pid + sys_arch_sem_wait + sys_sem_signal + + + int + int ubthread_mutex_unlock + (ubthread_mutex_t *mutex) + ubthread_mutex_unlock + + ubthread_mutex_t * + mutex + + + + + + + + + _current + taskStruct::id + ubthread_mutex::locked + mutex + ubthread_mutex::pid + UNLOCKED + sys_arch_sem_wait + sys_sem_signal + + + kTask_t * + kTask_t* ubthread_self + () + ubthread_self + + + + + + + + _current + current_thread + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_UBTHREAD_H +#define_UBTHREAD_H + +#include<ubixos/types.h> +#include<ubixos/sched.h> +#include<ubixos/time.h> + +#defineETIMEDOUT-1 + +#defineLOCKED1 +#defineUNLOCKED0 + +typedefstructubthread*ubthread_t; +typedefstructubthread_cond*ubthread_cond_t; +typedefstructubthread_mutex*ubthread_mutex_t; + +structubthread{ +kTask_t*task; +}; + +structubthread_cond{ +intid; +uInt8locked; +}; + +structubthread_mutex{ +intid; +uInt8locked; +pidTypepid; +}; + +structubthread_list{ +structubthread_list*next; +ubthread_tthread; +}; + +structubthread_cond_list{ +structubthread_cond_list*next; +ubthread_cond_t*cond; +}; + +structubthread_mutex_list{ +structubthread_mutex_list*next; +ubthread_mutex_t*mutex; +}; + + +kTask_t*ubthread_self(); +intubthread_cond_init(ubthread_cond_t*cond,constuInt32attr); +intubthread_mutex_init(ubthread_mutex_t*mutex,constuInt32attr); +intubthread_cond_destroy(ubthread_cond_t*cond); +intubthread_mutex_destroy(ubthread_mutex_t*mutex); +intubthread_create(kTask_t**thread,constuInt32*attr,void(*tproc)(void),void*arg); +intubthread_mutex_lock(ubthread_mutex_t*mutex); +intubthread_mutex_unlock(ubthread_mutex_t*mutex); +intubthread_cond_timedwait(ubthread_cond_t*cond,ubthread_mutex_t*mutex,conststructtimespec*abstime); +intubthread_cond_wait(ubthread_cond_t*cond,ubthread_mutex_t*mutex); +intubthread_cond_signal(ubthread_cond_t*cond); + +#endif + +/*** +$Log$ +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.32004/09/0720:58:35reddawg +timetorollbackican'tthinkstraightbyfriday + +Revision1.22004/05/2115:20:00reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/udp_8h.xml b/doc/xml/udp_8h.xml new file mode 100644 index 0000000..7c96294 --- /dev/null +++ b/doc/xml/udp_8h.xml @@ -0,0 +1,623 @@ + + + + udp.h + net/arch.h + net/pbuf.h + net/ipv4/inet.h + net/ipv4/ip.h + net/err.h + src/sys/include/net/api.h + src/sys/include/net/api_msg.h + src/sys/net/api/tcpip.c + src/sys/net/netif/tcpdump.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + udp_hdr + udp_pcb + + + udp_flags + pcb + ((pcb)->flags) + + + + + + + + + + UDP_FLAGS_NOCHKSUM + 0x01 + + + + + + + + do_bind + do_connect + + + UDP_FLAGS_UDPLITE + 0x02 + + + + + + + + do_bind + do_connect + + + UDP_HLEN + 8 + + + + + + + + + + udp_setflags + pcb + f + ((pcb)->flags = (f)) + + + + + + + + do_bind + do_connect + + + + + err_t + err_t udp_bind + (struct udp_pcb *pcb, struct ip_addr *ipaddr, uInt16 port) + udp_bind + + struct udp_pcb * + pcb + + + struct ip_addr * + ipaddr + + + uInt16 + port + + + + + + + + + do_bind + + + err_t + err_t udp_connect + (struct udp_pcb *pcb, struct ip_addr *ipaddr, uInt16 port) + udp_connect + + struct udp_pcb * + pcb + + + struct ip_addr * + ipaddr + + + uInt16 + port + + + + + + + + + do_connect + + + void + void udp_init + (void) + udp_init + + void + + + + + + + + + tcpip_thread + + + void + void udp_input + (struct pbuf *p, struct netif *inp) + udp_input + + struct pbuf * + p + + + struct netif * + inp + + + + + + + + + + + uInt8 + uInt8 udp_lookup + (struct ip_hdr *iphdr, struct netif *inp) + udp_lookup + + struct ip_hdr * + iphdr + + + struct netif * + inp + + + + + + + + + + + udp_pcb * + struct udp_pcb* udp_new + (void) + udp_new + + void + + + + + + + + + do_bind + do_connect + + + void + void udp_recv + (struct udp_pcb *pcb, void(*recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, uInt16 port), void *recv_arg) + udp_recv + + struct udp_pcb * + pcb + + + void(*)(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, uInt16 port) + recv + + + void * + recv_arg + + + + + + + + + do_bind + do_connect + + + void + void udp_remove + (struct udp_pcb *pcb) + udp_remove + + struct udp_pcb * + pcb + + + + + + + + + do_delconn + + + err_t + err_t udp_send + (struct udp_pcb *pcb, struct pbuf *p) + udp_send + + struct udp_pcb * + pcb + + + struct pbuf * + p + + + + + + + + + do_send + + + + + udp_hdr + struct udp_hdr PACK_STRUCT_STRUCT + + PACK_STRUCT_STRUCT + + + + + + + + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__LWIP_UDP_H__ +#define__LWIP_UDP_H__ + +#include"net/arch.h" + +#include"net/pbuf.h" +//UBU +#include"net/ipv4/inet.h" +//UBU +#include"net/ipv4/ip.h" + +#include"net/err.h" + +#defineUDP_HLEN8 + +structudp_hdr{ +PACK_STRUCT_FIELD(uInt16src); +PACK_STRUCT_FIELD(uInt16dest);/*src/destUDPports*/ +PACK_STRUCT_FIELD(uInt16len); +PACK_STRUCT_FIELD(uInt16chksum); +}PACK_STRUCT_STRUCT; + +#defineUDP_FLAGS_NOCHKSUM0x01 +#defineUDP_FLAGS_UDPLITE0x02 + +structudp_pcb{ +structudp_pcb*next; + +structip_addrlocal_ip,remote_ip; +uInt16local_port,remote_port; + +uInt8flags; +uInt16chksum_len; + +void(*recv)(void*arg,structudp_pcb*pcb,structpbuf*p, +structip_addr*addr,uInt16port); +void*recv_arg; +}; + +/*Thefollowingfunctionsistheapplicationlayerinterfacetothe +UDPcode.*/ +structudp_pcb*udp_new(void); +voidudp_remove(structudp_pcb*pcb); +err_tudp_bind(structudp_pcb*pcb,structip_addr*ipaddr, +uInt16port); +err_tudp_connect(structudp_pcb*pcb,structip_addr*ipaddr, +uInt16port); +voidudp_recv(structudp_pcb*pcb, +void(*recv)(void*arg,structudp_pcb*upcb, +structpbuf*p, +structip_addr*addr, +uInt16port), +void*recv_arg); +err_tudp_send(structudp_pcb*pcb,structpbuf*p); + +#defineudp_flags(pcb)((pcb)->flags) +#defineudp_setflags(pcb,f)((pcb)->flags=(f)) + + +/*ThefollowingfunctionsisthelowerlayerinterfacetoUDP.*/ +uInt8udp_lookup(structip_hdr*iphdr,structnetif*inp); +voidudp_input(structpbuf*p,structnetif*inp); +voidudp_init(void); + + +#endif/*__LWIP_UDP_H__*/ + + + + + + diff --git a/doc/xml/udpecho_8c.xml b/doc/xml/udpecho_8c.xml new file mode 100644 index 0000000..bdcdd02 --- /dev/null +++ b/doc/xml/udpecho_8c.xml @@ -0,0 +1,373 @@ + + + + udpecho.c + ubixos/types.h + lib/kprintf.h + net/api.h + net/sys.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void udpecho_init + (void) + udpecho_init + + void + + + + + + + + + NULL + sys_thread_new + udpecho_thread + + + void + void udpecho_thread + (void *arg) + udpecho_thread + + void * + arg + + + + + + + + + ip_addr::addr + buffer + kprintf + netbuf_copy + netbuf_delete + netbuf_fromaddr + netbuf_fromport + netconn_bind + netconn_connect + netconn_new + netconn_recv + netconn_send + NETCONN_UDP + NULL + udpecho_init + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ + +#include<ubixos/types.h> +#include<lib/kprintf.h> + +#include"net/api.h" +#include"net/sys.h" + +/*-----------------------------------------------------------------------------------*/ +void +udpecho_thread(void*arg) +{ +staticstructnetconn*conn; +staticstructnetbuf*buf; +staticstructip_addr*addr; +staticunsignedshortport; +charbuffer[4096]; + +kprintf("1"); +conn=netconn_new(NETCONN_UDP); +kprintf("2"); +netconn_bind(conn,NULL,7); +kprintf("3"); + +while(1){ +kprintf("a"); +buf=netconn_recv(conn); +kprintf("b"); +addr=netbuf_fromaddr(buf); +kprintf("c"); +port=netbuf_fromport(buf); +kprintf("d"); +netconn_connect(conn,addr,port); +kprintf("e"); +netconn_send(conn,buf); +kprintf("f"); +netbuf_copy(buf,buffer,sizeof(buffer)); +kprintf("got%s\n",buffer); +netbuf_delete(buf); +kprintf("g"); +} +} +/*-----------------------------------------------------------------------------------*/ +void +udpecho_init(void) +{ +sys_thread_new(udpecho_thread,NULL); +} + + + + diff --git a/doc/xml/udpecho_8h.xml b/doc/xml/udpecho_8h.xml new file mode 100644 index 0000000..97813be --- /dev/null +++ b/doc/xml/udpecho_8h.xml @@ -0,0 +1,74 @@ + + + + udpecho.h + + + void + void udpecho_init + (void) + udpecho_init + + void + + + + + + + + + NULL + sys_thread_new + udpecho_thread + + + + + + + +/* +*Copyright(c)2001,SwedishInstituteofComputerScience. +*Allrightsreserved. +* +*Redistributionanduseinsourceandbinaryforms,withorwithout +*modification,arepermittedprovidedthatthefollowingconditions +*aremet: +*1.Redistributionsofsourcecodemustretaintheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimer. +*2.Redistributionsinbinaryformmustreproducetheabovecopyright +*notice,thislistofconditionsandthefollowingdisclaimerinthe +*documentationand/orothermaterialsprovidedwiththedistribution. +*3.NeitherthenameoftheInstitutenorthenamesofitscontributors +*maybeusedtoendorseorpromoteproductsderivedfromthissoftware +*withoutspecificpriorwrittenpermission. +* +*THISSOFTWAREISPROVIDEDBYTHEINSTITUTEANDCONTRIBUTORS``ASIS''AND +*ANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THE +*IMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSE +*AREDISCLAIMED.INNOEVENTSHALLTHEINSTITUTEORCONTRIBUTORSBELIABLE +*FORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIAL +*DAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODS +*ORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION) +*HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICT +*LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGINANYWAY +*OUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOF +*SUCHDAMAGE. +* +*ThisfileispartofthelwIPTCP/IPstack. +* +*Author:AdamDunkels<adam@sics.se> +* +*$Id$ +*/ +#ifndef__UDPECHO_H__ +#define__UDPECHO_H__ + +voidudpecho_init(void); + +#endif/*__UDPECHO_H__*/ + + + + diff --git a/doc/xml/ufs_8c.xml b/doc/xml/ufs_8c.xml new file mode 100644 index 0000000..b92aad1 --- /dev/null +++ b/doc/xml/ufs_8c.xml @@ -0,0 +1,900 @@ + + + + ufs.c + vfs/vfs.h + ufs/ufs.h + ufs/ffs.h + lib/kprintf.h + lib/kmalloc.h + ubixos/kpanic.h + lib/string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DBPERVBLK + (VBLKSIZE / DEV_BSIZE) + + + + + + + + fsread + + + DIP + field + fs->fs_magic == FS_UFS1_MAGIC ? dp1.field : dp2.field + + + + + + + + fsread + + + INDIRPERVBLK + fs + (NINDIR(fs) / ((fs)->fs_bsize >> VBLKSHIFT)) + + + + + + + + fsread + + + INO_TO_VBA + fs + ipervblk + x + (fsbtodb(fs, cgimin(fs, ino_to_cg(fs, x))) + \ + (((x) % (fs)->fs_ipg) / (ipervblk) * DBPERVBLK)) + + + + + + + + fsread + + + INO_TO_VBO + ipervblk + x + ((x) % ipervblk) + + + + + + + + fsread + + + INOPB + fs + ((fs)->fs_inopb) + + + + + + + + + + IPERVBLK + fs + (INOPB(fs) / ((fs)->fs_bsize >> VBLKSHIFT)) + + + + + + + + fsread + + + VBLKMASK + (VBLKSIZE - 1) + + + + + + + + fsread + + + VBLKSHIFT + 12 + + + + + + + + + + VBLKSIZE + (1 << VBLKSHIFT) + + + + + + + + + + + + int + static int dskread + (void *buf, u_int64_t block, size_t count, fileDescriptor *fd) + dskread + + void * + buf + + + u_int64_t + block + + + size_t + count + + + fileDescriptor * + fd + + + + + + + + + fsread + + + __inline int + static __inline int fsfind + (const char *name, ino_t *ino, fileDescriptor *fd) + fsfind + + const char * + name + + + ino_t * + ino + + + fileDescriptor * + fd + + + + + + + + + dirent::d_fileno + dirent::d_name + dirent::d_reclen + dirent::d_type + DEV_BSIZE + fsread + fileDescriptor::offset + strcmp + lookup + + + ssize_t + static ssize_t fsread + (ino_t inode, void *buf, size_t nbyte, fileDescriptor *fd) + fsread + + ino_t + inode + + + void * + buf + + + size_t + nbyte + + + fileDescriptor * + fd + + + + + + + + + blkoff + DBPERVBLK + DEV_BSHIFT + DEV_BSIZE + ufs2_dinode::di_db + ufs2_dinode::di_ib + ufs2_dinode::di_size + DIP + dskread + fs::fs_magic + FS_UFS1_MAGIC + FS_UFS2_MAGIC + fsbtodb + INDIRPERVBLK + INO_TO_VBA + INO_TO_VBO + IPERVBLK + kprintf + lblkno + MAXBSIZE + memcpy + NDADDR + NINDIR + fileDescriptor::offset + sblksize + sblock_try + fileDescriptor::size + VBLKMASK + VBLKSHIFT + VBLKSIZE + fsfind + ufs_openFile + ufs_readFile + + + ino_t + static ino_t lookup + (const char *path, fileDescriptor *fd) + lookup + + const char * + path + + + fileDescriptor * + fd + + + + + + + + + DT_DIR + DT_REG + fsfind + kprintf + MAXNAMLEN + memcpy + name + ROOTINO + ufs_openFile + + + int + int ufs_init + () + ufs_init + + + + + + + + kpanic + NULL + ufs_initialize + ufs_openFile + ufs_readFile + ufs_writeFile + vfsRegisterFS + x1 + + + int + int ufs_initialize + (struct vfs_mountPoint *mp) + ufs_initialize + + struct vfs_mountPoint * + mp + + + + + + + + + x1 + + + int + static int ufs_openFile + (const char *file, fileDescriptor *fd) + ufs_openFile + + const char * + file + + + fileDescriptor * + fd + + + + + + + + + fsread + kmalloc + lookup + fileDescriptor::offset + x1 + ufs_init + + + int + int ufs_readFile + (fileDescriptor *fd, char *data, uInt32 offset, long size) + ufs_readFile + + fileDescriptor * + fd + + + char * + data + + + uInt32 + offset + + + long + size + + + + + + + + + fsread + ufs_init + + + int + int ufs_writeFile + (fileDescriptor *fd, char *data, uInt32 offset, long size) + ufs_writeFile + + fileDescriptor * + fd + + + char * + data + + + uInt32 + offset + + + long + size + + + + + + + + + kprintf + ufs_init + + + + + int + int sblock_try[] + [] + sblock_try + SBLOCKSEARCH + + + + + + + + fsread + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vfs/vfs.h> +#include<ufs/ufs.h> +#include<ufs/ffs.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<ubixos/kpanic.h> +#include<lib/string.h> + +#defineVBLKSHIFT12 +#defineVBLKSIZE(1<<VBLKSHIFT) +#defineVBLKMASK(VBLKSIZE-1) +#defineDBPERVBLK(VBLKSIZE/DEV_BSIZE) +#defineINDIRPERVBLK(fs)(NINDIR(fs)/((fs)->fs_bsize>>VBLKSHIFT)) +#defineIPERVBLK(fs)(INOPB(fs)/((fs)->fs_bsize>>VBLKSHIFT)) +#defineINOPB(fs)((fs)->fs_inopb) +#defineINO_TO_VBA(fs,ipervblk,x)\ +(fsbtodb(fs,cgimin(fs,ino_to_cg(fs,x)))+\ +(((x)%(fs)->fs_ipg)/(ipervblk)*DBPERVBLK)) +#defineINO_TO_VBO(ipervblk,x)((x)%ipervblk) + + +staticintdskread(void*buf,u_int64_tblock,size_tcount,fileDescriptor*fd){ +fd->mp->device->devInfo->read(fd->mp->device->devInfo->info,buf,block,count); +return(0x0); +} + +//structdmadat{ +//charblkbuf[VBLKSIZE];/*filesystemblocks*/ +//charindbuf[VBLKSIZE];/*indirblocks*/ +//charsbbuf[SBLOCKSIZE];/*superblock*/ +//charsecbuf[DEV_BSIZE];/*forMBR/disklabel*/ +//}; +//staticstructdmadat*dmadat; + +//staticintls,dsk_meta; + +staticintsblock_try[]=SBLOCKSEARCH; + +#ifdefined(UFS2_ONLY) +#defineDIP(field)dp2.field +#elifdefined(UFS1_ONLY) +#defineDIP(field)dp1.field +#else +#defineDIP(field)fs->fs_magic==FS_UFS1_MAGIC?dp1.field:dp2.field +#endif + + +staticssize_tfsread(ino_tinode,void*buf,size_tnbyte,fileDescriptor*fd){ +#ifndefUFS2_ONLY +staticstructufs1_dinodedp1; +#endif +#ifndefUFS1_ONLY +staticstructufs2_dinodedp2; +#endif +staticino_tinomap; +char*blkbuf; +void*indbuf; +structfs*fs; +char*s; +size_tn,nb,size,off,vboff; +ufs_lbn_tlbn; +ufs2_daddr_taddr,vbaddr; +staticufs2_daddr_tblkmap,indmap; +u_intu; + +blkbuf=fd->dmadat->blkbuf; +indbuf=fd->dmadat->indbuf; +fs=(structfs*)fd->dmadat->sbbuf; +if(!fd->dsk_meta){ +inomap=0; +for(n=0;sblock_try[n]!=-1;n++){ +if(dskread(fs,sblock_try[n]/DEV_BSIZE,16,fd)) +return-1; +if(( +#ifdefined(UFS1_ONLY) +fs->fs_magic==FS_UFS1_MAGIC +#elifdefined(UFS2_ONLY) +(fs->fs_magic==FS_UFS2_MAGIC&& +fs->fs_sblockloc==sblock_try[n]) +#else +fs->fs_magic==FS_UFS1_MAGIC|| +(fs->fs_magic==FS_UFS2_MAGIC&& +fs->fs_sblockloc==sblock_try[n]) +#endif +)&& +fs->fs_bsize<=MAXBSIZE&& +fs->fs_bsize>=sizeof(structfs)) +break; +} +if(sblock_try[n]==-1){ +kprintf("Notufs\n"); +return-1; +} +fd->dsk_meta++; +} +if(!inode) +return0; +if(inomap!=inode){ +n=IPERVBLK(fs); +if(dskread(blkbuf,INO_TO_VBA(fs,n,inode),DBPERVBLK,fd)) +return-1; +n=INO_TO_VBO(n,inode); +#ifdefined(UFS1_ONLY) +dp1=((structufs1_dinode*)blkbuf)[n]; +#elifdefined(UFS2_ONLY) +dp2=((structufs2_dinode*)blkbuf)[n]; +#else +if(fs->fs_magic==FS_UFS1_MAGIC) +dp1=((structufs1_dinode*)blkbuf)[n]; +else +dp2=((structufs2_dinode*)blkbuf)[n]; +#endif +inomap=inode; +fd->offset=0; +blkmap=indmap=0; +} +s=buf; +size=DIP(di_size); +fd->size=size; +//kprintf("Size:[%i]\n",size); +n=size-fd->offset; +if(nbyte>n) +nbyte=n; +nb=nbyte; +while(nb){ +lbn=lblkno(fs,fd->offset); +off=blkoff(fs,fd->offset); +if(lbn<NDADDR){ +addr=DIP(di_db[lbn]); +}elseif(lbn<NDADDR+NINDIR(fs)){ +n=INDIRPERVBLK(fs); +addr=DIP(di_ib[0]); +u=(u_int)(lbn-NDADDR)/(n*DBPERVBLK); +vbaddr=fsbtodb(fs,addr)+u; +if(indmap!=vbaddr){ +if(dskread(indbuf,vbaddr,DBPERVBLK,fd)) +return-1; +indmap=vbaddr; +} +n=(lbn-NDADDR)&(n-1); +#ifdefined(UFS1_ONLY) +addr=((ufs1_daddr_t*)indbuf)[n]; +#elifdefined(UFS2_ONLY) +addr=((ufs2_daddr_t*)indbuf)[n]; +#else +if(fs->fs_magic==FS_UFS1_MAGIC) +addr=((ufs1_daddr_t*)indbuf)[n]; +else +addr=((ufs2_daddr_t*)indbuf)[n]; +#endif +}else{ +return-1; +} +vbaddr=fsbtodb(fs,addr)+(off>>VBLKSHIFT)*DBPERVBLK; +vboff=off&VBLKMASK; +n=sblksize(fs,size,lbn)-(off&~VBLKMASK); +if(n>VBLKSIZE) +n=VBLKSIZE; +if(blkmap!=vbaddr){ +if(dskread(blkbuf,vbaddr,n>>DEV_BSHIFT,fd)) +return-1; +blkmap=vbaddr; +} +n-=vboff; +if(n>nb) +n=nb; +memcpy(s,blkbuf+vboff,n); +s+=n; +fd->offset+=n; +nb-=n; +} +returnnbyte; +} + + + + +static__inlineintfsfind(constchar*name,ino_t*ino,fileDescriptor*fd){ +charbuf[DEV_BSIZE]; +structdirent*d; +char*s; +ssize_tn; + +fd->offset=0; +while((n=fsread(*ino,buf,DEV_BSIZE,fd))>0) +for(s=buf;s<buf+DEV_BSIZE;){ +d=(void*)s; +if(!strcmp(name,d->d_name)){ +*ino=d->d_fileno; +returnd->d_type; +} +s+=d->d_reclen; +} +//if(n!=-1&&ls) +//kprintf("\n"); +return0; +} + + +staticino_tlookup(constchar*path,fileDescriptor*fd){ +charname[MAXNAMLEN+1]; +constchar*s; +ino_tino; +ssize_tn; +intdt; + +ino=ROOTINO; +dt=DT_DIR; +name[0]='/'; +name[1]='\0'; +for(;;){ +if(*path=='/') +path++; +if(!*path) +break; +for(s=path;*s&&*s!='/';s++); +if((n=s-path)>MAXNAMLEN) +return0; +//ls=*path=='?'&&n==1&&!*s; +memcpy(name,path,n); +name[n]=0; +if(dt!=DT_DIR){ +kprintf("%s:notadirectory.\n",name); +return(0); +} +if((dt=fsfind(name,&ino,fd))<=0) +break; +path=s; +} + + +returndt==DT_REG?ino:0; +} + + +staticintufs_openFile(constchar*file,fileDescriptor*fd){ +chartmp[2]; +intino=0; +fd->dmadat=(structdmadat*)kmalloc(sizeof(structdmadat)); +ino=lookup(file,fd); +fd->offset=0x0; +fd->ino=ino; +if(ino==0x0){ +return(-1); +} + +/*QuickHackforfilesize*/ +fsread(fd->ino,&tmp,1,fd); +fd->offset=0; +/*Return*/ +fd->perms=0x1; +return(0x1); +} + +intufs_readFile(fileDescriptor*fd,char*data,uInt32offset,longsize){ +fsread(fd->ino,data,size,fd); +return(0x0); +} + +intufs_writeFile(fileDescriptor*fd,char*data,uInt32offset,longsize){ +kprintf("Writing:)\n"); +return(0x0); +} + +/***************************************************************************************** + +Function:intufs_initialize() + +Description:ThiswillinitializeamountpointitloadstheBATandCachestherootDir + +Notes: + +*****************************************************************************************/ +intufs_initialize(structvfs_mountPoint*mp){ +/*Return*/ +return(0x1); +} + +intufs_init(){ +/*Buildourufsstruct*/ +structfileSystemufs= +{NULL,/*prev*/ +NULL,/*next*/ +(void*)ufs_initialize,/*vfsInitFS*/ +(void*)ufs_readFile,/*vfsRead*/ +(void*)ufs_writeFile,/*vfsWrite*/ +(void*)ufs_openFile,/*vfsOpenFile*/ +NULL,/*vfsUnlink*/ +NULL,/*vfsMakeDir*/ +NULL,/*vfsRemDir*/ +NULL,/*vfsSync*/ +0xAA,/*vfsType*/ +};/*UFS*/ + +if(vfsRegisterFS(ufs)!=0x0){ +kpanic("UnableToEnableUFS"); +return(0x1); +} +//dmadat=(structdmadat*)kmalloc(sizeof(structdmadat)); +/*Return*/ +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/ufs_8h.xml b/doc/xml/ufs_8h.xml new file mode 100644 index 0000000..753e769 --- /dev/null +++ b/doc/xml/ufs_8h.xml @@ -0,0 +1,997 @@ + + + + ufs.h + ubixos/types.h + vfs/vfs.h + sys/device.h + src/sys/include/ubixos/init.h + src/sys/ufs/ffs.c + src/sys/ufs/ufs.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + csum + csum_total + dirent + fs + ufs1_dinode + ufs2_dinode + + + blkoff + fs + loc + /* calculates (loc % fs->fs_bsize) */ \ + ((loc) & (fs)->fs_qbmask) + + + + + + + + fsread + + + cgbase + fs + c + (((ufs2_daddr_t)(fs)->fs_fpg) * (c)) + + + + + + + + + + cgdmin + fs + c + (cgstart(fs, c) + (fs)->fs_dblkno) + + + + + + + + + + cgimin + fs + c + (cgstart(fs, c) + (fs)->fs_iblkno) + + + + + + + + + + cgsblock + fs + c + (cgstart(fs, c) + (fs)->fs_sblkno) + + + + + + + + + + cgstart + fs + c + ((fs)->fs_magic == FS_UFS2_MAGIC ? cgbase(fs, c) : \ + (cgbase(fs, c) + (fs)->fs_old_cgoffset * ((c) & ~((fs)->fs_old_cgmask)))) + + + + + + + + + + cgtod + fs + c + (cgstart(fs, c) + (fs)->fs_cblkno) + + + + + + + + + + dbtofsb + fs + b + ((b) >> (fs)->fs_fsbtodb) + + + + + + + + + + DEV_BSHIFT + 9 + + + + + + + + fsread + + + DEV_BSIZE + (1<<DEV_BSHIFT) + + + + + + + + fsfind + fsread + + + DT_DIR + 4 + + + + + + + + lookup + + + DT_REG + 8 + + + + + + + + lookup + + + fragroundup + fs + size + /* calculates roundup(size, fs->fs_fsize) */ \ + (((size) + (fs)->fs_qfmask) & (fs)->fs_fmask) + + + + + + + + + + FS_UFS1_MAGIC + 0x011954 + + + + + + + + fsread + + + FS_UFS2_MAGIC + 0x19540119 + + + + + + + + fsread + + + fsbtodb + fs + b + ((daddr_t)(b) << (fs)->fs_fsbtodb) + + + + + + + + fsread + + + FSMAXSNAP + 20 + + + + + + + + + + ino_to_cg + fs + x + ((x) / (fs)->fs_ipg) + + + + + + + + + + ino_to_fsba + fs + x + ((ufs2_daddr_t)(cgimin(fs, ino_to_cg(fs, x)) + \ + (blkstofrags((fs), (((x) % (fs)->fs_ipg) / INOPB(fs)))))) + + + + + + + + + + ino_to_fsbo + fs + x + ((x) % INOPB(fs)) + + + + + + + + + + lblkno + fs + loc + /* calculates (loc / fs->fs_bsize) */ \ + ((loc) >> (fs)->fs_bshift) + + + + + + + + fsread + + + MAXBSIZE + 65536 + + + + + + + + fsread + + + MAXMNTLEN + 468 + + + + + + + + + + MAXNAMLEN + 255 + + + + + + + + lookup + + + MAXVOLLEN + 32 + + + + + + + + + + NDADDR + 12 + + + + + + + + fsread + + + NIADDR + 3 + + + + + + + + + + NINDIR + fs + ((fs)->fs_nindir) + + + + + + + + fsread + + + NOCSPTRS + ((128 / sizeof(void *)) - 4) + + + + + + + + + + NXADDR + 2 + + + + + + + + + + ROOTINO + ((ino_t)2) + + + + + + + + lookup + + + sblksize + fs + size + lbn + (((lbn) >= NDADDR || (size) >= ((lbn) + 1) << (fs)->fs_bshift) \ + ? (fs)->fs_bsize \ + : (fragroundup(fs, blkoff(fs, (size))))) + + + + + + + + fsread + + + SBLOCK_FLOPPY + 0 + + + + + + + + + + SBLOCK_PIGGY + 262144 + + + + + + + + + + SBLOCK_UFS1 + 8192 + + + + + + + + + + SBLOCK_UFS2 + 65536 + + + + + + + + + + SBLOCKSEARCH + { SBLOCK_UFS2, SBLOCK_UFS1, SBLOCK_FLOPPY, SBLOCK_PIGGY, -1 } + + + + + + + + + + SBLOCKSIZE + 8192 + + + + + + + + + + + + __int64_t + typedef __int64_t daddr_t + + daddr_t + + + + + + + + + + int32_t + typedef int32_t ufs1_daddr_t + + ufs1_daddr_t + + + + + + + + + + int64_t + typedef int64_t ufs2_daddr_t + + ufs2_daddr_t + + + + + + + + + + int64_t + typedef int64_t ufs_lbn_t + + ufs_lbn_t + + + + + + + + + + int64_t + typedef int64_t ufs_time_t + + ufs_time_t + + + + + + + + + + + + int + int ufs_init + () + ufs_init + + + + + + + + kpanic + NULL + ufs_initialize + ufs_openFile + ufs_readFile + ufs_writeFile + vfsRegisterFS + x1 + + + int + int ufs_initialize + () + ufs_initialize + + + + + + + + ufs_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_UFS_H +#define_UFS_H + +#include<ubixos/types.h> +#include<vfs/vfs.h> +#include<sys/device.h> + + +#defineDT_REG8 +#defineMAXNAMLEN255 +#defineROOTINO((ino_t)2) +#defineDT_DIR4 +#defineDEV_BSHIFT9/*log2(DEV_BSIZE)*/ +#defineDEV_BSIZE(1<<DEV_BSHIFT) +#defineSBLOCK_FLOPPY0 +#defineSBLOCK_UFS18192 +#defineSBLOCK_UFS265536 +#defineSBLOCK_PIGGY262144 +#defineSBLOCKSIZE8192 +#defineSBLOCKSEARCH\ +{SBLOCK_UFS2,SBLOCK_UFS1,SBLOCK_FLOPPY,SBLOCK_PIGGY,-1} +#defineFS_UFS1_MAGIC0x011954/*UFS1fastfilesystemmagicnumber*/ +#defineFS_UFS2_MAGIC0x19540119/*UFS2fastfilesystemmagicnumber*/ +#defineMAXMNTLEN468 +#defineMAXVOLLEN32 +#defineNOCSPTRS((128/sizeof(void*))-4) +#defineFSMAXSNAP20 +#defineMAXBSIZE65536 +#defineNINDIR(fs)((fs)->fs_nindir) + +/* +*Cylindergroupmacrostolocatethingsincylindergroups. +*Theycalcfilesystemaddressesofcylindergroupdatastructures. +*/ +#definecgbase(fs,c)(((ufs2_daddr_t)(fs)->fs_fpg)*(c)) +#definecgdmin(fs,c)(cgstart(fs,c)+(fs)->fs_dblkno)/*1stdata*/ +#definecgimin(fs,c)(cgstart(fs,c)+(fs)->fs_iblkno)/*inodeblk*/ +#definecgsblock(fs,c)(cgstart(fs,c)+(fs)->fs_sblkno)/*superblk*/ +#definecgtod(fs,c)(cgstart(fs,c)+(fs)->fs_cblkno)/*cgblock*/ +#definecgstart(fs,c)\ +((fs)->fs_magic==FS_UFS2_MAGIC?cgbase(fs,c):\ +(cgbase(fs,c)+(fs)->fs_old_cgoffset*((c)&~((fs)->fs_old_cgmask)))) + + +#definefsbtodb(fs,b)((daddr_t)(b)<<(fs)->fs_fsbtodb) +#definedbtofsb(fs,b)((b)>>(fs)->fs_fsbtodb) + +/* +*Macrosforhandlinginodenumbers: +*inodenumbertofilesystemblockoffset. +*inodenumbertocylindergroupnumber. +*inodenumbertofilesystemblockaddress. +*/ +#defineino_to_cg(fs,x)((x)/(fs)->fs_ipg) +#defineino_to_fsba(fs,x)\ +((ufs2_daddr_t)(cgimin(fs,ino_to_cg(fs,x))+\ +(blkstofrags((fs),(((x)%(fs)->fs_ipg)/INOPB(fs)))))) +#defineino_to_fsbo(fs,x)((x)%INOPB(fs)) + + +#defineblkoff(fs,loc)/*calculates(loc%fs->fs_bsize)*/\ +((loc)&(fs)->fs_qbmask) +#definelblkno(fs,loc)/*calculates(loc/fs->fs_bsize)*/\ +((loc)>>(fs)->fs_bshift) +#definefragroundup(fs,size)/*calculatesroundup(size,fs->fs_fsize)*/\ +(((size)+(fs)->fs_qfmask)&(fs)->fs_fmask) + + +#definesblksize(fs,size,lbn)\ +(((lbn)>=NDADDR||(size)>=((lbn)+1)<<(fs)->fs_bshift)\ +?(fs)->fs_bsize\ +:(fragroundup(fs,blkoff(fs,(size))))) + + + + +typedefint32_tufs1_daddr_t; +typedefint64_tufs2_daddr_t; +typedefint64_tufs_lbn_t; +typedefint64_tufs_time_t; +typedef__int64_tdaddr_t; + +structdirent{ +__uint32_td_fileno;/*filenumberofentry*/ +__uint16_td_reclen;/*lengthofthisrecord*/ +__uint8_td_type;/*filetype,seebelow*/ +__uint8_td_namlen;/*lengthofstringind_name*/ +chard_name[MAXNAMLEN+1];/*namemustbenolongerthanthis*/ +}; + +#defineNXADDR2/*Externaladdressesininode.*/ +#defineNDADDR12/*Directaddressesininode.*/ +#defineNIADDR3/*Indirectaddressesininode.*/ + +structufs2_dinode{ +u_int16_tdi_mode;/*0:IFMT,permissions;seebelow.*/ +int16_tdi_nlink;/*2:Filelinkcount.*/ +u_int32_tdi_uid;/*4:Fileowner.*/ +u_int32_tdi_gid;/*8:Filegroup.*/ +u_int32_tdi_blksize;/*12:Inodeblocksize.*/ +u_int64_tdi_size;/*16:Filebytecount.*/ +u_int64_tdi_blocks;/*24:Bytesactuallyheld.*/ +ufs_time_tdi_atime;/*32:Lastaccesstime.*/ +ufs_time_tdi_mtime;/*40:Lastmodifiedtime.*/ +ufs_time_tdi_ctime;/*48:Lastinodechangetime.*/ +ufs_time_tdi_birthtime;/*56:Inodecreationtime.*/ +int32_tdi_mtimensec;/*64:Lastmodifiedtime.*/ +int32_tdi_atimensec;/*68:Lastaccesstime.*/ +int32_tdi_ctimensec;/*72:Lastinodechangetime.*/ +int32_tdi_birthnsec;/*76:Inodecreationtime.*/ +int32_tdi_gen;/*80:Generationnumber.*/ +u_int32_tdi_kernflags;/*84:Kernelflags.*/ +u_int32_tdi_flags;/*88:Statusflags(chflags).*/ +int32_tdi_extsize;/*92:Externalattributesblock.*/ +ufs2_daddr_tdi_extb[NXADDR];/*96:Externalattributesblock.*/ +ufs2_daddr_tdi_db[NDADDR];/*112:Directdiskblocks.*/ +ufs2_daddr_tdi_ib[NIADDR];/*208:Indirectdiskblocks.*/ +int64_tdi_spare[3];/*232:Reserved;currentlyunused*/ +}; + +structufs1_dinode{ +u_int16_tdi_mode;/*0:IFMT,permissions;seebelow.*/ +int16_tdi_nlink;/*2:Filelinkcount.*/ +union{ +u_int16_toldids[2];/*4:Ffs:olduserandgroupids.*/ +}di_u; +u_int64_tdi_size;/*8:Filebytecount.*/ +int32_tdi_atime;/*16:Lastaccesstime.*/ +int32_tdi_atimensec;/*20:Lastaccesstime.*/ +int32_tdi_mtime;/*24:Lastmodifiedtime.*/ +int32_tdi_mtimensec;/*28:Lastmodifiedtime.*/ +int32_tdi_ctime;/*32:Lastinodechangetime.*/ +int32_tdi_ctimensec;/*36:Lastinodechangetime.*/ +ufs1_daddr_tdi_db[NDADDR];/*40:Directdiskblocks.*/ +ufs1_daddr_tdi_ib[NIADDR];/*88:Indirectdiskblocks.*/ +u_int32_tdi_flags;/*100:Statusflags(chflags).*/ +int32_tdi_blocks;/*104:Blocksactuallyheld.*/ +int32_tdi_gen;/*108:Generationnumber.*/ +u_int32_tdi_uid;/*112:Fileowner.*/ +u_int32_tdi_gid;/*116:Filegroup.*/ +int32_tdi_spare[2];/*120:Reserved;currentlyunused*/ +}; + +structcsum{ +int32_tcs_ndir;/*numberofdirectories*/ +int32_tcs_nbfree;/*numberoffreeblocks*/ +int32_tcs_nifree;/*numberoffreeinodes*/ +int32_tcs_nffree;/*numberoffreefrags*/ +}; +structcsum_total{ +int64_tcs_ndir;/*numberofdirectories*/ +int64_tcs_nbfree;/*numberoffreeblocks*/ +int64_tcs_nifree;/*numberoffreeinodes*/ +int64_tcs_nffree;/*numberoffreefrags*/ +int64_tcs_numclusters;/*numberoffreeclusters*/ +int64_tcs_spare[3];/*futureexpansion*/ +}; + + +structfs{ +int32_tfs_firstfield;/*historicfilesystemlinkedlist,*/ +int32_tfs_unused_1;/*usedforincoresuperblocks*/ +int32_tfs_sblkno;/*offsetofsuper-blockinfilesys*/ +int32_tfs_cblkno;/*offsetofcyl-blockinfilesys*/ +int32_tfs_iblkno;/*offsetofinode-blocksinfilesys*/ +int32_tfs_dblkno;/*offsetoffirstdataaftercg*/ +int32_tfs_old_cgoffset;/*cylindergroupoffsetincylinder*/ +int32_tfs_old_cgmask;/*usedtocalcmodfs_ntrak*/ +int32_tfs_old_time;/*lasttimewritten*/ +int32_tfs_old_size;/*numberofblocksinfs*/ +int32_tfs_old_dsize;/*numberofdatablocksinfs*/ +int32_tfs_ncg;/*numberofcylindergroups*/ +int32_tfs_bsize;/*sizeofbasicblocksinfs*/ +int32_tfs_fsize;/*sizeoffragblocksinfs*/ +int32_tfs_frag;/*numberoffragsinablockinfs*/ +/*theseareconfigurationparameters*/ +int32_tfs_minfree;/*minimumpercentageoffreeblocks*/ +int32_tfs_old_rotdelay;/*numofmsforoptimalnextblock*/ +int32_tfs_old_rps;/*diskrevolutionspersecond*/ +/*thesefieldscanbecomputedfromtheothers*/ +int32_tfs_bmask;/*``blkoff''calcofblkoffsets*/ +int32_tfs_fmask;/*``fragoff''calcoffragoffsets*/ +int32_tfs_bshift;/*``lblkno''calcoflogicalblkno*/ +int32_tfs_fshift;/*``numfrags''calcnumberoffrags*/ +/*theseareconfigurationparameters*/ +int32_tfs_maxcontig;/*maxnumberofcontiguousblks*/ +int32_tfs_maxbpg;/*maxnumberofblkspercylgroup*/ +/*thesefieldscanbecomputedfromtheothers*/ +int32_tfs_fragshift;/*blocktofragshift*/ +int32_tfs_fsbtodb;/*fsbtodbanddbtofsbshiftconstant*/ +int32_tfs_sbsize;/*actualsizeofsuperblock*/ +int32_tfs_spare1[2];/*oldfs_csmask*/ +/*oldfs_csshift*/ +int32_tfs_nindir;/*valueofNINDIR*/ +int32_tfs_inopb;/*valueofINOPB*/ +int32_tfs_old_nspf;/*valueofNSPF*/ +/*yetanotherconfigurationparameter*/ +int32_tfs_optim;/*optimizationpreference,seebelow*/ +int32_tfs_old_npsect;/*#sectors/trackincludingspares*/ +int32_tfs_old_interleave;/*hardwaresectorinterleave*/ +int32_tfs_old_trackskew;/*sector0skew,pertrack*/ +int32_tfs_id[2];/*uniquefilesystemid*/ +/*sizesdeterminedbynumberofcylindergroupsandtheirsizes*/ +int32_tfs_old_csaddr;/*blkaddrofcylgrpsummaryarea*/ +int32_tfs_cssize;/*sizeofcylgrpsummaryarea*/ +int32_tfs_cgsize;/*cylindergroupsize*/ +int32_tfs_spare2;/*oldfs_ntrak*/ +int32_tfs_old_nsect;/*sectorspertrack*/ +int32_tfs_old_spc;/*sectorspercylinder*/ +int32_tfs_old_ncyl;/*cylindersinfilesystem*/ +int32_tfs_old_cpg;/*cylinderspergroup*/ +int32_tfs_ipg;/*inodespergroup*/ +int32_tfs_fpg;/*blockspergroup*fs_frag*/ +/*thisdatamustbere-computedaftercrashes*/ +structcsumfs_old_cstotal;/*cylindersummaryinformation*/ +/*thesefieldsareclearedatmounttime*/ +int8_tfs_fmod;/*superblockmodifiedflag*/ +int8_tfs_clean;/*filesystemiscleanflag*/ +int8_tfs_ronly;/*mountedread-onlyflag*/ +int8_tfs_old_flags;/*oldFS_flags*/ +u_charfs_fsmnt[MAXMNTLEN];/*namemountedon*/ +u_charfs_volname[MAXVOLLEN];/*volumename*/ +u_int64_tfs_swuid;/*system-wideuid*/ +int32_tfs_pad;/*duetoalignmentoffs_swuid*/ +/*thesefieldsretainthecurrentblockallocationinfo*/ +int32_tfs_cgrotor;/*lastcgsearched*/ +void*fs_ocsp[NOCSPTRS];/*padding;waslistoffs_csbuffers*/ +u_int8_t*fs_contigdirs;/*(u)#ofcontig.allocateddirs*/ +structcsum*fs_csp;/*(u)cgsummaryinfobuffer*/ +int32_t*fs_maxcluster;/*(u)maxclusterineachcylgroup*/ +u_int*fs_active;/*(u)usedbysnapshotstotrackfs*/ +int32_tfs_old_cpc;/*cylpercycleinpostbl*/ +int32_tfs_maxbsize;/*maximumblockingfactorpermitted*/ +int64_tfs_sparecon64[17];/*oldrotationblocklisthead*/ +int64_tfs_sblockloc;/*byteoffsetofstandardsuperblock*/ +structcsum_totalfs_cstotal;/*(u)cylindersummaryinformation*/ +ufs_time_tfs_time;/*lasttimewritten*/ +int64_tfs_size;/*numberofblocksinfs*/ +int64_tfs_dsize;/*numberofdatablocksinfs*/ +ufs2_daddr_tfs_csaddr;/*blkaddrofcylgrpsummaryarea*/ +int64_tfs_pendingblocks;/*(u)blocksbeingfreed*/ +int32_tfs_pendinginodes;/*(u)inodesbeingfreed*/ +int32_tfs_snapinum[FSMAXSNAP];/*listofsnapshotinodenumbers*/ +int32_tfs_avgfilesize;/*expectedaveragefilesize*/ +int32_tfs_avgfpdir;/*expected#offilesperdirectory*/ +int32_tfs_save_cgsize;/*saverealcgsizetousefs_bsize*/ +int32_tfs_sparecon32[26];/*reservedforfutureconstants*/ +int32_tfs_flags;/*seeFS_flagsbelow*/ +int32_tfs_contigsumsize;/*sizeofclustersummaryarray*/ +int32_tfs_maxsymlinklen;/*maxlengthofaninternalsymlink*/ +int32_tfs_old_inodefmt;/*formatofon-diskinodes*/ +u_int64_tfs_maxfilesize;/*maximumrepresentablefilesize*/ +int64_tfs_qbmask;/*~fs_bmaskforusewith64-bitsize*/ +int64_tfs_qfmask;/*~fs_fmaskforusewith64-bitsize*/ +int32_tfs_state;/*validatefs_cleanfield*/ +int32_tfs_old_postblformat;/*formatofpositionallayouttables*/ +int32_tfs_old_nrpos;/*numberofrotationalpositions*/ +int32_tfs_spare5[2];/*oldfs_postbloff*/ +/*oldfs_rotbloff*/ +int32_tfs_magic;/*magicnumber*/ +}; + + +intufs_init(); +intufs_initialize(); + +#endif + +/*** +END +***/ + + + + + diff --git a/doc/xml/uniondescriptorTableUnion.xml b/doc/xml/uniondescriptorTableUnion.xml new file mode 100644 index 0000000..b0d342d --- /dev/null +++ b/doc/xml/uniondescriptorTableUnion.xml @@ -0,0 +1,80 @@ + + + + descriptorTableUnion + gdt.h + + + gdtDescriptor + struct gdtDescriptor descriptorTableUnion::descriptor + + descriptor + + + + + + + + + + unsigned long + unsigned long descriptorTableUnion::dummy + + dummy + + + + + + + + + + gdtGate + struct gdtGate descriptorTableUnion::gate + + gate + + + + + + + + setTaskVector + setVector + + + + + + + + + + + + + + + + + + + + gate + + + descriptor + + + + + + descriptorTableUniondescriptor + descriptorTableUniondummy + descriptorTableUniongate + + + diff --git a/doc/xml/unionetheraddr.xml b/doc/xml/unionetheraddr.xml new file mode 100644 index 0000000..8ce2d86 --- /dev/null +++ b/doc/xml/unionetheraddr.xml @@ -0,0 +1,44 @@ + + + + etheraddr + ne2k.h + + + unsigned char + unsigned char etheraddr::bytes[6] + [6] + bytes + + + + + + + + + + unsigned short + unsigned short etheraddr::shorts[3] + [3] + shorts + + + + + + + + + + + + + + + + etheraddrbytes + etheraddrshorts + + + diff --git a/doc/xml/unionuPtr.xml b/doc/xml/unionuPtr.xml new file mode 100644 index 0000000..b7fe54d --- /dev/null +++ b/doc/xml/unionuPtr.xml @@ -0,0 +1,189 @@ + + + + uPtr + ubixfs.h + + + bNode * + bNode* uPtr::bPtr + + bPtr + + + + + + + + + + bTree * + bTree* uPtr::btPtr + + btPtr + + + + + + + + + + inodeAddr + inodeAddr uPtr::iAddr + + iAddr + + + + + + + + + + ubixfsInode * + ubixfsInode* uPtr::iPtr + + iPtr + + + + + + + + + + off_t + off_t uPtr::offset + + offset + + + + + + + + + + void * + void* uPtr::vPtr + + vPtr + + + + + + + + + + + + + + + + + + + + + superBlock + + + root + + + + + + + + + + + iAddr + + + btPtr + + + iPtr + + + bPtr + + + + + + + + + + + + + + + + + + + + + + + prev +next + + + + + + + prev +next + + + device + + + + + + + + + + + fs + + + fd + + + root + + + header + + + + + + uPtrbPtr + uPtrbtPtr + uPtriAddr + uPtriPtr + uPtroffset + uPtrvPtr + + + diff --git a/doc/xml/unmappage_8c.xml b/doc/xml/unmappage_8c.xml new file mode 100644 index 0000000..e4e661e --- /dev/null +++ b/doc/xml/unmappage_8c.xml @@ -0,0 +1,262 @@ + + + + unmappage.c + vmm/vmm.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void vmmUnmapPage + (uInt32 pageAddr, int flags) + vmmUnmapPage + + uInt32 + pageAddr + + + int + flags + + + + + + + + + tablesBaseAddress + x1000 + vmm_pageFault + vmmCopyVirtualSpace + vmmCreateVirtualSpace + vmmMapFromTask + + + void + void vmmUnmapPages + (void *ptr, uInt32 size) + vmmUnmapPages + + void * + ptr + + + uInt32 + size + + + + + + + + + tablesBaseAddress + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> + +/************************************************************************ + +Function:voidvmmUnmapPage(uInt32pageAddr,intflags); +Description:ThisFunctionWillUnmapAPageFromTheKernelVMSpace +TheFlagsVariableDecidesIfItsToFreeThePageOrNot +AFlagOf0WillFreeItAndAFlagOf1WillKeepIt +Notes: + +07/30/02-IHaveDecidedThatThisShouldFreeThePhysicalPageThere +IsNoReasonToKeepItMarkedAsNotAvailable + +07/30/02-OkAFoundAReasonToKeepItMarkedAsAvailableIAdmit +EvenIAmNotPerfectOkTheCaseWhereYouWouldn'tWantTo +FreeItWouldBeOnSomethingLikeWhereIAllocatedAPage +ToCreateANewVirtualSpaceSoNowItHasAFlag + +************************************************************************/ +void +vmmUnmapPage(uInt32pageAddr,intflags) +{ +intpageDirectoryIndex=0,pageTableIndex=0; +uInt32*pageTable=0x0; + +/*GetTheIndexToThePageDirectory*/ +pageDirectoryIndex=(pageAddr>>22); + +//CalculateThePageTableIndex +pageTableIndex=((pageAddr>>12)&0x3FF); + +/*SetpageTableToTheVirtualAddressOfTable*/ +pageTable=(uInt32*)(tablesBaseAddress+(0x1000*pageDirectoryIndex)); +/*FreeThePhysicalPageIfFlagsIs0*/ +if(flags==0){ + +/* +*ThisistempithinkitsstillanissueclearVirtualPage(pageAddr); +*freePage((uInt32)(pageTable[pageTableIndex]&0xFFFFF000)); +*/ +} +/*UnmapThePage*/ +pageTable[pageTableIndex]=0x0; +/*RehashThePageDirectory*/ +asmvolatile( +"movl%cr3,%eax\n" +"movl%eax,%cr3\n" +); +/*Return*/ +return; +} + + + +/************************************************************************ + +Function:voidvmmUnmapPages(uInt32pageAddr,intflags); +Description:ThisFunctionWillUnmapAPageFromTheKernelVMSpace +TheFlagsVariableDecidesIfItsToFreeThePageOrNot +AFlagOf0WillFreeItAndAFlagOf1WillKeepIt +Notes: + +07/30/02-IHaveDecidedThatThisShouldFreeThePhysicalPageThere +IsNoReasonToKeepItMarkedAsNotAvailable + +07/30/02-OkAFoundAReasonToKeepItMarkedAsAvailableIAdmit +EvenIAmNotPerfectOkTheCaseWhereYouWouldn'tWantTo +FreeItWouldBeOnSomethingLikeWhereIAllocatedAPage +ToCreateANewVirtualSpaceSoNowItHasAFlag + +************************************************************************/ +voidvmmUnmapPages(void*ptr,uInt32size){ +uInt32baseAddr=(uInt32)ptr&0xFFFFF000; +uInt32dI=0x0,tI=0x0; +uInt32y=0x0; +uInt32*pageTable=0x0; + +dI=(baseAddr/(1024*4096)); +tI=((baseAddr-(dI*(1024*4096)))/4096); +pageTable=(uInt32*)(tablesBaseAddress+(4096*dI)); +for(y=tI;y<(tI+((size+4095)/4096));y++){ +pageTable[y]=0x0; +} +return; +} + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:54reddawg +nomessage + +Revision1.42004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.32004/06/1512:35:05reddawg +CleanedUp + +Revision1.22004/06/1022:23:56reddawg +Volatiles + +Revision1.1.1.12004/04/1512:06:53reddawg +UbixOSv1.0 + +Revision1.72004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + +END +***/ + + + + diff --git a/doc/xml/vfs_8c.xml b/doc/xml/vfs_8c.xml new file mode 100644 index 0000000..fa24776 --- /dev/null +++ b/doc/xml/vfs_8c.xml @@ -0,0 +1,377 @@ + + + + vfs.c + vfs/vfs.h + ubixos/vitals.h + lib/kmalloc.h + lib/kprintf.h + lib/string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int vfs_init + () + vfs_init + + + + + + + + vitalsStruct::fileSystems + kprintf + systemVitals + + + fileSystem * + struct fileSystem* vfsFindFS + (int vfsType) + vfsFindFS + + int + vfsType + + + + + + + + + vitalsStruct::fileSystems + fileSystem::next + systemVitals + fileSystem::vfsType + vfs_mount + vfsRegisterFS + + + int + int vfsRegisterFS + (struct fileSystem newFS) + vfsRegisterFS + + struct fileSystem + newFS + + + + + + + + + vitalsStruct::fileSystems + kmalloc + kprintf + memcpy + fileSystem::next + NULL + fileSystem::prev + systemVitals + vfsFindFS + fileSystem::vfsType + x1 + devfs_init + ubixfs_init + ufs_init + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vfs/vfs.h> +#include<ubixos/vitals.h> +#include<lib/kmalloc.h> +#include<lib/kprintf.h> +#include<lib/string.h> + +/************************************************************************ + +Function:voidvfs_init(); + +Description:ThisFunctionInitializesTheVFSLayer + +Notes: + +02/20/2004-Approvedforquality + +************************************************************************/ +intvfs_init(){ +/*SetupdefaultfileSystemslist*/ +systemVitals->fileSystems=0x0; + +/*Printinformation*/ +kprintf("vfs0:loadedataddress:[0x%X]\n",systemVitals->fileSystems); + +/*Returnsoweknowthingswentwell*/ +return(0x0); +} + +structfileSystem*vfsFindFS(intvfsType){ +structfileSystem*tmp=0x0; + +/*SearchForFileSystem*/ +for(tmp=systemVitals->fileSystems;tmp;tmp=tmp->next){ +/*IfFoundReturnFileSystem*/ +if(tmp->vfsType==vfsType){ +return(tmp); +} +} + +/*IfFSNotFoundReturnNULL*/ +return(0x0); +} + +intvfsRegisterFS(structfileSystemnewFS){ +/* +intvfsType, +void*vfsInitFS, +void*vfsRead, +void*vfsWrite, +void*vfsOpenFile, +void*vfsUnlink, +void*vfsMakeDir, +void*vfsRemDir, +void*vfsSync){ +*/ +structfileSystem*tmpFs=0x0; + +if(vfsFindFS(newFS.vfsType)!=0x0){ +kprintf("FSIsalreadyRegistered\n"); +return(0x1); +} + +/*AllocateMemory*/ +tmpFs=(structfileSystem*)kmalloc(sizeof(structfileSystem)); +if(tmpFs==NULL){ +kprintf("vfsRegisterFS:memoryallocationfailed\n"); +/*MemoryAllocationFailed*/ +return(0x1); +} + +/*SetUpFSDefaults*/ + +/*20047-16-2004mji +*Oldmethod: +*tmpFs->vfsType=newFS.vfsType; +*tmpFs->vfsInitFS=newFS.vfsInitFS; +*tmpFs->vfsRead=newFS.vfsRead; +*tmpFs->vfsWrite=newFS.vfsWrite; +*tmpFs->vfsOpenFile=newFS.vfsOpenFile; +*tmpFs->vfsUnlink=newFS.vfsUnlink; +*tmpFs->vfsMakeDir=newFS.vfsMakeDir; +*tmpFs->vfsRemDir=newFS.vfsRemDir; +*tmpFs->vfsSync=newFS.vfsSync; +*/ +/*newmethod:*/ + +memcpy(tmpFs,&newFS,sizeof(structfileSystem)); +if(!systemVitals->fileSystems){ +tmpFs->prev=0x0; +tmpFs->next=0x0; +systemVitals->fileSystems=tmpFs; +} +else{ +tmpFs->prev=0x0; +tmpFs->next=systemVitals->fileSystems; +systemVitals->fileSystems->prev=tmpFs; +systemVitals->fileSystems=tmpFs; +} + +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/vfs_8cpp.xml b/doc/xml/vfs_8cpp.xml new file mode 100644 index 0000000..478c24c --- /dev/null +++ b/doc/xml/vfs_8cpp.xml @@ -0,0 +1,61 @@ + + + + vfs.cpp + stdio.h + vfs.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include<stdio.h> +#include"vfs.h" + +DiskFS::DiskFS(constchar*filename){ +diskFile=fopen(filename,"r+"); +}//DiskFS::DiskFS + +int +DiskFS::write(constvoid*data,longoffset,longsize){ +if(diskFile==NULL)return1; +fseek(diskFile,offset,SEEK_SET); +fwrite(data,size,1,diskFile); +return0; +}//DiskFS::write + +int +DiskFS::read(void*data,longoffset,longsize){ +if(diskFile==NULL)return1; +fseek(diskFile,offset,SEEK_SET); +fread(data,size,1,diskFile); +return0; +}//DiskFS::read + + + + diff --git a/doc/xml/video_8c.xml b/doc/xml/video_8c.xml new file mode 100644 index 0000000..9589600 --- /dev/null +++ b/doc/xml/video_8c.xml @@ -0,0 +1,298 @@ + + + + video.c + sys/io.h + sys/video.h + ubixos/types.h + ubixos/spinlock.h + ubixos/tty.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + void + void backSpace + () + backSpace + + + + + + + + inportByte + outportByte + printColor + tty_foreground + tty_termNode::tty_x + tty_termNode::tty_y + videoBuffer + keyboardHandler + + + void + void clearScreen + () + clearScreen + + + + + + + + defaultColor + outportByte + videoBuffer + x20 + kmain + + + void + void kprint + (char *string) + kprint + + char * + string + + + + + + + + + inportByte + NULL + outportByte + printColor + tty_find + tty_foreground + tty_print + videoBuffer + x20 + fdcRw + kmain + kprintf + + + + + int + int printColor + + printColor + defaultColor + + + + + + + + backSpace + kprint + + + unsigned char * + unsigned char* videoBuffer + + videoBuffer + (char *)0xB8000 + + + + + + + + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2005TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<sys/io.h> +#include<sys/video.h> +#include<ubixos/types.h> +#include<ubixos/spinlock.h> +#include<ubixos/tty.h> + +staticunsignedchar*videoBuffer=(char*)0xB8000; +intprintColor=defaultColor; + + +voidbackSpace(){ +uInt32bufferOffset=0x0; +outportByte(0x3d4,0x0e); +bufferOffset=inportByte(0x3d5); +bufferOffset<<=0x8;/*ShiftAddressLeft8Bits*/ +outportByte(0x3d4,0x0f); +bufferOffset+=inportByte(0x3d5); +bufferOffset<<=0x1;/*ShiftAddressLeft1Bits*/ +videoBuffer[bufferOffset--]=0x20; +videoBuffer[bufferOffset--]=printColor; +videoBuffer[bufferOffset]=0x20; +bufferOffset>>=0x1; +tty_foreground->tty_x=(bufferOffset&0xFF); +tty_foreground->tty_y=(bufferOffset>>0x8); +outportByte(0x3D4,0x0f); +outportByte(0x3D5,tty_foreground->tty_x); +outportByte(0x3D4,0x0e); +outportByte(0x3D5,tty_foreground->tty_y); +return; +} + +void +kprint(char*string) +{ + +unsignedintbufferOffset=0x0,character=0x0,i=0x0; + +/*Shortcircuitifwe'reinttymode*/ +if(NULL!=tty_foreground) +{ +tty_print(string,tty_find(0)); +return; +} + +/*WeNeedToGetTheYPosition*/ +outportByte(0x3D4,0x0e); +bufferOffset=inportByte(0x3D5); +bufferOffset<<=8;/*ShiftAddressLeft8Bits*/ +/*ThenWeNeedToAddTheXPosition*/ +outportByte(0x3D4,0x0f); +bufferOffset+=inportByte(0x3D5); +bufferOffset<<=1;/*ShiftAddressLeft1Bits*/ + +while((character=*string++)){ +switch(character){ +case'\n': +bufferOffset=(bufferOffset/160)*160+160; +break; +default: +videoBuffer[bufferOffset++]=character; +videoBuffer[bufferOffset++]=printColor; +break; +}/*switch*/ +/*CheckToSeeIfWeAreOutOfBounds*/ +if(bufferOffset>=160*25){ +for(i=0;i<160*24;i++){ +videoBuffer[i]=videoBuffer[i+160]; +}/*for*/ +for(i=0;i<80;i++){ +videoBuffer[(160*24)+(i*2)]=0x20; +videoBuffer[(160*24)+(i*2)+1]=printColor; +}/*for*/ +bufferOffset-=160; +}/*if*/ +}/*while*/ +bufferOffset>>=1;/*Setthenewcursorposition*/ +outportByte(0x3D4,0x0f); +outportByte(0x3D5,((bufferOffset&0x0ff)&0xFF)); +outportByte(0x3D4,0x0e); +outportByte(0x3D5,((bufferOffset>>8)&0xFF)); + +return; +} + +/*ClearsTheScreen*/ +voidclearScreen(){ +shorti=0x0; + +for(i=0x0;i<(80*25);i++){ +videoBuffer[i*2]=0x20; +videoBuffer[i*2+1]=defaultColor; +} +outportByte(0x3D4,0x0f); +outportByte(0x3D5,0); +outportByte(0x3D4,0x0e); +outportByte(0x3D5,0); +} + +/*** +END +***/ + + + + diff --git a/doc/xml/video_8h.xml b/doc/xml/video_8h.xml new file mode 100644 index 0000000..d181d11 --- /dev/null +++ b/doc/xml/video_8h.xml @@ -0,0 +1,277 @@ + + + + video.h + ubixos/types.h + src/sys/init/main.c + 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 + src/sys/pci/hd.c + src/sys/pci/lnc.c + src/sys/sys/video.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + defaultColor + 0x0F + + + + + + + + clearScreen + + + + + void + void backSpace + () + backSpace + + + + + + + + inportByte + outportByte + printColor + tty_foreground + tty_termNode::tty_x + tty_termNode::tty_y + videoBuffer + keyboardHandler + + + void + void clearScreen + () + clearScreen + + + + + + + + defaultColor + outportByte + videoBuffer + x20 + kmain + + + void + void kprint + (char *string) + kprint + + char * + string + + + + + + + + + inportByte + NULL + outportByte + printColor + tty_find + tty_foreground + tty_print + videoBuffer + x20 + fdcRw + kmain + kprintf + + + + + int + int printColor + + printColor + + + + + + + + backSpace + kprint + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_VIDEO_H +#define_VIDEO_H + +#include<ubixos/types.h> + +#definedefaultColor0x0F + +externintprintColor; + +voidclearScreen(); +voidkprint(char*string); +voidbackSpace(); + +#endif + +/*** +$Log$ +Revision1.1.1.12006/06/0112:46:15reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:53reddawg +nomessage + +Revision1.22004/05/2115:12:17reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/vitals_8c.xml b/doc/xml/vitals_8c.xml new file mode 100644 index 0000000..cc56738 --- /dev/null +++ b/doc/xml/vitals_8c.xml @@ -0,0 +1,305 @@ + + + + vitals.c + ubixos/vitals.h + ubixos/kpanic.h + lib/kprintf.h + lib/kmalloc.h + string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int vitals_init + () + vitals_init + + + + + + + + vitalsStruct::dQuantum + kmalloc + kpanic + kprintf + memset + vitalsStruct::quantum + systemVitals + + + + + vitalsNode * + vitalsNode* systemVitals + + systemVitals + 0x0 + + + + + + + + adjustCowCounter + fclose + fopen + freePage + kmain + ogPrintf + sysGetTime + sysGetUptime + systemTask + time_init + ubthread_cond_timedwait + vfs_addMount + vfs_findMount + vfs_init + vfsFindFS + vfsRegisterFS + vitals_init + vmmFindFreePage + vmmFreeProcessPages + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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/vitals.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<string.h> + +vitalsNode*systemVitals=0x0; + +/************************************************************************ + +Function:vitals_init(); +Description:Thiswillenablethevitalssubsystemforubixos + +Notes: + +02/20/2004-ApprovedItsQuality + +************************************************************************/ +intvitals_init(){ +/*InitializeMemoryForTheSystemVitalsNode*/ +systemVitals=(vitalsNode*)kmalloc(sizeof(vitalsNode)); + +/*IfmallocFailedThenError*/ +if(systemVitals==0x0) +{ +kpanic("Error:kmallocFailedIninitVitals\n"); +} + +/*Setalldefaultvalues*/ +memset(systemVitals,0x0,sizeof(vitalsNode)); + +systemVitals->quantum=8; +systemVitals->dQuantum=8; + +/*PrintOutInfoForVitals:*/ +kprintf("vitals0-Address:[0x%X]\n",systemVitals); + +/*Returnsokernelknowsthatthereisnoproblem*/ +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/vitals_8h.xml b/doc/xml/vitals_8h.xml new file mode 100644 index 0000000..c0e53ee --- /dev/null +++ b/doc/xml/vitals_8h.xml @@ -0,0 +1,412 @@ + + + + vitals.h + ubixos/types.h + ubixos/ubthread.h + vfs/mount.h + vfs/vfs.h + src/sys/include/ubixos/init.h + src/sys/isa/ne2k.c + src/sys/kernel/endtask.c + src/sys/kernel/fork.c + src/sys/kernel/syscall.c + src/sys/kernel/systemtask.c + src/sys/kernel/time.c + src/sys/kernel/ubthread.c + src/sys/kernel/vitals.c + src/sys/lib/ogprintf.cc + src/sys/vfs/file.c + src/sys/vfs/mount.c + src/sys/vfs/vfs.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vitalsStruct + + + vitalsStruct + typedef struct vitalsStruct vitalsNode + + vitalsNode + + + + + + + + + + + + int + int vitals_init + () + vitals_init + + + + + + + + vitalsStruct::dQuantum + kmalloc + kpanic + kprintf + memset + vitalsStruct::quantum + systemVitals + + + + + vitalsNode * + vitalsNode* systemVitals + + systemVitals + + + + + + + + adjustCowCounter + fclose + fopen + freePage + kmain + ogPrintf + sysGetTime + sysGetUptime + systemTask + time_init + ubthread_cond_timedwait + vfs_addMount + vfs_findMount + vfs_init + vfsFindFS + vfsRegisterFS + vitals_init + vmmFindFreePage + vmmFreeProcessPages + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_VITALS_H +#define_VITALS_H + +#include<ubixos/types.h> +#include<ubixos/ubthread.h> +#include<vfs/mount.h> +#include<vfs/vfs.h> + +typedefstructvitalsStruct{ +uInt32openFiles; +uInt32sysTicks; +uInt32sysUptime; +uInt32quantum; +uInt32dQuantum; +uInt32freePages; +structfileSystem*fileSystems; +structvfs_mountPoint*mountPoints; +uInt32timeStart; +void*screen; +void*font; +char*packet; +uInt32packetLength; +}vitalsNode; + +externvitalsNode*systemVitals; + +intvitals_init(); + +#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 +***/ + + + + diff --git a/doc/xml/vmm_8h.xml b/doc/xml/vmm_8h.xml new file mode 100644 index 0000000..2d8ccc5 --- /dev/null +++ b/doc/xml/vmm_8h.xml @@ -0,0 +1,634 @@ + + + + vmm.h + vmm/paging.h + ubixos/types.h + src/sys/include/ubixos/init.h + src/sys/kernel/bioscall.c + src/sys/kernel/endtask.c + src/sys/kernel/exec.c + src/sys/kernel/fork.c + src/sys/kernel/ld.c + src/sys/kernel/sched.c + src/sys/kernel/syscall.c + src/sys/kernel/systemtask.c + src/sys/kmods/kmod.c + src/sys/lib/kmalloc.c + src/sys/sys/idt.c + src/sys/vmm/copyvirtualspace.c + src/sys/vmm/createvirtualspace.c + src/sys/vmm/getfreepage.c + src/sys/vmm/getfreevirtualpage.c + src/sys/vmm/getphysicaladdr.c + src/sys/vmm/pagefault.c + src/sys/vmm/paging.c + src/sys/vmm/setpageattributes.c + src/sys/vmm/unmappage.c + src/sys/vmm/vmm_init.c + src/sys/vmm/vmm_memory.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mMap + + + memAvail + 1 + + + + + + + + adjustCowCounter + freePage + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + memNotavail + 2 + + + + + + + + vmmFindFreePage + vmmMemMapInit + + + vmmID + -3 + + + + + + + + adjustCowCounter + vmmFreeProcessPages + vmmMemMapInit + + + vmmMemoryMapAddr + 0xE6667000 + + + + + + + + vmm_pagingInit + + + + + int + int adjustCowCounter + (uInt32 baseAddr, int adjustment) + adjustCowCounter + + uInt32 + baseAddr + + + int + adjustment + + + + + + + + + assert + mMap::cowCounter + freePages + vitalsStruct::freePages + memAvail + mMap::pid + spinLock + spinUnlock + mMap::status + systemVitals + vmmCowSpinLock + vmmID + vmmMemoryMap + freePage + vmm_pageFault + vmmCopyVirtualSpace + vmmFreeProcessPages + + + int + int countMemory + () + countMemory + + + + + + + + cr0 + inportByte + outportByte + vmmMemMapInit + + + int + int freePage + (uInt32 pageAddr) + freePage + + uInt32 + pageAddr + + + + + + + + + adjustCowCounter + assert + mMap::cowCounter + freePages + vitalsStruct::freePages + memAvail + mMap::pid + spinLock + spinUnlock + mMap::status + systemVitals + vmmMemoryMap + vmmSpinLock + vmm_remapPage + + + int + int vmm_init + () + vmm_init + + + +Function: int vmm_init()Description: Initializes the vmm subsystemNotes: + + + + K_PANIC + vmm_pagingInit + vmmMemMapInit + + + u_int32_t + u_int32_t vmmFindFreePage + (pidType pid) + vmmFindFreePage + + pidType + pid + + + + + + + + + freePages + vitalsStruct::freePages + kpanic + memAvail + memNotavail + numPages + mMap::pid + spinLock + spinUnlock + status + sysID + systemVitals + vmmMemoryMap + vmmSpinLock + execFile + kmod_load + ldEnable + obreak + sysExec + vmm_getFreeMallocPage + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void + void vmmFreeProcessPages + (pidType pid) + vmmFreeProcessPages + + pidType + pid + + + + + + + + + adjustCowCounter + mMap::cowCounter + freePages + vitalsStruct::freePages + memAvail + numPages + PAGE_COW + pageEntries + parentPageDirAddr + mMap::pid + spinLock + spinUnlock + status + systemVitals + tablesBaseAddress + vmmID + vmmMemoryMap + vmmSpinLock + x1000 + systemTask + + + int + int vmmMemMapInit + () + vmmMemMapInit + + + + + + + + countMemory + freePages + kprintf + memAvail + memNotavail + numPages + mMap::pageAddr + mMap::pid + mMap::status + status + vmmID + vmmMemoryMap + x1000 + vmm_init + + + + + int + int numPages + + numPages + + + + + + + + vmm_pagingInit + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + mMap * + mMap* vmmMemoryMap + + vmmMemoryMap + + + + + + + + adjustCowCounter + freePage + kmain + vmm_pagingInit + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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$ + +*****************************************************************************************/ + +#ifndef_VMM_H +#define_VMM_H + +#include<vmm/paging.h> +#include<ubixos/types.h> + +#definememAvail1 +#definememNotavail2 +#definevmmID-3 +#definevmmMemoryMapAddr0xE6667000 + +typedefstruct{ +uInt32pageAddr; +uInt16status; +uInt16reserved; +pid_tpid; +intcowCounter; +}mMap; + +externintnumPages; +externmMap*vmmMemoryMap; + +intvmm_init(); +intvmmMemMapInit(); +intcountMemory(); +u_int32_tvmmFindFreePage(pidTypepid); +intfreePage(uInt32pageAddr); +intadjustCowCounter(uInt32baseAddr,intadjustment); +voidvmmFreeProcessPages(pidTypepid); + +#endif + +/*** +$Log$ +Revision1.22006/12/0514:10:21reddawg +WorkignDistro + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:23:59reddawg +nomessage + +Revision1.62004/07/2117:39:04reddawg +removeddevice + +Revision1.52004/07/1902:08:28reddawg +Cleanedouttherestofdebugingcodealsotemporarilydisabledtheipstacktoimproveboottime + +Revision1.42004/07/0912:18:19reddawg +UpdatingInitializationProcedures + +Revision1.32004/05/2115:21:04reddawg +Cleanedup + + +END +***/ + + + + diff --git a/doc/xml/vmm__init_8c.xml b/doc/xml/vmm__init_8c.xml new file mode 100644 index 0000000..6a0a54f --- /dev/null +++ b/doc/xml/vmm__init_8c.xml @@ -0,0 +1,139 @@ + + + + vmm_init.c + vmm/vmm.h + ubixos/kpanic.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int vmm_init + () + vmm_init + + + +Function: int vmm_init()Description: Initializes the vmm subsystemNotes: + + + + K_PANIC + vmm_pagingInit + vmmMemMapInit + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<ubixos/kpanic.h> + +intvmm_init(){ +if(vmmMemMapInit()!=0x0) +K_PANIC("Couldn'tInitializevmmMemMap"); + +if(vmm_pagingInit()!=0x0) +K_PANIC("Couldn'tInitializepagingsystem"); + +return(0x0); +} + +/*** +END +***/ + + + + + diff --git a/doc/xml/vmm__memory_8c.xml b/doc/xml/vmm__memory_8c.xml new file mode 100644 index 0000000..455a72a --- /dev/null +++ b/doc/xml/vmm__memory_8c.xml @@ -0,0 +1,920 @@ + + + + vmm_memory.c + vmm/vmm.h + sys/io.h + ubixos/kpanic.h + lib/kprintf.h + lib/kmalloc.h + ubixos/vitals.h + ubixos/spinlock.h + assert.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + int + int adjustCowCounter + (uInt32 baseAddr, int adjustment) + adjustCowCounter + + uInt32 + baseAddr + + + int + adjustment + + + + + + + + + assert + mMap::cowCounter + vitalsStruct::freePages + freePages + memAvail + mMap::pid + spinLock + spinUnlock + mMap::status + systemVitals + vmmCowSpinLock + vmmID + vmmMemoryMap + freePage + vmm_pageFault + vmmCopyVirtualSpace + vmmFreeProcessPages + + + int + int countMemory + () + countMemory + + + + + + + + cr0 + inportByte + outportByte + vmmMemMapInit + + + int + int freePage + (uInt32 pageAddr) + freePage + + uInt32 + pageAddr + + + + + + + + + adjustCowCounter + assert + mMap::cowCounter + vitalsStruct::freePages + freePages + memAvail + mMap::pid + spinLock + spinUnlock + mMap::status + systemVitals + vmmMemoryMap + vmmSpinLock + vmm_remapPage + + + uInt32 + uInt32 vmmFindFreePage + (pidType pid) + vmmFindFreePage + + pidType + pid + + + + + + + + + vitalsStruct::freePages + freePages + kpanic + memAvail + memNotavail + numPages + mMap::pid + spinLock + spinUnlock + status + sysID + systemVitals + vmmMemoryMap + vmmSpinLock + execFile + kmod_load + ldEnable + obreak + sysExec + vmm_getFreeMallocPage + vmm_pageFault + vmm_pagingInit + vmm_remapPage + vmmGetFreeKernelPage + vmmGetFreePage + vmmGetFreeVirtualPage + + + void + void vmmFreeProcessPages + (pidType pid) + vmmFreeProcessPages + + pidType + pid + + + + + + + + + adjustCowCounter + mMap::cowCounter + vitalsStruct::freePages + freePages + memAvail + numPages + PAGE_COW + pageEntries + parentPageDirAddr + mMap::pid + spinLock + spinUnlock + status + systemVitals + tablesBaseAddress + vmmID + vmmMemoryMap + vmmSpinLock + x1000 + systemTask + + + int + int vmmMemMapInit + () + vmmMemMapInit + + + + + + + + countMemory + freePages + kprintf + memAvail + memNotavail + numPages + mMap::pageAddr + mMap::pid + status + mMap::status + vmmID + vmmMemoryMap + x1000 + vmm_init + + + + + uInt32 + uInt32 freePages + + freePages + 0 + + + + + + + + adjustCowCounter + freePage + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + int + int numPages + + numPages + 0x0 + + + + + + + + vmm_pagingInit + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + spinLock_t + spinLock_t vmmCowSpinLock + + vmmCowSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + adjustCowCounter + + + mMap * + mMap* vmmMemoryMap + + vmmMemoryMap + (mMap *) 0x101000 + + + + + + + + adjustCowCounter + freePage + kmain + vmm_pagingInit + vmmFindFreePage + vmmFreeProcessPages + vmmMemMapInit + + + spinLock_t + spinLock_t vmmSpinLock + + vmmSpinLock + SPIN_LOCK_INITIALIZER + + + + + + + + freePage + vmmFindFreePage + vmmFreeProcessPages + + + + + + + +/***************************************************************************************** +Copyright(c)2002-2004TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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<vmm/vmm.h> +#include<sys/io.h> +#include<ubixos/kpanic.h> +#include<lib/kprintf.h> +#include<lib/kmalloc.h> +#include<ubixos/vitals.h> +#include<ubixos/spinlock.h> +#include<assert.h> + +staticuInt32freePages=0; +staticspinLock_tvmmSpinLock=SPIN_LOCK_INITIALIZER; +staticspinLock_tvmmCowSpinLock=SPIN_LOCK_INITIALIZER; + + +intnumPages=0x0; +mMap*vmmMemoryMap=(mMap*)0x101000; + + +/************************************************************************ + +Function:voidvmmMemMapInit(); +Description:ThisFunctionInitializesTheMemoryMapFortheSystem +Notes: + +02/20/2004-MadeItReportRealAndAvailableMemory + +************************************************************************/ +intvmmMemMapInit(){ +inti=0x0; +intmemStart=0x0; + +/*CountSystemMemory*/ +numPages=countMemory(); + +/*SetMemoryMapToPointToFirstPhysicalPageThatWeWillUse*/ +vmmMemoryMap=(mMap*)0x101000; + +/*InitializeMapMakeAllPagesNotAvailable*/ +for(i=0x0;i<numPages;i++){ +vmmMemoryMap[i].cowCounter=0x0; +vmmMemoryMap[i].status=memNotavail; +vmmMemoryMap[i].pid=vmmID; +vmmMemoryMap[i].pageAddr=i*4096; +} + +/*CalculateStartOfFreeMemory*/ +memStart=(0x101000/0x1000); +memStart+=(((sizeof(mMap)*numPages)+(sizeof(mMap)-1))/0x1000); + +/*InitializeAllFreePagesToAvailable*/ +vmmMemoryMap[(0x100000/0x1000)].status=memAvail; +freePages++; +for(i=memStart;i<numPages;i++){ +vmmMemoryMap[i].status=memAvail; +freePages++; +} + +/*PrintOutAmountOfMemory*/ +kprintf("RealMemory:%iKB\n",numPages*4); +kprintf("AvailableMemory:%iKB\n",freePages*4); + +/*Return*/ +return(0); +} + +/************************************************************************ + +Function:intcountMemory(); +Description:ThisFunctionCountsTheSystemsPhysicalMemory +Notes: + +02/20/2004-InspectForQualityAndApproved + +************************************************************************/ +intcountMemory(){ +registeruInt32*mem=0x0; +unsignedlongmemCount=-1,tempMemory=0x0; +unsignedshortmemKb=0; +unsignedcharirq1State,irq2State; +unsignedlongcr0=0x0; + +/* +*SaveTheStatesOfBothIRQ1And2SoWeCanTurnThemOffAndRestore +*ThemLater +*/ +irq1State=inportByte(0x21); +irq2State=inportByte(0xA1); + +/*TurnOffIRQ1And2ToPreventChancesOfFaultsWhileExaminingMemory*/ +outportByte(0x21,0xFF); +outportByte(0xA1,0xFF); + +/*SaveTheStateOfRegisterCR0*/ +asmvolatile( +"movl%%cr0,%%ebx\n" +:"=a"(cr0) +: +:"ebx" +); + +asmvolatile("wbinvd"); +asmvolatile( +"movl%%ebx,%%cr0\n" +: +:"a"(cr0|0x00000001|0x40000000|0x20000000) +:"ebx" +); + +while(memKb<4096&&memCount!=0){ +memKb++; +if(memCount==-1) +memCount=0; +memCount+=1024*1024; +mem=(uInt32*)memCount; +tempMemory=*mem; +*mem=0x55AA55AA; +asm("":::"memory"); +if(*mem!=0x55AA55AA){ +memCount=0; +} +else{ +*mem=0xAA55AA55; +asm("":::"memory"); +if(*mem!=0xAA55AA55){ +memCount=0; +} +} +asm("":::"memory"); +*mem=tempMemory; +} + +asmvolatile( +"movl%%ebx,%%cr0\n" +: +:"a"(cr0) +:"ebx" +); + +/*RestoreStatesForBothIRQ1And2*/ +outportByte(0x21,irq1State); +outportByte(0xA1,irq2State); + +/*ReturnAmountOfMemoryInPages*/ +return((memKb*1024*1024)/4096); +} + +/************************************************************************ + +Function:uInt32vmmFindFreePage(pid_tpid); + +Description:ThisReturnsAFreePhysicalPageAddressThenMarksIt +NotAvailableAsWellAsSettingThePIDToTheProccess +AllocatingThisPage +Notes: + +************************************************************************/ +uInt32vmmFindFreePage(pidTypepid){ +inti=0x0; + +/*LetsLookForAFreePage*/ +if(pid<sysID) +kpanic("Error:invalidPID%i\n",pid); + +spinLock(&vmmSpinLock); + +for(i=0;i<=numPages;i++){ + +/* +*IfWeFoundAFreePageSetItToNotAvailableAfterThatSetItsOwn +*AndReturnTheAddress +*/ +if((vmmMemoryMap[i].status==memAvail)&&(vmmMemoryMap[i].cowCounter==0)){ +vmmMemoryMap[i].status=memNotavail; +vmmMemoryMap[i].pid=pid; +freePages--; +if(systemVitals) +systemVitals->freePages=freePages; + +spinUnlock(&vmmSpinLock); +return(vmmMemoryMap[i].pageAddr); +} +} + +/*IfNoFreeMemoryIsFoundReturnNULL*/ +kpanic("OutOfMemory!!!!"); +return(0x0); +} + + +/************************************************************************ + +Function:intfreePage(uInt32pageAddr); + +Description:ThisFunctionMarksThePageAsFree + +Notes: + +************************************************************************/ +intfreePage(uInt32pageAddr){ +intpageIndex=0x0; +assert((pageAddr&0xFFF)==0x0); +spinLock(&vmmSpinLock); + +/*FindThePageIndexToTheMemoryMap*/ +pageIndex=(pageAddr/4096); + +/*CheckIfPageCOWIsGreaterThen0IfItIsDecItIfNotFreeIt*/ +if(vmmMemoryMap[pageIndex].cowCounter==0){ +/*SetPageAsAvailSoItCanBeUsedAgain*/ +vmmMemoryMap[pageIndex].status=memAvail; +vmmMemoryMap[pageIndex].cowCounter=0x0; +vmmMemoryMap[pageIndex].pid=-2; +freePages++; +systemVitals->freePages=freePages; +} +else{ +/*AdjustTheCOWCounter*/ +adjustCowCounter(((uInt32)vmmMemoryMap[pageIndex].pageAddr),-1); +} +spinUnlock(&vmmSpinLock); +/*Return*/ +return(0); +} + +/************************************************************************ + +Function:intadjustCowCounter(uInt32baseAddr,intadjustment); + +Description:ThisAdjustTheCOWCounterForPageAtbaseAddrItWill +ErrorIfTheCountGoesBelow0 + +Notes: + +08/01/02-IThinkIfCounterGetsTo0IShouldFreeThePage + +************************************************************************/ +intadjustCowCounter(uInt32baseAddr,intadjustment){ +intvmmMemoryMapIndex=(baseAddr/4096); +assert((baseAddr&0xFFF)==0x0); +spinLock(&vmmCowSpinLock); +/*AdjustCOWCounter*/ +vmmMemoryMap[vmmMemoryMapIndex].cowCounter+=adjustment; + +if(vmmMemoryMap[vmmMemoryMapIndex].cowCounter==0){ +vmmMemoryMap[vmmMemoryMapIndex].cowCounter=0x0; +vmmMemoryMap[vmmMemoryMapIndex].pid=vmmID; +vmmMemoryMap[vmmMemoryMapIndex].status=memAvail; +freePages++; +systemVitals->freePages=freePages; +} +spinUnlock(&vmmCowSpinLock); +/*Return*/ +return(0); +} + +/************************************************************************ + +Function:voidvmmFreeProcessPages(pid_tpid); + +Description:ThisFunctionWillFreeUpMemoryForTheExitingProcess + +Notes: + +08/04/02-AddedCheckingForCOWPagesFirst + +************************************************************************/ +voidvmmFreeProcessPages(pidTypepid){ +inti=0,x=0; +uInt32*tmpPageTable=0x0; +uInt32*tmpPageDir=(uInt32*)parentPageDirAddr; +spinLock(&vmmSpinLock); +/*CheckPageDirectoryForAnAvailPageTable*/ +for(i=0;i<=0x300;i++){ +if(tmpPageDir[i]!=0){ +/*SetUpPageTablePointer*/ +tmpPageTable=(uInt32*)(tablesBaseAddress+(i*0x1000)); +/*CheckThePageTableForCOWPages*/ +for(x=0;x<pageEntries;x++){ +/*IfThePageIsCOWAdjustCOWCounter*/ +if(((uInt32)tmpPageTable[x]&PAGE_COW)==PAGE_COW){ +adjustCowCounter(((uInt32)tmpPageTable[x]&0xFFFFF000),-1); +} +} +} +} + +/*LoopThroughPagesToFindPagesOwnedByProcess*/ +for(i=0;i<numPages;i++){ +if(vmmMemoryMap[i].pid==pid){ +/*CheckToSeeIfThecowCounterIsZeroIfSoWeCanReeIt*/ +if(vmmMemoryMap[i].cowCounter==0){ +vmmMemoryMap[i].status=memAvail; +vmmMemoryMap[i].cowCounter=0x0; +vmmMemoryMap[i].pid=vmmID; +freePages++; +systemVitals->freePages=freePages; +} +} +} +/*Return*/ +spinUnlock(&vmmSpinLock); +return; +} + +/*** +$Log$ +Revision1.12006/12/0118:46:19reddawg +renamingfiles + +Revision1.22006/12/0105:12:35reddawg +We'realmostthere...:) + +Revision1.1.1.12006/06/0112:46:13reddawg +ubix2 + +Revision1.52006/06/0112:42:09reddawg +Gettingbacktothebasics + +Revision1.42006/06/0104:15:32reddawg +Woot + +Revision1.32006/06/0103:58:33reddawg +wonderingaboutthisstuffhere + +Revision1.22005/10/1200:13:38reddawg +Removed + +Revision1.1.1.12005/09/2617:24:51reddawg +nomessage + +Revision1.152004/09/1123:39:31reddawg +oktimeforbed + +Revision1.142004/09/1116:39:19apwillia +FixorderinadjustCowCountertopreventpotentialracecondition + +Revision1.132004/08/1411:23:03reddawg +Changes + +Revision1.122004/08/0120:51:33reddawg +adjustCowCounter:wenolongerneedtodebugunhandledadjustmentstheyarenormalsituationsnow + +Revision1.112004/07/2800:17:05reddawg +Major: +Disconnectedpage0x0fromthesystem...Unfortunatelythisbrokemanythings +allofwhichhavebeenfixed.ThiswasgoodbecausenothingdeferencesNULL +anymore. + +Thingsaffected: +malloc,kmalloc,getfreepage,getfreevirtualpage,pagefault,fork,exec,ld,ld.so,exec,file + +Revision1.102004/07/2619:15:49reddawg +testcode,fixesandthelike + +Revision1.92004/07/2423:04:44reddawg +Changes...markletmeknowifyoufaultatpid185whenyoutypestress + +Revision1.82004/07/2417:47:28reddawg +vmm_pageFault:deadlockresolvedthankstoaproppersolutionsuggestedbygeist + +Revision1.72004/07/1902:04:32reddawg +memory.c:addedspinlockstovmmFindFreePageandvmmFreePagetopreventtwotasksfrompossiblyallocatingthesamepage + +Revision1.62004/06/1412:20:54reddawg +notes:manybugsrepairedandldworks100%now. + +Revision1.52004/05/2115:34:23reddawg +Fixedacoupleoftypo + +Revision1.42004/05/2114:50:10reddawg +Cleanedup + +Revision1.32004/05/1917:28:28reddawg +AddedthecorrectendTaskProcedure + +Revision1.22004/04/3014:16:04reddawg +FixedallthedatatypestobeconsistantuInt8,uInt16,uInt32,Int8,Int16,Int32 + +Revision1.1.1.12004/04/1512:06:52reddawg +UbixOSv1.0 + +Revision1.272004/04/1316:36:34reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + +END +***/ + + + + diff --git a/doc/xml/vsprintf_8c.xml b/doc/xml/vsprintf_8c.xml new file mode 100644 index 0000000..4e4a0ae --- /dev/null +++ b/doc/xml/vsprintf_8c.xml @@ -0,0 +1,561 @@ + + + + vsprintf.c + stdarg.h + lib/string.h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + do_div + n + base + ({ \ +int __res; \ +__asm__("divl %4":"=a" (n),"=d" (__res):"0" (n),"1" (0),"r" (base)); \ +__res; }) + + + + + + + + number + + + is_digit + c + ((c) >= '0' && (c) <= '9') + + + + + + + + skip_atoi + vsprintf + + + LEFT + 16 + + + + + + + + number + vsprintf + + + PLUS + 4 + + + + + + + + number + vsprintf + + + SIGN + 2 + + + + + + + + number + vsprintf + + + SMALL + 64 + + + + + + + + number + vsprintf + + + SPACE + 8 + + + + + + + + number + vsprintf + + + SPECIAL + 32 + + + + + + + + number + vsprintf + + + ZEROPAD + 1 + + + + + + + + number + vsprintf + + + + + char * + static char* number + (char *str, int num, int base, int size, int precision, int type) + number + + char * + str + + + int + num + + + int + base + + + int + size + + + int + precision + + + int + type + + + + + + + + + do_div + LEFT + PLUS + SIGN + SMALL + SPACE + SPECIAL + ZEROPAD + vsprintf + + + int + static int skip_atoi + (const char **s) + skip_atoi + + const char ** + s + + + + + + + + + is_digit + vsprintf + + + int + int vsprintf + (char *buf, const char *fmt, vaList args) + vsprintf + + char * + buf + + + const char * + fmt + + + vaList + args + + + + + + + + + is_digit + LEFT + number + PLUS + SIGN + skip_atoi + SMALL + SPACE + SPECIAL + strlen + vaArg + ZEROPAD + kpanic + kprintf + sprintf + + + + + + + +/***************************************************************************************** +Copyright(c)2002TheUbixOSProject +Allrightsreserved. + +Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are +permittedprovidedthatthefollowingconditionsaremet: + +Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof +conditions,thefollowingdisclaimerandthelistofauthors.Redistributionsinbinary +formmustreproducetheabovecopyrightnotice,thislistofconditions,thefollowing +disclaimerandthelistofauthorsinthedocumentationand/orothermaterialsprovided +withthedistribution.NeitherthenameoftheUbixOSProjectnorthenamesofits +contributorsmaybeusedtoendorseorpromoteproductsderivedfromthissoftware +withoutspecificpriorwrittenpermission. + +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. + +$Log$ +Revision1.1.1.12006/06/0112:46:16reddawg +ubix2 + +Revision1.22005/10/1200:13:37reddawg +Removed + +Revision1.1.1.12005/09/2617:24:14reddawg +nomessage + +Revision1.22004/06/2823:12:58reddawg +fileformatnowcontainer:/path/to/file + +Revision1.1.1.12004/04/1512:07:11reddawg +UbixOSv1.0 + +Revision1.32004/04/1316:36:33reddawg +Changedourcopyright,itisallnowunderaBSD-Stylelicense + + + +$Id$ + +*****************************************************************************************/ + +/*vsprintf.c--LarsWirzenius&LinusTorvalds.*/ +/* +*Wirzeniuswrotethisportably,Torvaldsfuckeditup:-) +*/ + +#include<stdarg.h> +#include<lib/string.h> + +/*weusethissothatwecandowithoutthectypelibrary*/ +#defineis_digit(c)((c)>='0'&&(c)<='9') + +staticintskip_atoi(constchar**s) +{ +inti=0; + +while(is_digit(**s)) +i=i*10+*((*s)++)-'0'; +returni; +} + +#defineZEROPAD1/*padwithzero*/ +#defineSIGN2/*unsigned/signedlong*/ +#definePLUS4/*showplus*/ +#defineSPACE8/*spaceifplus*/ +#defineLEFT16/*leftjustified*/ +#defineSPECIAL32/*0x*/ +#defineSMALL64/*use'abcdef'insteadof'ABCDEF'*/ + +#definedo_div(n,base)({\ +int__res;\ +__asm__("divl%4":"=a"(n),"=d"(__res):"0"(n),"1"(0),"r"(base));\ +__res;}) + +staticchar*number(char*str,intnum,intbase,intsize,intprecision +,inttype) +{ +charc,sign,tmp[36]; +constchar*digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +inti; + +if(type&SMALL)digits="0123456789abcdefghijklmnopqrstuvwxyz"; +if(type&LEFT)type&=~ZEROPAD; +if(base<2||base>36) +return0; +c=(type&ZEROPAD)?'0':''; +if(type&SIGN&&num<0){ +sign='-'; +num=-num; +}else +sign=(type&PLUS)?'+':((type&SPACE)?'':0); +if(sign)size--; +if(type&SPECIAL){ +if(base==16){size-=2;} +elseif(base==8){size--;} +} +i=0; +if(num==0) +tmp[i++]='0'; +elsewhile(num!=0) +tmp[i++]=digits[do_div(num,base)]; +if(i>precision)precision=i; +size-=precision; +if(!(type&(ZEROPAD+LEFT))) +while(size-->0) +*str++=''; +if(sign) +*str++=sign; +if(type&SPECIAL){ +if(base==8){ +*str++='0'; +} +elseif(base==16){ +*str++='0'; +*str++=digits[33]; +} +} +if(!(type&LEFT)) +while(size-->0) +*str++=c; +while(i<precision--) +*str++='0'; +while(i-->0) +*str++=tmp[i]; +while(size-->0) +*str++=''; +returnstr; +} + +intvsprintf(char*buf,constchar*fmt,vaListargs) +{ +intlen; +inti; +char*str; +char*s; +int*ip; + +intflags;/*flagstonumber()*/ + +intfield_width;/*widthofoutputfield*/ +intprecision;/*min.#ofdigitsforintegers;max +numberofcharsforfromstring*/ +intqualifier;/*'h','l',or'L'forintegerfields*/ + +for(str=buf;*fmt;++fmt){ +if(*fmt!='%'){ +*str++=*fmt; +continue; +} + +/*processflags*/ +flags=0; +repeat: +++fmt;/*thisalsoskipsfirst'%'*/ +switch(*fmt){ +case'-':flags|=LEFT;gotorepeat; +case'+':flags|=PLUS;gotorepeat; +case'':flags|=SPACE;gotorepeat; +case'#':flags|=SPECIAL;gotorepeat; +case'0':flags|=ZEROPAD;gotorepeat; +} + +/*getfieldwidth*/ +field_width=-1; +if(is_digit(*fmt)) +field_width=skip_atoi(&fmt); +elseif(*fmt=='*'){ +/*it'sthenextargument*/ +field_width=vaArg(args,int); +if(field_width<0){ +field_width=-field_width; +flags|=LEFT; +} +} + +/*gettheprecision*/ +precision=-1; +if(*fmt=='.'){ +++fmt; +if(is_digit(*fmt)) +precision=skip_atoi(&fmt); +elseif(*fmt=='*'){ +/*it'sthenextargument*/ +precision=vaArg(args,int); +} +if(precision<0) +precision=0; +} + +/*gettheconversionqualifier*/ +qualifier=-1; +if(*fmt=='h'||*fmt=='l'||*fmt=='L'){ +qualifier=*fmt; +++fmt; +} + +switch(*fmt){ +case'c': +if(!(flags&LEFT)) +while(--field_width>0) +*str++=''; +*str++=(unsignedchar)vaArg(args,int); +while(--field_width>0) +*str++=''; +break; + +case's': +s=vaArg(args,char*); +len=strlen(s); +if(precision<0) +precision=len; +elseif(len>precision) +len=precision; + +if(!(flags&LEFT)) +while(len<field_width--) +*str++=''; +for(i=0;i<len;++i) +*str++=*s++; +while(len<field_width--) +*str++=''; +break; + +case'o': +str=number(str,vaArg(args,unsignedlong),8, +field_width,precision,flags); +break; + +case'p': +if(field_width==-1){ +field_width=8; +flags|=ZEROPAD; +} +str=number(str, +(unsignedlong)vaArg(args,void*),16, +field_width,precision,flags); +break; + +case'x': +flags|=SMALL; +case'X': +str=number(str,vaArg(args,unsignedlong),16, +field_width,precision,flags); +break; + +case'd': +case'i': +flags|=SIGN; +case'u': +str=number(str,vaArg(args,unsignedlong),10, +field_width,precision,flags); +break; + +case'n': +ip=vaArg(args,int*); +*ip=(str-buf); +break; + +default: +if(*fmt!='%') +*str++='%'; +if(*fmt) +*str++=*fmt; +else +--fmt; +break; +} +} +*str='\0'; +returnstr-buf; +} + +/*** +END +***/ + + + + +