- 用户态共享网络协议栈 CODE/tools/net_stack.h(eth/ARP/IPv4/ICMP/UDP-DNS/TCP static inline,轮询模型) - shell 内建 ping/curl/run 命令;ping.elf/curl.elf 对齐 net_stack.h 真实协议栈 - shell dev_mode 串口镜像(g_serial_mirror)便于自动化验证 - DSK 启动流程:firstInit.txt 双行格式(firstInit + dev_mode),dev_mode=1 触发 shell 自动回归测试 - FirstInit 完成→持久化 USER.CONF + 翻转 firstInit 0->1(保留 dev_mode) - firstInit=1 时 DSK 加载 login.elf 进行用户选择 + 密码校验后再进 desktop - 新增 CODE/login/ 登录应用、CODE/DKM/dkm_shared.h、Logo.png - ahci/e1000/virtio_net/fat32/console_fb 驱动更新;utsm serial/block/dsk_loader 调整 - build.ps1 打包 ping.elf/curl.elf 进 SATA FAT32 根目录 - 移除 CODE/tools/bash(与 shell.elf 重复)
36 lines
824 B
C
36 lines
824 B
C
#include <utsm/utsm.h>
|
|
#include <utsm/segment.h>
|
|
#include <utsm/pckc.h>
|
|
#include <utsm/process.h>
|
|
#include <utsm/log.h>
|
|
|
|
static utsm_segment_desc g_segments[UTSM_MAX_SEGMENTS];
|
|
static u64 g_generation = 1;
|
|
|
|
void utsm_init(void) {
|
|
log_info("[UTSM] segment table reset begin");
|
|
for (u32 i = 0; i < UTSM_MAX_SEGMENTS; i++) {
|
|
g_segments[i].state = UTSM_SEG_FREE;
|
|
g_segments[i].generation = 1;
|
|
}
|
|
log_info("[UTSM] segment table reset ok");
|
|
|
|
g_generation = 1;
|
|
log_info("[UTSM] pckc init begin");
|
|
utsm_pckc_init();
|
|
log_info("[UTSM] pckc init ok");
|
|
|
|
utsm_process_init();
|
|
}
|
|
|
|
utsm_segment_desc *utsm_get_segment(u32 slot) {
|
|
if (slot >= UTSM_MAX_SEGMENTS) {
|
|
return NULL;
|
|
}
|
|
return &g_segments[slot];
|
|
}
|
|
|
|
u64 utsm_next_generation(void) {
|
|
return g_generation++;
|
|
}
|