Compare commits

..

No commits in common. "ba6229b92dfe8a08738e6f874250f2953d2c54fa" and "5d62fa3f1038757d9de0742aa42165d45dc3a390" have entirely different histories.

4 changed files with 16 additions and 8 deletions

View File

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

View File

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

View File

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

View File

@ -14,6 +14,12 @@ configure() {
done done
popd 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 ./waf configure -T release || exit 1
} }