15af32e75SAxel Dörfler /*
25e2ef462SAxel Dörfler * Copyright 2002-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
35e2ef462SAxel Dörfler * Distributed under the terms of the MIT License.
45af32e75SAxel Dörfler */
55af32e75SAxel Dörfler
65af32e75SAxel Dörfler
75af32e75SAxel Dörfler #include <fs_interface.h>
85e2ef462SAxel Dörfler #include <NodeMonitor.h>
95af32e75SAxel Dörfler
105af32e75SAxel Dörfler #include <unistd.h>
115af32e75SAxel Dörfler #include <syscalls.h>
125af32e75SAxel Dörfler #include <errno.h>
135af32e75SAxel Dörfler
14ae901935SOliver Tappe #include <errno_private.h>
154d5c5a7eSAugustin Cavalier #include <syscall_utils.h>
165af32e75SAxel Dörfler
175af32e75SAxel Dörfler
185af32e75SAxel Dörfler int
truncate(const char * path,off_t newSize)195af32e75SAxel Dörfler truncate(const char *path, off_t newSize)
205af32e75SAxel Dörfler {
215af32e75SAxel Dörfler struct stat stat;
225af32e75SAxel Dörfler status_t status;
235af32e75SAxel Dörfler
245af32e75SAxel Dörfler stat.st_size = newSize;
25*55e8238cSAugustin Cavalier status = _kern_write_stat(AT_FDCWD, path, true, &stat, sizeof(struct stat),
265e2ef462SAxel Dörfler B_STAT_SIZE);
275af32e75SAxel Dörfler
285af32e75SAxel Dörfler RETURN_AND_SET_ERRNO(status);
295af32e75SAxel Dörfler }
305af32e75SAxel Dörfler
315af32e75SAxel Dörfler
325af32e75SAxel Dörfler int
ftruncate(int fd,off_t newSize)335af32e75SAxel Dörfler ftruncate(int fd, off_t newSize)
345af32e75SAxel Dörfler {
355af32e75SAxel Dörfler struct stat stat;
365af32e75SAxel Dörfler status_t status;
375af32e75SAxel Dörfler
385af32e75SAxel Dörfler stat.st_size = newSize;
395af32e75SAxel Dörfler status = _kern_write_stat(fd, NULL, false, &stat, sizeof(struct stat),
405e2ef462SAxel Dörfler B_STAT_SIZE);
415af32e75SAxel Dörfler
425af32e75SAxel Dörfler RETURN_AND_SET_ERRNO(status);
435af32e75SAxel Dörfler }
445af32e75SAxel Dörfler
45