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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? obex.c

?? 最新的openobex源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
 * @offset: Desired offset * * Call this function when you get a OBEX_EV_REQHINT and you know that the * command has data before the headers comes. You do NOT need to use this * function on Connect and SetPath, they are handled automatically. */int OBEX_ObjectSetHdrOffset(obex_object_t *object, unsigned int offset){	obex_return_val_if_fail(object != NULL, -1);	object->headeroffset = offset;	return 1;}/** * OBEX_UnicodeToChar - Simple unicode to char function. * @c: Destination (char) * @uc: Source (unicode) * @size: Length of destination buffer, at least half the size of source * * Buffers may not overlap. Returns -1 on error. */int OBEX_UnicodeToChar(uint8_t *c, const uint8_t *uc, int size){	int n;	DEBUG(4, "\n");			obex_return_val_if_fail(uc != NULL, -1);	obex_return_val_if_fail(c != NULL, -1);	// Make sure buffer is big enough!	for(n = 0; uc[n*2+1] != 0; n++);	obex_return_val_if_fail(n < size, -1);	for(n = 0; uc[n*2+1] != 0; n++)		c[n] = uc[n*2+1];	c[n] = 0;		return 0;}/** * OBEX_CharToUnicode - Simple char to unicode function. * @uc: Destination (unicode) * @c: Source (char) * @size: Length of destination buffer, at least twice the size of source * * Buffers may not overlap. Returns -1 on error. */int OBEX_CharToUnicode(uint8_t *uc, const uint8_t *c, int size){	int len, n;	DEBUG(4, "\n");	obex_return_val_if_fail(uc != NULL, -1);	obex_return_val_if_fail(c != NULL, -1);	len = n = strlen((char *) c);	obex_return_val_if_fail(n*2+2 <= size, -1);	uc[n*2+1] = 0;	uc[n*2] = 0;	while(n--) {		uc[n*2+1] = c[n];		uc[n*2] = 0;	}	return (len*2)+2 ;}/** * OBEX_ResponseToString - Return a human understandable string from a response-code. * @rsp: Response code. * * The returned char must not be freed. Returns %NULL on error. */char *OBEX_ResponseToString(int rsp){	DEBUG(4, "\n");	return obex_response_to_string(rsp);}/** * OBEX_GetResponseMessage - Return a human understandable string from a response-code. * @self: OBEX handle * @rsp: Response code. * * The returned char must not be freed. Returns %NULL on error. */char* OBEX_GetResponseMessage(obex_t *self, int rsp){	DEBUG(4, "\n");	return obex_response_to_string(rsp);}/* ---------------------------------------------------------------- *//** * OBEX_SetCustomData - Set customdata of an OBEX handle * @self: OBEX handle * @data: Custom Transport data * * Note : this call is *reserved* to the Custom Transport and should not * be use by the user/client. It allow to update the Custom Transport data * originally set via OBEX_RegisterCTransport(). * The Custom Transport data (or instance handle) is used to store data * relative to the specific instance (i.e. connection), such as file * descriptors, offsets and others, so that the Custom Transport can manage * multiple connections transparently (i.e. without a lookup table). * - Jean II */void OBEX_SetCustomData(obex_t *self, void * data){	obex_return_if_fail(self != NULL);	self->ctrans.customdata = data;}/** * OBEX_GetCustomData - Read the customdata from an OBEX handle * @self: OBEX handle * * Returns Custom Transport data */void * OBEX_GetCustomData(obex_t *self){	obex_return_val_if_fail(self != NULL, 0);	return self->ctrans.customdata;}/** * InOBEX_ServerRegister - Start listening for incoming connections * @self: OBEX handle * * An easier server function to use for TCP/IP (InOBEX) only. * * Returns -1 on error. */int InOBEX_ServerRegister(obex_t *self){	DEBUG(3, "\n");	obex_return_val_if_fail(self != NULL, -1);	inobex_prepare_listen(self);	return obex_transport_listen(self);}/** * InOBEX_TransportConnect - Connect Inet transport * @self: OBEX handle * * An easier connect function to use for TCP/IP (InOBEX) only. * * Note : I would like feedback on this API to know which input * parameter make most sense. Thanks... */int InOBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addrlen){     	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);	if (self->object)	{		DEBUG(1, "We are busy.\n");		return -EBUSY;	}	obex_return_val_if_fail(saddr != NULL, -1);	inobex_prepare_connect(self, saddr, addrlen);	return obex_transport_connect_request(self);}/** * IrOBEX_ServerRegister - Start listening for incoming connections * @self: OBEX handle * @service: Service to bind to. * * An easier server function to use for IrDA (IrOBEX) only. * * Returns -1 on error. */int IrOBEX_ServerRegister(obex_t *self, const char *service){	DEBUG(3, "\n");	obex_return_val_if_fail(self != NULL, -1);	obex_return_val_if_fail(service != NULL, -1);#ifdef HAVE_IRDA	irobex_prepare_listen(self, service);	return obex_transport_listen(self);#else	return -ESOCKTNOSUPPORT;#endif /* HAVE_IRDA */}/** * IrOBEX_TransportConnect - Connect Irda transport * @self: OBEX handle * @service: IrIAS service name to connect to * * An easier connect function to use for IrDA (IrOBEX) only. */int IrOBEX_TransportConnect(obex_t *self, const char *service){     	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);	if (self->object)	{		DEBUG(1, "We are busy.\n");		return -EBUSY;	}#ifdef HAVE_IRDA	irobex_prepare_connect(self, service);	return obex_transport_connect_request(self);#else	return -ESOCKTNOSUPPORT;#endif /* HAVE_IRDA */}/** * BtOBEX_ServerRegister - Start listening for incoming connections * @self: OBEX handle * @service: Service to bind to. **FIXME** * * An easier server function to use for Bluetooth (Bluetooth OBEX) only.  * * Returns -1 on error. */int BtOBEX_ServerRegister(obex_t *self, bdaddr_t *src, uint8_t channel){	DEBUG(3, "\n");	obex_return_val_if_fail(self != NULL, -1);#ifdef HAVE_BLUETOOTH	if(src == NULL)		src = BDADDR_ANY;	btobex_prepare_listen(self, src, channel);	return obex_transport_listen(self);#else	return -ESOCKTNOSUPPORT;#endif /* HAVE_BLUETOOTH */}/** *  BtOBEX_TransportConnect - Connect Bluetooth transport *  @self: OBEX handle *  @service: IrIAS service name to connect to **FIXME** * *  An easier connect function to use for Bluetooth (Bluetooth OBEX) only.  */int BtOBEX_TransportConnect(obex_t *self, bdaddr_t *src, bdaddr_t *dst, uint8_t channel){	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);	if (self->object)	{		DEBUG(1, "We are busy.\n");		return -EBUSY;	}	obex_return_val_if_fail(dst != NULL, -1);#ifdef HAVE_BLUETOOTH	if(src == NULL)		src = BDADDR_ANY;	btobex_prepare_connect(self, src, dst, channel);	return obex_transport_connect_request(self);#else	return -ESOCKTNOSUPPORT;#endif /* HAVE_BLUETOOTH */}/* * FdOBEX_TransportSetup - setup descriptors for OBEX_TRANS_FD transport *  *  @self: OBEX handle *  @rfd: descriptor to read *  @wfd: descriptor to write *  @mtu: transport mtu: 0 - default */int FdOBEX_TransportSetup(obex_t *self, int rfd, int wfd, int mtu){	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);	if (self->object)	{		DEBUG(1, "We are busy.\n");		return -EBUSY;	}	self->fd = rfd;	self->writefd = wfd;	self->trans.mtu = mtu ? mtu : self->mtu_tx_max;	return obex_transport_connect_request(self);}/** *  OBEX_InterfaceConnect - Connect USB interface *  @self: OBEX handle *  @interface: USB interface to connect to * *  An easier connect function to connect to a discovered interface (currently *  USB OBEX only).  */int OBEX_InterfaceConnect(obex_t *self, obex_interface_t *interface){	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);	if (self->object) {		DEBUG(1, "We are busy.\n");		return -EBUSY;	}	obex_return_val_if_fail(interface != NULL, -1);	switch (self->trans.type) {	case OBEX_TRANS_USB:		obex_return_val_if_fail(interface->usb.interface != NULL, -1);#ifdef HAVE_USB		usbobex_prepare_connect(self, interface->usb.interface);		return obex_transport_connect_request(self);#else		return -ESOCKTNOSUPPORT;#endif /* HAVE_USB */	default:		return -ESOCKTNOSUPPORT;	}}/** *  OBEX_FindInterfaces - Get a list of OBEX interfaces on the system *  @self: OBEX handle *  @interfaces: A list of OBEX interfaces * *  Gets a list of OBEX interfaces, or NULL if there are none. */int OBEX_FindInterfaces(obex_t *self, obex_interface_t **interfaces){	DEBUG(4, "\n");	obex_return_val_if_fail(self != NULL, -1);		OBEX_FreeInterfaces(self);	switch (self->trans.type) {	case OBEX_TRANS_USB:#ifdef HAVE_USB		self->interfaces_number = usbobex_find_interfaces(&self->interfaces);#endif		break;	default:		break;	}	if (interfaces)		*interfaces = self->interfaces;	return self->interfaces_number;}/** *  OBEX_FreeInterfaces - free memory allocated to OBEX interface structures *  @self: OBEX handle * *  Frees memory allocated to OBEX interface structures after it has been  *  allocated by OBEX_FindInterfaces. */void OBEX_FreeInterfaces(obex_t *self){	DEBUG(4, "\n");	obex_return_if_fail(self != NULL);		switch (self->trans.type) {	case OBEX_TRANS_USB:#ifdef HAVE_USB		usbobex_free_interfaces(self->interfaces_number, self->interfaces);		self->interfaces = NULL;#endif		break;	default:		break;	}	self->interfaces_number = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美日韩黄色大片| 在线观看不卡视频| 在线免费亚洲电影| 精品久久国产字幕高潮| 亚洲欧洲日韩av| 韩国av一区二区三区在线观看| 91一区二区在线| 久久久久久久久久久久久女国产乱| 亚洲一区二区不卡免费| 成人激情小说网站| 久久理论电影网| 日本aⅴ免费视频一区二区三区 | 欧美性色欧美a在线播放| 久久精品免费在线观看| 日本中文字幕一区二区有限公司| 99久久国产综合精品麻豆| 精品久久久久久综合日本欧美| 一区二区三区视频在线观看| 国产成a人亚洲精品| 精品国产免费人成电影在线观看四季 | 国产精品水嫩水嫩| 黑人巨大精品欧美黑白配亚洲| 欧美色大人视频| 亚洲精品乱码久久久久久久久| 91在线观看下载| 国产精品国产成人国产三级| 成人综合婷婷国产精品久久 | 中文字幕中文在线不卡住| 国内偷窥港台综合视频在线播放| 日韩欧美国产1| 蜜桃视频在线观看一区二区| 91精品午夜视频| 日韩精品电影一区亚洲| 91精品国产aⅴ一区二区| 蜜芽一区二区三区| 日韩欧美在线观看一区二区三区| 免费人成精品欧美精品| 91精品国产高清一区二区三区蜜臀| 日韩精品91亚洲二区在线观看| 这里是久久伊人| 韩国av一区二区三区四区| 欧美精品一区男女天堂| 国产91丝袜在线18| 亚洲视频免费在线观看| 色网站国产精品| 偷拍一区二区三区四区| 日韩精品一区二区三区在线播放| 国产在线看一区| 国产精品久久久久一区二区三区共| 成人少妇影院yyyy| 一区二区三区日韩欧美精品| 欧美一区午夜精品| 国产乱人伦精品一区二区在线观看 | 国产精品久久久久一区二区三区 | 国产成人精品网址| 中文字幕在线免费不卡| 欧美日韩1区2区| 国产一区二区在线观看视频| 最近中文字幕一区二区三区| 欧美日韩大陆一区二区| 精品无码三级在线观看视频 | 精品99一区二区| 99re热视频精品| 美女高潮久久久| 中文字幕制服丝袜一区二区三区| 欧美专区亚洲专区| 国产在线乱码一区二区三区| 亚洲一区视频在线| 久久久91精品国产一区二区精品 | 国产精品久久久久久久久晋中| 欧美亚洲丝袜传媒另类| 麻豆91精品91久久久的内涵| 日韩理论片一区二区| 91精品国产麻豆国产自产在线| 成人网在线播放| 日韩电影在线看| 亚洲男人都懂的| 久久先锋资源网| 欧美日本高清视频在线观看| 国产成人免费视| 日韩精品一二三| 亚洲同性gay激情无套| 久久夜色精品一区| 欧美喷水一区二区| 91麻豆国产福利在线观看| 精品一区二区综合| 午夜亚洲国产au精品一区二区| 国产丝袜在线精品| 日韩一本二本av| 欧美在线制服丝袜| 成人av电影免费在线播放| 国内精品免费**视频| 午夜精品久久一牛影视| 亚洲人成精品久久久久| 国产视频一区二区在线观看| 欧美一区二区三区视频在线观看 | 日韩二区三区在线观看| 亚洲日本va午夜在线电影| 国产精品视频观看| 久久综合九色综合欧美就去吻| 制服.丝袜.亚洲.中文.综合| 欧美日韩另类一区| 欧美体内she精视频| 在线视频国内自拍亚洲视频| 成人av电影在线观看| 不卡一区在线观看| 成人午夜短视频| 成人综合婷婷国产精品久久蜜臀| 国产精品一区二区免费不卡 | 免费成人在线视频观看| 丝袜美腿亚洲色图| 亚洲gay无套男同| 视频一区欧美精品| 看国产成人h片视频| 另类的小说在线视频另类成人小视频在线| 首页综合国产亚洲丝袜| 日韩黄色一级片| 蜜臀精品一区二区三区在线观看| 日韩经典中文字幕一区| 免费的国产精品| 国产一区二区伦理| 成人激情文学综合网| 91一区二区三区在线观看| 色妹子一区二区| 欧美视频中文字幕| 欧美一区二区在线免费播放 | 51精品视频一区二区三区| 欧美一区二区三区的| 日韩免费观看高清完整版| 2021中文字幕一区亚洲| 国产精品国产精品国产专区不蜜| 亚洲三级小视频| 一区二区三区在线观看视频| 日日夜夜免费精品| 国产剧情在线观看一区二区| 成人app网站| 欧美亚洲另类激情小说| 欧美一级xxx| 中文字幕av一区二区三区高| 一区二区免费视频| 久久精品国产一区二区三| 成人午夜av在线| 欧美性受极品xxxx喷水| 欧美不卡视频一区| 国产精品久久久久久久久快鸭| 亚洲国产精品久久艾草纯爱| 久久成人精品无人区| 99久久精品免费看国产免费软件| 欧美揉bbbbb揉bbbbb| 久久久久综合网| 一区二区三区产品免费精品久久75| 男男视频亚洲欧美| 成人h版在线观看| 6080国产精品一区二区| 国产精品电影一区二区三区| 美美哒免费高清在线观看视频一区二区| 国产一区二区网址| 欧美日韩美少妇| 国产精品久久久久一区二区三区 | 91丨porny丨国产| 日韩午夜中文字幕| 亚洲激情图片qvod| 成人深夜视频在线观看| 91精品国产免费| 亚洲精品中文字幕乱码三区| 极品尤物av久久免费看| 欧美三级日韩三级国产三级| 国产午夜精品福利| 免费久久99精品国产| 欧洲日韩一区二区三区| 欧美韩国一区二区| 国产一区在线精品| 欧美一卡二卡在线| 天堂成人国产精品一区| 欧美剧情片在线观看| 国产精品成人午夜| 国产一区二区不卡老阿姨| 91麻豆精品国产91久久久资源速度| 亚洲欧洲精品天堂一级| 国产成人免费视频精品含羞草妖精| 日韩欧美视频一区| 日本午夜精品视频在线观看 | 洋洋av久久久久久久一区| 丝袜美腿亚洲色图| 欧洲人成人精品| 亚洲精品视频在线观看免费| bt欧美亚洲午夜电影天堂| 精品国产1区二区| 麻豆91精品91久久久的内涵| 欧美久久久久久久久中文字幕| 亚洲欧美国产毛片在线| av电影一区二区| 中文字幕+乱码+中文字幕一区| 国产福利91精品一区二区三区| 欧美精品一区二区不卡| 精品一区二区三区在线观看| 欧美成人三级电影在线| 国产一区二区中文字幕| 国产亚洲精久久久久久| 懂色av中文字幕一区二区三区|