Jonas 'Sortie' Termansen
9b2de25f9b
Added strcasecmp(3), strncasecmp(3) and <strings.h>.
...
Why <strings.h>? Stupid POSIX.
2012-03-04 22:46:24 +01:00
Jonas 'Sortie' Termansen
2b57319c1c
Added stub for time(3).
2012-03-04 22:26:27 +01:00
Jonas 'Sortie' Termansen
d3c4df72b1
Added st_{a,c,m}time to struct stat.
2012-03-04 22:25:47 +01:00
Jonas 'Sortie' Termansen
c0a02248da
Added <sys/time.h>, struct timeval and gettimeofday(3) stub.
2012-03-04 22:05:52 +01:00
Jonas 'Sortie' Termansen
e006687645
Added abort(3) to <stdlib.h>.
2012-03-04 21:49:03 +01:00
Jonas 'Sortie' Termansen
5e75f5c428
Added fcntl(3) with FD_GET and FD_SET.
2012-03-04 21:36:40 +01:00
Jonas 'Sortie' Termansen
777fc04682
Added <time.h>, clock_t, and a stub for clock(3).
2012-03-04 18:38:23 +01:00
Jonas 'Sortie' Termansen
0bd6a4ff67
Added <math.h>.
2012-03-04 18:17:04 +01:00
Jonas 'Sortie' Termansen
6695da9229
Added strncat(3).
2012-03-04 18:12:54 +01:00
Jonas 'Sortie' Termansen
73e2d9db3c
Made errno(3) a macro to itself.
2012-03-04 18:06:24 +01:00
Jonas 'Sortie' Termansen
38f27a45fc
Added strpbrk(3).
2012-03-04 17:44:24 +01:00
Jonas 'Sortie' Termansen
b1b123109a
Added mktemp(3).
...
This is a stupid, ugly function added for compatibility.
2012-03-04 17:29:50 +01:00
Jonas 'Sortie' Termansen
5d826ec284
Added strstr(3).
2012-03-04 17:20:42 +01:00
Jonas 'Sortie' Termansen
6c6e1091a1
Added memmove(3).
2012-03-04 17:10:52 +01:00
Jonas 'Sortie' Termansen
a52200f4a7
Added strncpy(3).
...
This function is stupid.
2012-03-04 17:00:59 +01:00
Jonas 'Sortie' Termansen
90ea0d3e64
Added strdup(3) to <string.h>.
2012-03-04 16:54:53 +01:00
Jonas 'Sortie' Termansen
ac7e55ffbd
Added st_dev to struct stat.
2012-03-04 16:48:24 +01:00
Jonas 'Sortie' Termansen
f9f59e9536
Added ELAKE.
2012-03-03 01:06:32 +01:00
Jonas 'Sortie' Termansen
0ed0082070
Added execv(3) and execve(3).
...
Removed the older libmaxsi system call.
2012-03-02 15:00:11 +01:00
Jonas 'Sortie' Termansen
c5302df277
error(3) now doesn't print an error if supplied errno=0.
2012-03-01 16:42:13 +01:00
Jonas 'Sortie' Termansen
982b9a732a
Fixed bug where fopen(3) used the wrong mode in call to fdopen(3).
2012-03-01 14:30:20 +01:00
Jonas 'Sortie' Termansen
cbdf54fcdd
Moved SEEK_SET, SEEK_CUR, and SEEK_SET to <sortix/seek.h>.
2012-02-24 17:34:50 +01:00
Jonas 'Sortie' Termansen
5de83df6ec
Unified constants from sortix/filesystem.h and <fcntl.h> in <sortix/fcntl.h>.
2012-02-23 13:15:40 +01:00
Jonas 'Sortie' Termansen
03273d0076
Added stubs for stat(2), and fstat(2).
2012-02-22 00:30:34 +01:00
Jonas 'Sortie' Termansen
75b3b9c858
Added a Maxsi::String::Substring function.
2012-02-21 23:23:57 +01:00
Jonas 'Sortie' Termansen
2a4a51fafc
Added getline(3), getdelim(3), sortix_gets(3) and gets(3).
...
gets(3) exists and is an alias for sortix_gets(3) if _SORTIX_SOURCE.
sortix_gets(3) returns a pointer to a safe newly read and allocated line.
2012-02-13 01:07:02 +01:00
Jonas 'Sortie' Termansen
3bf5b1f17e
Added realloc(3).
2012-02-13 00:31:05 +01:00
Jonas 'Sortie' Termansen
4804e60a8b
Fixed race condition when building libmaxsi with -j.
...
The headers could end up being made before their dirs were ready.
2012-02-12 13:54:07 +01:00
Jonas 'Sortie' Termansen
c8dfe630af
Removed annoying warnings when declaring x64 systemcalls.
...
Actually, the warnings are true, but that's a task for later.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen
c6682265aa
Fixed minor compile errors in fddir-sortix.c.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen
e05e934beb
Changed return type of FILE::tell_func to off_t.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen
fec176fa15
Refactored the libmaxsi/ directory.
...
C and C++ files are now kept together and so are the mxmpp declarations.
Header files are now stored in include/ and mxmpp'd into preproc/.
All other code now -I ../libmaxsi/preproc.
And other stuff to make this happen, including refactoring Makefile.
2012-02-12 13:20:53 +01:00
Jonas 'Sortie' Termansen
b4131def9f
The offsetof macro now expands to __builtin_offsetof.
...
The compiler knows this stuff best, anyway.
2012-02-11 19:50:27 +01:00
Jonas 'Sortie' Termansen
d693f8a2f4
Fixed broken <stddef.h>.
2012-02-11 19:38:51 +01:00
Jonas 'Sortie' Termansen
6d1129c29a
Removed compile warnings related to feature macros.
...
Accidentally commited them. Oops.
2012-02-11 19:03:17 +01:00
Jonas 'Sortie' Termansen
ed68db03fb
Replaced SORTIX_EXTENSIONS macro with _SORTIX_SOURCE macro.
...
<features.h> declares _SORTIX_SOURCE if no conflicting macros are
declared, such as _GNU_SOURCE.
Fixed g++ automatically declaring _GNU_SOURCE, but Sortix isn't GNU.
Replaced SORTIX_UNIMPLEMENTED macro with __SORTIX_SHOW_UNIMPLEMENTED.
2012-02-11 18:51:55 +01:00
Jonas 'Sortie' Termansen
88c7788b4e
Fixed stdint.h include guard conflicting with unistd.h.
2012-02-11 18:46:17 +01:00
Jonas 'Sortie' Termansen
028867ab9d
Removed the unused and deprecated old <libmaxsi/sortix-keyboard.h> API.
...
This has been entirely replaced by stdin and <sys/termmode.h>.
2012-02-10 13:46:26 +01:00
Jonas 'Sortie' Termansen
5fde8e13ed
Blocking systemcalls now return EBLOCKING instead of EWOULDBLOCK.
...
EWOULDBLOCK is now used when it wanted to block, but didn't.
2012-02-10 13:28:28 +01:00
Jonas 'Sortie' Termansen
ecc3114f2a
Refactored the system to use the new Terminal interface.
...
This will allow development of a better terminal providing stdin.
Added new system calls settermmode(2) and gettermmode(2) declared in
<sys/termmode.h>. They allow querying and changing the current mode of
terminals (enabling raw keyboard data, signal handling, line buffering,
UTF-8 encoding stdin, and more). However, all that is unsupported by the
current terminal device driver.
Added KBKEY_ENCODE and KBKEY_DECODE macros to <sys/keycodes.h> which allows
encoding the kbkey format in UTF-32 characters.
2012-01-22 16:48:57 +01:00
Jonas 'Sortie' Termansen
ead0e1523f
Refactored the kernel keyboard API, but kept system calls compatible.
...
Caps lock now works as caps lock, not as shift lock.
This new design will allow implementing a working tty, such that stdin is
the only way to access the keyboard, instead of the current hacky way of
using a special system call to read from the keyboard.
Added a new system header file <sys/keycodes.h> defining the constants for
every key on the keyboard. This will be used in future APIs.
The main change is to split the keyboard driver into a class that reads
from the keyboard, while another class handles the translation into
printable characters (if possible). This allows a terminal driver based
on logical key presses and printable characters, instead of a terminal
driver based only on unicode-ish codes.
2012-01-22 15:53:50 +01:00
Jonas 'Sortie' Termansen
ac51e98cb8
Improved removal performance in Maxsi::SortedList.
2012-01-21 01:35:17 +01:00
Jonas 'Sortie' Termansen
f29f6dd053
ValidateHeap is now only called when PARANOIA is at least 2.
...
This speeds up memory allocations from O(N) to O(1) by default.
2012-01-20 23:22:12 +01:00
Jonas 'Sortie' Termansen
f676cf75f4
Added ENOTSUP.
2012-01-18 15:40:31 +01:00
Jonas 'Sortie' Termansen
17d1b67a77
Fixed bug in fopen(3) where it didn't open correctly.
2012-01-18 12:40:31 +01:00
Jonas 'Sortie' Termansen
d2c4b1d6ac
Added readdir(3), closedir(3), rewinddir(3), dirfd(3), fdopendir(3),
...
opendir(3).
Also added non-standard dregister(3), dunregister(3), dclearerr(3),
derror(3), deof(3), dnewdir(3), dcloseall(3).
2012-01-15 00:51:27 +01:00
Jonas 'Sortie' Termansen
8d18993584
Added stpcpy(3).
2012-01-14 17:20:17 +01:00
Jonas 'Sortie' Termansen
a06902baf6
Added strcoll(3).
2012-01-14 16:44:48 +01:00
Jonas 'Sortie' Termansen
56084556bb
Added stubs for truncate(2) and ftruncate(3).
2012-01-14 16:37:21 +01:00
Jonas 'Sortie' Termansen
0519af33ee
Added stubs for rmdir(2) and mkdir(2).
2012-01-14 16:25:28 +01:00
Jonas 'Sortie' Termansen
c5ddc6923a
Added ENOSYS.
2012-01-14 16:09:30 +01:00
Jonas 'Sortie' Termansen
1824dd6867
Added memchr(3).
2012-01-09 01:38:44 +01:00
Jonas 'Sortie' Termansen
10a37e1f98
Added {,v}s{,n}printf(3).
2012-01-09 00:31:42 +01:00
Jonas 'Sortie' Termansen
91015a2ea7
Made the size_t declaration compatible with GCC.
2012-01-09 00:31:14 +01:00
Jonas 'Sortie' Termansen
66c411b43a
sys/types.h now declares pid_t.
2012-01-08 23:25:11 +01:00
Jonas 'Sortie' Termansen
df728efb8c
Added strchr(3), strchrnul(3), strrchr(3).
2012-01-08 22:26:32 +01:00
Jonas 'Sortie' Termansen
4806f25e50
Added strtok(3), strtok_r(3), strspn(3), strcspn(3).
2012-01-08 21:59:21 +01:00
Jonas 'Sortie' Termansen
9064185bd8
Added memcmp(3).
2012-01-08 20:17:27 +01:00
Jonas 'Sortie' Termansen
46e717e30f
Revert ".so's are no longer installed into sysroot as there are no kernel support."
...
This reverts commit e6db1874e7ed16a6987d5a86d7f6c10cd8b0ffff.
These dummy .so's are actually OK.
2012-01-08 15:53:10 +01:00
Jonas 'Sortie' Termansen
7cd5363af8
Disabled shared libaries in libmaxsi by default.
2012-01-08 15:49:33 +01:00
Jonas 'Sortie' Termansen
145da20c04
Added a libg (symlink to libc) and symlinks are now copied to sysroot.
2012-01-08 15:45:13 +01:00
Jonas 'Sortie' Termansen
d3c16470e3
.so's are no longer installed into sysroot as there are no kernel support.
2012-01-08 15:39:40 +01:00
Jonas 'Sortie' Termansen
954fd11703
Added isalnum(3), isalpha(3), isblank(3), iscntrl(3), isdigit(3),
...
isgraph(3), islower(3), isprint(3), ispunct(3), isspace(3), isupper(3),
isxdigit(3), tolower(3), and toupper(3).
2012-01-08 15:35:35 +01:00
Jonas 'Sortie' Termansen
ad200ffa91
Added getpagesize(2) with the new return type size_t.
...
This function is non-standard and size_t is better than int here.
2012-01-08 14:58:57 +01:00
Jonas 'Sortie' Termansen
809bedd32b
Just ignore the restrict keyword fully.
2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen
8eebe18922
Added an implementation of puts(3) because gcc needs it.
...
I still didn't add it to stdio.h since it's still stupid.
2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen
25d8551b26
Moved _start into crtbegin.o as that's where the cross compiler wants it.
2012-01-08 14:30:50 +01:00
Jonas 'Sortie' Termansen
9a77901883
Added missing prototypes to stdio.h.
2011-12-30 01:23:00 +01:00
Jonas 'Sortie' Termansen
73a7e8f53d
Forgot to actually add remove(3) in the previous commit.
2011-12-30 01:13:41 +01:00
Jonas 'Sortie' Termansen
deee5e4335
Added a partial implementation of remove(3), since rmdir(2) is missing.
2011-12-30 01:11:33 +01:00
Jonas 'Sortie' Termansen
5d16b5c61e
Added getchar(3) and putchar(3).
2011-12-30 01:06:27 +01:00
Jonas 'Sortie' Termansen
66999ff94a
Added putc(3) and getc(3).
2011-12-30 01:03:24 +01:00
Jonas 'Sortie' Termansen
d39d4222b5
Added fputc(3) and fgetc(3).
2011-12-30 00:55:59 +01:00
Jonas 'Sortie' Termansen
76800553da
Clarified comment about typedef struct _FILE FILE.
2011-12-30 00:42:36 +01:00
Jonas 'Sortie' Termansen
064b69d2b6
Added fseeko(3) and ftello(3).
2011-12-30 00:36:39 +01:00
Jonas 'Sortie' Termansen
912b2f78f0
Implemented the fdio backend of fseek(3) and ftell(3).
2011-12-26 23:15:52 +01:00
Jonas 'Sortie' Termansen
648b324385
Added lseek(2).
2011-12-26 23:12:12 +01:00
Jonas 'Sortie' Termansen
2b3b4ed62a
error(3) and perror(3) now writes to stderr.
2011-12-24 04:39:16 +01:00
Jonas 'Sortie' Termansen
fdbd4ca90d
Implemented large parts of the stdio(3), including fprintf.
...
Made FILE an interface to various backends. This allows application writers
to override the standard FILE API functions with their own backends. This
is highly unportable - it'd be nice if a real standard existed for this.
glibc already does something like this internally, but AFAIK you can't hook
into it.
Added fdopen(3), fopen(3), fregister(3), funregister(3), fread(3),
fwrite(3), fseek(3), clearerr(3), ferror(3), feof(3), rewind(3), ftell(3),
fflush(3), fclose(3), fileno(3), fnewline(3), fcloseall(3), memset(3),
stdio(3), vfprintf(3), fprintf(3), and vprintf(3).
Added a file-descriptor backend to the FILE API.
fd's {0, 1, 2} are now initialized as stdin, stdout, and stderr when the
standard library initializes.
fcloseall(3) is now called on exit(3).
decl/intn_t_.h now @include(size_t.h) instead of declaring it itself.
Added <stdint.h>.
The following programs now flush stdout: cat(1), clear(1), editor(1),
init(1), mxsh(1).
printf(3) is now hooked up against vprintf(3), while Maxsi::PrintF
remains using the system call, for now.
2011-12-24 04:28:34 +01:00
Jonas 'Sortie' Termansen
4841d83ff8
Added calloc(3).
2011-12-24 04:05:38 +01:00
Jonas 'Sortie' Termansen
0515111314
The initial ramdisk is now mapped onto a special location.
...
This fixes issues where it did not fit into the first few MiB,
or that GRUB loaded it someplace weird.
The kernel heap is now also protected against growing into the
ramdisk and the kernel stack.
2011-12-22 14:13:18 +01:00
Jonas 'Sortie' Termansen
203f2a2bb1
Better default octal detection in strtol(3).
2011-12-16 22:24:29 +01:00
Jonas 'Sortie' Termansen
73bcafc004
strtol(3) now returns 0 if the string was + or -.
2011-12-16 21:44:32 +01:00
Jonas 'Sortie' Termansen
f1a49dbad3
Hex numbers now work properly in strtol(3).
2011-12-16 21:15:26 +01:00
Jonas 'Sortie' Termansen
da2bfac34f
Fixed bug in strtol*.
2011-12-16 18:28:22 +01:00
Jonas 'Sortie' Termansen
bf6a4c1861
Added strto{u,}{l,}l(3).
2011-12-16 16:49:27 +01:00
Jonas 'Sortie' Termansen
acf1eebc98
Added user-space memory allocation.
2011-12-16 13:24:49 +01:00
Jonas 'Sortie' Termansen
fecaf6b43f
System calls in libmaxsi now use the constants from syscallnum.h.
2011-12-09 12:41:06 +01:00
Jonas 'Sortie' Termansen
0bb91ee161
printf(3) now supports signed integers and ptrdiff_t.
2011-12-05 13:59:26 +01:00
Jonas 'Sortie' Termansen
854d9b171a
uptime(2) now reports usecs instead of msecs.
2011-12-04 21:27:21 +01:00
Jonas 'Sortie' Termansen
597e700618
Removed outdated comment about sleep(2) and signals.
2011-12-04 21:08:26 +01:00
Jonas 'Sortie' Termansen
5bc05c4e0e
Moved around comments in heap.cpp.
2011-12-04 20:59:42 +01:00
Jonas 'Sortie' Termansen
fcc6147c5c
Prevent the kernel from calling system calls.
2011-12-04 20:56:29 +01:00
Jonas 'Sortie' Termansen
60d23eac19
printf now understands %l and %j.
2011-12-04 20:53:43 +01:00
Jonas 'Sortie' Termansen
de70b1804d
Rewrote the x86 64-bit division stubs, which now actually work.
2011-12-04 19:02:35 +01:00
Jonas 'Sortie' Termansen
a2dd8be7aa
Fixed using wrong system call in libmaxsi/x64/signal.s
2011-12-04 18:24:06 +01:00
Jonas 'Sortie' Termansen
61f02431ee
Removed ConvertUInt{8,16} - ConvertUInt32 handles their input instead.
2011-12-04 15:49:29 +01:00
Jonas 'Sortie' Termansen
3b8bf9419d
Removed obsolete functions to read from the initrd.
...
Use the initrd filesystem instead.
2011-12-04 15:38:02 +01:00
Jonas 'Sortie' Termansen
635a49644a
Made usleep(2) a sortix extension.
2011-12-04 15:24:55 +01:00
Jonas 'Sortie' Termansen
7623ff8092
unistd.h now uses the __useconds_t from sortix/bits.h.
2011-12-04 15:11:39 +01:00
Jonas 'Sortie' Termansen
b0859c6d92
usleep'ing for 0 usecs simply causes a context-switch.
2011-12-02 22:37:17 +01:00
Jonas 'Sortie' Termansen
ae1c157445
Temporary hack to make x64 system calls use the right registers.
2011-12-01 14:54:47 +01:00
Jonas 'Sortie' Termansen
6562da4092
waitpid(2) now returns ECHILD on error.
2011-12-01 14:54:19 +01:00
Jonas 'Sortie' Termansen
c0c20860ed
Lots of improvements to 64-bit Sortix.
...
Fixed 64-bit-ness bug in BSR() and BSF().
Added 64-bit system call stubs in libmaxsi.
Added a Elf64 program loader.
Fixed uninitialized memory bug in the scheduler.
x64/boot.s now takes care of user-space memory permissions.
Fixed bug in x64/syscall.s
That's right. The system now boots in 64-bit mode.
It is horribly unstable, though.
2011-12-01 10:45:44 +01:00
Jonas 'Sortie' Termansen
0b1c2a77c9
x64 now compiles again and runs on real hardware.
...
A nasty bug was fixed that caused triple faults on systems with > 1 GiB RAM.
2011-11-29 01:31:54 +01:00
Jonas 'Sortie' Termansen
8c146f14c0
Added uptime(1).
2011-11-28 16:29:53 +01:00
Jonas 'Sortie' Termansen
6781308360
Rewrote the memory allocation functions.
...
free(3) can now unify unused neighbor blocks, reducing mem usage.
2011-11-27 22:53:05 +01:00
Jonas 'Sortie' Termansen
4f3a7230b0
Destroying the addressspace after exit prevents leak of at least 16 KiB.
2011-11-27 12:02:34 +01:00
Jonas 'Sortie' Termansen
bd1b1fe3bc
Added isatty(2), which is used by editor.
2011-11-26 21:00:40 +01:00
Jonas 'Sortie' Termansen
9152443816
Added memstat, a program for displaying memory usage.
2011-11-26 20:14:57 +01:00
Jonas 'Sortie' Termansen
d4231b2027
Added program_invocation_name(3), error(3), and perror(3) and used them.
2011-11-26 11:00:45 +01:00
Jonas 'Sortie' Termansen
b6a0fd0374
Removed deprecated VGA API and moved it to /dev/vga.
2011-11-25 13:38:31 +01:00
Jonas 'Sortie' Termansen
7aff476117
Fixed bug in the remove function of the sorted list class.
2011-11-24 10:41:13 +01:00
Jonas 'Sortie' Termansen
4890c306c4
printf(3) now writes to fd 1.
2011-11-24 10:26:36 +01:00
Jonas 'Sortie' Termansen
2b032b0414
Initial signal support. Please squash improvements into this commit.
2011-11-23 00:19:09 +01:00
Jonas 'Sortie' Termansen
e234e0a2d4
execve(2) now sets errno=EACCESS on non-buffer files.
2011-11-22 18:21:01 +01:00
Jonas 'Sortie' Termansen
9deb183786
The ELF loader now uses errno.
2011-11-22 18:06:40 +01:00
Jonas 'Sortie' Termansen
9f35df813e
Implemented errno(3), added support in both kernel and utils.
2011-11-22 17:26:47 +01:00
Jonas 'Sortie' Termansen
e8fb8d885b
execve(2) can now load programs from the filesystem.
...
Previously it was restricted to only the ramdisk.
2011-11-22 14:02:33 +01:00
Jonas 'Sortie' Termansen
55240fb3f5
Added devfs, with files /tty and /null and mounted it at /dev.
2011-11-21 21:49:13 +01:00
Jonas 'Sortie' Termansen
8b2b52b9f6
Added unlink(2) and rm(1).
2011-11-21 19:01:56 +01:00
Jonas 'Sortie' Termansen
211af74690
Fixed bug where SortedList::Search did not sort the list if needed.
2011-11-21 14:56:09 +01:00
Jonas 'Sortie' Termansen
d4590cefa1
Added chdir(2), getcwd(2), which mxsh and ls now uses.
2011-11-21 12:19:57 +01:00
Jonas 'Sortie' Termansen
313079483a
Missing files from the previous two commits. Ooops!
2011-11-21 00:19:55 +01:00
Jonas 'Sortie' Termansen
23fde42249
Added readdirents(2), which ls(1) now uses, and added dir devices.
...
The initfs and ramfs are now able to list their contents.
2011-11-21 00:02:53 +01:00
Jonas 'Sortie' Termansen
728bde3bee
Added strncmp(3).
2011-11-20 17:07:01 +01:00
Jonas 'Sortie' Termansen
190989646b
Added an filesystem able to browse the initrd.
2011-11-20 16:25:32 +01:00
Jonas 'Sortie' Termansen
3d7e565d23
strcat(3) now nul-terminates strings properly.
2011-11-19 10:32:08 +01:00
Jonas 'Sortie' Termansen
013e11ca5e
Added a RAM filesystem.
2011-11-19 00:57:17 +01:00
Jonas 'Sortie' Termansen
ae423eaeef
Added open(2).
...
Please note that mount points and file systems do not exist yet.
2011-11-19 00:57:17 +01:00
Jonas 'Sortie' Termansen
6447783c12
strcpy(3) now nul-terminates dest.
2011-11-19 00:52:42 +01:00
Jonas 'Sortie' Termansen
dd349a150a
Merge branch 'master' of gitorious.org:sortix/sortix
...
Conflicts:
libmaxsi/c/hsrc/unistd.h
libmaxsi/io.cpp
sortix/io.cpp
sortix/syscallnum.h
2011-11-17 22:28:20 +01:00
Jonas 'Sortie' Termansen
05196f49b2
Added dup(2).
2011-11-17 20:34:04 +01:00
Jonas 'Sortie' Termansen
5bde040295
Fixed randomness-related crash in snake.
2011-11-17 13:11:09 +01:00
Jonas 'Sortie' Termansen
e8cd27c353
Added close(2) and fixed bugs in pipe(2) and others.
2011-11-17 10:22:43 +01:00
Jonas 'Sortie' Termansen
a7de7b4905
Added pipe(2), write(2), and read(2).
2011-11-16 21:21:38 +01:00
Jonas 'Sortie' Termansen
c5605b6693
Pong and snake now use rand(3).
2011-11-10 12:28:35 +01:00
Jonas 'Sortie' Termansen
33c0a9586e
Added atoi(3).
2011-11-09 23:48:26 +01:00
Jonas 'Sortie' Termansen
ae599b6d67
Argv now works in main.
2011-11-09 23:18:26 +01:00
Jonas 'Sortie' Termansen
b27fa68c81
The shell now forks, uses exit, and wait.
2011-11-07 01:00:18 +01:00
Jonas 'Sortie' Termansen
024f1581ea
Added the wait() and waitpid() system call.
2011-11-07 00:59:48 +01:00
Jonas 'Sortie' Termansen
cfd7648ca9
Added the _exit() system call.
...
exit() will not call _exit() yet, we need support for wait() in the shell.
2011-11-05 20:19:36 +01:00
Jonas 'Sortie' Termansen
f9e10ab265
Added an API for user-space to list the initrd, and 'ls' does so now.
2011-11-03 18:26:43 +01:00
Jonas 'Sortie' Termansen
b742eafd7c
Removed the unused Maxsi::StdOut namespace.
2011-11-02 19:17:17 +01:00
Jonas 'Sortie' Termansen
cb92f073d9
Fixed incorrect header in libmaxsi/syscall.h.
2011-11-02 19:14:23 +01:00
Jonas 'Sortie' Termansen
2afe9d1fd6
Implemented the fork() system call and what it needed to work properly.
...
This commit got completely out of control.
Added the fork(), getpid(), getppid(), sleep(), usleep() system calls, and
aliases in the Maxsi:: namespace.
Fixed a bug where zero-byte allocation would fail.
Worked on the DescriptorTable class which now works and can fork.
Got rid of some massive print-registers statements and replaced them with
the portable InterruptRegisters::LogRegisters() function.
Removed the SysExecuteOld function and replaced it with Process::Execute().
Rewrote the boot sequence in kernel.cpp such that it now loads the system
idle process 'idle' as PID 0, and the initization process 'init' as PID 1.
Rewrote the SIGINT hack.
Processes now maintain a family-tree structure and keep track of their
threads. PIDs are now allocated using a simple hack. Virtual memory
per-process can now be allocated using a simple hack. Processes can now be
forked. Fixed the Process::Execute function such that it now resets the
stack pointer to where the stack actually is - not just a magic value.
Removed the old and ugly Process::_endcodesection hack.
Rewrote the scheduler into a much cleaner and faster version. Debug code is
now moved to designated functions. The noop kernel-thread has been replaced
by a simple user-space infinite-loop program 'idle'.
The Thread class has been seperated from the Scheduler except in Scheduler-
related code. Thread::{Save,Load}Registers has been improved and has been
moved to $(CPU)/thread.cpp. Threads can now be forked. A new CreateThread
function creates threads properly and portably.
Added a MicrosecondsSinceBoot() function.
Fixed a crucial bug in MemoryManagement::Fork().
Added an 'idle' user-space program that is a noop infinite loop, which is
used by the scheduler when there is nothing to do.
Rewrote the 'init' program such that it now forks off a shell, instead of
becoming the shell.
Added the $$ (current PID) and $PPID (parent PPID) variables to the shell.
2011-11-01 01:00:20 +01:00
Jonas 'Sortie' Termansen
c705bf39ff
Ported kernel to new syscall API and started cleaning up the old one.
2011-10-27 00:20:28 +02:00
Jonas 'Sortie' Termansen
a087f4b91c
Added a sortedlist template class to libmaxsi/sortedlist.h.
2011-10-25 18:21:06 +02:00
Jonas 'Sortie' Termansen
66192d1e86
Rewrote memory management again and added support for x64 and forking.
2011-10-10 01:02:57 +02:00
Jonas 'Sortie' Termansen
ab2b14fc16
Moved start.s into the subdirs for x86 and x64.
2011-09-15 22:39:19 +02:00