From 4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 27 Mar 2012 11:51:08 +0200 Subject: reorganize file structure to match the upstream requirements --- pintos-progos/lib/user/console.c | 94 ---------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 pintos-progos/lib/user/console.c (limited to 'pintos-progos/lib/user/console.c') diff --git a/pintos-progos/lib/user/console.c b/pintos-progos/lib/user/console.c deleted file mode 100644 index 22bdc8c..0000000 --- a/pintos-progos/lib/user/console.c +++ /dev/null @@ -1,94 +0,0 @@ -#include -#include -#include -#include - -/* The standard vprintf() function, - which is like printf() but uses a va_list. */ -int -vprintf (const char *format, va_list args) -{ - return vhprintf (STDOUT_FILENO, format, args); -} - -/* Like printf(), but writes output to the given HANDLE. */ -int -hprintf (int handle, const char *format, ...) -{ - va_list args; - int retval; - - va_start (args, format); - retval = vhprintf (handle, format, args); - va_end (args); - - return retval; -} - -/* Writes string S to the console, followed by a new-line - character. */ -int -puts (const char *s) -{ - write (STDOUT_FILENO, s, strlen (s)); - putchar ('\n'); - - return 0; -} - -/* Writes C to the console. */ -int -putchar (int c) -{ - char c2 = c; - write (STDOUT_FILENO, &c2, 1); - return c; -} - -/* Auxiliary data for vhprintf_helper(). */ -struct vhprintf_aux - { - char buf[64]; /* Character buffer. */ - char *p; /* Current position in buffer. */ - int char_cnt; /* Total characters written so far. */ - int handle; /* Output file handle. */ - }; - -static void add_char (char, void *); -static void flush (struct vhprintf_aux *); - -/* Formats the printf() format specification FORMAT with - arguments given in ARGS and writes the output to the given - HANDLE. */ -int -vhprintf (int handle, const char *format, va_list args) -{ - struct vhprintf_aux aux; - aux.p = aux.buf; - aux.char_cnt = 0; - aux.handle = handle; - __vprintf (format, args, add_char, &aux); - flush (&aux); - return aux.char_cnt; -} - -/* Adds C to the buffer in AUX, flushing it if the buffer fills - up. */ -static void -add_char (char c, void *aux_) -{ - struct vhprintf_aux *aux = aux_; - *aux->p++ = c; - if (aux->p >= aux->buf + sizeof aux->buf) - flush (aux); - aux->char_cnt++; -} - -/* Flushes the buffer in AUX. */ -static void -flush (struct vhprintf_aux *aux) -{ - if (aux->p > aux->buf) - write (aux->handle, aux->buf, aux->p - aux->buf); - aux->p = aux->buf; -} -- cgit v1.2.3