From c961499239a2883101c8d253a6f66e3c69395b75 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Fri, 10 Apr 2026 21:45:43 +0900 Subject: [PATCH] Remove socket IO mode (nonblock unnecessary with pre-checked recv buffer) --- firmware/lib/net.cpp | 1 - firmware/w6300/w6300.cpp | 13 ------------- firmware/w6300/w6300.h | 6 ------ 3 files changed, 20 deletions(-) diff --git a/firmware/lib/net.cpp b/firmware/lib/net.cpp index 7d96d7e..0309733 100644 --- a/firmware/lib/net.cpp +++ b/firmware/lib/net.cpp @@ -279,7 +279,6 @@ bool net_init() { state.ip[3] = state.mac[5]; w6300::open_socket(raw_socket, w6300::protocol::macraw, w6300::sock_flag::none); - w6300::set_socket_io_mode(raw_socket, w6300::sock_io_mode::nonblock); w6300::set_interrupt_mask(w6300::ik_sock_0); return true; diff --git a/firmware/w6300/w6300.cpp b/firmware/w6300/w6300.cpp index 02da159..21404ab 100644 --- a/firmware/w6300/w6300.cpp +++ b/firmware/w6300/w6300.cpp @@ -466,7 +466,6 @@ int8_t init_buffers(std::span txsize, std::span rx return 0; } -uint16_t sock_io_mode_bits = 0; uint16_t sock_is_sending = 0; uint16_t sock_remained_size[sock_count] = {0,}; uint8_t sock_pack_info[sock_count] = {0,}; @@ -481,7 +480,6 @@ std::expected close(socket_id sid) { set_sn_cr(sn, SN_CR_CLOSE); while (get_sn_cr(sn)); set_sn_ir(sn, 0xFF); - sock_io_mode_bits &= ~(1 << sn); sock_is_sending &= ~(1 << sn); sock_remained_size[sn] = 0; sock_pack_info[sn] = PACK_NONE; @@ -517,7 +515,6 @@ std::expected open_socket(socket_id sid, protocol proto, set_sn_mr2(sn, fl & 0x03); set_sn_cr(sn, SN_CR_OPEN); while (get_sn_cr(sn)); - sock_io_mode_bits &= ~(1 << sn); sock_is_sending &= ~(1 << sn); sock_remained_size[sn] = 0; sock_pack_info[sn] = PACK_COMPLETED; @@ -538,7 +535,6 @@ std::expected send(socket_id sid, std::span while (1) { freesize = get_sn_tx_fsr(sn); if (get_sn_sr(sn) == SOCK_CLOSED) FAIL(sock_closed); - if ((sock_io_mode_bits & (1 << sn)) && (len > freesize)) FAIL(busy); if (len <= freesize) break; }; send_data(sn, const_cast(buf.data()), len); @@ -574,7 +570,6 @@ std::expected recv(socket_id sid, std::span buf) sock_pack_info[sn] = PACK_NONE; break; } - if (sock_io_mode_bits & (1 << sn)) FAIL(busy); }; } @@ -636,14 +631,6 @@ bool check() { return get_cidr() == 0x6300; } -std::expected set_socket_io_mode(socket_id sid, sock_io_mode mode) { - uint8_t sn = static_cast(sid); - if (sn >= sock_count) FAIL(sock_num); - if (mode == sock_io_mode::nonblock) sock_io_mode_bits |= (1 << sn); - else if (mode == sock_io_mode::block) sock_io_mode_bits &= ~(1 << sn); - else FAIL(arg); - return {}; -} uint16_t get_socket_recv_buf(socket_id sid) { diff --git a/firmware/w6300/w6300.h b/firmware/w6300/w6300.h index 0764472..556a324 100644 --- a/firmware/w6300/w6300.h +++ b/firmware/w6300/w6300.h @@ -29,11 +29,6 @@ enum class sock_flag : uint8_t { none = 0, }; -enum class sock_io_mode : uint8_t { - block = 0, - nonblock = 1, -}; - enum intr_kind : uint32_t { ik_pppoe_terminated = (1 << 0), ik_dest_unreach = (1 << 1), ik_ip_conflict = (1 << 2), ik_dest_unreach6 = (1 << 4), ik_wol = (1 << 7), ik_net_all = 0x97, @@ -58,7 +53,6 @@ std::expected open_socket(socket_id sn, protocol proto, s std::expected send(socket_id sn, std::span buf); std::expected recv(socket_id sn, std::span buf); -std::expected set_socket_io_mode(socket_id sn, sock_io_mode mode); uint16_t get_socket_recv_buf(socket_id sn); } // namespace w6300