Fixed our newlib_backend to use the systems unistd for func decls.
authorKevin Klues <klueska@cs.berkeley.edu>
Thu, 28 May 2009 14:17:41 +0000 (07:17 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Fri, 5 Jun 2009 01:00:40 +0000 (18:00 -0700)
Before we had all definitions in a newlib_backend.h file, now we are doing things the more
correct way.  Applications should #include unistd.h and other similar header files to get access
to teh funciton declarations for the system call wrappers implemented in newlib_backend.c

user/apps/parlib/open_read.c
user/parlib/inc/newlib_backend.h
user/parlib/src/newlib_backend.c

index fa4d9f6..22c2257 100644 (file)
@@ -1,7 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <fcntl.h>
-#include <newlib_backend.h>
+#include <unistd.h>
 
 int main(int argc, char** argv)
 {
index e21e26b..4d99b42 100644 (file)
@@ -85,120 +85,5 @@ byte *send_message(byte *message, int len);
  */
 int write_to_channel(byte * msg, int len);
 
-/* _exit()
- * Exit a program without cleaning up files. 
- * If your system doesn't provide this, it is best to avoid linking 
- * with subroutines that require it (exit, system).
- */
-void _exit(int __status);
-    
-/* close()
- * Close a file. 
- */
-int close(int file);
-
-/* execve()
- * Transfer control to a new process. 
- * Minimal implementation (for a system without processes).
- */
-
-int execve(char *name, char **argv, char **env);
-
-/* fork()
- * Create a new process. 
- * Minimal implementation (for a system without processes).
- */
-int fork(void);
-
-/* fstat()
- * Status of an open file. 
- * For consistency with other minimal implementations in these stubs, 
- * all files are regarded as character special devices. 
- * The sys/stat.h header file required is distributed in the include 
- * subdirectory for the newlib C library.
- */
-int fstat(int file, struct stat *st);
-
-/* getpid()
- * Process-ID; this is sometimes used to generate strings unlikely to 
- * conflict with other processes. Minimal implementation, for a system 
- * without processes.
- */
-int getpid(void); 
-
-/* isatty()
- * Query whether output stream is a terminal. 
- * For consistency with the other minimal implementations, 
- * which only support output to stdout, this minimal 
- * implementation is suggested.
- */
-int isatty(int file) ;
-
-/* kill()
- * Send a signal. 
- * Minimal implementation.
- */
-int kill(int pid, int sig); 
-
-/* link()
- * Establish a new name for an existing file. 
- * Minimal implementation.
- */
-int link(char *old, char *new);
-
-/* lseek()
- * Set position in a file. 
- * Minimal implementation.
- */
-int lseek(int file, int ptr, int dir); 
-
-/* open()
- * Open a file. 
- */
-//int open(const char *name, int flags, int mode); 
-
-/* read()
- * Read from a file. 
- */
-int read(int file, char *ptr, int len); 
-
-/* sbrk()
- * Increase program data space. 
- * As malloc and related functions depend on this, it is 
- * useful to have a working implementation. 
- * The following suffices for a standalone system; it exploits the 
- * symbol _end automatically defined by the GNU linker.
- */
-caddr_t sbrk(int incr); 
-
-/* stat()
- * Status of a file (by name). 
- * Minimal implementation.
- */
-int stat(char *file, struct stat *st);
-
-/* times()
- * Timing information for current process. 
- * Minimal implementation.
- */
-int times(struct tms *buf); 
-
-/* unlink()
- * Remove a file's directory entry. 
- * Minimal implementation.
- */
-int unlink(char *name); 
-
-/* wait()
- * Wait for a child process. 
- * Minimal implementation.
- */
-int wait(int *status); 
-
-/* write()
- * Write to a file. 
- */
-int write(int file, char *ptr, int len);
-
 #endif //_NEWLIB_LIBC_WRAPPERS_H_
 
index 10a4fd5..d647e0e 100644 (file)
@@ -165,7 +165,7 @@ int link(char *old, char *new)
  * Set position in a file. 
  * Minimal implementation.
  */
-int lseek(int file, int ptr, int dir) 
+off_t lseek(int file, off_t ptr, int dir) 
 {
        debug("LSEEK\n");
        return 0;
@@ -224,7 +224,7 @@ int open(const char *name, int flags, int mode)
 /* read()
  * Read from a file. 
  */
-int read(int file, char *ptr, int len) 
+ssize_t read(int file, void *ptr, size_t len) 
 {
        debug("READ\n");
 
@@ -485,7 +485,7 @@ int wait(int *status)
 /* write()
  * Write to a file. 
  */
-int write(int file, char *ptr, int len) {
+ssize_t write(int file, void *ptr, size_t len) {
        
        debug("WRITE\n");       
        debug("\tFILE: %u\n", file);