Hi all, I am trying to implment standard file operation (stdio) with QEMU for DSP architecture. The manufacture (TI) provides a runtime library that support posix standard IO, but it left the device level implmentation as hook function calls, like in the library source , it contains add_device() function, and write(),read(),open() are not implemented:
int add_device(char *name, unsigned flags, int (*dopen) (const char *path, unsigned flags, int foo), int (*dclose) (int fno), int (*dread) (int fno, char *buf, unsigned count), int (*dwrite) (int fno, const char *buf, unsigned count), fpos_t (*dlseek) (int fno, fpos_t offset, int origin), int (*dunlink)(const char *path), int (*drename)(const char *old_name, const char *new_name)) { _DEVICE *dt; strncpy(dt->name,name,8); dt->name[8] = '\0'; dt->flags = flags; dt->OPEN = dopen; dt->CLOSE = dclose; dt->READ = dread; dt->WRITE = dwrite; dt->LSEEK = dlseek; dt->UNLINK = dunlink; dt->RENAME = drename; } int write(int fildes, const char *bufptr, unsigned cnt) { /*------------------------------------------------------------------------*/ /* CALL FUNCTION FROM DEVICE TABLE TO PERFORM WRITE FOR THIS DEVICE/FILE */ /*------------------------------------------------------------------------*/ return (*(_stream[fildes]->WRITE)) (fildes,bufptr,cnt); } Then, how can we use this runtime library together with QEMu to implement full-stack file oerations? I really appreaciate any advice. Thanks. regards, xiaolei