static void kgdboe_flush(void) { if (s_OutgoingBufferUsed) { nethook_netpoll_work_starting(); netpoll_wrapper_send_reply(s_pKgdboeNetpoll, s_OutgoingBuffer, s_OutgoingBufferUsed); s_OutgoingBufferUsed = 0; nethook_netpoll_work_done(); } }
static int kgdboe_read_char(void) { char result; nethook_netpoll_work_starting(); BUG_ON(!s_pKgdboeNetpoll); while (s_IncomingRingBufferReadPosition == s_IncomingRingBufferWritePosition) netpoll_wrapper_poll(s_pKgdboeNetpoll); result = s_IncomingRingBuffer[s_IncomingRingBufferReadPosition++]; s_IncomingRingBufferReadPosition %= sizeof(s_IncomingRingBuffer); nethook_netpoll_work_done(); return result; }