summaryrefslogtreecommitdiff
path: root/userspace/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'userspace/test.c')
-rw-r--r--userspace/test.c81
1 files changed, 1 insertions, 80 deletions
diff --git a/userspace/test.c b/userspace/test.c
index bdc6da0..12226d3 100644
--- a/userspace/test.c
+++ b/userspace/test.c
@@ -1,86 +1,7 @@
#include <stdlib.h>
#include <stdio.h>
-
-//printf needs following syscalls: sbrk write close fstat isatty lseek read
-//
-
-#include <sys/stat.h>
-
-int close(int file)
-{
- return -1;
-}
-
-int fstat(int file, struct stat *st)
-{
- st->st_mode = S_IFCHR;
- return 0;
-}
-
-int isatty(int file) {
- return 1;
-}
-
-int lseek(int file, int ptr, int dir) {
- return 0;
-}
-
-int read(int file, char *ptr, int len) {
- return 0;
-}
-
-int write(int file, char *ptr, int len)
-{
-
- int todo;
- for (todo = 0; todo < len; todo++)
- {
-
- char byte=(*ptr++);
- int byt=byte;
-
- int ebx; // will hold return value;
- // system call
- asm("pusha");
- asm("mov $61,%eax"); // select syscall)
-
- asm("mov %0,%%edx"::"m"(byt));
- //asm("mov $88,%edx");
-
- asm("int $0x80"); // actual syscall ! interrupt
- asm("mov %%ebx, %0": "=b" (ebx));
- asm("popa");
- //
-
- }
- return len;
-}
-
-caddr_t sbrk(int incr)
-{
-
-// extern char _end; /* Defined by the linker */
- char _end;
- static char *heap_end;
- char *prev_heap_end;
-
- if (heap_end == 0) {
- heap_end = &_end;
- }
- prev_heap_end = heap_end;
- /*
- if (heap_end + incr > stack_ptr) {
- write (1, "Heap and stack collision\n", 25);
- abort ();
- }
- */
-
- heap_end += incr;
- return (caddr_t) prev_heap_end;
-}
-
-//
+#include "syscalls.h>
int main()
{