PatchworkOS
Loading...
Searching...
No Matches
std_streams.c
Go to the documentation of this file.
1#include "std_streams.h"
2
3#include <errno.h>
4#include <stdlib.h>
5#include <string.h>
6#include <sys/io.h>
7
11
12static FILE _stdin;
15
19
20static void _std_stream_init(fd_t fd, FILE* stream, FILE** streamPtr, void* buffer, _file_flags_t flags)
21{
22 memset(stream, 0, sizeof(FILE));
23 list_entry_init(&stream->entry);
24
25 if (_file_init(stream, fd, flags, buffer, BUFSIZ) == ERR)
26 {
27 fprintf(stderr, "libstd: failed to initialize standard stream (fd=%d)\n", fd);
28 abort();
29 }
30
31 _files_push(stream);
32 *streamPtr = stream;
33}
34
#define errno
Error number variable.
Definition errno.h:27
#define EOK
No error.
Definition errno.h:32
#define STDOUT_FILENO
Definition io.h:45
#define STDERR_FILENO
Definition io.h:46
#define STDIN_FILENO
Definition io.h:44
static void list_entry_init(list_entry_t *entry)
Initializes a list entry.
Definition list.h:184
#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
_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:13
static uint8_t _stderr_buff[BUFSIZ]
Definition std_streams.c:10
static FILE _stderr
Definition std_streams.c:14
static uint8_t _stdin_buff[BUFSIZ]
Definition std_streams.c:8
static void _std_stream_init(fd_t fd, FILE *stream, FILE **streamPtr, void *buffer, _file_flags_t flags)
Definition std_streams.c:20
static uint8_t _stdout_buff[BUFSIZ]
Definition std_streams.c:9
FILE * stdout
Definition std_streams.c:17
FILE * stderr
Definition std_streams.c:18
FILE * stdin
Definition std_streams.c:16
static FILE _stdin
Definition std_streams.c:12
void _std_streams_init(void)
Definition std_streams.c:35
__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:7
_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