- 用户态共享网络协议栈 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 重复)
34 lines
955 B
C
34 lines
955 B
C
#ifndef UTSM_BLOCK_H
|
|
#define UTSM_BLOCK_H
|
|
|
|
#include <utsm/types.h>
|
|
|
|
#define DKM_BLOCK_MAX_DEVICES 8u
|
|
|
|
typedef int (*dkm_block_read_fn)(void *ctx, u64 lba, u32 count, void *buffer);
|
|
typedef int (*dkm_block_write_fn)(void *ctx, u64 lba, u32 count, const void *buffer);
|
|
|
|
typedef struct dkm_block_device_desc {
|
|
const char *name;
|
|
u64 sector_size;
|
|
u64 sector_count;
|
|
void *ctx;
|
|
dkm_block_read_fn read;
|
|
dkm_block_write_fn write;
|
|
} dkm_block_device_desc;
|
|
|
|
typedef struct dkm_block_api {
|
|
int (*register_device)(const dkm_block_device_desc *desc);
|
|
u32 (*device_count)(void);
|
|
int (*read)(u32 index, u64 lba, u32 count, void *buffer);
|
|
int (*write)(u32 index, u64 lba, u32 count, const void *buffer);
|
|
u64 (*sector_size)(u32 index);
|
|
const char *(*device_name)(u32 index);
|
|
int (*set_write_fn)(u32 index, dkm_block_write_fn fn);
|
|
} dkm_block_api;
|
|
|
|
void block_init(void);
|
|
const dkm_block_api *block_get_api(void);
|
|
|
|
#endif
|