Compare commits

...

3 Commits

Author SHA1 Message Date
Bananymous ba6229b92d Kernel: Fix TCP accept bind address
I was accidentally binding the new socket to the target address instead
of the listening socket's address
2026-01-24 00:33:05 +02:00
Bananymous 3d2362cb5f ports/xash3d-fwgs: Don't apply vorbis patch
I removed the pathes a while ago
2026-01-21 19:20:02 +02:00
Bananymous a08b9b82a6 Kernel: Fix yield stack pointer value
Stack pointer was pointing to value of return address on return instead
of past it. This did not affect anything as ig Processor::yield() didn't
use stack after calling the trampoline
2026-01-19 00:47:00 +02:00
4 changed files with 8 additions and 16 deletions

View File

@ -1,9 +1,9 @@
.global asm_yield_trampoline
asm_yield_trampoline:
movl %esp, %ecx
leal 4(%esp), %ecx
movl 4(%esp), %esp
pushl (%ecx)
pushl -4(%ecx)
pushl %ecx
pushl %eax
pushl %ebx

View File

@ -1,10 +1,10 @@
.global asm_yield_trampoline
asm_yield_trampoline:
movq %rsp, %rcx
leaq 8(%rsp), %rcx
movq %rdi, %rsp
subq $8, %rsp
pushq (%rcx)
pushq -8(%rcx)
pushq %rcx
pushq %rax
pushq %rbx

View File

@ -95,8 +95,8 @@ namespace Kernel
}
return_inode->m_mutex.lock();
memcpy(&return_inode->m_address, &connection.target.address, connection.target.address_len);
return_inode->m_address_len = connection.target.address_len;
memcpy(&return_inode->m_address, &m_address, m_address_len);
return_inode->m_address_len = m_address_len;
return_inode->m_listen_parent = this;
return_inode->m_connection_info.emplace(connection.target);
return_inode->m_recv_window.start_seq = connection.target_start_seq;
@ -562,6 +562,7 @@ namespace Kernel
));
epoll_notify(EPOLLIN);
m_thread_blocker.unblock();
}
}
else
@ -573,14 +574,11 @@ namespace Kernel
break;
}
auto socket = it->value;
m_mutex.unlock();
socket->receive_packet(buffer, sender, sender_len);
m_mutex.lock();
return;
}
break;
return;
case State::Established:
check_payload = true;
if (!(header.flags & FIN))

View File

@ -14,12 +14,6 @@ configure() {
done
popd
pushd 3rdparty/vorbis/vorbis-src || exit 1
for patch in ../../../../patches/vorbis/*; do
git apply $patch
done
popd
./waf configure -T release || exit 1
}