亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rndis.c

?? Contiki是一個開源
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * \file rndis.c *         RNDIS Functions for mounting USB device as network interface * * \author *         Colin O'Flynn <coflynn@newae.com> * * \addtogroup usbstick *//* Copyright (c) 2008  Colin O'Flynn   The CDC code which this is based on is Copyright (c) Atmel Corporation 2008   All rights reserved.   Redistribution and use in source and binary forms, with or without   modification, are permitted provided that the following conditions are met:   * Redistributions of source code must retain the above copyright     notice, this list of conditions and the following disclaimer.   * Redistributions in binary form must reproduce the above copyright     notice, this list of conditions and the following disclaimer in     the documentation and/or other materials provided with the     distribution.   * Neither the name of the copyright holders nor the names of     contributors may be used to endorse or promote products derived     from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  POSSIBILITY OF SUCH DAMAGE.*//*RNDIS Status Information:802.3 Support:    More or less working	 802.11 Support:	Incomplete, would just error out if you tried probably*//**  \addtogroup RNDIS  @{  */ //_____ I N C L U D E S ____________________________________________________#include "radio.h"#include "contiki.h"#include "config.h"#include "usb_drv.h"#include "usb_descriptors.h"#include "usb_specific_request.h"#include "rndis/rndis_protocol.h"#include "uip.h"#include "serial/uart_usb_lib.h"#include "sicslow_ethernet.h"#include <avr/pgmspace.h>#include <string.h>//_____ M A C R O S ________________________________________________________//_____ D E F I N I T I O N ________________________________________________//_____ P R I V A T E   D E C L A R A T I O N ______________________________extern PGM_VOID_P pbuffer;extern U8   data_to_transfer;//NB: If you change the OID list be sure to update this!!!//#define OID_LIST_LENGTH 50#define OID_LIST_LENGTH 35/** * \brief List of supported RNDIS OID's */prog_uint32_t OIDSupportedList[OID_LIST_LENGTH] = {		/* Required General */        OID_GEN_SUPPORTED_LIST            ,        OID_GEN_HARDWARE_STATUS           ,        OID_GEN_MEDIA_SUPPORTED           ,        OID_GEN_MEDIA_IN_USE              ,        OID_GEN_MAXIMUM_FRAME_SIZE        ,        OID_GEN_LINK_SPEED                ,        OID_GEN_TRANSMIT_BLOCK_SIZE       ,        OID_GEN_RECEIVE_BLOCK_SIZE        ,        OID_GEN_VENDOR_ID                 ,        OID_GEN_VENDOR_DESCRIPTION        ,        OID_GEN_CURRENT_PACKET_FILTER     ,        OID_GEN_MAXIMUM_TOTAL_SIZE        ,        OID_GEN_MEDIA_CONNECT_STATUS      ,        OID_GEN_VENDOR_DRIVER_VERSION     ,        OID_GEN_PHYSICAL_MEDIUM			  ,		/* Required Statistical */        OID_GEN_XMIT_OK                   ,        OID_GEN_RCV_OK                    ,        OID_GEN_XMIT_ERROR                ,        OID_GEN_RCV_ERROR                 ,        OID_GEN_RCV_NO_BUFFER             ,		/* Please configure us        */		OID_GEN_RNDIS_CONFIG_PARAMETER    ,		/* IEEE 802.3 (Ethernet) OIDs */        OID_802_3_PERMANENT_ADDRESS       ,        OID_802_3_CURRENT_ADDRESS         ,        OID_802_3_MULTICAST_LIST          ,        OID_802_3_MAXIMUM_LIST_SIZE       ,        OID_802_3_MAC_OPTIONS             ,        OID_802_3_RCV_ERROR_ALIGNMENT     ,        OID_802_3_XMIT_ONE_COLLISION      ,        OID_802_3_XMIT_MORE_COLLISIONS    ,/*802.11 OID's not fully implemented yet. Hence do not say we  support them */#ifdef DONOTEVERDEFINETHISORBADSTUFFHAPPENS		/* 802.11 OIDs */        OID_802_11_BSSID                  ,        OID_802_11_SSID                   ,        OID_802_11_NETWORK_TYPE_IN_USE    ,        OID_802_11_RSSI                   ,        OID_802_11_BSSID_LIST             ,        OID_802_11_BSSID_LIST_SCAN        ,        OID_802_11_INFRASTRUCTURE_MODE    ,        OID_802_11_SUPPORTED_RATES        ,        OID_802_11_CONFIGURATION          ,        OID_802_11_ADD_WEP                ,        OID_802_11_WEP_STATUS             ,        OID_802_11_REMOVE_WEP             ,        OID_802_11_DISASSOCIATE           ,        OID_802_11_AUTHENTICATION_MODE    ,        OID_802_11_RELOAD_DEFAULTS        ,#endif		/* Minimum power managment needed for USB */		OID_PNP_CAPABILITIES              ,		OID_PNP_QUERY_POWER               ,		OID_PNP_SET_POWER                 ,		OID_PNP_ENABLE_WAKE_UP            ,		OID_PNP_ADD_WAKE_UP_PATTERN       ,		OID_PNP_REMOVE_WAKE_UP_PATTERN	};rndis_state_t rndis_state;rndis_stat_t rndis_stat;uint8_t schedule_interrupt = 0;uint64_t rndis_ethernet_addr = 0x203478928323UL;//_____ D E C L A R A T I O N ______________________________________________void rndis_packetFilter(uint32_t newfilter);/******** RNDIS ********/#define ENC_BUF_SIZE    (4*OID_LIST_LENGTH + 32)// Command bufferU8 encapsulated_buffer[ENC_BUF_SIZE];//Do we have data to send back?U8 data_to_send = 0x00;/** * \brief Handles a "SEND ENCAPSULATED COMMAND" message. * * \return True on success, false on failure. */uint8_t send_encapsulated_command(uint16_t wLength){	U8 i = 0;	//Received setup message OK	Usb_ack_receive_setup();	//Crude bounds check	if (wLength > ENC_BUF_SIZE)		wLength = ENC_BUF_SIZE;	//For debugging: this shouldn't happen, just checked it didn't	//if (data_to_send) {	//	while(1);	//}	//Read in all the bytes...	uint8_t nb_counter;	while (wLength) {		nb_counter = EP_CONTROL_LENGTH;		//Wait for data to come in		while (!(Is_usb_receive_out()));					while(nb_counter && wLength) {						encapsulated_buffer[i] = Usb_read_byte();			i++;			wLength--;			nb_counter--;		}				Usb_ack_receive_out();	}	Usb_send_control_in();	switch(((rndis_generic_msg_t *)encapsulated_buffer)->MessageType)		{		/* Requests remote intilization. Respond with complete,		   eventually should probably do something */		case REMOTE_NDIS_INITIALIZE_MSG:				{								rndis_initialize_cmplt_t * m;				m = ((rndis_initialize_cmplt_t *)encapsulated_buffer);					//m->MessageID is same as before				m->MessageType = REMOTE_NDIS_INITIALIZE_CMPLT;				m->MessageLength = sizeof(rndis_initialize_cmplt_t);				m->MajorVersion = RNDIS_MAJOR_VERSION;				m->MinorVersion = RNDIS_MAJOR_VERSION;				m->Status = RNDIS_STATUS_SUCCESS;				m->DeviceFlags = RNDIS_DF_CONNECTIONLESS;				m->Medium = RNDIS_MEDIUM_802_3;				m->MaxPacketsPerTransfer = 1;				m->MaxTransferSize = 1338; /* Space for 1280 IP buffer, Ethernet Header, 				                              RNDIS messages */				m->PacketAlignmentFactor = 3;				m->AfListOffset = 0;				m->AfListSize = 0;				rndis_state = rndis_initialized;				data_to_send = m->MessageLength;				}			break;		case REMOTE_NDIS_HALT_MSG:			Led0_on();			Led1_on();			Led2_on();			Led3_on();			Usb_send_control_in();			while(1);						break;		case REMOTE_NDIS_QUERY_MSG:				rndis_query_process();			break;		case REMOTE_NDIS_SET_MSG:				{				rndis_set_process();				}			break;			case REMOTE_NDIS_RESET_MSG:				{				rndis_reset_cmplt_t * m;				m = ((rndis_reset_cmplt_t *)encapsulated_buffer);					rndis_state = rndis_uninitialized;				m->MessageType = REMOTE_NDIS_RESET_CMPLT;				m->MessageLength = sizeof(rndis_reset_cmplt_t);				m->Status = RNDIS_STATUS_SUCCESS;				m->AddressingReset = 1; /* Make it look like we did something */			//	m->AddressingReset = 0; //Windows halts if set to 1 for some reason				data_to_send = m->MessageLength;								}			break;		case REMOTE_NDIS_KEEPALIVE_MSG:				{				rndis_keepalive_cmplt_t * m;				m = (rndis_keepalive_cmplt_t *)encapsulated_buffer;				m->MessageType = REMOTE_NDIS_KEEPALIVE_CMPLT;				m->MessageLength = sizeof(rndis_keepalive_cmplt_t);				m->Status = RNDIS_STATUS_SUCCESS;				//We have data to send back				data_to_send = m->MessageLength;			break;			}		default:			Led2_on();			return FALSE;			break;		}		while(!(Is_usb_read_control_enabled()));		if (Is_usb_receive_out()) Usb_ack_receive_out();		rndis_send_interrupt();		return TRUE;}/** * \brief Send an interrupt over the interrupt endpoint to the host. */void rndis_send_interrupt(void)	{		//Schedule the interrupt to take place next	//time USB task is run	schedule_interrupt = 1;		}#define INFBUF ((uint32_t *)(encapsulated_buffer + sizeof(rndis_query_cmplt_t)))uint32_t oid_packet_filter = 0x0000000;uint16_t panid = 0xbaad;/** * \brief Function to handle a RNDIS "QUERY" command in the encapsulated_buffer */void rndis_query_process(void)	{	rndis_query_msg_t * m;	rndis_query_cmplt_t * c;	rndis_Status_t status = RNDIS_STATUS_SUCCESS;	m = (rndis_query_msg_t *)encapsulated_buffer;	c = (rndis_query_cmplt_t *)encapsulated_buffer;	/* We set up packet for sending one 4-byte response, which a lot of	   these will do. If you need more or less just change the defaults in	   the specific case */	c->MessageType = REMOTE_NDIS_QUERY_CMPLT;	//c->Status DO NOT SET YET - as m->Oid resides in this space. We still need it...	c->InformationBufferLength = 4;	c->InformationBufferOffset = 16;		switch (m->Oid) {		/**** GENERAL ****/        case OID_GEN_SUPPORTED_LIST:			c->InformationBufferLength = 4 * OID_LIST_LENGTH;			//Copy data to SRAM			memcpy_P(INFBUF, OIDSupportedList, 4*OID_LIST_LENGTH);			break;        case OID_GEN_HARDWARE_STATUS:       			*INFBUF = 0x00000000; /* Ready and Willing */  			break;        case OID_GEN_MEDIA_SUPPORTED:                   case OID_GEN_MEDIA_IN_USE: 			*INFBUF = NDIS_MEDIUM_802_3; /* NDIS_MEDIUM_WIRELESS_LAN instead? */  			break;			        case OID_GEN_MAXIMUM_FRAME_SIZE:			*INFBUF = (uint32_t) 1280; //1280 //102; /* Assume 25 octet header on 15.4 */			break;        case OID_GEN_LINK_SPEED:            			*INFBUF = (uint32_t) 100; /* in 100 bytes/sec units.. this is kinda a lie */			break;         case OID_GEN_TRANSMIT_BLOCK_SIZE:               case OID_GEN_RECEIVE_BLOCK_SIZE:   			*INFBUF = (uint32_t) 102; 			break;			             case OID_GEN_VENDOR_ID:			*INFBUF = 0xFFFFFF; /* No vendor ID ! */			break;			                         case OID_GEN_VENDOR_DESCRIPTION:        			c->InformationBufferLength = 8;			memcpy_P(INFBUF, PSTR("Atmel\0\0\0\0"), 8);			break;        case OID_GEN_CURRENT_PACKET_FILTER:     			*INFBUF =  oid_packet_filter;			break;        case OID_GEN_MAXIMUM_TOTAL_SIZE:        			*INFBUF = (uint32_t) 1300; //127; 			break;        case OID_GEN_MEDIA_CONNECT_STATUS: 			*INFBUF = NDIS_MEDIA_STATE_CONNECTED;			break;			     

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品va天堂亚洲国产| 在线免费观看日韩欧美| 久久伊99综合婷婷久久伊| 男人的j进女人的j一区| 精品av综合导航| 国产福利一区二区三区| 国产精品初高中害羞小美女文| 成人h精品动漫一区二区三区| 日韩一区中文字幕| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲电影第三页| 精品免费视频.| 色素色在线综合| 亚洲一区二区三区中文字幕在线| 欧美精品 日韩| 国产一区二区三区久久悠悠色av| 中文字幕在线不卡一区| 欧美日产国产精品| 国产精品资源在线看| 一区二区三区在线视频观看 | 国产成人精品免费一区二区| 久久久亚洲欧洲日产国码αv| 成人一区二区在线观看| 亚洲一区二区三区爽爽爽爽爽| 欧美成人综合网站| 91毛片在线观看| 久草这里只有精品视频| 一区二区在线观看av| 亚洲私人影院在线观看| 五月婷婷久久丁香| 国产精品初高中害羞小美女文| 99热在这里有精品免费| 日韩精品视频网| 99精品热视频| 日本中文字幕一区二区视频| 久久精品在线免费观看| 极品少妇xxxx偷拍精品少妇| 久久不见久久见中文字幕免费| 亚洲高清视频在线| 天天操天天色综合| 日韩经典中文字幕一区| 美国毛片一区二区三区| 蜜桃精品在线观看| 狠狠色狠狠色综合日日91app| 精品午夜久久福利影院| 久久国产欧美日韩精品| 国产精品香蕉一区二区三区| 国产成人精品亚洲午夜麻豆| 成人免费视频视频| 91在线免费播放| 欧美在线一区二区| 7799精品视频| 日韩免费观看高清完整版在线观看| 精品久久久久av影院| 久久久久久久久99精品| 国产精品久久久久久久午夜片| 亚洲人吸女人奶水| 婷婷中文字幕综合| 久88久久88久久久| jiyouzz国产精品久久| 欧美视频在线观看一区二区| 日韩午夜中文字幕| 国产精品三级电影| 亚洲一区二区三区四区五区中文 | 欧美日韩一区二区三区高清| 91麻豆精品国产无毒不卡在线观看| 日韩精品中午字幕| 国产精品国产三级国产aⅴ中文 | 国产一区不卡精品| 91免费国产在线| 日韩欧美一二区| 国产精品女同一区二区三区| 亚洲无线码一区二区三区| 久久99久久久久久久久久久| 成人av午夜电影| 欧美丰满嫩嫩电影| 中文字幕精品一区| 日韩精品一二区| 不卡的av电影| 日韩欧美成人一区二区| 中文字幕字幕中文在线中不卡视频| 午夜亚洲国产au精品一区二区| 国产剧情一区二区三区| 欧美日韩一区二区三区四区五区 | 久久综合五月天婷婷伊人| 综合久久久久久| 日本美女一区二区| 成人av网址在线| 日韩三级.com| 洋洋av久久久久久久一区| 精品在线观看免费| 在线亚洲欧美专区二区| 国产日韩欧美精品一区| 日韩在线观看一区二区| 成人午夜视频在线观看| 欧美一级生活片| 亚洲精品国产第一综合99久久| 国产一区二区三区四| 精品视频全国免费看| 最近中文字幕一区二区三区| 激情六月婷婷久久| 欧洲一区二区av| 亚洲欧美综合在线精品| 韩国欧美国产一区| 欧美一区二区高清| 亚洲五月六月丁香激情| 91丨porny丨蝌蚪视频| 久久久久88色偷偷免费| 麻豆成人av在线| 欧美吻胸吃奶大尺度电影| 中文字幕在线免费不卡| 国产麻豆欧美日韩一区| 日韩亚洲欧美综合| 午夜欧美在线一二页| 色综合天天综合网国产成人综合天| 久久免费视频色| 激情综合五月婷婷| 日韩欧美一级二级三级 | 波多野结衣在线一区| 久久亚洲私人国产精品va媚药| 五月激情综合色| 欧美三级视频在线观看| 一个色在线综合| 在线影院国内精品| 亚洲综合丁香婷婷六月香| 91在线丨porny丨国产| 中文字幕一区在线观看视频| 国产成人精品亚洲午夜麻豆| 国产网站一区二区| 粉嫩av一区二区三区| 亚洲国产精品ⅴa在线观看| 国产精品影视在线观看| 亚洲国产精品激情在线观看 | 在线国产亚洲欧美| 亚洲精品日韩综合观看成人91| 色呦呦国产精品| 亚洲一区二区在线观看视频| 欧美网站大全在线观看| 午夜久久电影网| 91精品国产欧美一区二区成人| 婷婷成人综合网| 欧美一区二区视频在线观看2020| 日韩高清一区在线| 日韩一级免费观看| 国产精品一区二区在线观看不卡 | 日韩精品资源二区在线| 韩国v欧美v亚洲v日本v| 国产精品三级av| 一本色道久久综合亚洲精品按摩| 亚洲在线视频网站| 欧美美女一区二区| 精品一区二区免费| 国产精品色在线| 在线观看网站黄不卡| 日韩avvvv在线播放| 精品国产乱码久久久久久1区2区| 国产在线播放一区| 国产精品久久久久三级| 欧美性大战久久久| 精品一区二区三区在线播放| 中文字幕精品一区二区精品绿巨人| 99re这里只有精品首页| 婷婷中文字幕一区三区| 久久久久久久综合狠狠综合| 91在线免费播放| 日韩av在线播放中文字幕| 国产午夜精品美女毛片视频| 色欲综合视频天天天| 日韩av在线播放中文字幕| 欧美激情综合五月色丁香| 在线欧美日韩精品| 精品一区二区精品| 亚洲激情av在线| 久久久国产精品麻豆 | 久久婷婷国产综合国色天香| 99国产精品99久久久久久| 五月开心婷婷久久| 中国色在线观看另类| 欧美日韩黄色一区二区| 国产精品一区在线观看你懂的| 综合av第一页| 精品国产乱码久久久久久图片| 91亚洲精品乱码久久久久久蜜桃| 奇米影视一区二区三区小说| 一区精品在线播放| 精品久久久三级丝袜| 欧美亚洲高清一区二区三区不卡| 久久草av在线| 午夜欧美大尺度福利影院在线看| 国产精品无码永久免费888| 欧美一卡在线观看| 91麻豆精品视频| 国产精品77777| 蜜臀av在线播放一区二区三区| 亚洲欧美区自拍先锋| 亚洲精品一区二区在线观看| 欧美日韩国产另类不卡| eeuss影院一区二区三区| 国产一区免费电影| 日本欧美一区二区三区乱码|