Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jun 2009 09:16:34 +0100 (BST)
From:      Iain Hibbert <plunky@rya-online.net>
To:        Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
Cc:        freebsd-bluetooth@freebsd.org
Subject:   Re: bt_dev API
Message-ID:  <1244621794.486063.830.nullmailer@galant.ukfsn.org>
In-Reply-To: <bb4a86c70906091524p507181b4l3ddd45e0e22b6fe1@mail.gmail.com>
References:  <1244571487.241431.980.nullmailer@galant.ukfsn.org> <bb4a86c70906091524p507181b4l3ddd45e0e22b6fe1@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-245128443-1244621794=:879
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Tue, 9 Jun 2009, Maksim Yevmenkin wrote:

> > Are you still with us? =A0After some delay (and a tan from last week :)=
 I am
> > about ready with the bt_dev stuff for NetBSD now (latest dump at
> > www.netbsd.org:~plunky/btdev-20090609.tar.gz)
>
> sorry. i'm completely swamped at $real_job :(

sounds like hair loss is imminent, heh :)

> > - bt_devopen(name, flags) flags argument?
>
> i guess its fine, but i still kinda like setopt() call.

my reasoning to set it in devopen is that if you open -> bind -> setopt
then there is a race condition where you could get packets already in the
buffer where you don't get the control messages.

anyway I attach a FreeBSD patch for you that implements some changes -
note I haven't compile tested it, and I don't know if you need to bump
library version but it looks about right

 - spelling fixes in manpage
 - add flags argument to bt_devopen()
 - bt_devopen(NULL, 0) will open for any device
 - change return value of bt_devsend()
 - add name argument to bt_devinfo()

> > - struct bt_devinfo state field needs to be genericalised,
>
> i have not look at the source. i'm guessing its probably fine too :)

I'm still thinking about how best to do that, will look at the linux
sources later to see what might fit.  I'm thinking that either

a) bt_devinfo structure should be completely MI and have the caller get OS
specific information on their own time

b) incompletely specify the bt_devinfo structure in the manpage (as in
"the bt_devinfo structure contains at least the following fields:") so
that callers are not tempted to rely on OS specific data.

regards,
iain
--0-245128443-1244621794=:879
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diff
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.NEB.2.00.0906100916340.879@localhost.>
Content-Description: update libbluetooth
Content-Disposition: attachment; filename=diff

SW5kZXg6IGJsdWV0b290aC4zDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvbGliL2xpYmJsdWV0b290aC9ibHVl
dG9vdGguMyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTANCmRpZmYgLXUg
LXIxLjEwIGJsdWV0b290aC4zDQotLS0gYmx1ZXRvb3RoLjMJMjIgQXByIDIw
MDkgMTU6NTA6MDMgLTAwMDAJMS4xMA0KKysrIGJsdWV0b290aC4zCTEwIEp1
biAyMDA5IDA4OjAxOjE4IC0wMDAwDQpAQCAtOTcsMTQgKzk3LDE0IEBADQog
LkZ0IGludA0KIC5GbiAoYnRfZGV2ZW51bV9jYl90KSAiaW50IHMiICJzdHJ1
Y3QgYnRfZGV2aW5mbyBjb25zdCAqZGkiICJ2b2lkICphcmciDQogLkZ0IGlu
dA0KLS5GbiBidF9kZXZpbmZvICJzdHJ1Y3QgYnRfZGV2aW5mbyAqZGkiDQor
LkZuIGJ0X2RldmluZm8gImNoYXIgY29uc3QgKmRldm5hbWUiICJzdHJ1Y3Qg
YnRfZGV2aW5mbyAqZGkiDQogLkZ0IGludA0KIC5GbiBidF9kZXZlbnVtICJi
dF9kZXZlbnVtX2NiX3QgKmNiIiAidm9pZCAqYXJnIg0KIC5GdCBpbnQNCi0u
Rm4gYnRfZGV2b3BlbiAiY2hhciBjb25zdCAqZGV2bmFtZSINCisuRm4gYnRf
ZGV2b3BlbiAiY2hhciBjb25zdCAqZGV2bmFtZSIgImludCBmbGFncyINCiAu
RnQgaW50DQogLkZuIGJ0X2RldmNsb3NlICJpbnQgcyINCi0uRnQgaW50DQor
LkZ0IHNzaXplX3QNCiAuRm4gYnRfZGV2c2VuZCAiaW50IHMiICJ1aW50MTZf
dCBvcGNvZGUiICJ2b2lkICpwYXJhbSIgInNpemVfdCBwbGVuIg0KIC5GdCBz
c2l6ZV90DQogLkZuIGJ0X2RldnJlY3YgImludCBzIiAidm9pZCAqYnVmIiAi
c2l6ZV90IHNpemUiICJ0aW1lX3QgdG8iDQpAQCAtMTE1LDEzICsxMTUsMTMg
QEANCiAuRnQgdm9pZA0KIC5GbiBidF9kZXZmaWx0ZXJfcGt0X3NldCAic3Ry
dWN0IGJ0X2RldmZpbHRlciAqZmlsdGVyIiAidWludDhfdCB0eXBlIg0KIC5G
dCB2b2lkDQotLkZuIGJ0X2RldmZpbHRlcl9wa3RfY2x0ICJzdHJ1Y3QgYnRf
ZGV2ZmlsdGVyICpmaWx0ZXIiICJ1aW50OF90IHR5cGUiDQorLkZuIGJ0X2Rl
dmZpbHRlcl9wa3RfY2xyICJzdHJ1Y3QgYnRfZGV2ZmlsdGVyICpmaWx0ZXIi
ICJ1aW50OF90IHR5cGUiDQogLkZ0IGludA0KIC5GbiBidF9kZXZmaWx0ZXJf
cGt0X3RzdCAic3RydWN0IGJ0X2RldmZpbHRlciBjb25zdCAqZmlsdGVyIiAi
dWludDhfdCB0eXBlIg0KIC5GdCB2b2lkDQogLkZuIGJ0X2RldmZpbHRlcl9l
dnRfc2V0ICJzdHJ1Y3QgYnRfZGV2ZmlsdGVyICpmaWx0ZXIiICJ1aW50OF90
IGV2ZW50Ig0KIC5GdCB2b2lkDQotLkZuIGJ0X2RldmZpbHRlcl9ldnRfY2x0
ICJzdHJ1Y3QgYnRfZGV2ZmlsdGVyICpmaWx0ZXIiICJ1aW50OF90IGV2ZW50
Ig0KKy5GbiBidF9kZXZmaWx0ZXJfZXZ0X2NsciAic3RydWN0IGJ0X2RldmZp
bHRlciAqZmlsdGVyIiAidWludDhfdCBldmVudCINCiAuRnQgaW50DQogLkZu
IGJ0X2RldmZpbHRlcl9ldnRfdHN0ICJzdHJ1Y3QgYnRfZGV2ZmlsdGVyIGNv
bnN0ICpmaWx0ZXIiICJ1aW50OF90IGV2ZW50Ig0KIC5GdCBpbnQNCkBAIC0y
NzIsMTQgKzI3Miw5IEBADQogLlBwDQogVGhlDQogLkZuIGJ0X2RldmluZm8N
Ci1mdW5jdGlvbiBwb3B1bGF0ZXMgcHJvZGl2ZGVkDQorZnVuY3Rpb24gcG9w
dWxhdGVzIHByb3ZpZGVkDQogLlZ0IGJ0X2RldmluZm8NCiBzdHJ1Y3R1cmUg
d2l0aCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgZ2l2ZW4gQmx1ZXRvb3RoIGRl
dmljZS4NCi1UaGUgY2FsbGVyIGlzIGV4cGVjdGVkIHRvIHBhc3MgQmx1ZXRv
b3RoIGRldmljZSBuYW1lIGluIHRoZQ0KLS5GYSBkZXZuYW1lDQotZmllbGQg
b2YgdGhlIHBhc3NlZA0KLS5WdCBidF9kZXZpbmZvDQotc3RydWN0dXJlLg0K
IFRoZSBmdW5jdGlvbiByZXR1cm5zIDAgd2hlbiBzdWNjZXNzZnVsLA0KIG90
aGVyd2lzZSAtMS4NCiBUaGUNCkBAIC0zNjAsNiArMzU1LDIwIEBADQogYW5k
IHJldHVybnMgYSBjb25uZWN0ZWQgYW5kIGJvdW5kDQogLkR2IEhDSQ0KIHNv
Y2tldCBoYW5kbGUuDQorSWYgdGhlDQorLkZhIGRldm5hbWUNCitpcw0KKy5E
diBOVUxMDQordGhlIHNvY2tldCB3aWxsIHJlY2VpdmUgbWVzc2FnZXMgZnJv
bSBhbGwgZGV2aWNlcy4NCitBbnkgY29tYmluYXRpb24gb2YgdGhlIGZvbGxv
d2luZw0KKy5GYSBmbGFncw0KK21heSBiZSB1c2VkIHRvIHByZS1zZXQgdGhl
IHNvY2tldCBvcHRpb25zOg0KKy5CbCAtdGFnIC13aWR0aCAiLkR2IEJUT1BU
X0RJUkVDVElPTiINCisuSXQgRHYgQlRPUFRfRElSRUNUSU9ODQorRW5hYmxl
IGNvbnRyb2wgbWVzc2FnZXMgb24gZWFjaCBwYWNrZXQgaW5kaWNhdGluZyB0
aGUgZGlyZWN0aW9uIG9mIHRyYXZlbC4NCisuSXQgRHYgQlRPUFRfVElNRVNU
QU1QDQorRW5hYmxlIGNvbnRyb2wgbWVzc2FnZXMgcHJvdmlkaW5nIHBhY2tl
dCB0aW1lc3RhbXBzLg0KKy5FbA0KIFRoZSBmdW5jdGlvbiByZXR1cm5zIC0x
IGlmIGFuIGVycm9yIGhhcyBvY2N1cnJlZC4NCiAuUHANCiBUaGUNCkBAIC0z
ODMsNyArMzkyLDcgQEANCiAuWHIgYnRfZGV2b3BlbiAzIC4NCiBUaGUNCiAu
RmEgb3Bjb2RlDQotcGFyYW1ldGVyIGlzIGV4cHBlY3RlZCB0byBiZSBpbiB0
aGUgaG9zdCBieXRlIG9yZGVyLg0KK3BhcmFtZXRlciBpcyBleHBlY3RlZCB0
byBiZSBpbiB0aGUgaG9zdCBieXRlIG9yZGVyLg0KIFRoZQ0KIC5GYSBwYXJh
bQ0KIGFuZA0KQEAgLTM5NSw3ICs0MDQsNyBAQA0KIC5EdiBIQ0kNCiBmaWx0
ZXIgb24gdGhlIHByb3ZpZGVkIHNvY2tldA0KIC5GYSBzIC4NCi1UaGUgZnVu
Y3Rpb24gcmV0dXJucyAwIG9uIHN1Y2Nlc3MsDQorVGhlIGZ1bmN0aW9uIHJl
dHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHN1Y2Nlc3NmdWxseSB3
cml0dGVuLA0KIG9yIC0xIGlmIGFuIGVycm9yIG9jY3VycmVkLg0KIC5QcA0K
IFRoZQ0KSW5kZXg6IGJsdWV0b290aC5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvbGliL2xpYmJsdWV0b290
aC9ibHVldG9vdGguaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQ0KZGlm
ZiAtdSAtcjEuNSBibHVldG9vdGguaA0KLS0tIGJsdWV0b290aC5oCTIyIEFw
ciAyMDA5IDE1OjUwOjAzIC0wMDAwCTEuNQ0KKysrIGJsdWV0b290aC5oCTEw
IEp1biAyMDA5IDA4OjAxOjE4IC0wMDAwDQpAQCAtMTU4LDkgKzE1OCw5IEBA
DQogDQogdHlwZWRlZiBpbnQJKGJ0X2RldmVudW1fY2JfdCkoaW50LCBzdHJ1
Y3QgYnRfZGV2aW5mbyBjb25zdCAqLCB2b2lkICopOw0KIA0KLWludAkJYnRf
ZGV2b3BlbiAoY2hhciBjb25zdCAqZGV2bmFtZSk7DQoraW50CQlidF9kZXZv
cGVuIChjaGFyIGNvbnN0ICpkZXZuYW1lLCBpbnQgZmxhZ3MpOw0KIGludAkJ
YnRfZGV2Y2xvc2UoaW50IHMpOw0KLWludAkJYnRfZGV2c2VuZCAoaW50IHMs
IHVpbnQxNl90IG9wY29kZSwgdm9pZCAqcGFyYW0sIHNpemVfdCBwbGVuKTsN
Citzc2l6ZV90CQlidF9kZXZzZW5kIChpbnQgcywgdWludDE2X3Qgb3Bjb2Rl
LCB2b2lkICpwYXJhbSwgc2l6ZV90IHBsZW4pOw0KIHNzaXplX3QJCWJ0X2Rl
dnJlY3YgKGludCBzLCB2b2lkICpidWYsIHNpemVfdCBzaXplLCB0aW1lX3Qg
dG8pOw0KIGludAkJYnRfZGV2cmVxICAoaW50IHMsIHN0cnVjdCBidF9kZXZy
ZXEgKnIsIHRpbWVfdCB0byk7DQogaW50CQlidF9kZXZmaWx0ZXIoaW50IHMs
IHN0cnVjdCBidF9kZXZmaWx0ZXIgY29uc3QgKm5ldywNCkBAIC0xNzMsMTAg
KzE3MywxNyBAQA0KIGludAkJYnRfZGV2ZmlsdGVyX2V2dF90c3Qoc3RydWN0
IGJ0X2RldmZpbHRlciBjb25zdCAqZmlsdGVyLCB1aW50OF90IGV2ZW50KTsN
CiBpbnQJCWJ0X2RldmlucXVpcnkoY2hhciBjb25zdCAqZGV2bmFtZSwgdGlt
ZV90IGxlbmd0aCwgaW50IG51bV9yc3AsDQogCQkJICAgICAgc3RydWN0IGJ0
X2RldmlucXVpcnkgKippaSk7DQotaW50CQlidF9kZXZpbmZvIChzdHJ1Y3Qg
YnRfZGV2aW5mbyAqZGkpOw0KK2ludAkJYnRfZGV2aW5mbyAoY2hhciBjb25z
dCAqZGV2bmFtZSwgc3RydWN0IGJ0X2RldmluZm8gKmRpKTsNCiBpbnQJCWJ0
X2RldmVudW0gKGJ0X2RldmVudW1fY2JfdCAqY2IsIHZvaWQgKmFyZyk7DQog
DQogLyoNCisgKiBidF9kZXZvcGVuIGZsYWdzDQorICovDQorDQorI2RlZmlu
ZQlCVE9QVF9ESVJFQ1RJT04JCSgxIDw8IDApDQorI2RlZmluZQlCVE9QVF9U
SU1FU1RBTVAJCSgxIDw8IDEpDQorDQorLyoNCiAgKiBiZGFkZHIgdXRpbGl0
eSBmdW5jdGlvbnMgKGZyb20gTmV0QlNEKQ0KICAqLw0KIA0KSW5kZXg6IGhj
aS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUv
bmN2cy9zcmMvbGliL2xpYmJsdWV0b290aC9oY2kuYyx2DQpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMw0KZGlmZiAtdSAtcjEuMyBoY2kuYw0KLS0tIGhjaS5j
CTE0IE1heSAyMDA5IDE3OjEwOjE5IC0wMDAwCTEuMw0KKysrIGhjaS5jCTEw
IEp1biAyMDA5IDA4OjAxOjE4IC0wMDAwDQpAQCAtNDUsNDAgKzQ1LDUzIEBA
DQogc3RhdGljIGNoYXIgKiBidF9kZXYybm9kZSAoY2hhciBjb25zdCAqZGV2
bmFtZSwgY2hhciAqbm9kZW5hbWUsIGludCBubmxlbik7DQogDQogaW50DQot
YnRfZGV2b3BlbihjaGFyIGNvbnN0ICpkZXZuYW1lKQ0KK2J0X2Rldm9wZW4o
Y2hhciBjb25zdCAqZGV2bmFtZSwgaW50IGZsYWdzKQ0KIHsNCiAJc3RydWN0
IHNvY2thZGRyX2hjaQloYTsNCiAJYmRhZGRyX3QJCWJhOw0KLQlpbnQJCQlz
Ow0KKwlpbnQJCQlvcHQsIHM7DQogDQotCWlmIChkZXZuYW1lID09IE5VTEwp
IHsNCi0JCWVycm5vID0gRUlOVkFMOw0KLQkJcmV0dXJuICgtMSk7DQotCX0N
Ci0NCi0JbWVtc2V0KCZoYSwgMCwgc2l6ZW9mKGhhKSk7DQotCWhhLmhjaV9s
ZW4gPSBzaXplb2YoaGEpOw0KLQloYS5oY2lfZmFtaWx5ID0gQUZfQkxVRVRP
T1RIOw0KLQ0KLQlpZiAoYnRfYXRvbihkZXZuYW1lLCAmYmEpKSB7DQotCQlp
ZiAoIWJ0X2Rldm5hbWUoaGEuaGNpX25vZGUsICZiYSkpDQotCQkJcmV0dXJu
ICgtMSk7DQotCX0gZWxzZSBpZiAoYnRfZGV2Mm5vZGUoZGV2bmFtZSwgaGEu
aGNpX25vZGUsDQorCWlmIChkZXZuYW1lICE9IE5VTEwpIHsNCisJCW1lbXNl
dCgmaGEsIDAsIHNpemVvZihoYSkpOw0KKwkJaGEuaGNpX2xlbiA9IHNpemVv
ZihoYSk7DQorCQloYS5oY2lfZmFtaWx5ID0gQUZfQkxVRVRPT1RIOw0KKw0K
KwkJaWYgKGJ0X2F0b24oZGV2bmFtZSwgJmJhKSkgew0KKwkJCWlmICghYnRf
ZGV2bmFtZShoYS5oY2lfbm9kZSwgJmJhKSkNCisJCQkJcmV0dXJuICgtMSk7
DQorCQl9IGVsc2UgaWYgKGJ0X2RldjJub2RlKGRldm5hbWUsIGhhLmhjaV9u
b2RlLA0KIAkJCQkJc2l6ZW9mKGhhLmhjaV9ub2RlKSkgPT0gTlVMTCkgew0K
LQkJZXJybm8gPSBFTlhJTzsNCi0JCXJldHVybiAoLTEpOw0KKwkJCWVycm5v
ID0gRU5YSU87DQorCQkJcmV0dXJuICgtMSk7DQorCQl9DQogCX0NCiANCiAJ
cyA9IHNvY2tldChQRl9CTFVFVE9PVEgsIFNPQ0tfUkFXLCBCTFVFVE9PVEhf
UFJPVE9fSENJKTsNCiAJaWYgKHMgPCAwKQ0KIAkJcmV0dXJuICgtMSk7DQog
DQotCWlmIChiaW5kKHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmhhLCBzaXpl
b2YoaGEpKSA8IDAgfHwNCi0JICAgIGNvbm5lY3QocywgKHN0cnVjdCBzb2Nr
YWRkciAqKSAmaGEsIHNpemVvZihoYSkpIDwgMCkgew0KKwlvcHQgPSAxOw0K
KwlpZiAoKGZsYWdzICYgQlRPUFRfRElSRUNUSU9OKSAmJiBzZXRzb2Nrb3B0
KHMsIFNPTF9IQ0lfUkFXLA0KKwkgICAgU09fSENJX1JBV19ESVJFQ1RJT04s
ICZvcHQsIHNpemVvZihvcHQpKSA8IDApIHsNCiAJCWNsb3NlKHMpOw0KIAkJ
cmV0dXJuICgtMSk7DQogCX0NCiANCisJb3B0ID0gMTsNCisJaWYgKChmbGFn
cyAmIEJUT1BUX1RJTUVTVEFNUCkgJiYgc2V0c29ja29wdChzLCBTT0xfU09D
S0VULA0KKwkgICAgU09fVElNRVNUQU1QLCAmb3B0LCBzaXplb2Yob3B0KSkg
PCAwKSB7DQorCQljbG9zZShzKTsNCisJCXJldHVybiAoLTEpOw0KKwl9DQor
DQorCWlmIChkZXZuYW1lICE9IE5VTEwpIHsNCisJCWlmIChiaW5kKHMsIChz
dHJ1Y3Qgc29ja2FkZHIgKikgJmhhLCBzaXplb2YoaGEpKSA8IDAgfHwNCisJ
CSAgICBjb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmhhLCBzaXpl
b2YoaGEpKSA8IDApIHsNCisJCQljbG9zZShzKTsNCisJCQlyZXR1cm4gKC0x
KTsNCisJCX0NCisJfQ0KKw0KIAlyZXR1cm4gKHMpOw0KIH0NCiANCkBAIC04
OCwxMiArMTAxLDEzIEBADQogCXJldHVybiAoY2xvc2UocykpOw0KIH0NCiAN
Ci1pbnQNCitzc2l6ZV90DQogYnRfZGV2c2VuZChpbnQgcywgdWludDE2X3Qg
b3Bjb2RlLCB2b2lkICpwYXJhbSwgc2l6ZV90IHBsZW4pDQogew0KIAluZ19o
Y2lfY21kX3BrdF90CWg7DQogCXN0cnVjdCBpb3ZlYwkJaXZbMl07DQogCWlu
dAkJCWl2bjsNCisJc3NpemVfdAkJCW47DQogDQogCWlmICgocGxlbiA9PSAw
ICYmIHBhcmFtICE9IE5VTEwpIHx8DQogCSAgICAocGxlbiA+IDAgJiYgcGFy
YW0gPT0gTlVMTCkgfHwNCkBAIC0xMTcsMTQgKzEzMSwxNCBAQA0KIAl9IGVs
c2UNCiAJCWgubGVuZ3RoID0gMDsNCiANCi0Jd2hpbGUgKHdyaXRldihzLCBp
diwgaXZuKSA8IDApIHsNCisJd2hpbGUgKChuID0gd3JpdGV2KHMsIGl2LCBp
dm4pKSA8IDApIHsNCiAJCWlmIChlcnJubyA9PSBFQUdBSU4gfHwgZXJybm8g
PT0gRUlOVFIpDQogCQkJY29udGludWU7DQogDQogCQlyZXR1cm4gKC0xKTsN
CiAJfQ0KIA0KLQlyZXR1cm4gKDApOw0KKwlyZXR1cm4gKG4pOw0KIH0NCiAN
CiBzc2l6ZV90DQpAQCAtNTMyLDcgKzU0Niw3IEBADQogfQ0KIA0KIGludA0K
LWJ0X2RldmluZm8oc3RydWN0IGJ0X2RldmluZm8gKmRpKQ0KK2J0X2Rldmlu
Zm8oY2hhciBjb25zdCAqZGV2bmFtZSwgc3RydWN0IGJ0X2RldmluZm8gKmRp
KQ0KIHsNCiAJdW5pb24gew0KIAkJc3RydWN0IG5nX2J0c29ja2V0X2hjaV9y
YXdfbm9kZV9zdGF0ZQkJcjA7DQpAQCAtNTU0LDcgKzU2OCw3IEBADQogCQly
ZXR1cm4gKC0xKTsNCiAJfQ0KIA0KLQlzID0gYnRfZGV2b3BlbihkaS0+ZGV2
bmFtZSk7DQorCXMgPSBidF9kZXZvcGVuKGRldm5hbWUpOw0KIAlpZiAocyA8
IDApDQogCQlyZXR1cm4gKC0xKTsNCiANCkBAIC02NjIsOCArNjc2LDcgQEAN
CiAJfQ0KIA0KIAlmb3IgKGNvdW50ID0gMCwgaSA9IDA7IGkgPCBycC5udW1f
bmFtZXM7IGkgKyspIHsNCi0JCXN0cmxjcHkoZGkuZGV2bmFtZSwgcnAubmFt
ZXNbaV0ubmFtZSwgc2l6ZW9mKGRpLmRldm5hbWUpKTsNCi0JCWlmIChidF9k
ZXZpbmZvKCZkaSkgPCAwKQ0KKwkJaWYgKGJ0X2RldmluZm8ocnAubmFtZXNb
aV0ubmFtZSwgJmRpKSA8IDApDQogCQkJY29udGludWU7DQogDQogCQljb3Vu
dCArKzsNCg==

--0-245128443-1244621794=:879--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1244621794.486063.830.nullmailer>