static int ioctl2Attr(pfs_cache_t *clink, int cmd, void *arg, void *outbuf, u32 *offset) { // attr set, attr delete, attr lookup, attr read cmds int rv; pfs_cache_t *flink; if ((flink = pfsCacheGetData(clink->pfsMount, clink->sub, clink->block + 1, PFS_CACHE_FLAG_NOTHING, &rv)) == NULL) return rv; switch (cmd) { case PIOCATTRADD: rv = ioctl2AttrAdd(flink, arg); break; case PIOCATTRDEL: rv = ioctl2AttrDelete(flink, arg); break; case PIOCATTRLOOKUP: rv = ioctl2AttrLookUp(flink, arg, outbuf); break; case PIOCATTRREAD: rv = ioctl2AttrRead(flink, outbuf, offset); break; } pfsCacheFree(flink); return rv; }
int ioctl2Attr(pfs_cache_t *clink, int cmd, void *arg, void *outbuf, u32 *offset) { // attr set, attr delete, attr lookup, attr read cmds int rv; pfs_cache_t *flink; if((flink=cacheGetData(clink->pfsMount, clink->sub, clink->sector+1 ,CACHE_FLAG_NOTHING, &rv))==NULL) return rv; switch(cmd) { case PFS_IOCTL2_ATTR_ADD: rv=ioctl2AttrAdd(flink, arg); break; case PFS_IOCTL2_ATTR_DEL: rv=ioctl2AttrDelete(flink, arg); break; case PFS_IOCTL2_ATTR_LOOKUP: rv=ioctl2AttrLoopUp(flink, arg, outbuf); break; case PFS_IOCTL2_ATTR_READ: rv=ioctl2AttrRead(flink, outbuf, offset); break; } cacheAdd(flink); return rv; }