diff options
Diffstat (limited to 'kernel/old/include/ulib.h')
-rw-r--r-- | kernel/old/include/ulib.h | 315 |
1 files changed, 0 insertions, 315 deletions
diff --git a/kernel/old/include/ulib.h b/kernel/old/include/ulib.h deleted file mode 100644 index d254d6a..0000000 --- a/kernel/old/include/ulib.h +++ /dev/null @@ -1,315 +0,0 @@ -/** -** @file ulib.h -** -** @author CSCI-452 class of 20245 -** -** @brief Declarations for user-level library functions -** -** This module implements a simple collection of support functions -** similar to the standard C library. -*/ - -#ifndef ULIB_H_ -#define ULIB_H_ - -#include <common.h> - -/* -** General (C and/or assembly) definitions -*/ - -#ifndef ASM_SRC - -/* -** Start of C-only definitions -*/ - -/* -** Types -*/ - -/* -** Globals -*/ - -/* -** Prototypes -*/ - -/* -************************************************* -** SYSTEM CALLS ********************************* -************************************************* -*/ - -/** -** exit - terminate the calling process -** -** usage: exit(status); -** -** @param status Termination status of this process -** -** Does not return. -*/ -void exit( int32_t status ); - -/** -** waitpid - wait for a child process to terminate -** -** usage: pid = waitpid(pid,&status); -** -** @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, -** 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 -** is unchanged). -** -** If there are one or more children in the system and at least one has -** terminated but hasn't yet been cleaned up, cleans up that process and -** returns its information; otherwise, blocks until a child terminates. -*/ -int waitpid( uint_t pid, int32_t *status ); - -/** -** fork - create a duplicate of the calling process -** -** usage: pid = fork(); -** -** @return parent - the pid of the new child, or an error code -** child - 0 -*/ -int fork( void ); - -/** -** exec - replace the memory image of the calling process -** -** usage: exec( what, args ) -** -** @param what program table index of the program to exec -** @param args the command-line argument vector -** -** Does not return if it succeeds; if it returns, something has -** gone wrong. -*/ -void exec( uint_t what, char **args ); - -/** -** read - read into a buffer from a stream -** -** usage: n = read(channel,buf,length) -** -** @param chan I/O stream to read from -** @param buf Buffer to read into -** @param length Maximum capacity of the buffer -** -** @return The count of bytes transferred, or an error code -*/ -int read( uint_t chan, void *buffer, uint_t length ); - -/** -** write - write from a buffer to a stream -** -** usage: n = write(channel,buf,length) -** -** @param chan I/O stream to write to -** @param buf Buffer to write from -** @param length Maximum capacity of the buffer -** -** @return The count of bytes transferred, or an error code -*/ -int write( uint_t chan, const void *buffer, uint_t length ); - -/** -** getpid - get the PID of the calling process -** -** usage: pid = getpid() -** -** @return the PID of this process -*/ -uint_t getpid( void ); - -/** -** getppid - get the PID of the calling process' parent -** -** usage: pid = getppid() -** -** @return the PID of this process' parent -*/ -uint_t getppid( void ); - -/** -** gettime - get the current system time -** -** usage: pid = gettime() -** -** @return the system time -*/ -uint32_t gettime( void ); - -/** -** getprio - get the scheduling priority of the calling process -** -** usage: prio = getprio() -** -** @return the process' priority -*/ -int getprio( void ); - -/** -** setprio - set the scheduling priority of the calling process -** -** usage: oldprio = setprio(newprio) -** -** @param new the desired new priority -** -** @return the old priority value -*/ -int setprio( int new ); - -/** -** kill - terminate a process with extreme prejudice -** -** usage: n = kill( pid ) -** -** @param pid the intended victim -** -** @return 0 on success, else an error code -*/ -int32_t kill( uint_t pid ); - -/** -** sleep - put the current process to sleep for some length of time -** -** usage: sleep(n); -** -** @param ms Desired sleep time (in ms), or 0 to yield the CPU -** -** @return the time the process spent sleeping (in ms) -*/ -int sleep( uint32_t ms ); - -/** -** bogus - a nonexistent system call, to test our syscall ISR -** -** usage: bogus() -** -** Does not return. -*/ -void bogus( void ); - -/* -************************************************* -** CONVENIENT "SHORTHAND" VERSIONS OF SYSCALLS ** -************************************************* -** -** These are library functions that perform specific common -** variants of system calls. This helps reduce the total number -** of system calls, keeping our baseline OS as lean and mean -** as we can make it. :-) -*/ - -/** -** wait - wait for any child to exit -** -** usage: pid = wait(&status) -** -** Calls waitpid(0,status) -** -** @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 -*/ -int wait( int32_t *status ); - -/** -** spawn - create a new process running a different program -** -** usage: n = spawn(what,args) -** -** Creates a new process and then execs 'what' -** -** @param what 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 -*/ -int spawn( uint_t what, char **args ); - -/** -** cwritech(ch) - write a single character to the console -** -** @param ch The character to write -** -** @return The return value from calling write() -*/ -int cwritech( char ch ); - -/** -** cwrites(str) - write a NUL-terminated string to the console -** -** @param str The string to write -** -*/ -int cwrites( const char *str ); - -/** -** cwrite(buf,leng) - write a sized buffer to the console -** -** @param buf The buffer to write -** @param leng The number of bytes to write -** -** @return The return value from calling write() -*/ -int cwrite( const char *buf, uint32_t leng ); - -/** -** swritech(ch) - write a single character to the SIO -** -** @param ch The character to write -** -** @return The return value from calling write() -*/ -int swritech( char ch ); - -/** -** swrites(str) - write a NUL-terminated string to the SIO -** -** @param str The string to write -** -** @return The return value from calling write() -*/ -int swrites( const char *str ); - -/** -** swrite(buf,leng) - write a sized buffer to the SIO -** -** @param buf The buffer to write -** @param leng The number of bytes to write -** -** @return The return value from calling write() -*/ -int swrite( const char *buf, uint32_t leng ); - -/* -************************************************* -** MISCELLANEOUS USEFUL SUPPORT FUNCTIONS ******* -************************************************* -*/ - -/** -** fake_exit() -** -** dummy "startup" function -** -** calls exit(%eax) - serves as the "return to" code for -** main() functions, in case they don't call exit() themselves -*/ -void fake_exit( void ); - -#endif /* !ASM_SRC */ - -#endif |