gdbhio: skip mountpoints everywhere
This commit is contained in:
parent
d6f173251c
commit
53df2f20b8
@ -27,13 +27,16 @@ static inline int _gdbHioGetFdFromPtr(void *fdptr)
|
|||||||
return *(int *)fdptr;
|
return *(int *)fdptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline const char *_gdbHioSkipMountpoint(const char *pathname)
|
||||||
|
{
|
||||||
|
return strncmp(pathname, "gdbhio:", 7) == 0 ? pathname + 7 : pathname;
|
||||||
|
}
|
||||||
|
|
||||||
static int _gdbHioDevOpen(struct _reent *r, void *fdptr, const char *pathname, int flags, int mode)
|
static int _gdbHioDevOpen(struct _reent *r, void *fdptr, const char *pathname, int flags, int mode)
|
||||||
{
|
{
|
||||||
(void)r;
|
(void)r;
|
||||||
if (strncmp(pathname, "gdbhio:", 7) == 0) {
|
|
||||||
pathname += 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
pathname = _gdbHioSkipMountpoint(pathname);
|
||||||
int ret = gdbHioOpen(pathname, flags, mode);
|
int ret = gdbHioOpen(pathname, flags, mode);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return ret;
|
return ret;
|
||||||
@ -70,19 +73,19 @@ static off_t _gdbHioDevLseek(struct _reent *r, void *fdptr, off_t offset, int fl
|
|||||||
static int _gdbHioDevRename(struct _reent *r, const char *oldpath, const char *newpath)
|
static int _gdbHioDevRename(struct _reent *r, const char *oldpath, const char *newpath)
|
||||||
{
|
{
|
||||||
(void)r;
|
(void)r;
|
||||||
return gdbHioRename(oldpath, newpath);
|
return gdbHioRename(_gdbHioSkipMountpoint(oldpath), _gdbHioSkipMountpoint(newpath));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _gdbHioDevUnlink(struct _reent *r, const char *pathname)
|
static int _gdbHioDevUnlink(struct _reent *r, const char *pathname)
|
||||||
{
|
{
|
||||||
(void)r;
|
(void)r;
|
||||||
return gdbHioUnlink(pathname);
|
return gdbHioUnlink(_gdbHioSkipMountpoint(pathname));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _gdbHioDevStat(struct _reent *r, const char *pathname, struct stat *st)
|
static int _gdbHioDevStat(struct _reent *r, const char *pathname, struct stat *st)
|
||||||
{
|
{
|
||||||
(void)r;
|
(void)r;
|
||||||
return gdbHioStat(pathname, st);
|
return gdbHioStat(_gdbHioSkipMountpoint(pathname), st);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _gdbHioDevFstat(struct _reent *r, void *fdptr, struct stat *st)
|
static int _gdbHioDevFstat(struct _reent *r, void *fdptr, struct stat *st)
|
||||||
|
Loading…
Reference in New Issue
Block a user