内核:删掉 SERIAL_PUTS 的枚举项/派发分支/处理函数(内核自身的 serial.puts 是直接驱动调用,不受影响)。SDK:vpsdk/devfs.vp 新增 serial_puts()(惰性 open /dev/serial0 一次 + write),syscall.vp 删掉该成员。 调用点全部切到 devfs.serial_puts:vpsdk/stdio.vp 的 printf、vpsdk/vpui.vp 的 _serial_puts、Apps/Terminal 的 _sdbg、Apps/Explorer 的 _dbg、Libs/SerialLogger 的 log_info/log_warn(.so 同样走设备节点)。顺带清掉因此失效的 import(vpui 的 _syscall、Terminal 的 _syscall、Explorer 的 syscall)。 至此私有段只剩 7 项:TELL/SIZE/OPENDIR/READDIR/CLOSEDIR(可由 lseek/fstat/openat+getdents64 表达)与 LOAD_SO/SO_CALL1(动态库加载待下沉用户层)。
14 lines
417 B
Plaintext
14 lines
417 B
Plaintext
import vpsdk.devfs as devfs
|
|
import t, c
|
|
|
|
# S4:原先三次 SERIAL_PUTS 私有 syscall,现改为写 /dev/serial0 设备节点。
|
|
export def log_info(msg: const str):
|
|
devfs.serial_puts("[SerialLogger] ")
|
|
devfs.serial_puts(msg)
|
|
devfs.serial_puts("\n")
|
|
|
|
export def log_warn(msg: const str):
|
|
devfs.serial_puts("[SerialLogger:WARN] ")
|
|
devfs.serial_puts(msg)
|
|
devfs.serial_puts("\n")
|