Return-Path: Date: Tue, 1 Aug 2006 17:13:53 +0200 (CEST) From: Peter Wippich To: bluez-devel@lists.sourceforge.net Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463794332-1958446172-1154445233=:2567" Subject: [Bluez-devel] Patch for rfcomm tty server ports Reply-To: BlueZ development List-Id: BlueZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bluez-devel-bounces@lists.sourceforge.net Errors-To: bluez-devel-bounces@lists.sourceforge.net This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463794332-1958446172-1154445233=:2567 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi all, this patch allows the use of tty server ports. If a rfcomm tty port is bound to BDADDR_ANY e.g. : rfcomm bind /dev/rfcomm0 00:00:00:00:00:00 1 it will start listening on the channel supplied once opened (and will stop listening when the port is closed...). This allows rfcomm ttys in server mode without the need for an additional user space daemon. The patch is against the linux-2.6.18.rc3 version of net/bluetooth/rfcomm/tty.c, but only tested on older versions (2.6.18.rc3 won't even compile for me :-(.. However, it is assumend to be stable also on this version and at least it compiles cleanly for 2.7.17.7. Any feedback welcome. Best regards, Peter | Peter Wippich Voice: +49 30 46776411 | | G&W Instruments GmbH fax: +49 30 46776419 | | Gustav-Meyer-Allee 25, Geb. 12 Email: pewi@gw-instruments.de | | D-13355 Berlin / Germany | ---1463794332-1958446172-1154445233=:2567 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=rfcomm_tty.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=rfcomm_tty.patch LS0tIGxpbnV4LTIuNi4xNy43L25ldC9ibHVldG9vdGgvcmZjb21tL3R0eS5j CTIwMDYtMDgtMDEgMTE6MzY6MTQuMDAwMDAwMDAwICswMjAwDQorKysgbGlu dXhfcGF0Y2gvbmV0L2JsdWV0b290aC9yZmNvbW0vdHR5LmMJMjAwNi0wOC0w MSAxNjoxNDo1NS4wMDAwMDAwMDAgKzAyMDANCkBAIC03NCw2ICs3NCwxMiBA QA0KIAlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgICB3YWtldXBfdGFzazsNCiAN CiAJYXRvbWljX3QgCQl3bWVtX2FsbG9jOw0KKw0KKwlzcGlubG9ja190CQls b2NrIDsNCisJc3RydWN0IHNvY2tldCAqCQlza2xpc3RlbiA7DQorCXN0cnVj dCBjb21wbGV0aW9uIAljb21wbGV0ZSA7IAkNCisJaW50CQkJbGlzdGVuX3Ro cmVhZCA7DQorDQogfTsNCiANCiBzdGF0aWMgTElTVF9IRUFEKHJmY29tbV9k ZXZfbGlzdCk7DQpAQCAtODQsNiArOTAsMTE3IEBADQogc3RhdGljIHZvaWQg cmZjb21tX2Rldl9tb2RlbV9zdGF0dXMoc3RydWN0IHJmY29tbV9kbGMgKmRs YywgdTggdjI0X3NpZyk7DQogDQogc3RhdGljIHZvaWQgcmZjb21tX3R0eV93 YWtldXAodW5zaWduZWQgbG9uZyBhcmcpOw0KK3N0YXRpYyBpbnQgcmZjb21t X2Rldl9zZXRfZGxjKHN0cnVjdCByZmNvbW1fZGV2ICpkZXYsIHN0cnVjdCBy ZmNvbW1fZGxjICpkbGMpIDsNCisNCisvKiByZmNvbW0gbGlzdGVuZXIgdGhy ZWFkICovIA0KK3N0YXRpYyBpbnQgcmZjb21tX2Rldl9saXN0ZW5fdGhyZWFk KHZvaWQgKmRhdGEpDQorew0KKwlzdHJ1Y3QgcmZjb21tX2RldiAqZGV2ID0g KHN0cnVjdCByZmNvbW1fZGV2ICopIGRhdGE7DQorCXN0cnVjdCBzb2NrZXQg Km5zayA7DQorCXN0cnVjdCByZmNvbW1fZGxjICpkbGM7DQorCWludCBlcnIg Ow0KKw0KKwlCVF9EQkcoInRocmVhZCBzdGFydGVkIikgOyANCisNCisJZGFl bW9uaXplKCJyZmNsaXN0ZW4lZCIsIGRldi0+Y2hhbm5lbCkgOw0KKwlhbGxv d19zaWduYWwoU0lHVEVSTSkgOw0KKw0KKw0KKwl3aGlsZSgxKQ0KKwl7DQor CQllcnIgPSBzb2NrX2NyZWF0ZV9rZXJuKFBGX0JMVUVUT09USCwgU09DS19T VFJFQU0sIEJUUFJPVE9fUkZDT01NLCAmbnNrKTsNCisJCWlmKGVycikJew0K KwkJCUJUX0RCRygibmV3IHNvY2tldCBmb3IgYWNjZXB0IGNyZWF0ZSBmYWls ZWQiKSA7IA0KKwkJCWJyZWFrIDsgDQorCQl9DQorCQkvKiBjbG9uZSBzb2Nr ZXQgb3BzICovDQorCQluc2stPnR5cGUgPSBkZXYtPnNrbGlzdGVuLT50eXBl Ow0KKwkJbnNrLT5vcHMgID0gZGV2LT5za2xpc3Rlbi0+b3BzOw0KKw0KKwkJ LyogYWNjZXB0IHdpbGwgd2FpdCBmb3IgdXMgKi8gDQorCQllcnIgPSBkZXYt PnNrbGlzdGVuLT5vcHMtPmFjY2VwdChkZXYtPnNrbGlzdGVuLCBuc2ssIDAp IDsNCisJCUJUX0RCRygiYWNjZXB0IHJldHVybmVkICVkIiwgZXJyKSA7IA0K KwkJaWYoZXJyIDwgMCl7DQorCQkJYnJlYWsgOw0KKwkJfQ0KKw0KKwkJLyog U29ja2V0IG11c3QgYmUgY29ubmVjdGVkIG5vdyAqLw0KKwkJaWYgKG5zay0+ c2stPnNrX3N0YXRlICE9IEJUX0NPTk5FQ1RFRCkgew0KKwkJCWVyciA9ICAt RUJBREZEOw0KKwkJCWJyZWFrIDsNCisJCX0NCisJDQorCQlkbGMgPSByZmNv bW1fcGkobnNrLT5zayktPmRsYzsNCisJCXJmY29tbV9kbGNfaG9sZChkbGMp Ow0KKwkJcmZjb21tX2Rldl9zZXRfZGxjKGRldiwgZGxjKSA7DQorCQluc2st PnNrLT5za19zdGF0ZSA9IEJUX0NMT1NFRCA7DQorCQkvKiBhY2NlcHQgY29u bmVjdGlvbiBoYXMgaW5jcmVtZW50ZWQgdGhlIG1vZHVsZSB1c2FnZSBjb3Vu dC4NCisJCSAgIFNvIGJyaW5nIGl0IGRvd24gYWdhaW4gKi8gDQorCQltb2R1 bGVfcHV0KG5zay0+b3BzLT5vd25lcikgOyAJCQ0KKw0KKwkJLyogbm93IG9w ZW4gdGhlIGRsYyBhbmQgZ28gYXdheSAuLi4uLg0KKwkJKi8NCisJCWVyciA9 IHJmY29tbV9kbGNfb3BlbihkbGMsICZidF9zayhuc2stPnNrKS0+c3JjLCAm YnRfc2sobnNrLT5zayktPmRzdCwgZGV2LT5jaGFubmVsKSA7ICAJCQ0KKwkJ YnJlYWsgOyANCisJCQ0KKwl9DQorDQorCUJUX0RCRygidGhyZWFkIGV4aXQi KSA7DQorDQorCXNvY2tfcmVsZWFzZShkZXYtPnNrbGlzdGVuKSA7DQorCWRl di0+c2tsaXN0ZW4gPSBOVUxMIDsgDQorCWlmKG5zaykgc29ja19yZWxlYXNl KG5zaykgOw0KKwlkZXYtPmxpc3Rlbl90aHJlYWQgPSAwIDsgDQorCWNvbXBs ZXRlX2FuZF9leGl0KCZkZXYtPmNvbXBsZXRlLCBlcnIpIDsgDQorfQ0KKw0K K3N0YXRpYyBpbnQgcmZjb21tX2Rldl9zdGFydF9saXN0ZW5lcihzdHJ1Y3Qg cmZjb21tX2RldiAqZGV2KQ0KK3sNCisJaW50IGVycjsNCisJc3RydWN0IHNv Y2tldCAqc29jayA7IA0KKwlzdHJ1Y3Qgc29ja2FkZHJfcmMgYWRkcjsNCisN CisJQlRfREJHKCJjcmVhdGUgbGlzdGVuZXIiKSA7IA0KKw0KKwllcnIgPSBz b2NrX2NyZWF0ZV9rZXJuKFBGX0JMVUVUT09USCwgU09DS19TVFJFQU0sIEJU UFJPVE9fUkZDT01NLCAmc29jayk7DQorDQorCWlmKGVycikJew0KKwkJQlRf REJHKCJzb2NrZXQgY3JlYXRpb24gZmFpbGVkIikgOyANCisJCXJldHVybiBl cnIgOyANCisJfQ0KKw0KKwkvKiAgYmluZCBzb2NrZXQgKi8NCisJYmFjcHko JmFkZHIucmNfYmRhZGRyLCBCREFERFJfQU5ZKTsNCisJYWRkci5yY19mYW1p bHkgPSBBRl9CTFVFVE9PVEg7DQorCWFkZHIucmNfY2hhbm5lbCA9IGRldi0+ Y2hhbm5lbCA7DQorDQorCWVyciA9IHNvY2stPm9wcy0+YmluZChzb2NrLCAo c3RydWN0IHNvY2thZGRyICopICZhZGRyLCBzaXplb2YoYWRkcikpOw0KKwlp ZiAoZXJyIDwgMCkgew0KKwkJQlRfREJHKCJzb2NrZXQgYmluZCBmYWlsZWQg JWQiLCBlcnIpOw0KKwkJc29ja19yZWxlYXNlKHNvY2spOw0KKwkJcmV0dXJu IGVyciA7IA0KKwl9DQorDQorCS8qIFN0YXJ0IGxpc3RlbmluZyBvbiB0aGUg c29ja2V0ICovDQorCWVyciA9IHNvY2stPm9wcy0+bGlzdGVuKHNvY2ssIDEw KTsNCisJaWYgKGVycikgew0KKwkJQlRfREJHKCJsaXN0ZW4gZmFpbGVkICVk IiwgZXJyKTsNCisJCXNvY2tfcmVsZWFzZShzb2NrKTsNCisJCXJldHVybiBl cnIgOyANCisJfQ0KKw0KKwlkZXYtPnNrbGlzdGVuID0gc29jayA7DQorCWlu aXRfY29tcGxldGlvbigmZGV2LT5jb21wbGV0ZSkgOw0KKwkNCisJZGV2LT5s aXN0ZW5fdGhyZWFkID0ga2VybmVsX3RocmVhZChyZmNvbW1fZGV2X2xpc3Rl bl90aHJlYWQsICh2b2lkICopIGRldiwgQ0xPTkVfS0VSTkVMKSA7DQorCWlm KCFkZXYtPmxpc3Rlbl90aHJlYWQpIHsNCisJCXNvY2tfcmVsZWFzZShzb2Nr KSA7DQorCQlyZXR1cm4gLUVJTyA7DQorCX0NCisNCisJcmV0dXJuIDAgOwkN Cit9DQorDQogDQogLyogLS0tLSBEZXZpY2UgZnVuY3Rpb25zIC0tLS0gKi8N CiBzdGF0aWMgdm9pZCByZmNvbW1fZGV2X2Rlc3RydWN0KHN0cnVjdCByZmNv bW1fZGV2ICpkZXYpDQpAQCAtOTIsMTMgKzIwOSwxNSBAQA0KIA0KIAlCVF9E QkcoImRldiAlcCBkbGMgJXAiLCBkZXYsIGRsYyk7DQogDQotCXJmY29tbV9k bGNfbG9jayhkbGMpOw0KLQkvKiBEZXRhY2ggRExDIGlmIGl0J3Mgb3duZWQg YnkgdGhpcyBkZXYgKi8NCi0JaWYgKGRsYy0+b3duZXIgPT0gZGV2KQ0KLQkJ ZGxjLT5vd25lciA9IE5VTEw7DQotCXJmY29tbV9kbGNfdW5sb2NrKGRsYyk7 DQorCWlmKGRsYykgew0KKwkJcmZjb21tX2RsY19sb2NrKGRsYyk7DQorCQkv KiBEZXRhY2ggRExDIGlmIGl0J3Mgb3duZWQgYnkgdGhpcyBkZXYgKi8NCisJ CWlmIChkbGMtPm93bmVyID09IGRldikNCisJCQlkbGMtPm93bmVyID0gTlVM TDsNCisJCXJmY29tbV9kbGNfdW5sb2NrKGRsYyk7DQogDQotCXJmY29tbV9k bGNfcHV0KGRsYyk7DQorCQlyZmNvbW1fZGxjX3B1dChkbGMpOw0KKwl9DQog DQogCXR0eV91bnJlZ2lzdGVyX2RldmljZShyZmNvbW1fdHR5X2RyaXZlciwg ZGV2LT5pZCk7DQogDQpAQCAtMTYxLDcgKzI4MCwyMSBAQA0KIAlyZXR1cm4g ZGV2Ow0KIH0NCiANCi1zdGF0aWMgaW50IHJmY29tbV9kZXZfYWRkKHN0cnVj dCByZmNvbW1fZGV2X3JlcSAqcmVxLCBzdHJ1Y3QgcmZjb21tX2RsYyAqZGxj KQ0KK3N0YXRpYyBpbnQgcmZjb21tX2Rldl9zZXRfZGxjKHN0cnVjdCByZmNv bW1fZGV2ICpkZXYsIHN0cnVjdCByZmNvbW1fZGxjICpkbGMpDQorew0KKwly ZmNvbW1fZGxjX2xvY2soZGxjKTsNCisJZGxjLT5kYXRhX3JlYWR5ICAgPSBy ZmNvbW1fZGV2X2RhdGFfcmVhZHk7DQorCWRsYy0+c3RhdGVfY2hhbmdlID0g cmZjb21tX2Rldl9zdGF0ZV9jaGFuZ2U7DQorCWRsYy0+bW9kZW1fc3RhdHVz ID0gcmZjb21tX2Rldl9tb2RlbV9zdGF0dXM7DQorDQorCWRsYy0+b3duZXIg PSBkZXY7DQorCWRldi0+ZGxjICAgPSBkbGM7DQorCXJmY29tbV9kbGNfdW5s b2NrKGRsYyk7DQorDQorCXJldHVybiAwIDsgDQorfQ0KKw0KK3N0YXRpYyBp bnQgcmZjb21tX2Rldl9hZGQoc3RydWN0IHJmY29tbV9kZXZfcmVxICpyZXEp DQogew0KIAlzdHJ1Y3QgcmZjb21tX2RldiAqZGV2Ow0KIAlzdHJ1Y3QgbGlz dF9oZWFkICpoZWFkID0gJnJmY29tbV9kZXZfbGlzdCwgKnA7DQpAQCAtMTcz LDYgKzMwNiw3IEBADQogCWlmICghZGV2KQ0KIAkJcmV0dXJuIC1FTk9NRU07 DQogDQorCXNwaW5fbG9ja19pbml0KCZkZXYtPmxvY2spIDsgDQogCXdyaXRl X2xvY2tfYmgoJnJmY29tbV9kZXZfbG9jayk7DQogDQogCWlmIChyZXEtPmRl dl9pZCA8IDApIHsNCkBAIC0yMjMsMTUgKzM1Nyw2IEBADQogCWluaXRfd2Fp dHF1ZXVlX2hlYWQoJmRldi0+d2FpdCk7DQogCXRhc2tsZXRfaW5pdCgmZGV2 LT53YWtldXBfdGFzaywgcmZjb21tX3R0eV93YWtldXAsICh1bnNpZ25lZCBs b25nKSBkZXYpOw0KIA0KLQlyZmNvbW1fZGxjX2xvY2soZGxjKTsNCi0JZGxj LT5kYXRhX3JlYWR5ICAgPSByZmNvbW1fZGV2X2RhdGFfcmVhZHk7DQotCWRs Yy0+c3RhdGVfY2hhbmdlID0gcmZjb21tX2Rldl9zdGF0ZV9jaGFuZ2U7DQot CWRsYy0+bW9kZW1fc3RhdHVzID0gcmZjb21tX2Rldl9tb2RlbV9zdGF0dXM7 DQotDQotCWRsYy0+b3duZXIgPSBkZXY7DQotCWRldi0+ZGxjICAgPSBkbGM7 DQotCXJmY29tbV9kbGNfdW5sb2NrKGRsYyk7DQotDQogCS8qIEl0J3Mgc2Fm ZSB0byBjYWxsIF9fbW9kdWxlX2dldCgpIGhlcmUgYmVjYXVzZSBzb2NrZXQg YWxyZWFkeSANCiAJICAgaG9sZHMgcmVmZXJlbmNlIHRvIHRoaXMgbW9kdWxl LiAqLw0KIAlfX21vZHVsZV9nZXQoVEhJU19NT0RVTEUpOw0KQEAgLTMyMywx NyArNDQ4LDIzIEBADQogCQlkbGMgPSByZmNvbW1fcGkoc2spLT5kbGM7DQog CQlyZmNvbW1fZGxjX2hvbGQoZGxjKTsNCiAJfSBlbHNlIHsNCi0JCWRsYyA9 IHJmY29tbV9kbGNfYWxsb2MoR0ZQX0tFUk5FTCk7DQotCQlpZiAoIWRsYykN Ci0JCQlyZXR1cm4gLUVOT01FTTsNCisgICAgICAgIAlpZiggYmFjbXAoJnJl cS5kc3QsIEJEQUREUl9BTlkpICkgew0KKwkJCWRsYyA9IHJmY29tbV9kbGNf YWxsb2MoR0ZQX0tFUk5FTCk7DQorCQkJaWYgKCFkbGMpDQorCQkJCXJldHVy biAtRU5PTUVNOw0KKwkgICAgICAgIH0gZWxzZSB7DQorCQkJZGxjID0gTlVM TCA7DQorCQl9CQkNCiAJfQ0KIA0KLQlpZCA9IHJmY29tbV9kZXZfYWRkKCZy ZXEsIGRsYyk7DQorCWlkID0gcmZjb21tX2Rldl9hZGQoJnJlcSk7DQogCWlm IChpZCA8IDApIHsNCi0JCXJmY29tbV9kbGNfcHV0KGRsYyk7DQorCQlpZihk bGMpIHJmY29tbV9kbGNfcHV0KGRsYyk7DQogCQlyZXR1cm4gaWQ7DQogCX0N CiANCisJaWYoZGxjKSByZmNvbW1fZGV2X3NldF9kbGMoX19yZmNvbW1fZGV2 X2dldChpZCksIGRsYykgOw0KKw0KIAlpZiAocmVxLmZsYWdzICYgKDEgPDwg UkZDT01NX1JFVVNFX0RMQykpIHsNCiAJCS8qIERMQyBpcyBub3cgdXNlZCBi eSBkZXZpY2UuDQogCQkgKiBTb2NrZXQgbXVzdCBiZSBkaXNjb25uZWN0ZWQg Ki8NCkBAIC0zOTgsNyArNTI5LDE2IEBADQogCQlzdHJ1Y3QgcmZjb21tX2Rl diAqZGV2ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgcmZjb21tX2RldiwgbGlz dCk7DQogCQkoZGkgKyBuKS0+aWQgICAgICA9IGRldi0+aWQ7DQogCQkoZGkg KyBuKS0+ZmxhZ3MgICA9IGRldi0+ZmxhZ3M7DQotCQkoZGkgKyBuKS0+c3Rh dGUgICA9IGRldi0+ZGxjLT5zdGF0ZTsNCisNCisJCWlmKGRldi0+ZGxjKSB7 DQorCQkJKGRpICsgbiktPnN0YXRlICA9IGRldi0+ZGxjLT5zdGF0ZTsNCisJ CX0gZWxzZSB7DQorCQkJaWYoZGV2LT5saXN0ZW5fdGhyZWFkKQ0KKwkJCQko ZGkgKyBuKS0+c3RhdGUgID0gQlRfTElTVEVOIDsNCisJCQllbHNlDQorCQkJ CShkaSArIG4pLT5zdGF0ZSAgPSBCVF9PUEVOIDsNCisJCX0NCisNCiAJCShk aSArIG4pLT5jaGFubmVsID0gZGV2LT5jaGFubmVsOw0KIAkJYmFjcHkoJihk aSArIG4pLT5zcmMsICZkZXYtPnNyYyk7DQogCQliYWNweSgmKGRpICsgbikt PmRzdCwgJmRldi0+ZHN0KTsNCkBAIC00MzMsNyArNTczLDE2IEBADQogDQog CWRpLmZsYWdzICAgPSBkZXYtPmZsYWdzOw0KIAlkaS5jaGFubmVsID0gZGV2 LT5jaGFubmVsOw0KLQlkaS5zdGF0ZSAgID0gZGV2LT5kbGMtPnN0YXRlOw0K Kw0KKwlpZihkZXYtPmRsYykgew0KKwkJZGkuc3RhdGUgPSBkZXYtPmRsYy0+ c3RhdGU7DQorCX0gZWxzZSB7DQorCQlpZihkZXYtPmxpc3Rlbl90aHJlYWQp DQorCQkJZGkuc3RhdGUgID0gQlRfTElTVEVOIDsNCisJCWVsc2UNCisJCQlk aS5zdGF0ZSAgPSBCVF9PUEVOIDsNCisJfQ0KKw0KIAliYWNweSgmZGkuc3Jj LCAmZGV2LT5zcmMpOw0KIAliYWNweSgmZGkuZHN0LCAmZGV2LT5kc3QpOw0K IA0KQEAgLTQ5NiwyMCArNjQ1LDM5IEBADQogCXdha2VfdXBfaW50ZXJydXB0 aWJsZSgmZGV2LT53YWl0KTsNCiANCiAJaWYgKGRsYy0+c3RhdGUgPT0gQlRf Q0xPU0VEKSB7DQotCQlpZiAoIWRldi0+dHR5KSB7DQotCQkJaWYgKHRlc3Rf Yml0KFJGQ09NTV9SRUxFQVNFX09OSFVQLCAmZGV2LT5mbGFncykpIHsNCi0J CQkJcmZjb21tX2Rldl9ob2xkKGRldik7DQotCQkJCXJmY29tbV9kZXZfZGVs KGRldik7DQotDQotCQkJCS8qIFdlIGhhdmUgdG8gZHJvcCBETEMgbG9jayBo ZXJlLCBvdGhlcndpc2UNCi0JCQkJICAgcmZjb21tX2Rldl9wdXQoKSB3aWxs IGRlYWQgbG9jayBpZiBpdCdzDQotCQkJCSAgIHRoZSBsYXN0IHJlZmVyZW5j ZS4gKi8NCi0JCQkJcmZjb21tX2RsY191bmxvY2soZGxjKTsNCi0JCQkJcmZj b21tX2Rldl9wdXQoZGV2KTsNCi0JCQkJcmZjb21tX2RsY19sb2NrKGRsYyk7 DQotCQkJfQ0KLQkJfSBlbHNlIA0KLQkJCXR0eV9oYW5ndXAoZGV2LT50dHkp Ow0KKwkJLyogaGFuZGxlIHNlcnZlciBwb3J0cyAqLw0KKwkJaWYgKCAhYmFj bXAoJmRldi0+ZHN0LCBCREFERFJfQU5ZKSApIHsNCisNCisJCQkvKiBEZXRh Y2ggRExDIGlmIGl0J3Mgb3duZWQgYnkgdGhpcyBkZXYNCisJCQkgKiBOb3Rl OiBnZXQgaGVyZSB3aXRoIERMQyBsb2NrZWQgISEgDQorCQkJICovDQorCQkJ aWYgKGRsYy0+b3duZXIgPT0gZGV2KQ0KKwkJCQlkbGMtPm93bmVyID0gTlVM TDsNCisJCQlyZmNvbW1fZGxjX3VubG9jayhkbGMpOw0KKwkJCXJmY29tbV9k bGNfcHV0KGRsYykgOw0KKwkJCWRldi0+ZGxjID0gTlVMTCA7DQorCQkJcmZj b21tX2RsY19sb2NrKGRsYykgOyANCisNCisJCQkvKiByZXN0YXJ0IGxpc3Rl bmVyIHRocmVhZCBpZiB0dHkgc3RpbGwgb3BlbiAqLw0KKwkJCS8qIFhYWCB3 aGF0IGlmIHRoaXMgZmFpbHMgPz8/ICovIA0KKwkJCWlmKGRldi0+dHR5KQ0K KwkJCQlyZmNvbW1fZGV2X3N0YXJ0X2xpc3RlbmVyKGRldikgOw0KKwkJfSBl bHNlIHsNCisJCSAJaWYgKCFkZXYtPnR0eSkgew0KKwkJCQlpZiAodGVzdF9i aXQoUkZDT01NX1JFTEVBU0VfT05IVVAsICZkZXYtPmZsYWdzKSkgew0KKwkJ CQkJcmZjb21tX2Rldl9ob2xkKGRldik7DQorCQkJCQlyZmNvbW1fZGV2X2Rl bChkZXYpOw0KKw0KKwkJCQkJLyogV2UgaGF2ZSB0byBkcm9wIERMQyBsb2Nr IGhlcmUsIG90aGVyd2lzZQ0KKwkJCQkJICAgcmZjb21tX2Rldl9wdXQoKSB3 aWxsIGRlYWQgbG9jayBpZiBpdCdzDQorCQkJCQkgICB0aGUgbGFzdCByZWZl cmVuY2UuICovDQorCQkJCQlyZmNvbW1fZGxjX3VubG9jayhkbGMpOw0KKwkJ CQkJcmZjb21tX2Rldl9wdXQoZGV2KTsNCisJCQkJCXJmY29tbV9kbGNfbG9j ayhkbGMpOw0KKwkJCQl9DQorCQkJfSBlbHNlIA0KKwkJCQl0dHlfaGFuZ3Vw KGRldi0+dHR5KTsNCisJCX0NCiAJfQ0KIH0NCiANCkBAIC01ODAsMTIgKzc0 OCwxNiBAQA0KIA0KIAkvKiBBdHRhY2ggVFRZIGFuZCBvcGVuIERMQyAqLw0K IA0KLQlyZmNvbW1fZGxjX2xvY2soZGxjKTsNCisJc3Bpbl9sb2NrKCZkZXYt PmxvY2spOw0KIAl0dHktPmRyaXZlcl9kYXRhID0gZGV2Ow0KIAlkZXYtPnR0 eSA9IHR0eTsNCi0JcmZjb21tX2RsY191bmxvY2soZGxjKTsNCisJc3Bpbl91 bmxvY2soJmRldi0+bG9jayk7DQogCXNldF9iaXQoUkZDT01NX1RUWV9BVFRB Q0hFRCwgJmRldi0+ZmxhZ3MpOw0KIA0KKwlpZighZGxjKSB7DQorCQlyZXR1 cm4gcmZjb21tX2Rldl9zdGFydF9saXN0ZW5lcihkZXYpIDsNCisJfQ0KKw0K IAllcnIgPSByZmNvbW1fZGxjX29wZW4oZGxjLCAmZGV2LT5zcmMsICZkZXYt PmRzdCwgZGV2LT5jaGFubmVsKTsNCiAJaWYgKGVyciA8IDApDQogCQlyZXR1 cm4gZXJyOw0KQEAgLTYyNiwxNSArNzk4LDIxIEBADQogDQogCWlmICgtLWRl di0+b3BlbmVkID09IDApIHsNCiAJCS8qIENsb3NlIERMQyBhbmQgZGV0dGFj aCBUVFkgKi8NCi0JCXJmY29tbV9kbGNfY2xvc2UoZGV2LT5kbGMsIDApOw0K KwkJaWYoZGV2LT5kbGMpIA0KKwkJCXJmY29tbV9kbGNfY2xvc2UoZGV2LT5k bGMsIDApOw0KIA0KIAkJY2xlYXJfYml0KFJGQ09NTV9UVFlfQVRUQUNIRUQs ICZkZXYtPmZsYWdzKTsNCiAJCXRhc2tsZXRfa2lsbCgmZGV2LT53YWtldXBf dGFzayk7DQogDQotCQlyZmNvbW1fZGxjX2xvY2soZGV2LT5kbGMpOw0KKwkJ aWYoZGV2LT5saXN0ZW5fdGhyZWFkKSB7DQorCQkJa2lsbF9wcm9jKGRldi0+ bGlzdGVuX3RocmVhZCwgU0lHVEVSTSwgMSkgOw0KKwkJCXdhaXRfZm9yX2Nv bXBsZXRpb24oJmRldi0+Y29tcGxldGUpIDsNCisJCX0gDQorDQorCQlzcGlu X2xvY2soJmRldi0+bG9jayk7DQogCQl0dHktPmRyaXZlcl9kYXRhID0gTlVM TDsNCiAJCWRldi0+dHR5ID0gTlVMTDsNCi0JCXJmY29tbV9kbGNfdW5sb2Nr KGRldi0+ZGxjKTsNCisJCXNwaW5fdW5sb2NrKCZkZXYtPmxvY2spOw0KIAl9 DQogDQogCXJmY29tbV9kZXZfcHV0KGRldik7DQpAQCAtNjQ5LDYgKzgyNywx MiBAQA0KIA0KIAlCVF9EQkcoInR0eSAlcCBjb3VudCAlZCIsIHR0eSwgY291 bnQpOw0KIA0KKwkvKiBmb3Igbm93IHdlIGNsYWltIGV2ZXJ5dGhpbmcgd3Jp dHRlbiB3aGVuIHdlIGRvbid0IGhhdmUgYSBjb25uZWN0aW9uIA0KKwkgKiB3 ZSBtYXkgYWxzbyB0cnkgdG8gY29ubmVjdCBvciByZXR1cm4gMCB3cml0dGVu IHdoaWNoIHdvdWxkIGVtdWxhdGUgYQ0KKwkgKiBhIHNlcmlhbCBwb3J0IHdp dGggaGFyZHdhcmUgaGFuc2hha2UgYW5kIGNhYmxlIHJlbW92ZWQNCisJICov DQorCWlmKCFkZXYtPmRsYyB8fCAoZGV2LT5kbGMtPnN0YXRlICE9IEJUX0NP Tk5FQ1RFRCkgKSByZXR1cm4gY291bnQgOw0KKw0KIAl3aGlsZSAoY291bnQp IHsNCiAJCXNpemUgPSBtaW5fdCh1aW50LCBjb3VudCwgZGxjLT5tdHUpOw0K IA0KQEAgLTY4MCw2ICs4NjQsOCBAQA0KIA0KIAlCVF9EQkcoInR0eSAlcCIs IHR0eSk7DQogDQorCWlmKCFkZXYtPmRsYyB8fCAoZGV2LT5kbGMtPnN0YXRl ICE9IEJUX0NPTk5FQ1RFRCkgKSByZXR1cm4gMCA7DQorDQogCXJvb20gPSBy ZmNvbW1fcm9vbShkZXYtPmRsYykgLSBhdG9taWNfcmVhZCgmZGV2LT53bWVt X2FsbG9jKTsNCiAJaWYgKHJvb20gPCAwKQ0KIAkJcm9vbSA9IDA7DQpAQCAt ODY2LDEwICsxMDUyLDEyIEBADQogCQ0KIAl9DQogDQotCWlmIChjaGFuZ2Vz KQ0KLQkJcmZjb21tX3NlbmRfcnBuKGRldi0+ZGxjLT5zZXNzaW9uLCAxLCBk ZXYtPmRsYy0+ZGxjaSwgYmF1ZCwNCi0JCQkJZGF0YV9iaXRzLCBzdG9wX2Jp dHMsIHBhcml0eSwNCi0JCQkJUkZDT01NX1JQTl9GTE9XX05PTkUsIHhfb24s IHhfb2ZmLCBjaGFuZ2VzKTsNCisJaWYgKGNoYW5nZXMpIHsNCisJCWlmKCBk ZXYtPmRsYyAmJiAoZGV2LT5kbGMtPnN0YXRlID09IEJUX0NPTk5FQ1RFRCkp DQorCQkJcmZjb21tX3NlbmRfcnBuKGRldi0+ZGxjLT5zZXNzaW9uLCAxLCBk ZXYtPmRsYy0+ZGxjaSwgYmF1ZCwNCisJCQkJCWRhdGFfYml0cywgc3RvcF9i aXRzLCBwYXJpdHksDQorCQkJCQlSRkNPTU1fUlBOX0ZMT1dfTk9ORSwgeF9v biwgeF9vZmYsIGNoYW5nZXMpOw0KKwl9DQogDQogCXJldHVybjsNCiB9DQpA QCAtODgwLDcgKzEwNjgsOCBAQA0KIA0KIAlCVF9EQkcoInR0eSAlcCBkZXYg JXAiLCB0dHksIGRldik7DQogDQotCXJmY29tbV9kbGNfdGhyb3R0bGUoZGV2 LT5kbGMpOw0KKwlpZiggZGV2LT5kbGMgJiYgKGRldi0+ZGxjLT5zdGF0ZSA9 PSBCVF9DT05ORUNURUQpKQ0KKwkJcmZjb21tX2RsY190aHJvdHRsZShkZXYt PmRsYyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHJmY29tbV90dHlfdW50aHJv dHRsZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQ0KQEAgLTg4OSw3ICsxMDc4 LDggQEANCiANCiAJQlRfREJHKCJ0dHkgJXAgZGV2ICVwIiwgdHR5LCBkZXYp Ow0KIA0KLQlyZmNvbW1fZGxjX3VudGhyb3R0bGUoZGV2LT5kbGMpOw0KKwlp ZiggZGV2LT5kbGMgJiYgKGRldi0+ZGxjLT5zdGF0ZSA9PSBCVF9DT05ORUNU RUQpICkNCisJCXJmY29tbV9kbGNfdW50aHJvdHRsZShkZXYtPmRsYyk7DQog fQ0KIA0KIHN0YXRpYyBpbnQgcmZjb21tX3R0eV9jaGFyc19pbl9idWZmZXIo c3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkNCkBAIC04OTksOCArMTA4OSwxMCBA QA0KIA0KIAlCVF9EQkcoInR0eSAlcCBkZXYgJXAiLCB0dHksIGRldik7DQog DQotCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZkbGMtPnR4X3F1ZXVlKSkNCi0J CXJldHVybiBkbGMtPm10dTsNCisJaWYoIGRldi0+ZGxjICYmIChkZXYtPmRs Yy0+c3RhdGUgPT0gQlRfQ09OTkVDVEVEKSApew0KKwkJaWYgKCFza2JfcXVl dWVfZW1wdHkoJmRsYy0+dHhfcXVldWUpKQ0KKwkJCXJldHVybiBkbGMtPm10 dTsNCisJfQ0KIA0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtOTEzLDcgKzExMDUs OCBAQA0KIA0KIAlCVF9EQkcoInR0eSAlcCBkZXYgJXAiLCB0dHksIGRldik7 DQogDQotCXNrYl9xdWV1ZV9wdXJnZSgmZGV2LT5kbGMtPnR4X3F1ZXVlKTsN CisJaWYoIGRldi0+ZGxjICYmIChkZXYtPmRsYy0+c3RhdGUgPT0gQlRfQ09O TkVDVEVEKSApDQorCQlza2JfcXVldWVfcHVyZ2UoJmRldi0+ZGxjLT50eF9x dWV1ZSk7DQogDQogCWlmICh0ZXN0X2JpdChUVFlfRE9fV1JJVEVfV0FLRVVQ LCAmdHR5LT5mbGFncykgJiYgdHR5LT5sZGlzYy53cml0ZV93YWtldXApDQog CQl0dHktPmxkaXNjLndyaXRlX3dha2V1cCh0dHkpOw0KQEAgLTk2NSw2ICsx MTU4LDggQEANCiANCiAJQlRfREJHKCJ0dHkgJXAgZGV2ICVwIHNldCAweCUw MnggY2xlYXIgMHglMDJ4IiwgdHR5LCBkZXYsIHNldCwgY2xlYXIpOw0KIA0K KwlpZighZGV2LT5kbGMgfHwgKGRldi0+ZGxjLT5zdGF0ZSAhPSBCVF9DT05O RUNURUQpIHJldHVybiAwIDsgDQorDQogCXJmY29tbV9kbGNfZ2V0X21vZGVt X3N0YXR1cyhkbGMsICZ2MjRfc2lnKTsNCiANCiAJaWYgKHNldCAmIFRJT0NN X0RTUiB8fCBzZXQgJiBUSU9DTV9EVFIpDQo= ---1463794332-1958446172-1154445233=:2567 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ---1463794332-1958446172-1154445233=:2567 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel ---1463794332-1958446172-1154445233=:2567--