ZHCUAQ1F july 2015 – april 2023
向器件表添加器件
#include <file.h>
int add_device(char * name,
unsigned flags ,
int (* dopen)(const char *path, unsigned flags, int llv_fd),
int (* dclose )( int dev_fd),
int (* dread)(intdev_fd, char *buf, unsigned count),
int (* dwrite )(int dev_fd, const char *buf, unsigned count),
off_t (* dlseek )(int dev_fd, off_t ioffset, int origin),
int (* dunlink )(const char *path),
int (* drename )(const char *old_name, const char *new_name));
lowlev.c(在编译器安装程序的 lib/src 子目录中)
add_device 函数将器件记录添加至器件表,以便在 C 语言中将该器件用于 I/O。器件表中的第一个条目预定义为运行调试器的主机器件。add_device() 函数会在器件表中查找第一个空位置,然后对表示器件的结构字段进行初始化。
若要在新添加的器件上打开一个流,请使用 fopen( ) 并以 devicename :filename 格式的字符串作为第一个参数。
_SSA 表示器件一次仅支持一个开放流
_MSA 表示器件支持多个开放流
通过在 file.h 中进行定义,可以添加更多的标志。
该函数将返回以下值之一:
0 | 成功时 |
-1 | 失败时 |
Example9-2 将执行以下操作: