From 5bd8fa9678310f10b44daaeb994b58d40219092f Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 3 Dec 2021 14:49:55 +0100 Subject: [PATCH] dde_linux: avoid implicit conversions Issue #23 --- repos/dde_linux/src/include/lx_emul/page_virt.h | 2 +- repos/dde_linux/src/include/lx_emul/task.h | 2 +- repos/dde_linux/src/include/lx_kit/console.h | 10 +++++----- repos/dde_linux/src/lib/lx_emul/task.cc | 3 +-- repos/dde_linux/src/lib/lx_emul/virt_to_page.c | 4 ++-- repos/dde_linux/src/lib/lx_kit/console.cc | 2 +- repos/dde_linux/src/lib/lx_kit/memory.cc | 4 ++-- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/repos/dde_linux/src/include/lx_emul/page_virt.h b/repos/dde_linux/src/include/lx_emul/page_virt.h index c0790fdac3..b5863bbdc4 100644 --- a/repos/dde_linux/src/include/lx_emul/page_virt.h +++ b/repos/dde_linux/src/include/lx_emul/page_virt.h @@ -35,7 +35,7 @@ struct page *lx_emul_associated_page(void const *virt, unsigned long size); * * If no page struct exists for the virtual address, it is created. */ -struct page *lx_emul_virt_to_pages(void const *virt, unsigned num); +struct page *lx_emul_virt_to_pages(void const *virt, unsigned long num); /** diff --git a/repos/dde_linux/src/include/lx_emul/task.h b/repos/dde_linux/src/include/lx_emul/task.h index a2024bec26..d348527390 100644 --- a/repos/dde_linux/src/include/lx_emul/task.h +++ b/repos/dde_linux/src/include/lx_emul/task.h @@ -34,7 +34,7 @@ void lx_emul_task_create(struct task_struct * task, void lx_emul_task_unblock(struct task_struct * task); -void lx_emul_task_priority(struct task_struct * task, unsigned long prio); +void lx_emul_task_priority(struct task_struct * task, int prio); void lx_emul_task_schedule(int block); diff --git a/repos/dde_linux/src/include/lx_kit/console.h b/repos/dde_linux/src/include/lx_kit/console.h index 4d2f56607b..f2307bf378 100644 --- a/repos/dde_linux/src/include/lx_kit/console.h +++ b/repos/dde_linux/src/include/lx_kit/console.h @@ -41,9 +41,9 @@ class Lx_kit::Console static inline char _ascii(int digit, int uppercase = 0) { if (digit > 9) - return digit + (uppercase ? 'A' : 'a') - 10; + return (char)(digit + (uppercase ? 'A' : 'a') - 10); - return digit + '0'; + return (char)(digit + '0'); } /** @@ -74,7 +74,7 @@ class Lx_kit::Console /* fill buffer starting with the least significant digits */ else for (; value > 0; value /= base) - buf[i++] = _ascii(value % base); + buf[i++] = _ascii((value % base) & 0xff); /* add sign to buffer for negative values */ if (neg) @@ -108,8 +108,8 @@ class Lx_kit::Console } /* fill buffer starting with the least significant digits */ - for (; value > 0; value /= base, pad--) - buf[i++] = _ascii(value % base); + for (; value > 0; value /= (T)base, pad--) + buf[i++] = _ascii((value % base) & 0xff); /* add padding zeros */ for (; pad-- > 0; ) diff --git a/repos/dde_linux/src/lib/lx_emul/task.cc b/repos/dde_linux/src/lib/lx_emul/task.cc index 5ee3123575..1e958e78b0 100644 --- a/repos/dde_linux/src/lib/lx_emul/task.cc +++ b/repos/dde_linux/src/lib/lx_emul/task.cc @@ -43,8 +43,7 @@ extern "C" void lx_emul_task_unblock(struct task_struct * t) } -extern "C" void lx_emul_task_priority(struct task_struct * t, - unsigned long prio) +extern "C" void lx_emul_task_priority(struct task_struct * t, int prio) { Lx_kit::env().scheduler.task((void*)t).priority(prio); } diff --git a/repos/dde_linux/src/lib/lx_emul/virt_to_page.c b/repos/dde_linux/src/lib/lx_emul/virt_to_page.c index 65d26cdc73..3e0e50b620 100644 --- a/repos/dde_linux/src/lib/lx_emul/virt_to_page.c +++ b/repos/dde_linux/src/lib/lx_emul/virt_to_page.c @@ -16,7 +16,7 @@ #include -struct page *lx_emul_virt_to_pages(void const *virt, unsigned count) +struct page *lx_emul_virt_to_pages(void const *virt, unsigned long count) { /* sanitize argument */ void * const page_aligned_virt = (void *)((uintptr_t)virt & PAGE_MASK); @@ -24,7 +24,7 @@ struct page *lx_emul_virt_to_pages(void const *virt, unsigned count) struct page *page = lx_emul_associated_page(page_aligned_virt, 1); if (!page) { - unsigned i; + unsigned long i; struct page * p = kzalloc(sizeof(struct page)*count, 0); page = p; for (i = 0; i < count; i++, p++) { diff --git a/repos/dde_linux/src/lib/lx_kit/console.cc b/repos/dde_linux/src/lib/lx_kit/console.cc index df8ec38bdf..a14124832e 100644 --- a/repos/dde_linux/src/lib/lx_kit/console.cc +++ b/repos/dde_linux/src/lib/lx_kit/console.cc @@ -275,7 +275,7 @@ void Lx_kit::Console::vprintf(const char *format, va_list list) case Format_command::CHAR: - _out_char(va_arg(list, int)); + _out_char((char)(va_arg(list, int))); break; case Format_command::STRING: diff --git a/repos/dde_linux/src/lib/lx_kit/memory.cc b/repos/dde_linux/src/lib/lx_kit/memory.cc index c1de540b94..f6118287b4 100644 --- a/repos/dde_linux/src/lib/lx_kit/memory.cc +++ b/repos/dde_linux/src/lib/lx_kit/memory.cc @@ -95,7 +95,7 @@ void * Lx_kit::Mem_allocator::alloc(size_t size, size_t align) if (!size) return nullptr; - return _mem.alloc_aligned(size, log2(align)).convert( + return _mem.alloc_aligned(size, (unsigned)log2(align)).convert( [&] (void *ptr) { memset(ptr, 0, size); @@ -124,7 +124,7 @@ void * Lx_kit::Mem_allocator::alloc(size_t size, size_t align) _mem.add_range((addr_t)ds.local_addr(), ds.size() - 1); /* re-try allocation */ - return _mem.alloc_aligned(size, log2(align)).convert( + return _mem.alloc_aligned(size, (unsigned)log2(align)).convert( [&] (void *ptr) { memset(ptr, 0, size);