コード例 #1
0
ファイル: wlm.c プロジェクト: NemProjects/WLAN
int wlmPaParametersGet(WLM_BANDRANGE bandrange,
	unsigned int *a1, unsigned int *b0, unsigned int *b1)
{
	const pavars_t *pav = pavars;
	uint16 inpa[WL_PHY_PAVARS_LEN];
	void *ptr = NULL;
	char par[256];	/* holds longest pavars->vars */
	uint16 *outpa;
	int i = 0;

	pav += bandrange;
	inpa[i++] = pav->phy_type;
	inpa[i++] = pav->bandrange;
	inpa[i++] = pav->chain;
	strncpy(par, pav->vars, 255);
	par[255] = 0;

	if (wlu_var_getbuf(irh, "pavars", inpa, WL_PHY_PAVARS_LEN * sizeof(uint16), &ptr)) {
		printf("wlmPaParametersGet: %s\n", wlmLastError());
		return FALSE;
	}

	outpa = (uint16 *)ptr;
	*b0 = outpa[i++];
	*b1 = outpa[i++];
	*a1 = outpa[i++];

	return TRUE;
}
コード例 #2
0
ファイル: wlm.c プロジェクト: NemProjects/WLAN
int wlmIovarBufferGet(const char *iovar, void *param, int param_len, void **bufptr)
{
	if (wlu_var_getbuf(irh, iovar, param, param_len, bufptr)) {
		printf("wlmIovarBufferGet: %s\n", wlmLastError());
		return FALSE;
	}
	return TRUE;
}
コード例 #3
0
ファイル: wlu_api.c プロジェクト: TheTypoMaster/asuswrt
int wl_p2p_dev(void *wl, int *bsscfgIndex)
{
	int *ptr;
	int err;

	err = wlu_var_getbuf(wl, "p2p_dev", NULL, 0, (void*)&ptr);
	if (err >= 0)
		*bsscfgIndex = dtoh32(*ptr);

	return err;
}
コード例 #4
0
ファイル: wlu_api.c プロジェクト: TheTypoMaster/asuswrt
int wl_p2p_if(void *wl, struct ether_addr *ea, int *bsscfgIndex)
{
	wl_p2p_ifq_t *ptr;
	int err;

	err = wlu_var_getbuf(wl, "p2p_if", ea, sizeof(*ea), (void*)&ptr);
	if (err >= 0)
		*bsscfgIndex = dtoh32(ptr->bsscfgidx);

	return err;
}
コード例 #5
0
ファイル: wlm.c プロジェクト: NemProjects/WLAN
int wlmRssiGet(int *rssi)
{
	wl_pkteng_stats_t *cnt;

	if (wlu_var_getbuf(irh, "pkteng_stats", NULL, 0, (void **)&cnt)) {
		printf("wlmRssiGet: %s\n", wlmLastError());
		return FALSE;
	}

	*rssi = dtoh32(cnt->rssi);

	return TRUE;
}
コード例 #6
0
ファイル: wlm.c プロジェクト: NemProjects/WLAN
int wlmRxGetReceivedPackets(unsigned int *count)
{
	wl_cnt_t *cnt;

	if (wlu_var_getbuf(irh, "counters", NULL, 0, (void **)&cnt)) {
		printf("wlmRxGetReceivedPackets: %s\n", wlmLastError());
		return FALSE;
	}

	*count = dtoh32(cnt->pktengrxducast);

	return TRUE;
}
コード例 #7
0
ファイル: wlu_api.c プロジェクト: TheTypoMaster/asuswrt
int wl_disable_event_msg(void *wl, int event)
{
	uint8 event_inds_mask[WL_EVENTING_MASK_LEN];	/* 128-bit mask */
	void *ptr;

	if ((event / 8) > WL_EVENTING_MASK_LEN)
		return -1;

	/* get current setting */
	memset(buf, '\0', WLC_IOCTL_MAXLEN);
	if (wlu_var_getbuf(wl, "event_msgs", NULL, 0, &ptr))
		return -1;

	/* AND mask event */
	memcpy(event_inds_mask, ptr, WL_EVENTING_MASK_LEN);
	event_inds_mask[event / 8] &= ~(1 << (event % 8));

	if (wlu_iovar_set(wl, "event_msgs", &event_inds_mask, WL_EVENTING_MASK_LEN))
		return -1;

	return 0;
}
コード例 #8
0
static int
lua_set_led(lua_State *L, void *wl, lua_cmd_t *cmd, char *argv)
{
	int err;
	wl_led_info_t led;
	void	*ptr = NULL;

	memset(&led, 0, sizeof(wl_led_info_t));

	/* Read the original back so we don't toggle the activehi */
	if ((err = wlu_var_getbuf(wl, cmd->name, (void*)&led,
		sizeof(wl_led_info_t), &ptr)) < 0) {
		return err;
	}
	led.behavior = (uint32)strtoul(argv, NULL, 10);
	led.activehi = ((wl_led_info_t*)ptr)->activehi;

	if ((err = wlu_var_setbuf(wl, cmd->name, (void*)&led,
		sizeof(wl_led_info_t))) < 0) {
		return err;
	}
	return err;
}