~aleteoryx/muditaos

ref: dde4bef8a57cfafa0463a37a82a7633ea05c2f3a muditaos/board/rt1051/newlib/io_syscalls.cpp -rw-r--r-- 3.4 KiB
dde4bef8 — Lucjan Bryndza [EGD-5075] Add new vfs core to new lib syscalls 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <newlib/vfs_io_syscalls.hpp>
#include <sys/statvfs.h>
extern "C"
{
    using namespace vfsn::internal;

    /* File related functions */
    int _fstat_r(struct _reent *r, int fd, struct stat *st)
    {
        return syscalls::fstat(r->_errno,fd,st);
    }
    int _open_r(struct _reent *r, const char *file, int flags, int mode)
    {
        return syscalls::open(r->_errno,file,flags,mode);
    }
    long _close_r(struct _reent *r, int fd)
    {
        return syscalls::close(r->_errno,fd);
    }
    long _write_r(struct _reent *r, int fd, const void *buf, size_t cnt)
    {
        return syscalls::write(r->_errno,fd,buf,cnt);
    }
    long _read_r(struct _reent *r, int fd, void *buf, size_t cnt)
    {
        return syscalls::read(r->_errno,fd,buf,cnt);
    }
    off_t _lseek_r(struct _reent *r, int fd, off_t pos, int dir)
    {
        return syscalls::lseek(r->_errno,fd,pos,dir);
    }

    int _link_r(struct _reent *r, const char *existing, const char *newLink)
    {
        return syscalls::link(r->_errno, existing, newLink);
    }
    int _unlink_r(struct _reent *r, const char *name)
    {
        return syscalls::unlink(r->_errno, name);
    }
    int _fcntl_r(struct _reent *r, int fd, int cmd, int arg)
    {
        return syscalls::fcntl(r->_errno,fd,cmd,arg);
    }
    int _stat_r(struct _reent *r, const char *file, struct stat *pstat)
    {
        return syscalls::stat(r->_errno,file,pstat);
    }

    /** POSIX directory related funcs */
    int chdir(const char *path)
    {
        return syscalls::chdir(_REENT->_errno,path);
    }
    char *getcwd(char *buf, size_t size)
    {
        return syscalls::getcwd(_REENT->_errno,buf,size);
    }
    int _rename_r(struct _reent *r, const char *oldName, const char *newName)
    {
        return syscalls::rename(r->_errno,oldName,newName);
    }
    int mkdir(const char *path, uint32_t mode)
    {
        return syscalls::mkdir(_REENT->_errno,path,mode);
    }
    // Dir entry functionality
    int closedir(DIR *dirp)
    {
        return syscalls::closedir(_REENT->_errno,dirp);
    }
    DIR *opendir(const char *dirname)
    {
        return syscalls::opendir(_REENT->_errno, dirname);
    }
    struct dirent *readdir(DIR *dirp) {
        return syscalls::readdir(_REENT->_errno, dirp);
    }
    int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result)
    {
        return syscalls::readdir_r(_REENT->_errno, dirp, entry, result);
    }
    void rewinddir(DIR *dirp)
    {
        syscalls::rewinddir(_REENT->_errno, dirp);
    }
    void seekdir(DIR *dirp, long int loc)
    {
        syscalls::seekdir(_REENT->_errno, dirp,loc);
    }
    long int telldir(DIR *dirp)
    {
        return syscalls::telldir(_REENT->_errno, dirp);
    }
    int chmod(const char* path, mode_t mode) {
        return syscalls::chmod(_REENT->_errno,path,mode);
    }
    int fchmod(int fd, mode_t mode)
    {
        return syscalls::fchmod(_REENT->_errno, fd, mode);
    }
    int fsync( int fd ) {
        return syscalls::fsync(_REENT->_errno, fd);
    }
    int statvfs(const char *path, struct statvfs *buf)
    {
        return syscalls::statvfs( _REENT->_errno, path,buf);
    }
}