Remove dead void* dispatch functions and unused internal enums/constants

This commit is contained in:
Ian Gulliver
2026-04-05 09:01:37 +09:00
parent fd9e85c970
commit eee3a2a420

View File

@@ -275,31 +275,10 @@ enum net_ctl {
CN_SET_TIMEOUT, CN_GET_TIMEOUT, CN_SET_PREFER, CN_GET_PREFER,
};
enum net_service_ctl {
CNS_ARP, CNS_PING, CNS_DAD, CNS_SLAAC, CNS_UNSOL_NA, CNS_GET_PREFIX
};
enum sock_ctl {
CS_SET_IOMODE, CS_GET_IOMODE, CS_GET_MAXTXBUF, CS_GET_MAXRXBUF,
CS_CLR_INTERRUPT, CS_GET_INTERRUPT, CS_SET_PREFER, CS_GET_PREFER,
CS_SET_INTMASK, CS_GET_INTMASK
};
enum sockopt_type {
SO_FLAG, SO_TTL, SO_TOS, SO_MSS, SO_DESTIP, SO_DESTPORT,
SO_KEEPALIVESEND, SO_KEEPALIVEAUTO, SO_SENDBUF, SO_RECVBUF,
SO_STATUS, SO_EXTSTATUS, SO_MODE, SO_REMAINSIZE, SO_PACKINFO
};
enum sockint_kind { SIK_CONNECTED = 1, SIK_DISCONNECTED = 2, SIK_RECEIVED = 4, SIK_TIMEOUT = 8, SIK_SENT = 16, SIK_ALL = 0x1F };
constexpr uint8_t SOCK_IO_BLOCK = static_cast<uint8_t>(sock_io_mode::block);
constexpr uint8_t SOCK_IO_NONBLOCK = static_cast<uint8_t>(sock_io_mode::nonblock);
constexpr uint8_t TCPSOCK_MODE = static_cast<uint8_t>(tcp_sock_info::mode);
constexpr uint8_t TCPSOCK_OP = static_cast<uint8_t>(tcp_sock_info::op);
constexpr uint8_t TCPSOCK_SIP = static_cast<uint8_t>(tcp_sock_info::sip);
constexpr uint8_t W6300_SPI_READ = (0x00 << 5);
constexpr uint8_t W6300_SPI_WRITE = (0x01 << 5);
@@ -1068,17 +1047,6 @@ int8_t ctl_net(net_ctl cntype, void* arg) {
return 0;
}
int8_t ctl_net_service(net_service_ctl cnstype, void* arg) {
switch (cnstype) {
case CNS_ARP: return send_arp((arp_request*)arg);
case CNS_PING: return send_ping((ping_request*)arg);
case CNS_DAD: return send_dad((uint8_t*)arg);
case CNS_SLAAC: return send_slaac((prefix*)arg);
case CNS_UNSOL_NA: return send_unsolicited();
case CNS_GET_PREFIX: return get_prefix((prefix*)arg);
default: return -1;
}
}
void soft_reset() {
uint8_t gw[4], sn[4], sip[4], mac[6];
@@ -1729,158 +1697,6 @@ std::expected<uint16_t, sock_error> recvfrom(socket_id sid, std::span<uint8_t> b
return pack_len;
}
std::expected<void, sock_error> ctl_socket(socket_id sid, sock_ctl cstype, void* arg) {
uint8_t sn = static_cast<uint8_t>(sid);
uint8_t tmp = 0;
CHECK_SOCKNUM();
tmp = *((uint8_t*)arg);
switch (cstype) {
case CS_SET_IOMODE:
if (tmp == SOCK_IO_NONBLOCK) sock_io_mode_bits |= (1 << sn);
else if (tmp == SOCK_IO_BLOCK) sock_io_mode_bits &= ~(1 << sn);
else FAIL(arg);
break;
case CS_GET_IOMODE:
*((uint8_t*)arg) = (uint8_t)((sock_io_mode_bits >> sn) & 0x0001);
break;
case CS_GET_MAXTXBUF:
*((uint16_t*)arg) = getSn_TxMAX(sn);
break;
case CS_GET_MAXRXBUF:
*((uint16_t*)arg) = getSn_RxMAX(sn);
break;
case CS_CLR_INTERRUPT:
if (tmp > SIK_ALL) FAIL(arg);
setSn_IR(sn, tmp);
break;
case CS_GET_INTERRUPT:
*((uint8_t*)arg) = getSn_IR(sn);
break;
case CS_SET_INTMASK:
if (tmp > SIK_ALL) FAIL(arg);
setSn_IMR(sn, tmp);
break;
case CS_GET_INTMASK:
*((uint8_t*)arg) = getSn_IMR(sn);
break;
case CS_SET_PREFER:
if ((tmp & 0x03) == 0x01) FAIL(arg);
setSn_PSR(sn, tmp);
break;
case CS_GET_PREFER:
*(uint8_t*)arg = getSn_PSR(sn);
break;
default:
FAIL(arg);
}
return {};
}
std::expected<void, sock_error> set_sockopt(socket_id sid, sockopt_type sotype, void* arg) {
uint8_t sn = static_cast<uint8_t>(sid);
CHECK_SOCKNUM();
switch (sotype) {
case SO_TTL:
setSn_TTL(sn, *(uint8_t*)arg);
break;
case SO_TOS:
setSn_TOS(sn, *(uint8_t*)arg);
break;
case SO_MSS:
setSn_MSSR(sn, *(uint16_t*)arg);
break;
case SO_DESTIP:
if (((ip_address *)arg)->len == 16) setSn_DIP6R(sn, ((ip_address*)arg)->ip.data());
else setSn_DIPR(sn, (uint8_t*)arg);
break;
case SO_DESTPORT:
setSn_DPORTR(sn, *(uint16_t*)arg);
break;
case SO_KEEPALIVESEND:
CHECK_TCPMODE();
if (getSn_KPALVTR(sn) != 0) FAIL(sock_opt);
setSn_CR(sn, Sn_CR_SEND_KEEP);
while (getSn_CR(sn) != 0) {
if (getSn_IR(sn) & Sn_IR_TIMEOUT) {
setSn_IR(sn, Sn_IR_TIMEOUT);
FAIL(timeout);
}
}
break;
case SO_KEEPALIVEAUTO:
CHECK_TCPMODE();
setSn_KPALVTR(sn, *(uint8_t*)arg);
break;
default:
FAIL(arg);
}
return {};
}
std::expected<void, sock_error> get_sockopt(socket_id sid, sockopt_type sotype, void* arg) {
uint8_t sn = static_cast<uint8_t>(sid);
CHECK_SOCKNUM();
switch (sotype) {
case SO_FLAG:
*(uint8_t*)arg = (getSn_MR(sn) & 0xF0) | (getSn_MR2(sn)) | ((uint8_t)(((sock_io_mode_bits >> sn) & 0x0001) << 3));
break;
case SO_TTL:
*(uint8_t*)arg = getSn_TTL(sn);
break;
case SO_TOS:
*(uint8_t*)arg = getSn_TOS(sn);
break;
case SO_MSS:
*(uint16_t*)arg = getSn_MSSR(sn);
break;
case SO_DESTIP:
CHECK_TCPMODE();
if (getSn_ESR(sn) & TCPSOCK_MODE) {
getSn_DIP6R(sn, ((ip_address*)arg)->ip.data());
((ip_address*)arg)->len = 16;
} else {
getSn_DIPR(sn, ((ip_address*)arg)->ip.data());
((ip_address*)arg)->len = 4;
}
break;
case SO_DESTPORT:
*(uint16_t*)arg = getSn_DPORTR(sn);
break;
case SO_KEEPALIVEAUTO:
CHECK_TCPMODE();
*(uint16_t*)arg = getSn_KPALVTR(sn);
break;
case SO_SENDBUF:
*(uint16_t*)arg = getSn_TX_FSR(sn);
break;
case SO_RECVBUF:
*(uint16_t*)arg = getSn_RX_RSR(sn);
break;
case SO_STATUS:
*(uint8_t*)arg = getSn_SR(sn);
break;
case SO_EXTSTATUS:
CHECK_TCPMODE();
*(uint8_t*)arg = getSn_ESR(sn) & 0x07;
break;
case SO_REMAINSIZE:
if (getSn_MR(sn) == SOCK_CLOSED) FAIL(sock_status);
if (getSn_MR(sn) & 0x01) *(uint16_t*)arg = getSn_RX_RSR(sn);
else *(uint16_t*)arg = sock_remained_size[sn];
break;
case SO_PACKINFO:
if (getSn_MR(sn) == SOCK_CLOSED) FAIL(sock_status);
if (getSn_MR(sn) & 0x01) FAIL(sock_mode);
else *(uint8_t*)arg = sock_pack_info[sn];
break;
case SO_MODE:
*(uint8_t*)arg = 0x0F & getSn_MR(sn);
break;
default:
FAIL(sock_opt);
}
return {};
}
std::optional<uint16_t> peek_socket_msg(socket_id sid, std::span<const uint8_t> submsg) {
uint16_t subsize = submsg.size();