Beispiel #1
0
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;
}
Beispiel #2
0
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;
}