summaryrefslogtreecommitdiff
path: root/kernel/fs/shm.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-02-21 00:14:29 +0100
committerAnton Kling <anton@kling.gg>2024-02-21 00:14:29 +0100
commit8ff63b062d724826d8017504063df9b92f8e6703 (patch)
tree03bf0b5a278a4908da8912f956e5651bea9412f1 /kernel/fs/shm.c
parenta85eacdd2406fede4d6ff5cb130b1758978cabb3 (diff)
New clang-format options
Diffstat (limited to 'kernel/fs/shm.c')
-rw-r--r--kernel/fs/shm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/fs/shm.c b/kernel/fs/shm.c
index 5eb7f23..e0c0211 100644
--- a/kernel/fs/shm.c
+++ b/kernel/fs/shm.c
@@ -16,11 +16,13 @@ void shm_init(void) {
int shm_write(u8 *buffer, u64 offset, u64 len, vfs_fd_t *fd) {
vfs_vm_object_t *p = fd->inode->internal_object;
- if (offset > p->size)
+ if (offset > p->size) {
return -EFBIG;
+ }
- if (offset + len > p->size)
+ if (offset + len > p->size) {
len = p->size - offset;
+ }
memcpy((void *)((uintptr_t)((uintptr_t)p->virtual_object + offset)), buffer,
len);
@@ -30,11 +32,13 @@ int shm_write(u8 *buffer, u64 offset, u64 len, vfs_fd_t *fd) {
int shm_read(u8 *buffer, u64 offset, u64 len, vfs_fd_t *fd) {
vfs_vm_object_t *p = fd->inode->internal_object;
- if (offset > p->size)
+ if (offset > p->size) {
return -EFBIG;
+ }
- if (offset + len > p->size)
+ if (offset + len > p->size) {
len = p->size - offset;
+ }
memcpy((void *)buffer,
(void *)((uintptr_t)((uintptr_t)p->virtual_object + offset)), len);
@@ -54,10 +58,11 @@ int shm_ftruncate(vfs_fd_t *fd, size_t length) {
p->virtual_object = ksbrk(length);
int n = (uintptr_t)align_page((void *)(u32)length) / 0x1000;
p->object = kmalloc(sizeof(void *) * n);
- for (int i = 0; i < n; i++)
+ for (int i = 0; i < n; i++) {
p->object[i] =
(void *)(get_page(p->virtual_object + (i * 0x1000), NULL, 0, 0)->frame *
0x1000);
+ }
return 0;
}