PatchworkOS  966e257
A non-POSIX operating system.
Loading...
Searching...
No Matches
std_streams.c
Go to the documentation of this file.
1#include "std_streams.h"
2#include "file.h"
3
4#include <errno.h>
5#include <stdlib.h>
6#include <string.h>
7#include <sys/io.h>
8
12
13static FILE _stdin;
16
20
21static void _std_stream_init(fd_t fd, FILE* stream, FILE** streamPtr, void* buffer, _file_flags_t flags)
22{
23 memset(stream, 0, sizeof(FILE));
24 list_entry_init(&stream->entry);
25
26 if (_file_init(stream, fd, flags, buffer, BUFSIZ) == ERR)
27 {
28 fprintf(stderr, "libstd: failed to initialize standard stream (fd=%d)\n", fd);
29 abort();
30 }
31
32 _files_push(stream);
33 *streamPtr = stream;
34}
35
#define errno
Error number variable.
Definition errno.h:27
#define EOK
No error.
Definition errno.h:32
#define STDOUT_FILENO
Definition io.h:47
#define STDERR_FILENO
Definition io.h:48
#define STDIN_FILENO
Definition io.h:46
static void list_entry_init(list_entry_t *entry)
Initializes a list entry.
Definition list.h:182
#define ERR
Integer error value.
Definition ERR.h:17
__UINT64_TYPE__ fd_t
A file descriptor.
Definition fd_t.h:12
void _files_push(FILE *file)
Definition file.c:264
uint64_t _file_init(FILE *stream, fd_t fd, _file_flags_t flags, void *buffer, uint64_t bufferSize)
Definition file.c:100
EFI_PHYSICAL_ADDRESS buffer
Definition mem.c:15
static const path_flag_t flags[]
Definition path.c:42
_file_flags_t
Definition file.h:9
@ _FILE_READ
Definition file.h:10
@ _FILE_WRITE
Definition file.h:11
@ _FILE_UNBUFFERED
Definition file.h:18
@ _FILE_LINE_BUFFERED
Definition file.h:17
static FILE _stdout
Definition std_streams.c:14
static uint8_t _stderr_buff[BUFSIZ]
Definition std_streams.c:11
static FILE _stderr
Definition std_streams.c:15
static uint8_t _stdin_buff[BUFSIZ]
Definition std_streams.c:9
static void _std_stream_init(fd_t fd, FILE *stream, FILE **streamPtr, void *buffer, _file_flags_t flags)
Definition std_streams.c:21
static uint8_t _stdout_buff[BUFSIZ]
Definition std_streams.c:10
FILE * stdout
Definition std_streams.c:18
FILE * stderr
Definition std_streams.c:19
FILE * stdin
Definition std_streams.c:17
static FILE _stdin
Definition std_streams.c:13
void _std_streams_init(void)
Definition std_streams.c:36
__UINT8_TYPE__ uint8_t
Definition stdint.h:11
#define BUFSIZ
Definition stdio.h:26
_PUBLIC int fprintf(FILE *_RESTRICT stream, const char *_RESTRICT format,...)
Definition fprintf.c:5
_PUBLIC _NORETURN void abort(void)
Definition abort.c:9
_PUBLIC void * memset(void *s, int c, size_t n)
Definition memset.c:4
Definition file.h:34
list_entry_t entry
Definition file.h:35