PatchworkOS
Loading...
Searching...
No Matches
file.c File Reference
#include "file.h"
#include <errno.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/io.h>

Go to the source code of this file.

Functions

_file_flags_t _file_flags_parse (const char *mode)
 
FILE_file_new (void)
 
void _file_free (FILE *stream)
 
uint64_t _file_init (FILE *stream, fd_t fd, _file_flags_t flags, void *buffer, uint64_t bufferSize)
 
void _file_deinit (FILE *stream)
 
uint64_t _file_flush_buffer (FILE *stream)
 
uint64_t _file_fill_buffer (FILE *stream)
 
uint64_t _file_seek (FILE *stream, int64_t offset, int whence)
 
uint64_t _file_prepare_read (FILE *stream)
 
uint64_t _file_prepare_write (FILE *stream)
 
void _files_init (void)
 
void _files_push (FILE *file)
 
void _files_remove (FILE *file)
 
void _files_close (void)
 
uint64_t _files_flush (void)
 

Variables

static list_t files
 
static mtx_t filesMtx
 

Function Documentation

◆ _file_deinit()

void _file_deinit ( FILE stream)

Definition at line 146 of file file.c.

References _FILE_OWNS_BUFFER, FILE::buf, close(), FILE::fd, FILE::flags, free(), FILE::mtx, and mtx_destroy().

Referenced by fclose().

◆ _file_fill_buffer()

uint64_t _file_fill_buffer ( FILE stream)

◆ _file_flags_parse()

_file_flags_t _file_flags_parse ( const char *  mode)

Definition at line 12 of file file.c.

References _FILE_APPEND, _FILE_BIN, _FILE_READ, _FILE_RW, _FILE_WRITE, files, and NULL.

Referenced by fopen().

◆ _file_flush_buffer()

uint64_t _file_flush_buffer ( FILE stream)

◆ _file_free()

void _file_free ( FILE stream)

Definition at line 92 of file file.c.

References free(), stderr, stdin, and stdout.

Referenced by fclose(), and fopen().

◆ _file_init()

uint64_t _file_init ( FILE stream,
fd_t  fd,
_file_flags_t  flags,
void *  buffer,
uint64_t  bufferSize 
)

◆ _file_new()

FILE * _file_new ( void  )

Definition at line 80 of file file.c.

References calloc(), FILE::entry, list_entry_init(), and NULL.

Referenced by fopen().

◆ _file_prepare_read()

uint64_t _file_prepare_read ( FILE stream)

◆ _file_prepare_write()

◆ _file_seek()

uint64_t _file_seek ( FILE stream,
int64_t  offset,
int  whence 
)

◆ _files_close()

void _files_close ( void  )

Definition at line 278 of file file.c.

References fclose(), files, filesMtx, LIST_FOR_EACH_SAFE, mtx_lock(), and mtx_unlock().

Referenced by exit().

◆ _files_flush()

uint64_t _files_flush ( void  )

Definition at line 292 of file file.c.

References EOF, ERR, fflush(), files, filesMtx, LIST_FOR_EACH, mtx_lock(), and mtx_unlock().

Referenced by fflush().

◆ _files_init()

void _files_init ( void  )

Definition at line 254 of file file.c.

References abort(), files, filesMtx, fprintf(), list_init(), mtx_init(), mtx_recursive, stderr, and thrd_success.

Referenced by _user_init().

◆ _files_push()

void _files_push ( FILE file)

Definition at line 264 of file file.c.

References file, files, filesMtx, list_push(), mtx_lock(), and mtx_unlock().

Referenced by _std_stream_init(), and fopen().

◆ _files_remove()

void _files_remove ( FILE file)

Definition at line 271 of file file.c.

References file, files, filesMtx, list_remove(), mtx_lock(), and mtx_unlock().

Referenced by fclose().

Variable Documentation

◆ files

◆ filesMtx

mtx_t filesMtx
static

Definition at line 10 of file file.c.

Referenced by _files_close(), _files_flush(), _files_init(), _files_push(), and _files_remove().