static int tftp_open(struct device_d *dev, FILE *file, const char *filename) { struct file_priv *priv; priv = tftp_do_open(dev, file->flags, filename); if (IS_ERR(priv)) return PTR_ERR(priv); file->inode = priv; file->size = SZ_2G; return 0; }
static int tftp_stat(struct device_d *dev, const char *filename, struct stat *s) { struct file_priv *priv; priv = tftp_do_open(dev, O_RDONLY, filename); if (IS_ERR(priv)) return PTR_ERR(priv); s->st_mode = S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO; s->st_size = priv->filesize; tftp_do_close(priv); return 0; }