qemu-devel
[Top][All Lists]
Advanced

[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
reply via email to

[Prev in Thread] Current Thread [Next in Thread]