------------------------------------------------------------------------ r108 | nlinnenbank | 2009-06-13 10:08:02 +0000 (Sat, 13 Jun 2009) | 2 lines Incremented version to 0.0.2. ------------------------------------------------------------------------ r109 | cbijlsma | 2009-06-13 19:33:24 +0000 (Sat, 13 Jun 2009) | 1 line Fixed bug where StringTokenizer went wrong if the delimeters for splitting the string were a single char ------------------------------------------------------------------------ r110 | cbijlsma | 2009-06-13 19:54:36 +0000 (Sat, 13 Jun 2009) | 1 line Forgot to change the owner of the files I created to yours truly ------------------------------------------------------------------------ r111 | cbijlsma | 2009-06-16 13:30:41 +0000 (Tue, 16 Jun 2009) | 1 line Changed VECTOR_DEFAULT_SIZE from 64 to 10 and created a private function _expand() in Vector.h. On insert(T *t), the size of the internal array is checked and the array is expanded if necessary. Also added function count() to Vector.h that returns the amount of items currently in the Vector. ------------------------------------------------------------------------ r112 | cbijlsma | 2009-06-17 11:46:17 +0000 (Wed, 17 Jun 2009) | 1 line Removed TODO file because we have a real bug tracking system now ------------------------------------------------------------------------ r113 | cbijlsma | 2009-06-17 11:50:03 +0000 (Wed, 17 Jun 2009) | 1 line Removed the ./TODO entry from boot/boot.ext2desc ------------------------------------------------------------------------ r114 | nlinnenbank | 2009-06-17 14:00:22 +0000 (Wed, 17 Jun 2009) | 5 lines The SCons scripts now check for the -fno-stack-protector and -Wno-write-strings flag in the current target compiler. If it does not exist, it will not be added to CCFLAGS. Also removed the TODO file in favour of the new bugtracker on http://www.FreeNOS.org/bugs Fixes bug #1. ------------------------------------------------------------------------ r115 | nlinnenbank | 2009-06-17 15:35:28 +0000 (Wed, 17 Jun 2009) | 5 lines Added a target to launch bochs via SCons, and renamed qemu.py to emulate.py. Renamed the previous 'sqemu', 'cqemu' targets to more clear targets: 'qemu', 'qemu_curses', 'qemu_sdl', 'qemu_debug'. The Doxygen documentation has been updated accordingly. ------------------------------------------------------------------------ r116 | nlinnenbank | 2009-06-17 15:39:29 +0000 (Wed, 17 Jun 2009) | 3 lines Renamed the Doxygen sections to unique values, so that the proper section titles are displayed in the Doxygen output. ------------------------------------------------------------------------ r117 | nlinnenbank | 2009-06-17 17:54:14 +0000 (Wed, 17 Jun 2009) | 6 lines Fixed the following compiler warning on FreeBSD using GCC 4.2.1 20070719, by adding a newline to the source_file variable for use in the Configure scripts: .sconf_temp/conftest_0.c:1:47: error: no newline at end of file ------------------------------------------------------------------------ r118 | nlinnenbank | 2009-06-17 18:02:35 +0000 (Wed, 17 Jun 2009) | 10 lines Fixed the following compilation error under FreeBSD, by adding a newline character at the end of the StringTokenizer.cpp file: scons: Building targets ... CXX lib/libparse/StringTokenizer.o lib/libparse/StringTokenizer.cpp:227:2: error: no newline at end of file scons: *** [lib/libparse/StringTokenizer.o] Error 1 scons: building terminated because of errors. ------------------------------------------------------------------------ r119 | cbijlsma | 2009-06-18 10:37:00 +0000 (Thu, 18 Jun 2009) | 1 line Realized feature request #52, create a Stack datastructure ------------------------------------------------------------------------ r120 | cbijlsma | 2009-06-18 10:40:37 +0000 (Thu, 18 Jun 2009) | 1 line Renamed the nodes in the Stack class to StackNode ------------------------------------------------------------------------ r121 | cbijlsma | 2009-06-18 10:43:48 +0000 (Thu, 18 Jun 2009) | 1 line Forgot to add decent comments to include/Stacknode.h ------------------------------------------------------------------------ r122 | cbijlsma | 2009-06-18 14:27:43 +0000 (Thu, 18 Jun 2009) | 1 line Renamed StackNode to Element and added Array.h ------------------------------------------------------------------------ r123 | cbijlsma | 2009-06-18 14:48:21 +0000 (Thu, 18 Jun 2009) | 1 line Replaced Vector in kernel/X86/Kernel.cpp by Array ------------------------------------------------------------------------ r124 | nlinnenbank | 2009-06-18 15:17:16 +0000 (Thu, 18 Jun 2009) | 6 lines Rewrote X86Kernel::enableIRQ() to be more simple and clean, which also solved bug #7. All compilers are now able to compile FreeNOS, and are at least successfully bootable under Qemu 0.10.5. Additionally, the linker scripts where modified to generate a correct ELF kernel under FreeBSD. ------------------------------------------------------------------------ r125 | cbijlsma | 2009-06-18 20:22:30 +0000 (Thu, 18 Jun 2009) | 1 line Added Map datastructure and added a clone() method to the Vector template ------------------------------------------------------------------------ r126 | cbijlsma | 2009-06-18 20:24:30 +0000 (Thu, 18 Jun 2009) | 1 line Added the semicolon to the Map template class. Forgot that, and that is stupid. ------------------------------------------------------------------------ r127 | cbijlsma | 2009-06-19 09:32:13 +0000 (Fri, 19 Jun 2009) | 1 line Replaced the use of Vector by Array throughout the project and fixed a bug where FreeNOS hangs just after mounting /img. This was because of a bug in Array::insert(T* item) ------------------------------------------------------------------------ r128 | cbijlsma | 2009-06-20 12:19:09 +0000 (Sat, 20 Jun 2009) | 1 line URI can now normalize a raw URI string: unreserved encoded characters are decoded. Also, URI's are normalized before they are compared to each other making the URI's http://my.si.te.nl , http://my.si%2ete.nl and http://my.si%2Ete.nl equal to each other ------------------------------------------------------------------------ r129 | nlinnenbank | 2009-06-20 19:56:19 +0000 (Sat, 20 Jun 2009) | 4 lines The new() operators in liballoc now use __SIZE_TYPE__ instead of the Size type, as the actual type used by the target compiler may vary. Fixes bug #3. ------------------------------------------------------------------------ r130 | cbijlsma | 2009-06-21 11:12:49 +0000 (Sun, 21 Jun 2009) | 1 line Enhanced the String class and added strcasecmp() and strncasecmp() to libc. ------------------------------------------------------------------------ r131 | cbijlsma | 2009-06-21 14:09:39 +0000 (Sun, 21 Jun 2009) | 1 line Replaced the functions toupper() and tolower() in ctype.h by preprocessor macro's ------------------------------------------------------------------------ r132 | nlinnenbank | 2009-06-21 22:41:48 +0000 (Sun, 21 Jun 2009) | 16 lines Modified the SCons scripts to use -I instead of -isystem, as -isystem on OpenBSD seems to mark headers a C sources. This change also seems to enable various extra warnings in GCC. Due to this, BITWISE has been disabled temporarily in include/Types.h, as it seems unrecognized. Removed REGISTER() from Init.h and libexec; it now simple adds ELF::detect explicitely to the formats list. Also Renamed -DHOST to -D__HOST__. Added a function escape() to site_scons/version.py, to escape double quotes. This is neccessary, as for example in OpenBSD, the BUILDCPU macro value contains double quotes. These changes fix bug #21. The system can now be compiled successfully on OpenBSD 4.5. ------------------------------------------------------------------------ r133 | nlinnenbank | 2009-06-22 14:38:31 +0000 (Mon, 22 Jun 2009) | 4 lines Added a few virtual destructor functions, and modified include/Error.h to not define errno nor error codes for __HOST__. These changes fix compilation on DragonFly 2.2.1. ------------------------------------------------------------------------ r134 | nlinnenbank | 2009-06-23 19:43:28 +0000 (Tue, 23 Jun 2009) | 5 lines Now using the -W compiler flag for stricter code checking. Corrected the ESRCH error value to not be the same as ESPIPE. Replaced the Python module 'pysvn' with 'svn', which is hopefully available on more platforms per default. ------------------------------------------------------------------------ r135 | nlinnenbank | 2009-06-23 19:53:36 +0000 (Tue, 23 Jun 2009) | 5 lines Fixed the following compilation problem under at least GCC 4.4.0 under Gentoo 2008.0 (amd64): error: suggest a space before ';' or explicit braces around empty body in 'while' statement ------------------------------------------------------------------------ r136 | nlinnenbank | 2009-06-23 21:20:50 +0000 (Tue, 23 Jun 2009) | 4 lines Removed the --whole-archive argument from the host linker flags, as it is unneccessary now (i.e. no Init.h anymore for host targets). This change also fixes compilation of the /sbin/img program on OpenSolaris 2009.06. ------------------------------------------------------------------------ r137 | aschrijver | 2009-06-24 17:17:06 +0000 (Wed, 24 Jun 2009) | 4 lines Add strdup(3) Add const to a couple of str* functions ------------------------------------------------------------------------ r138 | aschrijver | 2009-06-25 09:10:49 +0000 (Thu, 25 Jun 2009) | 4 lines Use strdup(3) to minimize the code Correct a typo ------------------------------------------------------------------------ r139 | nlinnenbank | 2009-06-25 09:45:24 +0000 (Thu, 25 Jun 2009) | 6 lines Fixed the following compiler warning under GCC 4.4.0 p1.1 on Gentoo 2008.0 (amd64): lib/libc/string/strcpy.c: In function 'strcpy': lib/libc/string/strcpy.c:23: error: initialization discards qualifiers from pointer target type ------------------------------------------------------------------------ r140 | nlinnenbank | 2009-06-25 12:08:36 +0000 (Thu, 25 Jun 2009) | 4 lines Added a macro BITMAP_NUM_BYTES() which calculates the number of bytes needed in a bitmap for the given amount of elements, and returns at least one. ------------------------------------------------------------------------ r141 | nlinnenbank | 2009-06-25 13:39:38 +0000 (Thu, 25 Jun 2009) | 6 lines This commit fixes FileSystemMessage::newProcess(), by correctly setting this->action to NewProcess. Also removing PROCTABLE macro from MemoryServer, as it is unused. ProcessServer now returns the correct error number when ExecutableFormat::regions() fails. ------------------------------------------------------------------------ r142 | nlinnenbank | 2009-06-25 15:05:55 +0000 (Thu, 25 Jun 2009) | 4 lines Corrected the count argument passed to strncmp() in Ext2Directory::getEntry(), to use at least dent->nameLength but strlen(name) if it is longer. This change fixes bug #2. ------------------------------------------------------------------------ r143 | nlinnenbank | 2009-06-25 15:47:17 +0000 (Thu, 25 Jun 2009) | 2 lines Removed a TODO line in Kernel.cpp which is already solved. ------------------------------------------------------------------------ r144 | nlinnenbank | 2009-06-25 21:50:40 +0000 (Thu, 25 Jun 2009) | 6 lines Added a copy constructor to Array.h, and replaced the tabs with white spaces for invexing. Modified /sbin/init to temporarily initialize a (hardcoded) list of servers, including the Shell. Init now opens standard I/O, and child processes inherit them implicitely using forkexec(). These changes fix bug #35. ------------------------------------------------------------------------ r145 | nlinnenbank | 2009-06-25 22:01:44 +0000 (Thu, 25 Jun 2009) | 6 lines Modified #define assert(exp) to expand to an infinite for() with a body, to prevent the following warning under LLVM 4.2.1 on FreeBSD 7.2: warning: suggest a space before ';' or explicit braces around empty body in 'for' statement ------------------------------------------------------------------------ r146 | nlinnenbank | 2009-06-25 22:19:18 +0000 (Thu, 25 Jun 2009) | 4 lines Moved check for -fno-stack-protector to the top, as on OpenBSD 4.5 ld(1) would give undefined references to stack protector specific symbols like __guard, effectively failing all config tests. ------------------------------------------------------------------------ r147 | nlinnenbank | 2009-06-25 23:28:32 +0000 (Thu, 25 Jun 2009) | 4 lines Fixed the calculation of the remaining number of bytes needed to be copied in VMCopyHandler. Previously it could overflow in some cases, possibly crashing the (remote) process. ------------------------------------------------------------------------ r148 | nlinnenbank | 2009-06-26 12:05:21 +0000 (Fri, 26 Jun 2009) | 9 lines Implemented argument passing with forkexec(), using the argc (argument count) and argv (argument value) variables. Modified the ProcessServer to map the list of given arguments to a known address at ARGV_ADDR. libcrt now uses this address to fill in the argc and argv arguments for the main() function. The Kernel fills ARGV_ADDR with the BootProgram.path field. Additionally, /bin/uname was added to demonstrate the argument passing functionality. These changes fix bug #27. ------------------------------------------------------------------------ r149 | nlinnenbank | 2009-06-26 14:14:31 +0000 (Fri, 26 Jun 2009) | 3 lines Implemented file constants prefixed with O_ for the open(), fdopen() and fcntl() functions in fcntl.h. Added a fully POSIX-ly compliant /bin/cat. ------------------------------------------------------------------------ r150 | nlinnenbank | 2009-06-26 16:53:48 +0000 (Fri, 26 Jun 2009) | 4 lines Added /bin/mknod, /bin/stat and /bin/ls as separate executable programs and removed the builtins from Shell. Also modified the WriteCommand to write() all arguments to the target file. ------------------------------------------------------------------------ r151 | nlinnenbank | 2009-06-26 17:34:48 +0000 (Fri, 26 Jun 2009) | 3 lines Removed the --whole-archive argument for linking the kernel, and also removed the --no-whole-archive from the HOSTLINKFLAGS as it is useless. ------------------------------------------------------------------------ r152 | aschrijver | 2009-06-26 21:17:51 +0000 (Fri, 26 Jun 2009) | 3 lines Add echo(1) ------------------------------------------------------------------------ r153 | nlinnenbank | 2009-06-27 04:29:15 +0000 (Sat, 27 Jun 2009) | 4 lines Removed code which marks GRUB boot modules used from the Kernel::Kernel() function, as it was already done in Memory::Memory(). Also removed a depreciated comment line. ------------------------------------------------------------------------ r154 | nlinnenbank | 2009-06-27 04:49:11 +0000 (Sat, 27 Jun 2009) | 2 lines Added the command-line options -h, -n, -r, -v and -m to /bin/uname. ------------------------------------------------------------------------ r155 | cbijlsma | 2009-06-27 11:52:57 +0000 (Sat, 27 Jun 2009) | 1 line Fixed StringTokenizer so that URI and StringTokenizer now work correctly. Also removed memory leaks found by valgrind in String and StringTokenizer and URI ------------------------------------------------------------------------ r156 | nlinnenbank | 2009-06-27 20:46:09 +0000 (Sat, 27 Jun 2009) | 5 lines Fixed String to use the 'size' argument when needed by using strndup() instead of strdup() appropriately. Implemented strndup() in libc. Partial implementation of assertion checks is now available in Assert.h. ------------------------------------------------------------------------ r157 | nlinnenbank | 2009-06-27 22:52:58 +0000 (Sat, 27 Jun 2009) | 8 lines Fully implemented assertion check routines: assert() to check for an expression, assertRead() to verify read access and assertWrite() to verify write access, respectively. Renamed the runtime.{h|cpp} files to Runtime.{h|cpp} in libcrt. Changed the fmt argument in printf and vprintf to have the 'const' modifier. These changes fix bug #45. ------------------------------------------------------------------------ r158 | nlinnenbank | 2009-06-27 22:55:25 +0000 (Sat, 27 Jun 2009) | 2 lines Recommited the Default.h symlink in libcrt. ------------------------------------------------------------------------ r159 | nlinnenbank | 2009-06-28 09:30:20 +0000 (Sun, 28 Jun 2009) | 2 lines Renamed all server executables to 'server'. ------------------------------------------------------------------------ r160 | nieklinnenbank | 2009-06-28 12:22:24 +0000 (Sun, 28 Jun 2009) | 6 lines Implemented ExitCommand to exit the Shell. Shell now also accepts a list of files as an argument of which the contents (separated by newlines) are interpreted as Shell commands. Additionally, added a /etc/rc to test this functionality and will be eventually be used by /sbin/init to startup the system. ------------------------------------------------------------------------ r161 | nieklinnenbank | 2009-06-28 13:55:59 +0000 (Sun, 28 Jun 2009) | 3 lines Renamed the typedef for enum Operation to the correct name, which is 'Operation' instead of 'Action'. ------------------------------------------------------------------------ r162 | nieklinnenbank | 2009-06-28 14:19:34 +0000 (Sun, 28 Jun 2009) | 2 lines Added an enum MemoryOperation for use in VMCtl(). ------------------------------------------------------------------------ r163 | nieklinnenbank | 2009-06-28 14:26:21 +0000 (Sun, 28 Jun 2009) | 2 lines Corrected the calculation of the size variable in ProcRootDirectory. ------------------------------------------------------------------------ r164 | coenbijlsma | 2009-06-28 19:18:18 +0000 (Sun, 28 Jun 2009) | 2 lines Added decent comments to StringTokenizer.h and URI.h ------------------------------------------------------------------------ r165 | nieklinnenbank | 2009-06-29 00:23:04 +0000 (Mon, 29 Jun 2009) | 8 lines Implemented the fork() POSIX function. The /sbin/init program now uses /etc/rc using /bin/sh to startup drivers, filesystems and the shell. To implement fork() the SetStack option was added to ProcessCtl() and (Un)MapTables to VMCtl(). Copying of process memory is handled entirely by the ProcessServer in userspace in the cloneProcessHandler procedure. The procfs, serial and pci drivers now fork() into the background. ------------------------------------------------------------------------ r166 | nieklinnenbank | 2009-06-29 07:56:11 +0000 (Mon, 29 Jun 2009) | 4 lines VirtualFileSystem now returns FileStat and Dirent objects. The POSIX-1.2008 library translates these objects into POSIX-1.2008 specific struct stat's and struct dirent's. These changes fix bug #12. ------------------------------------------------------------------------ r167 | nieklinnenbank | 2009-06-29 08:43:21 +0000 (Mon, 29 Jun 2009) | 4 lines Replaced strndup() with malloc() and memcpy() in String.h for OpenBSD. OpenBSD doesn't have a native strndup() function, which is needed to compile some of the host system applications and libraries. ------------------------------------------------------------------------ r168 | nieklinnenbank | 2009-06-29 13:24:26 +0000 (Mon, 29 Jun 2009) | 6 lines Added BitMap template class. The BitMap class may be used to mark bits (un)used in it's internal map. The implementation is currently untested. Also added an empty Ext2Create.cpp which can be used to create Extended 2 FileSystems and may use BitMap. ------------------------------------------------------------------------ r169 | nieklinnenbank | 2009-06-29 17:08:43 +0000 (Mon, 29 Jun 2009) | 5 lines Added Ext2Create class to create new Extended 2 FileSystems. It currently can allocate, fill and write a superblock to an output image. /usr/bin/file correctly identifies it as an ext2 filesystem image. ------------------------------------------------------------------------ r170 | nieklinnenbank | 2009-06-29 21:15:26 +0000 (Mon, 29 Jun 2009) | 7 lines Fixed memory corruption in opendir() in libposix. The opendir() function did not correctly use the return value of read() to obtain the number of Dirent entries returned by the filesystem: it used st.st_size and caused it to perform operations out of bounds. Additionally, opendir() now preallocates 1024 Dirent entries. ------------------------------------------------------------------------ r171 | nieklinnenbank | 2009-06-29 21:28:07 +0000 (Mon, 29 Jun 2009) | 3 lines Corrected the filetype of /proc/$PID/{cmdline|status} Previously, they where marked as directories instead of files. ------------------------------------------------------------------------ r172 | nieklinnenbank | 2009-06-30 19:15:26 +0000 (Tue, 30 Jun 2009) | 4 lines Ext2Create is now able to procude a list containing all input files. Additionally, Ext2Create::writeImage() is now used to write the output file. ------------------------------------------------------------------------ r173 | nieklinnenbank | 2009-06-30 22:17:24 +0000 (Tue, 30 Jun 2009) | 5 lines Ext2Create can generate Ext2Inodes. It also computes the total number of inodes needed, and updates the Ext2SuperBlock appropriately. Additionally, some unused variables where removed. ------------------------------------------------------------------------ r174 | nieklinnenbank | 2009-06-30 23:25:36 +0000 (Tue, 30 Jun 2009) | 5 lines Ext2Create now writes Ext2Group descriptors to an image. The /sbin/dumpe2fs utility from e2fsprogs now correctly displays the superblock information of the generated image. Also added the List::count() function which returns the number of items in the List. ------------------------------------------------------------------------ r175 | nieklinnenbank | 2009-07-01 09:56:21 +0000 (Wed, 01 Jul 2009) | 6 lines Fixed assignment of the 'ptr' variable in BitMap::markNext(). It previously was assigned the address of the map variable, instead of the address to which map actually points. Additionally, the map variable is cleared to zero in the BitMap() constructor, a getMap() function was added and the 'const' modifier is applied where appropriate. ------------------------------------------------------------------------ r176 | nieklinnenbank | 2009-07-01 09:58:23 +0000 (Wed, 01 Jul 2009) | 4 lines Ext2Create can now write Ext2Inodes to the output image. Additionally, the Ext2Group block and inode bitmaps are calculated in memory and written to the image aswell. ------------------------------------------------------------------------ r177 | nieklinnenbank | 2009-07-01 17:57:18 +0000 (Wed, 01 Jul 2009) | 3 lines Added functions markRange(), setMap(), getUsed(), getFree() to BitMap. Additionally, a miscalculation in BitMap::isMarked() was corrected. ------------------------------------------------------------------------ r178 | nieklinnenbank | 2009-07-02 18:16:10 +0000 (Thu, 02 Jul 2009) | 4 lines Ext2Create is now able to create a mountable filesystem. /sbin/fsck.ext2 still shows some minor errors however, but under Linux the image is mountable (and hopefully under FreeNOS aswell). ------------------------------------------------------------------------ r179 | nieklinnenbank | 2009-07-02 18:46:33 +0000 (Thu, 02 Jul 2009) | 4 lines Corrected the offset calculation of Ext2Groups. This ensures filesystems which have superBlock.firstDataBlock <= 1 are mounted correctly. ------------------------------------------------------------------------ r180 | alexander.schrijver | 2009-07-02 19:24:21 +0000 (Thu, 02 Jul 2009) | 3 lines Add missing header. ------------------------------------------------------------------------ r181 | nieklinnenbank | 2009-07-02 22:17:34 +0000 (Thu, 02 Jul 2009) | 4 lines Ext2File correction: respect inode->size and not read beyond. Previously, it may occur that Ext2File::read() read too much bytes in the case of very small files. ------------------------------------------------------------------------ r182 | nieklinnenbank | 2009-07-02 22:19:48 +0000 (Thu, 02 Jul 2009) | 4 lines Fix compilation of Ext2Create under OpenBSD: off_t casted to long long unsigned. It seems that on OpenBSD the off_t variable is an 64-bit integer on Linux it's 32-bit. We can fix this by casting it to 64-bit, and using %llu in the format. ------------------------------------------------------------------------ r183 | nieklinnenbank | 2009-07-03 10:41:09 +0000 (Fri, 03 Jul 2009) | 5 lines Ext2File correction for r181 and before: respect inode->size. It seemed the previous patch was wrong, which this patch will hopefully fix. Additionally the copyOffset variable is now computed faster and simpler. ------------------------------------------------------------------------ r184 | nieklinnenbank | 2009-07-03 11:11:07 +0000 (Fri, 03 Jul 2009) | 4 lines Ext2Create: include the last block in the generated image. Removed the -1 from Ext2Create::create(), as it otherwise did not include the last block in the final filesystem in writeImage(). ------------------------------------------------------------------------ r185 | nieklinnenbank | 2009-07-03 11:52:23 +0000 (Fri, 03 Jul 2009) | 3 lines Added the -e PATTERN option to Ext2Create to exclude files from the image. The usage output was updated accordingly. ------------------------------------------------------------------------ r186 | nieklinnenbank | 2009-07-03 11:55:25 +0000 (Fri, 03 Jul 2009) | 2 lines Moved Ext2Create objects and binaries to the /srv/filesystem/ext2/host output directory. ------------------------------------------------------------------------ r187 | nieklinnenbank | 2009-07-03 12:17:23 +0000 (Fri, 03 Jul 2009) | 3 lines Added option '-v' for verbose output messages in Ext2Create. Per default, verbose messages are turned off. ------------------------------------------------------------------------ r188 | nieklinnenbank | 2009-07-03 12:20:34 +0000 (Fri, 03 Jul 2009) | 6 lines Replaced genext2fs with /srv/filesystem/ext2/host/create. This removes an external dependency, so FreeNOS will be easier to compile on more systems, as genext2fs is not available on all system's package managers (i.e. OpenBSD). Additionally, we now know how to write to an ext2 filesystem! ------------------------------------------------------------------------ r189 | nieklinnenbank | 2009-07-03 14:07:59 +0000 (Fri, 03 Jul 2009) | 7 lines Fix compilation under OpenSolaris 2009.06 and StormOS hail beta. OpenSolaris (and StormOS, which is a derivative) doesn't have a struct dirent with the field 'd_type'. Solution was to use stat() instead. Additionally, the CR4_* definitions conflicted with the OpenSolaris's controlregs.h, so they now have a #ifndef __HOST__. Finally, a cast to unsigned int for the st.st_mode field was added. ------------------------------------------------------------------------