static int orinoco_ioctl_getpower(struct net_device *dev, struct iw_param *prq) 
static int orinoco_ioctl_getpower(struct net_device *dev, struct iw_request_info *info, struct iw_param *prq, char *extra) 
static int orinoco_ioctl_getpower(struct net_device *dev, struct iw_param *prq){	struct orinoco_private *priv = netdev_priv(dev);	hermes_t *hw = &priv->hw;	int err = 0;	u16 enable, period, timeout, mcast;	unsigned long flags;	if (orinoco_lock(priv, &flags) != 0)		return -EBUSY;		err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_CNFPMENABLED, &enable);	if (err)		goto out;	err = hermes_read_wordrec(hw, USER_BAP,				  HERMES_RID_CNFMAXSLEEPDURATION, &period);	if (err)		goto out;	err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_CNFPMHOLDOVERDURATION, &timeout);	if (err)		goto out;	err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_CNFMULTICASTRECEIVE, &mcast);	if (err)		goto out;	prq->disabled = !enable;	/* Note : by default, display the period */	if ((prq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {		prq->flags = IW_POWER_TIMEOUT;		prq->value = timeout * 1000;	} else {		prq->flags = IW_POWER_PERIOD;		prq->value = period * 1000;	}	if (mcast)		prq->flags |= IW_POWER_ALL_R;	else		prq->flags |= IW_POWER_UNICAST_R; out:	orinoco_unlock(priv, &flags);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/620554e406e3cc01434c658a1e597162d7e56fd6/orinoco.c/buggy/drivers/net/wireless/orinoco.c