Kernel: Add on_receive callback to NetworkAdapter

This commit is contained in:
Conrad Pankoff 2019-08-28 11:21:22 +10:00 committed by Andreas Kling
parent 682fe48222
commit 36d349f7a7
Notes: sideshowbarker 2024-07-19 12:27:50 +09:00
2 changed files with 5 additions and 0 deletions

View File

@ -88,6 +88,8 @@ void NetworkAdapter::did_receive(const u8* data, int length)
m_packets_in++;
m_bytes_in += length;
m_packet_queue.append(KBuffer::copy(data, length));
if (m_on_receive)
m_on_receive();
}
Optional<KBuffer> NetworkAdapter::dequeue_packet()

View File

@ -45,6 +45,8 @@ public:
u32 packets_out() const { return m_packets_out; }
u32 bytes_out() const { return m_bytes_out; }
void set_on_receive(Function<void()> on_receive) { m_on_receive = move(on_receive); }
protected:
NetworkAdapter();
void set_interface_name(const StringView& basename);
@ -63,4 +65,5 @@ private:
u32 m_bytes_in { 0 };
u32 m_packets_out { 0 };
u32 m_bytes_out { 0 };
Function<void()> m_on_receive;
};