summaryrefslogtreecommitdiff
path: root/user/include/unistd.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--user/include/unistd.h (renamed from include/unistd.h)92
1 files changed, 45 insertions, 47 deletions
diff --git a/include/unistd.h b/user/include/unistd.h
index f9838f1..1f83abc 100644
--- a/include/unistd.h
+++ b/user/include/unistd.h
@@ -6,29 +6,29 @@
* Universial system definitions for userspace.
*/
-#ifndef _UNISTD_H
-#define _UNISTD_H
+#ifndef UNISTD_H_
+#define UNISTD_H_
#include <stdint.h>
#include <stddef.h>
/* System Call Definitions */
-typedef uint_t pid_t;
+typedef unsigned short pid_t;
/**
- * Terminates the calling process and does not return.
+ * terminates the calling process and does not return.
+ *
* @param status - the status code to exit with
*/
-__attribute__((noreturn)) extern void exit(int32_t status);
+__attribute__((noreturn)) extern void exit(int status);
/**
- * Sleeps current process until a child process terminates
+ * sleeps current process until a child process terminates
*
* @param pid - pid of the desired child, or 0 for any child
- * @param status - Pointer to int32_t into which the child's status is placed,
+ * @param status - pointer to int32_t into which the child's status is placed,
* or NULL
- *
* @return The pid of the terminated child, or an error code
*
* If there are no children in the system, returns an error code (*status
@@ -38,18 +38,18 @@ __attribute__((noreturn)) extern void exit(int32_t status);
* terminated but hasn't yet been cleaned up, cleans up that process and
* returns its information; otherwise, blocks until a child terminates.
*/
-extern int waitpid(pid_t pid, int32_t *status);
+extern int waitpid(pid_t pid, int *status);
/**
- * Create a duplicate of the calling process
+ * create a duplicate of the calling process
*
- * @return parent - the pid of the new child, or an error code
- * child - 0
+ * @return parent - the pid of the new child, or an error code
+ * child - 0
*/
extern int fork(void);
/**
- * Replace the memory image of the calling process
+ * replace the memory image of the calling process
*
* @param prog - program table index of the program to exec
* @param args - the command-line argument vector
@@ -57,126 +57,124 @@ extern int fork(void);
* Does not return if it succeeds; if it returns, something has
* gone wrong.
*/
-extern void exec(uint_t prog, char **args);
+extern void exec(const char *filename, char **args);
/**
- * Open a stream with a given filename
+ * open a stream with a given filename
*
* @param filename - the name of the file to open
* @return the file descriptior of the open file or a negative error code.
- * TODO: fmurphy implement
*/
-extern int open(char *filename);
+extern int open(const char *filename);
/**
- * Closes a stream with the given file descriptior
+ * closes a stream with the given file descriptior
+ *
* @param fd - the file descriptior of the open stream
- * TODO: fmurphy implement
*/
extern void close(int fd);
/**
- * Read into a buffer from a stream
+ * read into a buffer from a stream
*
* @param fd - file stream to read from
* @param buf - buffer to read into
* @param nbytes - maximum capacity of the buffer
- *
* @return - The count of bytes transferred, or an error code
- * TODO: fmurphy FD
*/
extern int read(int fd, void *buffer, size_t nbytes);
/**
- * Write from a buffer to a stream
+ * write from a buffer to a stream
*
* @param fd - file stream to write to
* @param buf - buffer to write from
* @param nbytes - maximum capacity of the buffer
- *
* @return - The count of bytes transferred, or an error code
- * TODO: fmurphy FD
*/
extern int write(int fd, const void *buffer, size_t nbytes);
/**
- * Gets the pid of the calling process
+ * gets the pid of the calling process
*
* @return the pid of this process
*/
extern pid_t getpid(void);
/**
- * Gets the parent pid of the current process
+ * gets the parent pid of the current process
*
* @return the parent pid of the current process, or 0 if init
*/
extern pid_t getppid(void);
/**
- * Gets the current system time
+ * gets the current system time
*
* @return the system time
- * TODO: CHANGE TIME TO 64bits!!
*/
-extern ulong_t gettime(void);
+extern unsigned long gettime(void);
/**
- * Gets the scheduling priority of the calling process
+ * gets the scheduling priority of the calling process
*
* @return the process' priority
*/
-extern uint_t getprio(void);
+extern unsigned int getprio(void);
/**
- * Sets the scheduling priority of the calling process
+ * sets the scheduling priority of the calling process
*
* @param new - the desired new priority
- *
* @return the old priority value
*/
-extern uint_t setprio(uint_t new);
+extern unsigned int setprio(unsigned int new);
/**
- * Terminates a process
+ * terminates a process
*
* @param pid - the pid of the process to kill
- *
* @return 0 on success, else an error code
*/
-extern int32_t kill(pid_t pid);
+extern int kill(pid_t pid);
/**
- * Put the current process to sleep for some length of time
+ * put the current process to sleep for some length of time
*
* @param ms - desired sleep time (in ms), or 0 to yield the CPU
- *
* @return the time the process spent sleeping (in ms)
*/
-extern int sleep(uint32_t ms);
+extern int sleep(unsigned long ms);
/**
* Wait for any child to exit
*
- * @param status - Pointer to int32_t into which the child's status is placed,
+ * @param status - pointer to int32_t into which the child's status is placed,
* or NULL
- *
* @return The pid of the terminated child, or an error code
*
* Analogous to waitpid(0,status)
*/
-extern int wait(int32_t *status);
+extern int wait(int *status);
/**
* Spawn a new process running a different program
*
* @param prog - program table index of the program to spawn
* @param args - the command-line argument vector for the process
- *
- * @return The pid of the child, or an error code
+ * @return the pid of the child, or an error code
*
* Analogous to calling fork and exec
*/
-extern int spawn(uint_t prog, char **args);
+extern int spawn(pid_t prog, char **args);
+
+/**
+ * Increment the program's data space by increment bytes.
+ *
+ * @param increment - the amount in bytes to increment the heap
+ * @return the previos program break on success, or NULL on failure
+ *
+ */
+extern void *sbrk(intptr_t increment);
#endif /* unistd.h */