mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Added stubs for truncate(2) and ftruncate(3).
This commit is contained in:
parent
0519af33ee
commit
56084556bb
4 changed files with 33 additions and 3 deletions
|
@ -102,7 +102,6 @@ int fdatasync(int);
|
||||||
int fexecve(int, char* const [], char* const []);
|
int fexecve(int, char* const [], char* const []);
|
||||||
long fpathconf(int, int);
|
long fpathconf(int, int);
|
||||||
int fsync(int);
|
int fsync(int);
|
||||||
int ftruncate(int, off_t);
|
|
||||||
gid_t getegid(void);
|
gid_t getegid(void);
|
||||||
uid_t geteuid(void);
|
uid_t geteuid(void);
|
||||||
gid_t getgid(void);
|
gid_t getgid(void);
|
||||||
|
@ -142,7 +141,6 @@ void sync(void);
|
||||||
long sysconf(int);
|
long sysconf(int);
|
||||||
pid_t tcgetpgrp(int);
|
pid_t tcgetpgrp(int);
|
||||||
int tcsetpgrp(int, pid_t);
|
int tcsetpgrp(int, pid_t);
|
||||||
int truncate(const char*, off_t);
|
|
||||||
char* ttyname(int);
|
char* ttyname(int);
|
||||||
int ttyname_r(int, char*, size_t);
|
int ttyname_r(int, char*, size_t);
|
||||||
int unlinkat(int, const char*, int);
|
int unlinkat(int, const char*, int);
|
||||||
|
@ -160,6 +158,7 @@ int close(int);
|
||||||
int dup(int);
|
int dup(int);
|
||||||
void _exit(int);
|
void _exit(int);
|
||||||
pid_t fork(void);
|
pid_t fork(void);
|
||||||
|
int ftruncate(int, off_t);
|
||||||
char* getcwd(char*, size_t);
|
char* getcwd(char*, size_t);
|
||||||
pid_t getpid(void);
|
pid_t getpid(void);
|
||||||
pid_t getppid(void);
|
pid_t getppid(void);
|
||||||
|
@ -169,6 +168,7 @@ int pipe(int [2]);
|
||||||
ssize_t read(int, void*, size_t);
|
ssize_t read(int, void*, size_t);
|
||||||
int rmdir(const char*);
|
int rmdir(const char*);
|
||||||
unsigned sleep(unsigned);
|
unsigned sleep(unsigned);
|
||||||
|
int truncate(const char*, off_t);
|
||||||
#if __POSIX_OBSOLETE <= 200112 || defined(SORTIX_EXTENSIONS)
|
#if __POSIX_OBSOLETE <= 200112 || defined(SORTIX_EXTENSIONS)
|
||||||
int usleep(useconds_t useconds);
|
int usleep(useconds_t useconds);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -53,6 +53,8 @@ namespace Maxsi
|
||||||
DEFN_SYSCALL3_VOID(SysSeek, SYSCALL_SEEK, int, off_t*, int);
|
DEFN_SYSCALL3_VOID(SysSeek, SYSCALL_SEEK, int, off_t*, int);
|
||||||
DEFN_SYSCALL2(int, SysMkDir, SYSCALL_MKDIR, const char*, mode_t);
|
DEFN_SYSCALL2(int, SysMkDir, SYSCALL_MKDIR, const char*, mode_t);
|
||||||
DEFN_SYSCALL1(int, SysRmDir, SYSCALL_RMDIR, const char*);
|
DEFN_SYSCALL1(int, SysRmDir, SYSCALL_RMDIR, const char*);
|
||||||
|
DEFN_SYSCALL2(int, SysTruncate, SYSCALL_TRUNCATE, const char*, off_t);
|
||||||
|
DEFN_SYSCALL2(int, SysFTruncate, SYSCALL_FTRUNCATE, int, off_t);
|
||||||
|
|
||||||
size_t Print(const char* string)
|
size_t Print(const char* string)
|
||||||
{
|
{
|
||||||
|
@ -268,6 +270,16 @@ namespace Maxsi
|
||||||
return SysRmDir(pathname);
|
return SysRmDir(pathname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" int truncate(const char* pathname, off_t length)
|
||||||
|
{
|
||||||
|
return SysTruncate(pathname, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" int ftruncate(int fd, off_t length)
|
||||||
|
{
|
||||||
|
return SysFTruncate(fd, length);
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" int isatty(int fd)
|
extern "C" int isatty(int fd)
|
||||||
{
|
{
|
||||||
return SysIsATTY(fd);
|
return SysIsATTY(fd);
|
||||||
|
|
|
@ -97,12 +97,28 @@ namespace Sortix
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SysTruncate(const char* pathname, off_t length)
|
||||||
|
{
|
||||||
|
// TODO: Add the proper filesystem support!
|
||||||
|
Error::Set(ENOSYS);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SysFTruncate(const char* pathname, off_t length)
|
||||||
|
{
|
||||||
|
// TODO: Add the proper filesystem support!
|
||||||
|
Error::Set(ENOSYS);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
void Init()
|
void Init()
|
||||||
{
|
{
|
||||||
Syscall::Register(SYSCALL_OPEN, (void*) SysOpen);
|
Syscall::Register(SYSCALL_OPEN, (void*) SysOpen);
|
||||||
Syscall::Register(SYSCALL_UNLINK, (void*) SysUnlink);
|
Syscall::Register(SYSCALL_UNLINK, (void*) SysUnlink);
|
||||||
Syscall::Register(SYSCALL_MKDIR, (void*) SysMkDir);
|
Syscall::Register(SYSCALL_MKDIR, (void*) SysMkDir);
|
||||||
Syscall::Register(SYSCALL_RMDIR, (void*) SysRmDir);
|
Syscall::Register(SYSCALL_RMDIR, (void*) SysRmDir);
|
||||||
|
Syscall::Register(SYSCALL_TRUNCATE, (void*) SysTruncate);
|
||||||
|
Syscall::Register(SYSCALL_FTRUNCATE, (void*) SysFTruncate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,9 @@
|
||||||
#define SYSCALL_GET_PAGE_SIZE 37
|
#define SYSCALL_GET_PAGE_SIZE 37
|
||||||
#define SYSCALL_MKDIR 38
|
#define SYSCALL_MKDIR 38
|
||||||
#define SYSCALL_RMDIR 39
|
#define SYSCALL_RMDIR 39
|
||||||
#define SYSCALL_MAX_NUM 40 /* index of highest constant + 1 */
|
#define SYSCALL_TRUNCATE 40
|
||||||
|
#define SYSCALL_FTRUNCATE 41
|
||||||
|
#define SYSCALL_MAX_NUM 42 /* index of highest constant + 1 */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue