/* See the end of this file for copyright, license, and warranty information. */ #include #include #include #include #include #include #include long sys_write(int fd, __user const void *buf, size_t len) { long ret = 0; void *copy; struct file *f = file_get(fd); if (f == NULL) return -EBADF; copy = kmalloc(len); if (copy == NULL) { file_put(f); return -ENOMEM; } len = copy_from_user(copy, buf, len); ret = file_write(f, copy, len); kfree(copy); file_put(f); return ret; } /* * This file is part of Ardix. * Copyright (c) 2020, 2021 Felix Kopp . * * Ardix is non-violent software: you may only use, redistribute, * and/or modify it under the terms of the CNPLv6+ as found in * the LICENSE file in the source code root directory or at * . * * Ardix comes with ABSOLUTELY NO WARRANTY, to the extent * permitted by applicable law. See the CNPLv6+ for details. */