mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
Fix all current build warnings in the kernel.
This commit is contained in:
parent
e71cb1c56b
commit
47b7eeda44
10 changed files with 28 additions and 19 deletions
|
@ -113,7 +113,6 @@ Keyboard::Keyboard()
|
||||||
|
|
||||||
Keyboard::~Keyboard()
|
Keyboard::~Keyboard()
|
||||||
{
|
{
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Keyboard::hasDataAvailableForRead() const
|
bool Keyboard::hasDataAvailableForRead() const
|
||||||
|
@ -124,7 +123,7 @@ bool Keyboard::hasDataAvailableForRead() const
|
||||||
ssize_t Keyboard::read(byte* buffer, size_t size)
|
ssize_t Keyboard::read(byte* buffer, size_t size)
|
||||||
{
|
{
|
||||||
ssize_t nread = 0;
|
ssize_t nread = 0;
|
||||||
while (nread < size) {
|
while ((size_t)nread < size) {
|
||||||
if (m_queue.isEmpty())
|
if (m_queue.isEmpty())
|
||||||
break;
|
break;
|
||||||
buffer[nread++] = m_queue.dequeue().character;
|
buffer[nread++] = m_queue.dequeue().character;
|
||||||
|
@ -132,7 +131,7 @@ ssize_t Keyboard::read(byte* buffer, size_t size)
|
||||||
return nread;
|
return nread;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t Keyboard::write(const byte* data, size_t size)
|
ssize_t Keyboard::write(const byte*, size_t)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings
|
||||||
FLAVOR_FLAGS = -mregparm=3 -march=i386 -m32 -fno-exceptions -fno-rtti -fmerge-all-constants -fno-unroll-loops -fno-pie -fno-pic
|
FLAVOR_FLAGS = -mregparm=3 -march=i386 -m32 -fno-exceptions -fno-rtti -fmerge-all-constants -fno-unroll-loops -fno-pie -fno-pic
|
||||||
OPTIMIZATION_FLAGS = -Os -fno-asynchronous-unwind-tables
|
OPTIMIZATION_FLAGS = -Os -fno-asynchronous-unwind-tables
|
||||||
INCLUDE_FLAGS = -I.. -I.
|
INCLUDE_FLAGS = -I.. -I.
|
||||||
SUGGEST_FLAGS = -Wsuggest-attribute=noreturn -Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override
|
SUGGEST_FLAGS = -Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override #-Wsuggest-attribute=noreturn
|
||||||
|
|
||||||
DEFINES = -DSERENITY -DKERNEL -DSANITIZE_PTRS
|
DEFINES = -DSERENITY -DKERNEL -DSANITIZE_PTRS
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,6 @@ Region* Process::allocate_file_backed_region(LinearAddress laddr, size_t size, R
|
||||||
m_nextRegion = m_nextRegion.offset(size).offset(PAGE_SIZE);
|
m_nextRegion = m_nextRegion.offset(size).offset(PAGE_SIZE);
|
||||||
}
|
}
|
||||||
laddr.mask(0xfffff000);
|
laddr.mask(0xfffff000);
|
||||||
unsigned page_count = ceilDiv(size, PAGE_SIZE);
|
|
||||||
m_regions.append(adopt(*new Region(laddr, size, move(vnode), move(name), is_readable, is_writable)));
|
m_regions.append(adopt(*new Region(laddr, size, move(vnode), move(name), is_readable, is_writable)));
|
||||||
MM.mapRegion(*this, *m_regions.last());
|
MM.mapRegion(*this, *m_regions.last());
|
||||||
return m_regions.last().ptr();
|
return m_regions.last().ptr();
|
||||||
|
@ -336,12 +335,14 @@ int Process::exec(const String& path, Vector<String>&& arguments, Vector<String>
|
||||||
ELFLoader loader(region->linearAddress.asPtr());
|
ELFLoader loader(region->linearAddress.asPtr());
|
||||||
loader.map_section_hook = [&] (LinearAddress laddr, size_t size, size_t alignment, size_t offset_in_image, bool is_readable, bool is_writable, const String& name) {
|
loader.map_section_hook = [&] (LinearAddress laddr, size_t size, size_t alignment, size_t offset_in_image, bool is_readable, bool is_writable, const String& name) {
|
||||||
ASSERT(size);
|
ASSERT(size);
|
||||||
|
ASSERT(alignment == PAGE_SIZE);
|
||||||
size = ((size / 4096) + 1) * 4096; // FIXME: Use ceil_div?
|
size = ((size / 4096) + 1) * 4096; // FIXME: Use ceil_div?
|
||||||
(void) allocate_region_with_vmo(laddr, size, vmo.copyRef(), offset_in_image, String(name), is_readable, is_writable);
|
(void) allocate_region_with_vmo(laddr, size, vmo.copyRef(), offset_in_image, String(name), is_readable, is_writable);
|
||||||
return laddr.asPtr();
|
return laddr.asPtr();
|
||||||
};
|
};
|
||||||
loader.alloc_section_hook = [&] (LinearAddress laddr, size_t size, size_t alignment, bool is_readable, bool is_writable, const String& name) {
|
loader.alloc_section_hook = [&] (LinearAddress laddr, size_t size, size_t alignment, bool is_readable, bool is_writable, const String& name) {
|
||||||
ASSERT(size);
|
ASSERT(size);
|
||||||
|
ASSERT(alignment == PAGE_SIZE);
|
||||||
size = ((size / 4096) + 1) * 4096; // FIXME: Use ceil_div?
|
size = ((size / 4096) + 1) * 4096; // FIXME: Use ceil_div?
|
||||||
(void) allocate_region(laddr, size, String(name), is_readable, is_writable);
|
(void) allocate_region(laddr, size, String(name), is_readable, is_writable);
|
||||||
return laddr.asPtr();
|
return laddr.asPtr();
|
||||||
|
@ -1149,7 +1150,7 @@ int Process::sys$open(const char* path, int options)
|
||||||
return -ENOTDIR; // FIXME: This should be handled by VFS::open.
|
return -ENOTDIR; // FIXME: This should be handled by VFS::open.
|
||||||
|
|
||||||
int fd = 0;
|
int fd = 0;
|
||||||
for (; fd < m_max_open_file_descriptors; ++fd) {
|
for (; fd < (int)m_max_open_file_descriptors; ++fd) {
|
||||||
if (!m_file_descriptors[fd])
|
if (!m_file_descriptors[fd])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1268,6 +1269,8 @@ void Process::reap(Process& process)
|
||||||
|
|
||||||
pid_t Process::sys$waitpid(pid_t waitee, int* wstatus, int options)
|
pid_t Process::sys$waitpid(pid_t waitee, int* wstatus, int options)
|
||||||
{
|
{
|
||||||
|
// FIXME: Respect options
|
||||||
|
(void) options;
|
||||||
if (wstatus)
|
if (wstatus)
|
||||||
VALIDATE_USER_WRITE(wstatus, sizeof(int));
|
VALIDATE_USER_WRITE(wstatus, sizeof(int));
|
||||||
|
|
||||||
|
@ -1466,7 +1469,7 @@ int Process::sys$dup(int old_fd)
|
||||||
if (number_of_open_file_descriptors() == m_max_open_file_descriptors)
|
if (number_of_open_file_descriptors() == m_max_open_file_descriptors)
|
||||||
return -EMFILE;
|
return -EMFILE;
|
||||||
int new_fd = 0;
|
int new_fd = 0;
|
||||||
for (; new_fd < m_max_open_file_descriptors; ++new_fd) {
|
for (; new_fd < (int)m_max_open_file_descriptors; ++new_fd) {
|
||||||
if (!m_file_descriptors[new_fd])
|
if (!m_file_descriptors[new_fd])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1521,7 +1524,7 @@ int Process::sys$getgroups(int count, gid_t* gids)
|
||||||
ASSERT(m_gids.size() < MAX_PROCESS_GIDS);
|
ASSERT(m_gids.size() < MAX_PROCESS_GIDS);
|
||||||
if (!count)
|
if (!count)
|
||||||
return m_gids.size();
|
return m_gids.size();
|
||||||
if (count != m_gids.size())
|
if (count != (int)m_gids.size())
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
VALIDATE_USER_WRITE(gids, sizeof(gid_t) * count);
|
VALIDATE_USER_WRITE(gids, sizeof(gid_t) * count);
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
|
@ -30,7 +30,7 @@ char* strrchr(const char* str, int ch)
|
||||||
char c;
|
char c;
|
||||||
for (; (c = *str); ++str) {
|
for (; (c = *str); ++str) {
|
||||||
if (c == ch)
|
if (c == ch)
|
||||||
last = (char*)str;
|
last = const_cast<char*>(str);
|
||||||
}
|
}
|
||||||
return last;
|
return last;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,7 @@ int memcmp(const void* v1, const void* v2, size_t n)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void __cxa_pure_virtual() NORETURN;
|
||||||
extern "C" void __cxa_pure_virtual()
|
extern "C" void __cxa_pure_virtual()
|
||||||
{
|
{
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
|
|
|
@ -15,7 +15,7 @@ ssize_t TTY::read(byte* buffer, size_t size)
|
||||||
{
|
{
|
||||||
ssize_t nread = min(m_buffer.size(), size);
|
ssize_t nread = min(m_buffer.size(), size);
|
||||||
memcpy(buffer, m_buffer.data(), nread);
|
memcpy(buffer, m_buffer.data(), nread);
|
||||||
if (nread == m_buffer.size())
|
if (nread == (ssize_t)m_buffer.size())
|
||||||
m_buffer.clear();
|
m_buffer.clear();
|
||||||
else {
|
else {
|
||||||
dbgprintf("had %u, read %u\n", m_buffer.size(), nread);
|
dbgprintf("had %u, read %u\n", m_buffer.size(), nread);
|
||||||
|
|
|
@ -138,6 +138,7 @@ void exception_6_handler(RegisterDump& regs)
|
||||||
}
|
}
|
||||||
|
|
||||||
kprintf("pc=%w:%x ds=%w es=%w fs=%w gs=%w\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs);
|
kprintf("pc=%w:%x ds=%w es=%w fs=%w gs=%w\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs);
|
||||||
|
kprintf("stk=%w:%x\n", ss, esp);
|
||||||
kprintf("eax=%x ebx=%x ecx=%x edx=%x\n", regs.eax, regs.ebx, regs.ecx, regs.edx);
|
kprintf("eax=%x ebx=%x ecx=%x edx=%x\n", regs.eax, regs.ebx, regs.ecx, regs.edx);
|
||||||
kprintf("ebp=%x esp=%x esi=%x edi=%x\n", regs.ebp, esp, regs.esi, regs.edi);
|
kprintf("ebp=%x esp=%x esi=%x edi=%x\n", regs.ebp, esp, regs.esi, regs.edi);
|
||||||
|
|
||||||
|
@ -168,6 +169,7 @@ void exception_13_handler(RegisterDumpWithExceptionCode& regs)
|
||||||
|
|
||||||
kprintf("exception code: %w\n", regs.exception_code);
|
kprintf("exception code: %w\n", regs.exception_code);
|
||||||
kprintf("pc=%w:%x ds=%w es=%w fs=%w gs=%w\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs);
|
kprintf("pc=%w:%x ds=%w es=%w fs=%w gs=%w\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs);
|
||||||
|
kprintf("stk=%w:%x\n", ss, esp);
|
||||||
kprintf("eax=%x ebx=%x ecx=%x edx=%x\n", regs.eax, regs.ebx, regs.ecx, regs.edx);
|
kprintf("eax=%x ebx=%x ecx=%x edx=%x\n", regs.eax, regs.ebx, regs.ecx, regs.edx);
|
||||||
kprintf("ebp=%x esp=%x esi=%x edi=%x\n", regs.ebp, esp, regs.esi, regs.edi);
|
kprintf("ebp=%x esp=%x esi=%x edi=%x\n", regs.ebp, esp, regs.esi, regs.edi);
|
||||||
|
|
||||||
|
@ -276,15 +278,12 @@ EH(2, "Unknown error")
|
||||||
EH(3, "Breakpoint")
|
EH(3, "Breakpoint")
|
||||||
EH(4, "Overflow")
|
EH(4, "Overflow")
|
||||||
EH(5, "Bounds check")
|
EH(5, "Bounds check")
|
||||||
EH(6, "Invalid opcode")
|
|
||||||
EH(7, "Coprocessor not available")
|
EH(7, "Coprocessor not available")
|
||||||
EH(8, "Double fault")
|
EH(8, "Double fault")
|
||||||
EH(9, "Coprocessor segment overrun")
|
EH(9, "Coprocessor segment overrun")
|
||||||
EH(10, "Invalid TSS")
|
EH(10, "Invalid TSS")
|
||||||
EH(11, "Segment not present")
|
EH(11, "Segment not present")
|
||||||
EH(12, "Stack exception")
|
EH(12, "Stack exception")
|
||||||
EH(13, "General protection fault")
|
|
||||||
EH(14, "Page fault")
|
|
||||||
EH(15, "Unknown error")
|
EH(15, "Unknown error")
|
||||||
EH(16, "Coprocessor error")
|
EH(16, "Coprocessor error")
|
||||||
|
|
||||||
|
@ -442,7 +441,7 @@ void handleIRQ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte irq;
|
byte irq = 0;
|
||||||
for (byte i = 0; i < 16; ++i) {
|
for (byte i = 0; i < 16; ++i) {
|
||||||
if (isr & (1 << i)) {
|
if (isr & (1 << i)) {
|
||||||
irq = i;
|
irq = i;
|
||||||
|
@ -460,4 +459,5 @@ void __assertion_failed(const char* msg, const char* file, unsigned line, const
|
||||||
asm volatile("cli");
|
asm volatile("cli");
|
||||||
kprintf("ASSERTION FAILED: %s\n%s:%u in %s\n", msg, file, line, func);
|
kprintf("ASSERTION FAILED: %s\n%s:%u in %s\n", msg, file, line, func);
|
||||||
asm volatile("hlt");
|
asm volatile("hlt");
|
||||||
|
for (;;);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ Vector<KSym, KmallocEternalAllocator>& ksyms()
|
||||||
return *s_ksyms;
|
return *s_ksyms;
|
||||||
}
|
}
|
||||||
|
|
||||||
volatile bool ksyms_ready()
|
bool ksyms_ready()
|
||||||
{
|
{
|
||||||
return s_ksyms_ready;
|
return s_ksyms_ready;
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,6 @@ void dump_backtrace(bool use_ksyms)
|
||||||
HANG;
|
HANG;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
extern volatile bool ksyms_ready();
|
|
||||||
if (use_ksyms && !ksyms_ready()) {
|
if (use_ksyms && !ksyms_ready()) {
|
||||||
HANG;
|
HANG;
|
||||||
return;
|
return;
|
||||||
|
@ -141,6 +140,7 @@ void dump_backtrace(bool use_ksyms)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef STRESS_TEST_SPAWNING
|
||||||
static void spawn_stress() NORETURN;
|
static void spawn_stress() NORETURN;
|
||||||
static void spawn_stress()
|
static void spawn_stress()
|
||||||
{
|
{
|
||||||
|
@ -158,6 +158,7 @@ static void spawn_stress()
|
||||||
asm volatile("hlt");
|
asm volatile("hlt");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void init_stage2() NORETURN;
|
static void init_stage2() NORETURN;
|
||||||
static void init_stage2()
|
static void init_stage2()
|
||||||
|
@ -247,6 +248,7 @@ static void init_stage2()
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void init() NORETURN;
|
||||||
void init()
|
void init()
|
||||||
{
|
{
|
||||||
cli();
|
cli();
|
||||||
|
|
|
@ -47,7 +47,7 @@ bool is_kmalloc_address(void* ptr)
|
||||||
return true;
|
return true;
|
||||||
if (ptr >= (byte*)PAGE_ALIGNED_BASE_PHYSICAL && ptr < s_next_page_aligned_ptr)
|
if (ptr >= (byte*)PAGE_ALIGNED_BASE_PHYSICAL && ptr < s_next_page_aligned_ptr)
|
||||||
return true;
|
return true;
|
||||||
return ptr >= (void*)BASE_PHYS && ptr <= ((void*)BASE_PHYS + POOL_SIZE);
|
return (dword)ptr >= BASE_PHYS && (dword)ptr <= (BASE_PHYS + POOL_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kmalloc_init()
|
void kmalloc_init()
|
||||||
|
|
|
@ -84,13 +84,13 @@ ByteBuffer FileSystem::readEntireInode(InodeIdentifier inode, FileDescriptor* ha
|
||||||
for (;;) {
|
for (;;) {
|
||||||
nread = readInodeBytes(inode, offset, sizeof(buffer), buffer, handle);
|
nread = readInodeBytes(inode, offset, sizeof(buffer), buffer, handle);
|
||||||
//kprintf("nread: %u, bufsiz: %u, initialSize: %u\n", nread, sizeof(buffer), initialSize);
|
//kprintf("nread: %u, bufsiz: %u, initialSize: %u\n", nread, sizeof(buffer), initialSize);
|
||||||
ASSERT(nread <= sizeof(buffer));
|
ASSERT(nread <= (Unix::ssize_t)sizeof(buffer));
|
||||||
if (nread <= 0)
|
if (nread <= 0)
|
||||||
break;
|
break;
|
||||||
memcpy(out, buffer, nread);
|
memcpy(out, buffer, nread);
|
||||||
out += nread;
|
out += nread;
|
||||||
offset += nread;
|
offset += nread;
|
||||||
ASSERT(offset <= initialSize); // FIXME: Support dynamically growing the buffer.
|
ASSERT(offset <= (Unix::ssize_t)initialSize); // FIXME: Support dynamically growing the buffer.
|
||||||
}
|
}
|
||||||
if (nread < 0) {
|
if (nread < 0) {
|
||||||
kprintf("[fs] readInode: ERROR: %d\n", nread);
|
kprintf("[fs] readInode: ERROR: %d\n", nread);
|
||||||
|
|
|
@ -398,6 +398,8 @@ bool VirtualFileSystem::touch(const String& path)
|
||||||
|
|
||||||
RetainPtr<FileDescriptor> VirtualFileSystem::open(CharacterDevice& device, int options)
|
RetainPtr<FileDescriptor> VirtualFileSystem::open(CharacterDevice& device, int options)
|
||||||
{
|
{
|
||||||
|
// FIXME: Respect options.
|
||||||
|
(void) options;
|
||||||
auto vnode = getOrCreateNode(device);
|
auto vnode = getOrCreateNode(device);
|
||||||
if (!vnode)
|
if (!vnode)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -419,6 +421,7 @@ RetainPtr<FileDescriptor> VirtualFileSystem::create(const String& path, InodeIde
|
||||||
{
|
{
|
||||||
// FIXME: Do the real thing, not just this fake thing!
|
// FIXME: Do the real thing, not just this fake thing!
|
||||||
(void) path;
|
(void) path;
|
||||||
|
(void) base;
|
||||||
m_rootNode->fileSystem()->createInode(m_rootNode->fileSystem()->rootInode(), "empty", 0100644, 0);
|
m_rootNode->fileSystem()->createInode(m_rootNode->fileSystem()->rootInode(), "empty", 0100644, 0);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -427,6 +430,7 @@ RetainPtr<FileDescriptor> VirtualFileSystem::mkdir(const String& path, InodeIden
|
||||||
{
|
{
|
||||||
// FIXME: Do the real thing, not just this fake thing!
|
// FIXME: Do the real thing, not just this fake thing!
|
||||||
(void) path;
|
(void) path;
|
||||||
|
(void) base;
|
||||||
m_rootNode->fileSystem()->makeDirectory(m_rootNode->fileSystem()->rootInode(), "mydir", 0400755);
|
m_rootNode->fileSystem()->makeDirectory(m_rootNode->fileSystem()->rootInode(), "mydir", 0400755);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue