hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

commit e006165a84869bbda990986d8169cb5592de6fc0
parent 1eb1ee69c681f18377765d0fa8a4a12cd9a84d64
Author: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
Date:   Wed, 26 Jun 2024 12:20:08 +0200

syscalls: add setxattr

Diffstat:
Mrt/+linux/syscalls.ha | 20++++++++++++++++++++
1 file changed, 20 insertions(+), 0 deletions(-)

diff --git a/rt/+linux/syscalls.ha b/rt/+linux/syscalls.ha @@ -1042,3 +1042,23 @@ export fn shutdown(sockfd: int, how: int) (void | errno) = { wrap_return(syscall2(SYS_shutdown, sockfd: u64, how: u64))?; }; + +// Sets an extended file attribute. +export fn setxattr( + path: path, + name: str, + value: []u8, + flags: int = 0 +) (void | errno) = { + let path = kpath(path)?; + static let namebuf: [PATH_MAX]u8 = [0...]; + let name = copy_kpath(name, namebuf)?; + + wrap_return(syscall5(SYS_setxattr, + path: uintptr: u64, + name: uintptr: u64, + value: *[*]u8: uintptr: u64, + len(value): u64, + flags: u64 + ))?; +};