diff options
Diffstat (limited to 'user')
| -rw-r--r-- | user/chat.c | 9 | ||||
| -rw-r--r-- | user/hexview.c | 14 | ||||
| -rw-r--r-- | user/save.c | 10 | ||||
| -rw-r--r-- | user/user.h | 150 |
4 files changed, 91 insertions, 92 deletions
diff --git a/user/chat.c b/user/chat.c index 67bc727..1657c73 100644 --- a/user/chat.c +++ b/user/chat.c @@ -24,10 +24,9 @@ void _start(const char* arg, unsigned long arglen) } char buffer[256]; - long n; - while ((n = sys_read(fd, buffer, sizeof(buffer))) > 0) - sys_write(1, buffer, (unsigned long)n); - - sys_close(fd); + long bytes_read; + while ((bytes_read = sys_read(fd, buffer, sizeof(buffer))) > 0) + (void)sys_write(1, buffer, (unsigned long)bytes_read); + (void)sys_close(fd); sys_exit(0); } diff --git a/user/hexview.c b/user/hexview.c index 5eac27c..5d21711 100644 --- a/user/hexview.c +++ b/user/hexview.c @@ -5,7 +5,7 @@ static const char HEX[] = "0123456789abcdef"; static void put_hex8(unsigned char byte) { char digits[2] = { HEX[byte >> 4], HEX[byte & 15] }; - sys_write(1, digits, 2); + (void)sys_write(1, digits, 2); } static void put_hex32(unsigned long value) @@ -13,7 +13,7 @@ static void put_hex32(unsigned long value) char digits[8]; for (int nibble = 0; nibble < 8; nibble++) digits[nibble] = HEX[(value >> ((7 - nibble) * 4)) & 15]; - sys_write(1, digits, 8); + (void)sys_write(1, digits, 8); } #define PAGE 256 @@ -32,7 +32,7 @@ void _start(const char* arg, unsigned long arglen) else { put("hexview, type a filename\nfile: "); - read_line(name, 64); + (void)read_line(name, 64); put("\n"); } @@ -67,7 +67,7 @@ void _start(const char* arg, unsigned long arglen) if (row + column < count) { put_hex8((unsigned char)buffer[row + column]); - sys_write(1, " ", 1); + (void)sys_write(1, " ", 1); } else put(" "); @@ -78,9 +78,9 @@ void _start(const char* arg, unsigned long arglen) { char character = buffer[row + column]; if (character >= 32 && character < 127) - sys_write(1, &character, 1); + (void)sys_write(1, &character, 1); else - sys_write(1, ".", 1); + (void)sys_write(1, ".", 1); } put("\n"); } @@ -89,7 +89,7 @@ void _start(const char* arg, unsigned long arglen) char key = (char)get_char(); if (key == 27) // ESC { - get_char(); + (void)get_char(); char final = (char)get_char(); if (final == 'A') key = 'p'; diff --git a/user/save.c b/user/save.c index 48e1930..2ac065f 100644 --- a/user/save.c +++ b/user/save.c @@ -29,15 +29,15 @@ void _start(const char* arg, unsigned long arglen) for (;;) { char line[256]; - int n = read_line(line, 256); + int bytes_read = read_line(line, 256); put("\n"); - if (n == 1 && line[0] == '.') + if (bytes_read == 1 && line[0] == '.') break; - sys_write(fd, line, (unsigned long)n); - sys_write(fd, "\n", 1); + (void)sys_write(fd, line, (unsigned long)bytes_read); + (void)sys_write(fd, "\n", 1); } - sys_close(fd); + (void)sys_close(fd); put("saved "); put(name); put("\n"); diff --git a/user/user.h b/user/user.h index 86c2f91..58a1bc5 100644 --- a/user/user.h +++ b/user/user.h @@ -7,55 +7,55 @@ #define O_TRUNC 0x200 #define O_APPEND 0x400 -static long sys_write(long fd, const char* buffer, unsigned long length) +static inline __attribute__((warn_unused_result)) long sys_write(long fd, const char* buffer, unsigned long length) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(1L), "D"(fd), "S"(buffer), "d"(length) : "memory"); return result; } -static long sys_read(long fd, char* buffer, unsigned long length) +static inline __attribute__((warn_unused_result)) long sys_read(long fd, char* buffer, unsigned long length) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(2L), "D"(fd), "S"(buffer), "d"(length) : "memory"); return result; } -static long sys_open(const char* path, long flags) +static inline __attribute__((warn_unused_result)) long sys_open(const char* path, long flags) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(7L), "D"(path), "S"(flags) : "memory"); return result; } -static long sys_close(long fd) +static inline __attribute__((warn_unused_result)) long sys_close(long fd) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(8L), "D"(fd) : "memory"); return result; } -static long sys_lseek(long fd, long offset, long whence) +static inline __attribute__((warn_unused_result)) long sys_lseek(long fd, long offset, long whence) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(9L), "D"(fd), "S"(offset), "d"(whence) : "memory"); return result; } -static void sys_exit(long code) +static inline void sys_exit(long code) { __asm__ volatile("int $0x80" : : "a"(0L), "D"(code) : "memory"); for (;;); } -static long sys_fs_size(const char* name) +static inline __attribute__((warn_unused_result)) long sys_fs_size(const char* name) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(4L), "D"(name) : "memory"); return result; } -static long sys_fs_read(const char* name, unsigned long offset, char* buffer, unsigned long length) +static inline __attribute__((warn_unused_result)) long sys_fs_read(const char* name, unsigned long offset, char* buffer, unsigned long length) { long result; __asm__ volatile("int $0x80" @@ -65,7 +65,7 @@ static long sys_fs_read(const char* name, unsigned long offset, char* buffer, un return result; } -static long sys_fs_write(const char* name, const char* buffer, unsigned long length) +static inline __attribute__((warn_unused_result)) long sys_fs_write(const char* name, const char* buffer, unsigned long length) { long result; __asm__ volatile("int $0x80" @@ -75,14 +75,14 @@ static long sys_fs_write(const char* name, const char* buffer, unsigned long len return result; } -static long sys_brk(void* addr) +static inline __attribute__((warn_unused_result)) long sys_brk(void* address) { long result; - __asm__ volatile("int $0x80" : "=a"(result) : "a"(10L), "D"(addr) : "memory"); + __asm__ volatile("int $0x80" : "=a"(result) : "a"(10L), "D"(address) : "memory"); return result; } -static void* sys_sbrk(long increment) +static inline __attribute__((warn_unused_result)) void* sys_sbrk(long increment) { long result; __asm__ volatile("int $0x80" : "=a"(result) : "a"(11L), "D"(increment) : "memory"); @@ -91,7 +91,7 @@ static void* sys_sbrk(long increment) // shitty heap implementation // temporary af this will be in its own libc -#define HEAP_HDR 16UL +#define HEAP_HEADER 16UL #define HEAP_ALIGN 16UL #define HEAP_MIN 32UL #define HEAP_CHUNK (64UL * 1024UL) @@ -100,28 +100,28 @@ static unsigned long heap_start = 0; static unsigned long heap_end = 0; static unsigned long heap_rover = 0; -static unsigned long heap_blk_size(unsigned long b) +static inline __attribute__((warn_unused_result)) unsigned long heap_block_size(unsigned long block) { - return *(unsigned long*)b & ~15UL; + return *(unsigned long*)block & ~15UL; } -static int heap_blk_used(unsigned long b) +static inline __attribute__((warn_unused_result)) int heap_block_used(unsigned long block) { - return (int)(*(unsigned long*)b & 1UL); + return (int)(*(unsigned long*)block & 1UL); } -static void heap_set(unsigned long b, unsigned long size, int used) +static inline void heap_set(unsigned long block, unsigned long size, int used) { - *(unsigned long*)b = size | (used ? 1UL : 0UL); + *(unsigned long*)block = size | (used ? 1UL : 0UL); } -static unsigned long heap_align(unsigned long x) +static inline __attribute__((warn_unused_result)) unsigned long heap_align(unsigned long value) { - return (x + HEAP_ALIGN - 1UL) & ~(HEAP_ALIGN - 1UL); + return (value + HEAP_ALIGN - 1UL) & ~(HEAP_ALIGN - 1UL); } // pull another hunk off sbrk and drop a free block over it -static int heap_grow(unsigned long need) +static inline __attribute__((warn_unused_result)) int heap_grow(unsigned long need) { unsigned long want = heap_align(need); if (want < HEAP_CHUNK) @@ -141,11 +141,11 @@ static int heap_grow(unsigned long need) } // yummy O(n) malloc implementation -static void* malloc(unsigned long len) +static inline __attribute__((warn_unused_result)) void* malloc(unsigned long length) { - if (len == 0) + if (length == 0) return 0; - unsigned long need = heap_align(HEAP_HDR + len); + unsigned long need = heap_align(HEAP_HEADER + length); if (need < HEAP_MIN) need = HEAP_MIN; @@ -153,39 +153,39 @@ static void* malloc(unsigned long len) { if (heap_rover < heap_start || heap_rover >= heap_end) heap_rover = heap_start; - unsigned long b = heap_rover; + unsigned long block = heap_rover; unsigned long limit = heap_end; for (int pass = 0; pass < 2; pass++) { - while (b < limit) + while (block < limit) { - if (!heap_blk_used(b)) + if (!heap_block_used(block)) { - unsigned long size = heap_blk_size(b); - while (b + size < heap_end && !heap_blk_used(b + size)) - size += heap_blk_size(b + size); - heap_set(b, size, 0); + unsigned long size = heap_block_size(block); + while (block + size < heap_end && !heap_block_used(block + size)) + size += heap_block_size(block + size); + heap_set(block, size, 0); if (size >= need) { if (size >= need + HEAP_MIN) { - heap_set(b, need, 1); - heap_set(b + need, size - need, 0); - heap_rover = b + need; + heap_set(block, need, 1); + heap_set(block + need, size - need, 0); + heap_rover = block + need; } else { - heap_set(b, size, 1); - heap_rover = b + size; + heap_set(block, size, 1); + heap_rover = block + size; } if (heap_rover >= heap_end) heap_rover = heap_start; - return (void*)(b + HEAP_HDR); + return (void*)(block + HEAP_HEADER); } } - b += heap_blk_size(b); + block += heap_block_size(block); } - b = heap_start; + block = heap_start; limit = heap_rover; } if (!heap_grow(need)) @@ -193,64 +193,64 @@ static void* malloc(unsigned long len) } } -static void free(void* ptr) +static inline void free(void* pointer) { - if (ptr == 0) + if (pointer == 0) return; - unsigned long b = (unsigned long)ptr - HEAP_HDR; - heap_set(b, heap_blk_size(b), 0); + unsigned long block = (unsigned long)pointer - HEAP_HEADER; + heap_set(block, heap_block_size(block), 0); } -static void* calloc(unsigned long count, unsigned long size) +static inline __attribute__((warn_unused_result)) void* calloc(unsigned long count, unsigned long size) { unsigned long total = count * size; - unsigned char* p = (unsigned char*)malloc(total); - if (p) + unsigned char* bytes = (unsigned char*)malloc(total); + if (bytes) for (unsigned long i = 0; i < total; i++) - p[i] = 0; - return p; + bytes[i] = 0; + return bytes; } -static void* realloc(void* ptr, unsigned long len) +static inline __attribute__((warn_unused_result)) void* realloc(void* pointer, unsigned long length) { - if (ptr == 0) - return malloc(len); - if (len == 0) + if (pointer == 0) + return malloc(length); + if (length == 0) { - free(ptr); + free(pointer); return 0; } - unsigned long b = (unsigned long)ptr - HEAP_HDR; - unsigned long have = heap_blk_size(b) - HEAP_HDR; - if (len <= have) - return ptr; - unsigned char* np = (unsigned char*)malloc(len); - if (!np) + unsigned long block = (unsigned long)pointer - HEAP_HEADER; + unsigned long have = heap_block_size(block) - HEAP_HEADER; + if (length <= have) + return pointer; + unsigned char* new_block = (unsigned char*)malloc(length); + if (!new_block) return 0; - unsigned char* src = (unsigned char*)ptr; + unsigned char* source = (unsigned char*)pointer; for (unsigned long i = 0; i < have; i++) - np[i] = src[i]; - free(ptr); - return np; + new_block[i] = source[i]; + free(pointer); + return new_block; } -static void put(const char* string) +static inline void put(const char* string) { unsigned long length = 0; while (string[length]) length++; - sys_write(1, string, length); + (void)sys_write(1, string, length); } -static int get_char(void) +static inline __attribute__((warn_unused_result)) int get_char(void) { - char c; - if (sys_read(0, &c, 1) <= 0) + char character; + if (sys_read(0, &character, 1) <= 0) return -1; - return (unsigned char)c; + return (unsigned char)character; } -static int read_line(char* buffer, int max_length) +static inline __attribute__((warn_unused_result)) int read_line(char* buffer, int max_length) { int length = 0; for (;;) @@ -265,21 +265,21 @@ static int read_line(char* buffer, int max_length) if (length > 0) { length--; - sys_write(1, "\b \b", 3); + (void)sys_write(1, "\b \b", 3); } continue; } if (length < max_length - 1) { buffer[length++] = character; - sys_write(1, &character, 1); + (void)sys_write(1, &character, 1); } } buffer[length] = 0; return length; } -static void put_int(long value) +static inline void put_int(long value) { char buffer[21]; int length = 0; @@ -305,5 +305,5 @@ static void put_int(long value) buffer[right] = swap; } - sys_write(1, buffer, length); + (void)sys_write(1, buffer, length); } |
