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