[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Implement standard file operation with QEMU
From: |
casmac |
Subject: |
Implement standard file operation with QEMU |
Date: |
Thu, 16 Jul 2020 08:51:53 +0800 |
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
- Implement standard file operation with QEMU,
casmac <=