/**************************************************************************
* *
* Copyright (C) 1994, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
#ident "$Revision: 1.7 $"
#include "dmapi_private.h"
int
dm_get_allocinfo_rvp(
dm_sessid_t sid,
void *hanp,
size_t hlen,
dm_token_t token,
dm_off_t *offp,
u_int nelem,
dm_extent_t *extentp,
u_int *nelemp,
int *rvp)
{
dm_fsys_vector_t *fsys_vector;
dm_tokdata_t *tdp;
int error;
printk("*** this is %s, %s/%d\n", __FUNCTION__, __FILE__, __LINE__);
error = dm_app_get_tdp(sid, hanp, hlen, token, DM_TDT_REG,
DM_RIGHT_SHARED, &tdp);
if (error != 0)
return(error);
fsys_vector = dm_fsys_vector(tdp->td_bdp);
error = fsys_vector->get_allocinfo_rvp(tdp->td_bdp, tdp->td_right,
offp, nelem, extentp, nelemp, rvp);
dm_app_put_tdp(tdp);
return(error);
}
int
dm_probe_hole(
dm_sessid_t sid,
void *hanp,
size_t hlen,
dm_token_t token,
dm_off_t off,
dm_size_t len,
dm_off_t *roffp,
dm_size_t *rlenp)
{
dm_fsys_vector_t *fsys_vector;
dm_tokdata_t *tdp;
int error;
printk("*** this is %s, %s/%d\n", __FUNCTION__, __FILE__, __LINE__);
error = dm_app_get_tdp(sid, hanp, hlen, token, DM_TDT_REG,
DM_RIGHT_SHARED, &tdp);
if (error != 0)
return(error);
fsys_vector = dm_fsys_vector(tdp->td_bdp);
error = fsys_vector->probe_hole(tdp->td_bdp, tdp->td_right,
off, len, roffp, rlenp);
dm_app_put_tdp(tdp);
return(error);
}
int
dm_punch_hole(
dm_sessid_t sid,
void *hanp,
size_t hlen,
dm_token_t token,
dm_off_t off,
dm_size_t len)
{
dm_fsys_vector_t *fsys_vector;
dm_tokdata_t *tdp;
int error;
printk("*** this is %s, %s/%d\n", __FUNCTION__, __FILE__, __LINE__);
error = dm_app_get_tdp(sid, hanp, hlen, token, DM_TDT_REG,
DM_RIGHT_EXCL, &tdp);
if (error != 0)
return(error);
fsys_vector = dm_fsys_vector(tdp->td_bdp);
error = fsys_vector->punch_hole(tdp->td_bdp, tdp->td_right, off, len);
dm_app_put_tdp(tdp);
return(error);
}