summaryrefslogtreecommitdiff
path: root/kernel/fs
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-07-08 21:37:15 +0200
committerAnton Kling <anton@kling.gg>2024-07-08 21:37:15 +0200
commite49d2a9fa5a485c33a250ce843d44fc6dedea8b5 (patch)
tree4be00773adca0b6c59da6d07602338ff538a7199 /kernel/fs
parent35292a486c2b44862cac6887441d6fa18148b249 (diff)
Kernel/Net: Don't use kmalloc to create send buffers
Current method is also really bad since it uses multiple copies when it should instead just copy to the send buffer of the network card directly. But I have other things that I want to prioritize first.
Diffstat (limited to 'kernel/fs')
-rw-r--r--kernel/fs/vfs.c10
-rw-r--r--kernel/fs/vfs.h1
2 files changed, 2 insertions, 9 deletions
diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c
index 65be4aa..d76e56c 100644
--- a/kernel/fs/vfs.c
+++ b/kernel/fs/vfs.c
@@ -41,7 +41,7 @@ vfs_inode_t *vfs_create_inode(
int (*send_signal)(vfs_fd_t *fd, int signal),
int (*connect)(vfs_fd_t *fd, const struct sockaddr *addr,
socklen_t addrlen)) {
- vfs_inode_t *r = kmalloc(sizeof(inode_t));
+ vfs_inode_t *r = kcalloc(1, sizeof(inode_t));
r->inode_num = inode_num;
r->type = type;
r->_has_data = has_data;
@@ -325,14 +325,6 @@ int raw_vfs_pread(vfs_fd_t *vfs_fd, void *buf, u64 count, u64 offset) {
}
int vfs_pread(int fd, void *buf, u64 count, u64 offset) {
- if (fd >= 100) {
- kprintf("EBADF : %x\n", fd);
- return -EBADF;
- }
- if (fd < 0) {
- kprintf("EBADF : %x\n", fd);
- return -EBADF;
- }
vfs_fd_t *vfs_fd = get_vfs_fd(fd, NULL);
if (!vfs_fd) {
return -EBADF;
diff --git a/kernel/fs/vfs.h b/kernel/fs/vfs.h
index a39982d..640cfbb 100644
--- a/kernel/fs/vfs.h
+++ b/kernel/fs/vfs.h
@@ -48,6 +48,7 @@ struct vfs_inode {
int type;
int (*_has_data)(vfs_inode_t *iinode);
int (*_can_write)(vfs_inode_t *iinode);
+ int (*_is_open)(vfs_inode_t *iinode);
u8 is_open;
int internal_object_type;
void *internal_object;