Fix more compiler warnings (gcc and clang)
This commit is contained in:
parent
5b0cf9febc
commit
ff1db047ff
@ -25,6 +25,6 @@ int get_fake_if(ucontext_t *ctx) {
|
||||
return !(ctx->uc_mcontext.__gregs[REG_EFL] & (1 << 21));
|
||||
}
|
||||
|
||||
void system_shutdown() {
|
||||
void system_shutdown(void) {
|
||||
exit(0);
|
||||
}
|
||||
|
@ -24,14 +24,14 @@
|
||||
#define TAP_DEV "/dev/net/tun"
|
||||
|
||||
static STDCALL void
|
||||
vnet_unload_tap() {
|
||||
vnet_unload_tap(void) {
|
||||
printf("vnet_unload_tap\n");
|
||||
COVERAGE_ON();
|
||||
COVERAGE_OFF();
|
||||
}
|
||||
|
||||
static STDCALL void
|
||||
vnet_reset_tap() {
|
||||
vnet_reset_tap(void) {
|
||||
printf("vnet_reset_tap\n");
|
||||
COVERAGE_ON();
|
||||
COVERAGE_OFF();
|
||||
@ -68,7 +68,7 @@ vnet_transmit_tap(net_buff_t *buf) {
|
||||
}
|
||||
|
||||
struct vnet *
|
||||
vnet_init_tap() {
|
||||
vnet_init_tap(void) {
|
||||
struct ifreq ifr = {.ifr_name = UMKA_VNET_NAME,
|
||||
.ifr_flags = IFF_TAP | IFF_NO_PI};
|
||||
int fd, err;
|
||||
|
8
makefile
8
makefile
@ -10,16 +10,18 @@ AR ?= ar
|
||||
CC ?= gcc
|
||||
WARNINGS_COMMON=-Wall -Wextra \
|
||||
-Wnull-dereference -Wshadow -Wformat=2 -Wswitch -Wswitch-enum \
|
||||
-Wpedantic \
|
||||
-Wpedantic -Wstrict-prototypes \
|
||||
#-Wconversion -Wsign-conversion
|
||||
NOWARNINGS_COMMON=-Wno-address-of-packed-member
|
||||
|
||||
ifneq (,$(findstring gcc,$(CC)))
|
||||
WARNINGS=$(WARNINGS_COMMON) -Wduplicated-cond -Wduplicated-branches -Wrestrict -Wlogical-op -Wjump-misses-init
|
||||
NOWARNINGS=$(NOWARNINGS_COMMON)
|
||||
CFLAGS_BESTLINE=-Wno-logical-op
|
||||
else ifneq (,$(findstring clang,$(CC)))
|
||||
WARNINGS=$(WARNINGS_COMMON)
|
||||
NOWARNINGS=$(NOWARNINGS_COMMON) -Wno-missing-prototype-for-cc
|
||||
CFLAGS_BESTLINE=
|
||||
else
|
||||
$(error your compiler is not supported)
|
||||
endif
|
||||
@ -95,10 +97,10 @@ lodepng.o: lodepng.c lodepng.h
|
||||
$(CC) $(CFLAGS_32) -c $<
|
||||
|
||||
bestline32.o: bestline.c bestline.h
|
||||
$(CC) $(CFLAGS_32) -Wno-logical-op -Wno-switch-enum -c $< -o $@
|
||||
$(CC) $(CFLAGS_32) $(CFLAGS_BESTLINE) -Wno-switch-enum -c $< -o $@
|
||||
|
||||
bestline.o: bestline.c bestline.h
|
||||
$(CC) $(CFLAGS) -Wno-logical-op -Wno-switch-enum -c $< -o $@
|
||||
$(CC) $(CFLAGS) -Wno-switch-enum -c $< -o $@
|
||||
|
||||
optparse32.o: optparse.c optparse.h
|
||||
$(CC) $(CFLAGS_32) -c $< -o $@
|
||||
|
6
shell.c
6
shell.c
@ -259,7 +259,7 @@ shell_var_name(struct shell_ctx *ctx, const char *name) {
|
||||
}
|
||||
|
||||
struct shell_var *
|
||||
shell_var_new() {
|
||||
shell_var_new(void) {
|
||||
struct shell_var *var = (struct shell_var*)malloc(sizeof(struct shell_var));
|
||||
var->next = NULL;
|
||||
var->name[0] = '\0';
|
||||
@ -1427,7 +1427,7 @@ cmd_get_keyboard_layout(struct shell_ctx *ctx, int argc, char **argv) {
|
||||
fputs(usage, ctx->fout);
|
||||
return;
|
||||
}
|
||||
int type;
|
||||
int type = -1;
|
||||
if (!strcmp(argv[1], "-t")) {
|
||||
const char *type_str = argv[2];
|
||||
char *endptr;
|
||||
@ -4057,7 +4057,7 @@ run_test(struct shell_ctx *ctx) {
|
||||
|
||||
struct shell_ctx *
|
||||
shell_init(int reproducible, const char *hist_file, struct umka_ctx *umka,
|
||||
struct umka_io *io, FILE *fin, FILE *fout, const int *running) {
|
||||
struct umka_io *io, FILE *fin, FILE *fout, const atomic_int *running) {
|
||||
struct shell_ctx *ctx = malloc(sizeof(struct shell_ctx));
|
||||
ctx->umka = umka;
|
||||
ctx->io = io;
|
||||
|
5
shell.h
5
shell.h
@ -10,6 +10,7 @@
|
||||
#ifndef SHELL_H_INCLUDED
|
||||
#define SHELL_H_INCLUDED
|
||||
|
||||
#include <stdatomic.h>
|
||||
#include <stdio.h>
|
||||
#include <pthread.h>
|
||||
#include "umka.h"
|
||||
@ -42,7 +43,7 @@ struct shell_ctx {
|
||||
struct shell_var *var;
|
||||
FILE *fin;
|
||||
FILE *fout;
|
||||
const int *running;
|
||||
const atomic_int *running;
|
||||
pthread_cond_t cmd_done;
|
||||
pthread_mutex_t cmd_mutex;
|
||||
struct optparse opts;
|
||||
@ -50,7 +51,7 @@ struct shell_ctx {
|
||||
|
||||
struct shell_ctx *
|
||||
shell_init(int reproducible, const char *hist_file, struct umka_ctx *umka,
|
||||
struct umka_io *io, FILE *fin, FILE *fout, const int *running);
|
||||
struct umka_io *io, FILE *fin, FILE *fout, const atomic_int *running);
|
||||
|
||||
void
|
||||
shell_close(struct shell_ctx *shell);
|
||||
|
12
trace.c
12
trace.c
@ -10,18 +10,22 @@
|
||||
|
||||
uint32_t coverage;
|
||||
|
||||
void trace_begin() {
|
||||
void
|
||||
trace_begin(void) {
|
||||
trace_lbr_begin();
|
||||
}
|
||||
|
||||
void trace_end() {
|
||||
void
|
||||
trace_end(void) {
|
||||
trace_lbr_end();
|
||||
}
|
||||
|
||||
uint32_t trace_pause(void) {
|
||||
uint32_t
|
||||
trace_pause(void) {
|
||||
return trace_lbr_pause();
|
||||
}
|
||||
|
||||
void trace_resume(uint32_t value) {
|
||||
void
|
||||
trace_resume(uint32_t value) {
|
||||
trace_lbr_resume(value);
|
||||
}
|
||||
|
11
trace_lbr.c
11
trace_lbr.c
@ -66,7 +66,8 @@ void wrmsr(uint32_t reg, uint64_t data)
|
||||
#endif
|
||||
}
|
||||
|
||||
void handle_sigtrap() {
|
||||
void handle_sigtrap(int signo) {
|
||||
(void)signo;
|
||||
#ifndef _WIN32
|
||||
uint64_t from = rdmsr(MSR_IA32_LASTBRANCHFROMIP);
|
||||
uint64_t to = rdmsr(MSR_IA32_LASTBRANCHTOIP);
|
||||
@ -87,11 +88,11 @@ void handle_sigtrap() {
|
||||
|
||||
uint32_t set_eflags_tf(uint32_t tf);
|
||||
|
||||
void trace_lbr_begin() {
|
||||
void trace_lbr_begin(void) {
|
||||
#ifndef _WIN32
|
||||
struct sigaction action;
|
||||
action.sa_sigaction = &handle_sigtrap;
|
||||
action.sa_flags = SA_SIGINFO;
|
||||
action.sa_handler = &handle_sigtrap;
|
||||
action.sa_flags = 0;
|
||||
sigaction(SIGTRAP, &action, NULL);
|
||||
|
||||
wrmsr(MSR_IA32_DEBUGCTL, MSR_IA32_DEBUGCTL_LBR + MSR_IA32_DEBUGCTL_BTF);
|
||||
@ -105,7 +106,7 @@ void trace_lbr_begin() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void trace_lbr_end() {
|
||||
void trace_lbr_end(void) {
|
||||
#ifndef _WIN32
|
||||
wrmsr(MSR_IA32_DEBUGCTL, 0);
|
||||
close(msrfd);
|
||||
|
113
umka.h
113
umka.h
@ -13,6 +13,7 @@
|
||||
#include <assert.h>
|
||||
#include <inttypes.h>
|
||||
#include <signal.h>
|
||||
#include <stdatomic.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
@ -30,7 +31,7 @@ typedef void siginfo_t;
|
||||
|
||||
struct umka_ctx {
|
||||
int booted;
|
||||
int running;
|
||||
atomic_int running;
|
||||
};
|
||||
|
||||
#define UMKA_DEFAULT_DISPLAY_BPP 32
|
||||
@ -527,11 +528,11 @@ typedef struct {
|
||||
} kos_node_package_t;
|
||||
|
||||
static inline void
|
||||
umka_osloop() {
|
||||
umka_osloop(void) {
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"pushad;"
|
||||
"pusha;"
|
||||
"call kos_osloop;"
|
||||
"popad"
|
||||
"popa"
|
||||
:
|
||||
:
|
||||
: "memory", "cc");
|
||||
@ -660,21 +661,21 @@ kos_wait_event(void *event, uint32_t uid) {
|
||||
: "memory", "cc");
|
||||
}
|
||||
|
||||
typedef uint32_t (*wait_test_t)(void *);
|
||||
typedef uint32_t (*wait_test_t)(void);
|
||||
|
||||
static inline void *
|
||||
kos_wait_events(wait_test_t wait_test, void *wait_param) {
|
||||
void *res;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"push %%ebx;"
|
||||
"push %%esi;"
|
||||
"push %%edi;"
|
||||
"push %%ebp;"
|
||||
"push ebx;"
|
||||
"push esi;"
|
||||
"push edi;"
|
||||
"push ebp;"
|
||||
"call _kos_wait_events;"
|
||||
"pop %%ebp;"
|
||||
"pop %%edi;"
|
||||
"pop %%esi;"
|
||||
"pop %%ebx"
|
||||
"pop ebp;"
|
||||
"pop edi;"
|
||||
"pop esi;"
|
||||
"pop ebx"
|
||||
: "=a"(res)
|
||||
: "c"(wait_param),
|
||||
"d"(wait_test)
|
||||
@ -690,9 +691,9 @@ umka_fs_execute(const char *filename) {
|
||||
// eax String length
|
||||
int32_t result;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"push %%ebp;"
|
||||
"push ebp;"
|
||||
"call kos_fs_execute;"
|
||||
"pop %%ebp"
|
||||
"pop ebp"
|
||||
: "=a"(result)
|
||||
: "a"(strlen(filename)),
|
||||
"b"(filename),
|
||||
@ -703,16 +704,16 @@ umka_fs_execute(const char *filename) {
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
umka_new_sys_threads(uint32_t flags, void (*entry)(), void *stack) {
|
||||
umka_new_sys_threads(uint32_t flags, void (*entry)(void), void *stack) {
|
||||
size_t tid;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"push %%ebx;"
|
||||
"push %%esi;"
|
||||
"push %%edi;"
|
||||
"push ebx;"
|
||||
"push esi;"
|
||||
"push edi;"
|
||||
"call kos_new_sys_threads;"
|
||||
"pop %%edi;"
|
||||
"pop %%esi;"
|
||||
"pop %%ebx"
|
||||
"pop edi;"
|
||||
"pop esi;"
|
||||
"pop ebx"
|
||||
: "=a"(tid)
|
||||
: "b"(flags),
|
||||
"c"(entry),
|
||||
@ -722,7 +723,7 @@ umka_new_sys_threads(uint32_t flags, void (*entry)(), void *stack) {
|
||||
}
|
||||
|
||||
static inline void
|
||||
kos_enable_acpi() {
|
||||
kos_enable_acpi(void) {
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"pusha;"
|
||||
"call enable_acpi;"
|
||||
@ -780,7 +781,7 @@ struct pci_dev {
|
||||
extern struct pci_dev *kos_pci_root;
|
||||
|
||||
void
|
||||
kos_acpi_aml_init();
|
||||
kos_acpi_aml_init(void);
|
||||
|
||||
STDCALL void
|
||||
kos_aml_attach(acpi_node_t *parent, acpi_node_t *node);
|
||||
@ -789,7 +790,7 @@ STDCALL void
|
||||
kos_acpi_fill_pci_irqs(void *ctx);
|
||||
|
||||
STDCALL amlctx_t*
|
||||
kos_acpi_aml_new_thread();
|
||||
kos_acpi_aml_new_thread(void);
|
||||
|
||||
STDCALL acpi_node_t*
|
||||
kos_aml_alloc_node(int32_t type);
|
||||
@ -834,7 +835,7 @@ typedef struct {
|
||||
} f76ret_t;
|
||||
|
||||
static inline void
|
||||
umka_stack_init() {
|
||||
umka_stack_init(void) {
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"pusha;"
|
||||
"call kos_stack_init;"
|
||||
@ -1127,28 +1128,8 @@ umka_scheduler_add_thread(appdata_t *thread, int32_t priority) {
|
||||
|
||||
extern appdata_t *kos_scheduler_current[KOS_NR_SCHED_QUEUES];
|
||||
|
||||
typedef struct {
|
||||
appdata_t *appdata;
|
||||
void *taskdata;
|
||||
int same;
|
||||
} find_next_task_t;
|
||||
|
||||
static inline find_next_task_t
|
||||
umka_find_next_task(int32_t priority) {
|
||||
find_next_task_t fnt;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call find_next_task;"
|
||||
"setz %%al;"
|
||||
"movzx %%eax, %%al"
|
||||
: "=b"(fnt.appdata),
|
||||
"=D"(fnt.taskdata),
|
||||
"=a"(fnt.same)
|
||||
: "b"(priority)
|
||||
: "memory", "cc");
|
||||
return fnt;
|
||||
}
|
||||
|
||||
void i40_asm(uint32_t eax,
|
||||
void
|
||||
i40_asm(uint32_t eax,
|
||||
uint32_t ebx,
|
||||
uint32_t ecx,
|
||||
uint32_t edx,
|
||||
@ -1203,7 +1184,7 @@ umka_sys_set_pixel(size_t x, size_t y, uint32_t color, int invert) {
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
umka_get_key() {
|
||||
umka_get_key(void) {
|
||||
uint32_t key;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1282,7 +1263,7 @@ umka_sys_process_info(int32_t pid, void *param) {
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
umka_sys_wait_for_event() {
|
||||
umka_sys_wait_for_event(void) {
|
||||
uint32_t event;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1293,7 +1274,7 @@ umka_sys_wait_for_event() {
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
umka_sys_check_for_event() {
|
||||
umka_sys_check_for_event(void) {
|
||||
uint32_t event;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1363,7 +1344,7 @@ umka_sys_bg_put_pixel(uint32_t offset, uint32_t color) {
|
||||
}
|
||||
|
||||
static inline void
|
||||
umka_sys_bg_redraw() {
|
||||
umka_sys_bg_redraw(void) {
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
:
|
||||
@ -1397,7 +1378,7 @@ umka_sys_bg_put_img(void *image, size_t offset, size_t size) {
|
||||
}
|
||||
|
||||
static inline void *
|
||||
umka_sys_bg_map() {
|
||||
umka_sys_bg_map(void) {
|
||||
void *addr;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1488,7 +1469,7 @@ umka_sys_get_keyboard_layout(int type, void *layout) {
|
||||
}
|
||||
|
||||
static inline int
|
||||
umka_sys_get_keyboard_lang() {
|
||||
umka_sys_get_keyboard_lang(void) {
|
||||
int status;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1501,7 +1482,7 @@ umka_sys_get_keyboard_lang() {
|
||||
}
|
||||
|
||||
static inline int
|
||||
umka_sys_get_system_lang() {
|
||||
umka_sys_get_system_lang(void) {
|
||||
int status;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1536,7 +1517,7 @@ umka_sys_get_cwd(const char *buf, size_t len) {
|
||||
}
|
||||
|
||||
static inline struct point16s
|
||||
umka_sys_get_mouse_pos_screen() {
|
||||
umka_sys_get_mouse_pos_screen(void) {
|
||||
struct point16s pos;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1548,7 +1529,7 @@ umka_sys_get_mouse_pos_screen() {
|
||||
}
|
||||
|
||||
static inline struct point16s
|
||||
umka_sys_get_mouse_pos_window() {
|
||||
umka_sys_get_mouse_pos_window(void) {
|
||||
struct point16s pos;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1560,7 +1541,7 @@ umka_sys_get_mouse_pos_window() {
|
||||
}
|
||||
|
||||
static inline struct mouse_state
|
||||
umka_sys_get_mouse_buttons_state() {
|
||||
umka_sys_get_mouse_buttons_state(void) {
|
||||
struct mouse_state mouse;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1572,7 +1553,7 @@ umka_sys_get_mouse_buttons_state() {
|
||||
}
|
||||
|
||||
static inline struct mouse_state_events
|
||||
umka_sys_get_mouse_buttons_state_events() {
|
||||
umka_sys_get_mouse_buttons_state_events(void) {
|
||||
union {uint32_t x; struct mouse_state_events m;} u;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1694,7 +1675,7 @@ umka_sys_get_window_colors(void *colors) {
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
umka_sys_get_skin_height() {
|
||||
umka_sys_get_skin_height(void) {
|
||||
uint32_t skin_height;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1766,7 +1747,7 @@ umka_sys_set_skin(const char *path) {
|
||||
}
|
||||
|
||||
static inline int
|
||||
umka_sys_get_font_smoothing() {
|
||||
umka_sys_get_font_smoothing(void) {
|
||||
int type;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1789,7 +1770,7 @@ umka_sys_set_font_smoothing(int type) {
|
||||
}
|
||||
|
||||
static inline int
|
||||
umka_sys_get_font_size() {
|
||||
umka_sys_get_font_size(void) {
|
||||
uint32_t size;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1823,7 +1804,7 @@ umka_sys_board_put(char c) {
|
||||
}
|
||||
|
||||
static inline struct board_get_ret
|
||||
umka_sys_board_get() {
|
||||
umka_sys_board_get(void) {
|
||||
struct board_get_ret ret;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1862,7 +1843,7 @@ umka_sys_set_keyboard_mode(int mode) {
|
||||
}
|
||||
|
||||
static inline int
|
||||
umka_sys_get_keyboard_mode() {
|
||||
umka_sys_get_keyboard_mode(void) {
|
||||
int mode;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -1936,7 +1917,7 @@ umka_sys_blit_bitmap(int operation, int background, int transparent,
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
umka_sys_net_get_dev_count() {
|
||||
umka_sys_net_get_dev_count(void) {
|
||||
uint32_t count;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"call i40"
|
||||
@ -2439,7 +2420,7 @@ struct cmd_ret_sys_get_mouse_pos_screen {
|
||||
};
|
||||
|
||||
struct umka_cmd {
|
||||
uint32_t status;
|
||||
atomic_int status;
|
||||
uint32_t type;
|
||||
union {
|
||||
struct cmd_set_mouse_data set_mouse_data;
|
||||
|
@ -33,7 +33,7 @@ struct umka_fuse_ctx {
|
||||
};
|
||||
|
||||
static struct umka_fuse_ctx *
|
||||
umka_fuse_init() {
|
||||
umka_fuse_init(void) {
|
||||
struct umka_fuse_ctx *ctx = malloc(sizeof(struct umka_fuse_ctx));
|
||||
ctx->umka = umka_init();
|
||||
ctx->io = io_init(&ctx->umka->running);
|
||||
|
@ -142,7 +142,9 @@ void acpi_process_dev(char *path) {
|
||||
}
|
||||
|
||||
int
|
||||
main () {
|
||||
main (int argc, char *argv[]) {
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
kos_boot.bpp = 32;
|
||||
kos_boot.x_res = UMKA_DEFAULT_DISPLAY_WIDTH;
|
||||
kos_boot.y_res = UMKA_DEFAULT_DISPLAY_HEIGHT;
|
||||
|
14
umka_os.c
14
umka_os.c
@ -84,7 +84,7 @@ umka_os_init(FILE *fin, FILE *fout, FILE *fboardlog) {
|
||||
return ctx;
|
||||
}
|
||||
|
||||
void build_history_filename() {
|
||||
void build_history_filename(void) {
|
||||
const char *dir_name;
|
||||
if (!(dir_name = getenv("HOME"))) {
|
||||
dir_name = ".";
|
||||
@ -107,7 +107,7 @@ thread_start(int is_kernel, void (*entry)(void), size_t stack_size) {
|
||||
}
|
||||
|
||||
static void
|
||||
dump_procs() {
|
||||
dump_procs(void) {
|
||||
for (int i = 0; i < KOS_NR_SCHED_QUEUES; i++) {
|
||||
fprintf(stderr, "sched queue #%i:", i);
|
||||
appdata_t *p_begin = kos_scheduler_current[i];
|
||||
@ -203,7 +203,7 @@ umka_display(void *arg) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void (*copy_display)(void *);
|
||||
void (*copy_display)(void *) = NULL;
|
||||
|
||||
switch (window_surface->format->format) {
|
||||
case SDL_PIXELFORMAT_RGB888:
|
||||
@ -225,8 +225,8 @@ umka_display(void *arg) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
umka_run_cmd_wait_test(/* void *wait_param in ebx */) {
|
||||
static uint32_t
|
||||
umka_run_cmd_wait_test(void /* struct appdata * with wait_param is in ebx */) {
|
||||
appdata_t *app;
|
||||
__asm__ __volatile__ __inline__ ("":"=b"(app)::);
|
||||
struct umka_cmd *cmd = (struct umka_cmd*)app->wait_param;
|
||||
@ -234,7 +234,7 @@ umka_run_cmd_wait_test(/* void *wait_param in ebx */) {
|
||||
}
|
||||
|
||||
static void
|
||||
umka_thread_cmd_runner() {
|
||||
umka_thread_cmd_runner(void) {
|
||||
umka_sti();
|
||||
while (1) {
|
||||
kos_wait_events(umka_run_cmd_wait_test, umka_cmd_buf);
|
||||
@ -250,7 +250,7 @@ umka_monitor(void *arg) {
|
||||
}
|
||||
|
||||
static void
|
||||
umka_thread_board() {
|
||||
umka_thread_board(void) {
|
||||
struct board_get_ret c;
|
||||
while (1) {
|
||||
c = umka_sys_board_get();
|
||||
|
@ -41,7 +41,7 @@ umka_shell_init(int reproducible, FILE *fin, FILE *fout) {
|
||||
return ctx;
|
||||
}
|
||||
|
||||
void build_history_filename() {
|
||||
void build_history_filename(void) {
|
||||
const char *dir_name;
|
||||
if (!(dir_name = getenv("HOME"))) {
|
||||
dir_name = ".";
|
||||
|
10
umkaio.c
10
umkaio.c
@ -40,7 +40,7 @@ thread_io(void *arg) {
|
||||
switch (cmd->type) {
|
||||
case IOT_CMD_TYPE_READ:
|
||||
ret = read(cmd->read.arg.fd, cmd->read.arg.buf, cmd->read.arg.count);
|
||||
atomic_store_explicit(&cmd->read.ret.val, ret, memory_order_release);
|
||||
cmd->read.ret.val = ret;
|
||||
break;
|
||||
case IOT_CMD_TYPE_WRITE:
|
||||
cmd->read.ret.val = write(cmd->read.arg.fd, cmd->read.arg.buf,
|
||||
@ -57,7 +57,7 @@ thread_io(void *arg) {
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
io_async_submit_wait_test() {
|
||||
io_async_submit_wait_test(void) {
|
||||
// appdata_t *app;
|
||||
// __asm__ __volatile__ ("":"=b"(app)::);
|
||||
// struct io_uring_queue *q = app->wait_param;
|
||||
@ -66,7 +66,7 @@ io_async_submit_wait_test() {
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
io_async_complete_wait_test() {
|
||||
io_async_complete_wait_test(void) {
|
||||
// appdata_t *app;
|
||||
// __asm__ __volatile__ ("":"=b"(app)::);
|
||||
// struct io_uring_queue *q = app->wait_param;
|
||||
@ -89,7 +89,7 @@ io_async_read(int fd, void *buf, size_t count, void *arg) {
|
||||
pthread_cond_signal(&cmd->iot_cond);
|
||||
kos_wait_events(io_async_complete_wait_test, NULL);
|
||||
|
||||
ssize_t res = atomic_load_explicit(&cmd->read.ret.val, memory_order_acquire);
|
||||
ssize_t res = cmd->read.ret.val;
|
||||
|
||||
atomic_store_explicit(&cmd->status, UMKA_CMD_STATUS_EMPTY, memory_order_release);
|
||||
pthread_mutex_unlock(&cmd->mutex);
|
||||
@ -107,7 +107,7 @@ io_async_write(int fd, const void *buf, size_t count, void *arg) {
|
||||
}
|
||||
|
||||
struct umka_io *
|
||||
io_init(int *running) {
|
||||
io_init(atomic_int *running) {
|
||||
struct umka_io *io = malloc(sizeof(struct umka_io));
|
||||
io->running = running;
|
||||
if (running) {
|
||||
|
7
umkaio.h
7
umkaio.h
@ -10,11 +10,12 @@
|
||||
#ifndef UMKAIO_H_INCLUDED
|
||||
#define UMKAIO_H_INCLUDED
|
||||
|
||||
#include <stdatomic.h>
|
||||
#include <stddef.h>
|
||||
#include <pthread.h>
|
||||
|
||||
struct umka_io {
|
||||
const int *running;
|
||||
const atomic_int *running;
|
||||
pthread_t iot;
|
||||
};
|
||||
|
||||
@ -57,7 +58,7 @@ struct iot_cmd {
|
||||
pthread_cond_t iot_cond;
|
||||
pthread_mutex_t iot_mutex;
|
||||
pthread_mutex_t mutex;
|
||||
int status;
|
||||
atomic_int status;
|
||||
int type;
|
||||
union {
|
||||
union iot_cmd_read read;
|
||||
@ -66,7 +67,7 @@ struct iot_cmd {
|
||||
};
|
||||
|
||||
struct umka_io *
|
||||
io_init(int *running);
|
||||
io_init(atomic_int *running);
|
||||
|
||||
void
|
||||
io_close(struct umka_io *io);
|
||||
|
3
umkart.c
3
umkart.c
@ -6,12 +6,13 @@
|
||||
Copyright (C) 2021, 2023 Ivan Baravy <dunkaist@gmail.com>
|
||||
*/
|
||||
|
||||
#include <stdatomic.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "umka.h"
|
||||
#include "shell.h"
|
||||
|
||||
uint32_t umka_irq_number;
|
||||
atomic_int umka_irq_number;
|
||||
|
||||
struct devices_dat_entry {
|
||||
uint8_t fun:3;
|
||||
|
3
umkart.h
3
umkart.h
@ -9,9 +9,12 @@
|
||||
#ifndef UMKART_H_INCLUDED
|
||||
#define UMKART_H_INCLUDED
|
||||
|
||||
#include <stdatomic.h>
|
||||
#include "umka.h"
|
||||
#include "shell.h"
|
||||
|
||||
extern atomic_int umka_irq_number;
|
||||
|
||||
extern struct umka_cmd umka_cmd_buf[CMD_BUF_LEN];
|
||||
|
||||
void
|
||||
|
1
vnet.c
1
vnet.c
@ -19,6 +19,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "umka.h"
|
||||
#include "umkart.h"
|
||||
#include "trace.h"
|
||||
#include "vnet.h"
|
||||
#include "vnet/tap.h"
|
||||
|
1
vnet.h
1
vnet.h
@ -14,7 +14,6 @@
|
||||
|
||||
#define UMKA_VNET_NAME "umka%d"
|
||||
#define VNET_BUFIN_CAP (NET_BUFFER_SIZE - offsetof(net_buff_t, data))
|
||||
extern uint32_t umka_irq_number;
|
||||
|
||||
enum vnet_type {
|
||||
VNET_FILE,
|
||||
|
@ -17,14 +17,14 @@
|
||||
#include "vnet.h"
|
||||
|
||||
static STDCALL void
|
||||
vnet_unload_file() {
|
||||
vnet_unload_file(void) {
|
||||
printf("vnet_unload_file\n");
|
||||
COVERAGE_ON();
|
||||
COVERAGE_OFF();
|
||||
}
|
||||
|
||||
static STDCALL void
|
||||
vnet_reset_file() {
|
||||
vnet_reset_file(void) {
|
||||
printf("vnet_reset_file\n");
|
||||
COVERAGE_ON();
|
||||
COVERAGE_OFF();
|
||||
@ -58,7 +58,7 @@ vnet_transmit_file(net_buff_t *buf) {
|
||||
}
|
||||
|
||||
struct vnet *
|
||||
vnet_init_file() {
|
||||
vnet_init_file(void) {
|
||||
int fdin;
|
||||
int fdout;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user