Merge branch 'net-dev'. See body of commit for details.
[akaros.git] / user / parlib / src / i386 / newlib_backend.c
index 893a38d..324bc9e 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <debug.h>
+#include <sys/times.h>
 
 /* environ
  * A pointer to a list of environment variables and their values. 
@@ -36,7 +37,7 @@ char **environ = __env;
  * If your system doesn't provide this, it is best to avoid linking 
  * with subroutines that require it (exit, system).
  */
-void _exit(int __status) _ATTRIBUTE ((noreturn))
+void _exit(int __status)
 {
        sys_proc_destroy(sys_getpid()); // TODO: can run getpid and cache it
        while(1); //Should never get here...
@@ -86,7 +87,7 @@ int close(int file) {
  * Minimal implementation (for a system without processes).
  */
 
-int execve(char *name, char **argv, char **env
+int execve(const char *name, char * const argv[], char * const env[]
 {
        debug_in_out("EXECVE\n");
        errno = ENOMEM;
@@ -97,7 +98,7 @@ int execve(char *name, char **argv, char **env)
  * Create a new process. 
  * Minimal implementation (for a system without processes).
  */
-int fork(void) 
+pid_t fork(void) 
 {
        debug_in_out("FORK\n");
        errno = EAGAIN;
@@ -163,7 +164,7 @@ int fstat(int file, struct stat *st)
  * conflict with other processes. Minimal implementation, for a system 
  * without processes.
  */
-int getpid(void) 
+pid_t getpid(void) 
 {
        return sys_getpid(); // TODO: can run getpid and cache it
 }
@@ -227,7 +228,7 @@ int kill(int pid, int sig)
  * Establish a new name for an existing file. 
  * Minimal implementation.
  */
-int link(char *old, char *new) 
+int link(const char *old, const char *new) 
 {
        debug_in_out("LINK\n");
        
@@ -525,7 +526,7 @@ response_t *send_message(msg_t *msg, int len)
  * Status of a file (by name). 
  * Minimal implementation.
  */
-int stat(char *file, struct stat *st) 
+int stat(const char *file, struct stat *st) 
 {
        debug_in_out("STAT\n");
        
@@ -571,7 +572,7 @@ int stat(char *file, struct stat *st)
  * Timing information for current process. 
  * Minimal implementation.
  */
-int times(struct tms *buf) 
+clock_t times(struct tms *buf) 
 {
        debug_in_out("TIMES");
        return -1;
@@ -581,7 +582,7 @@ int times(struct tms *buf)
  * Remove a file's directory entry. 
  * Minimal implementation.
  */
-int unlink(char *name) 
+int unlink(const char *name) 
 {
        debug_in_out("UNLINK\n");
        
@@ -631,7 +632,7 @@ int wait(int *status)
 /* write()
  * Write to a file. 
  */
-ssize_t write(int file, void *ptr, size_t len) {
+ssize_t write(int file, const void *ptr, size_t len) {
        
        debug_in_out("WRITE\n");        
        debug_in_out("\tFILE: %u\n", file);
@@ -677,9 +678,9 @@ ssize_t write(int file, void *ptr, size_t len) {
 /* write_to_channel()
  * Send a message out over the channel, defined by msg, of length len
  */
-int write_to_channel(char * msg, int len)
+int write_to_channel(msg_t * msg, int len)
 {
        //return sys_serial_write((char*)msg, len);
-       return sys_eth_write(msg, len);
+       return sys_eth_write((char*)msg, len);
        
-}
\ No newline at end of file
+}