refactor(编号): F-* 网络设计条目号转语义说明——批次一收尾,代码注释 43 处 + 文档 9 处

批次一(不碰门禁即可清)的最后半批,原派道中途失败且**未留任何改动**(Lead 核实那批文件零 diff 后重派
setpage 执行,14 只文件 / 46 处),测试侧与一张生成器共 9 处由 Lead 收尾。

做法:**逐处先读属主文档 §7 速查表里那条的语义**,再改写成「一句话结论 + §指针」,同号跨文件同一措辞,
无一处机械删号(例:`F-NET-7` → 「唯一读者红线(docs/网络/网络自愈架构设计.md §7 I7)」)。属主登记处
**12 条定义行原样保留**、不删登记族(删了历史行会报未登记前缀),只在该章加停发句。

顺带清掉 **3 处裸形**(`T6` → 「台架实测」、`M4-lite`、`Q1` 语义化)——裸形正是 id-check 校验 2 抓的形态,
属净减。测试侧收尾时两条纪律:主机侧**断言字符串必须保持 ASCII**(`ns_s3_msg.c` 等三处的号在 CHECK 文本
里,改成 `sole reader of the global register` 而不是中文);板端注释可用中文。

生成器 gen_net_instability_svg.py 文案改动 → 同批重跑产物 `docs/images/网络不稳根因总览.svg`:只有那一
行的**框宽随文字自适应**(526 → 551,右缘 1411 未越界),画布 1560x1468 不变,无溢出告警。

⚠ 本笔**只含代码注释面**:该半批的文档面(BSD 函数调用关系 9 处、属主文档 §7 停发句、
生成器与产物那张网络不稳图)已被上一笔 `git add docs tools` 一并收走,两笔合起来才是完整的 F-* 批次。
自证:@build **0 错 0 警**且 Program Size 与改前**逐字节同数**(Code=233900 RO=26104 RW=1
536 ZI=136808,
注释无误伤的机器证据);net_socket 457/457、iec104_serv / net_pending 两套 exit 0;cppchec
k 钩子参数零
发现、coding-standard 0(lftpd_inet.c 那 4 条是存量且该目录本在钩子 exclude 内,用 HEAD 副本对照
甄别过)。
This commit is contained in:
2026-10-27 09:05:27 +08:00
parent 4c74cfa825
commit 0054ae629a
9 changed files with 54 additions and 40 deletions
+10 -9
View File
@@ -482,7 +482,7 @@ int net_poll(void) {
/* 读取全局中断状态(2 字节):读操作本身会清除 CH395F 中断并使其拉高 INT#,
* 若此后仍有新中断,CH395F 会再次拉低 INT#,由下一次 net_poll() 处理 */
int_status = ch395f_get_glob_int_status_all();
/* F-DRV-13 接线:把全局位喂驱动——bit2 PHY_CHANGE 时驱动
/* 链路态喂料接线(docs/网络/网络自愈架构设计.md §4.4):把全局位喂驱动——bit2 PHY_CHANGE 时驱动
* 重读 PHY 更新 link_up 缓存 + 变化计数,net 层在 reconciler 订阅留痕
* (运行期拔网线不再静默;不自动重配,重配仍走 UI/配置引擎路径) */
ch395f_glob_event_feed(int_status);
@@ -779,8 +779,9 @@ void net_process_messages(void) {
}
break;
}
/* F-NET-3:NET_MSG_RESYNC_LISTEN / NET_MSG_RELISTEN 两个
* 手动自愈消息已删——RESYNC 语义并入对账⑤(net_reconcile_tick),
/* 手动自愈 API 退役(docs/网络/网络自愈架构设计.md §4.2):
* NET_MSG_RESYNC_LISTEN / NET_MSG_RELISTEN 两个
* 消息已删——RESYNC 语义并入对账⑤(net_reconcile_tick),
* RELISTEN 与 reconciler/D10 完全重叠且对健康监听器是 footgun;
* 生产调用者本就为零(仅 test/board Phase 13,已改由自动机制接管) */
default:
@@ -1396,7 +1397,7 @@ int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen) {
return msg.result;
}
/* F-NET-4:net_can_accept 已删除——它只认 ESTABLISHED,作为 accept
/* accept 门控迁移(docs/网络/网络自愈架构设计.md §4.2):net_can_accept 已删除——它只认 ESTABLISHED,作为 accept
* 门控会把"监听器在服役但本轮还没 CONNECT"的窗口全挡掉(:2404 CONNECT 事件补 accept 探针
* 因此从不运行,与已修的 :7003 探针失效同型);唯一生产调用者 iec104 已迁
* net_listener_armed。net_can_read(RECV 门控)不受影响、保留。 */
@@ -1409,10 +1410,10 @@ int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen) {
* 0 - 未就绪(fd 未分配 / 非监听型 / 正处隔离期以外的不就绪态) int
* 限定条件:任意任务上下文;net_init() 已调用
* 函数说明:1. 不变量 II(单一重建所有者):取代已退役的 net_can_accept()(只认
* ESTABLISHED,F-NET-4 删除)作为监听 accept 门控。原门控下
* ESTABLISHED,§4.2 门控迁移删除)作为监听 accept 门控。原门控下
* :7003 永不进 net_accept →
* net_lost_connect_probe(CONNECT 事件未收到补 accept)对该端口从不运行
* (F-NET-4)
* (门控迁移,docs/网络/网络自愈架构设计.md §4.2)
* 2. 为什么放行 LISTENING:探针与"closed-but-readable 接受"(:1338)
* 只在 net_accept_locked 内部发生,门控挡在外面就永远到不了;
* LISTENING 态 accept 由探测补 accept 或返 WOULDBLOCK,均安全
@@ -1646,7 +1647,7 @@ static int net_connect_locked(int sockfd, const struct net_sockaddr *addr, int a
}
/* 清掉本 Socket 可能残留的中断状态,丢弃上一条连接遗留的 DISCONNECT。
* F-NET-7:只清**本 Socket** SINT(驱动护栏原语)——原
* 唯一读者红线(docs/网络/网络自愈架构设计.md §4.10):只清**本 Socket** SINT(驱动护栏原语)——原
* "再读清全局"会焊死其它在用 Socket 的事件位(全局寄存器唯一读者=net_poll) */
(void)ch395f_sock_events((uint8_t)sockfd);
@@ -1981,7 +1982,7 @@ static int net_recv_locked(net_sock_t *p_sock, void *buf, int len, int flags,
* **确定性 sock_reset**(读空 RX -> CLOSE(幂等) -> 排空本 Socket
* 事件(quiescent) -> 等 byte0=00H,内置 LISTEN 态二段 CLOSE 补发
* ——E2 补充发现:一次 CLOSE 只拆监听 byte0 恒 05)
* 2. F-NET-7:排空只碰本 Socket SINT,**不再读清全局中断寄存器**
* 2. 唯一读者红线(docs/网络/网络自愈架构设计.md §4.10):排空只碰本 Socket SINT,**不再读清全局中断寄存器**
* (唯一读者=net_poll;原循环读全局会焊死其它 Socket 事件位)
* 3. 快路径:芯片已 CLOSED(byte0=00H)→ 跳过复位只清残留事件
* 4. 复位超时照常放行(同原 500ms 超时容忍;后续 relisten 由
@@ -2920,7 +2921,7 @@ int net_sock_state(int sockfd) {
return (int)s_net_socks[sockfd].state;
}
/* F-NET-3:手动自愈 API net_resync_listen / net_relisten 已删除——
/* 手动自愈 API 退役(docs/网络/网络自愈架构设计.md §4.2):net_resync_listen / net_relisten 已删除——
* RESYNC 语义并入对账⑤(net_reconcile_tick 自动认领"芯片静默回收回 LISTEN"形态,
* 200ms×2 去抖 + 1s 冷却沿用);RELISTEN 与 reconciler/D10 完全重叠且对健康监听器是
* footgun(无条件 open→USE→close 自毁 ~1s,原注释自认)。生产调用者本就为零