Re: Suggested dual human/binary interface for proc/devfs

Linus Torvalds (torvalds@transmeta.com)
Sun, 9 Apr 2000 08:06:54 -0700 (PDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--17484290-2072998396-955292814=:1433
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 7 Apr 2000, Richard Gooch wrote:
> >
> > Yes, that's what /proc/sys has gotten absolutely correct. This is a
> > Good Thing[TM].
>
> So if we removed the magic ID's (and sysctl(2)), Linus would be happy?

The actual internal implementation of sysctl() is horribly unclear. I'd
rather have a dentry tree where the dentries contain the filenames
(obviously) and also the values (in the private field or in the inode).
That makes adding and removing entries quite trivial.

As an example, let me append the ramfs thing I wrote as a dynamic ramdisk,
and note how it leaves everything in the VFS caches. This is how any
virtual filesystem should end up looking some day (Al Viro is looking at
making /proc use this approach too - get rid of the "proc_directory_entry"
thing, and just use the VFS layer dentry instead).

Ignore the data side: that's obviously only useful for a RAM-disk, but
note how "lookup()" is 3 lines long, and how "mkdir()" and friends are
truly trivial.

One of the arguments against /proc as opposed to sysctl() has been
complexity and size: this thing is _small_. It uses the VFS logic (which
has to be there anyway if you have any filesystem at all) to do all the
maintenance. Add number parsing and output, and you have a sysctl()
without all the sysctl()-specific crud.

Btw, richard, this approach would lend itself quite well to devfs too.

Linus

--17484290-2072998396-955292814=:1433
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="inode.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10004090806530.1433@penguin.transmeta.com>
Content-Description:
Content-Disposition: attachment; filename="inode.c"

LyoNCiAqIFJlc2l6YWJsZSBzaW1wbGUgcmFtIGZpbGVzeXN0ZW0gZm9yIExp
bnV4Lg0KICoNCiAqIENvcHlyaWdodCAoQykgMjAwMCBMaW51cyBUb3J2YWxk
cy4NCiAqICAgICAgICAgICAgICAgMjAwMCBUcmFuc21ldGEgQ29ycC4NCiAq
DQogKiBUaGlzIGZpbGUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEdQTC4NCiAq
DQogKiBNdXN0IGJlIHVzZWQgaW4gMi4zLjk5LXByZTQgb3IgbmV3ZXIgLSB0
aGUgZGlydHkgcGFnZQ0KICogaGFuZGxpbmcgZ290IGludHJvZHVjZWQgdGhl
bi4NCiAqLw0KDQojaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQojaW5jbHVk
ZSA8bGludXgvZnMuaD4NCiNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQoj
aW5jbHVkZSA8bGludXgvaW5pdC5oPg0KI2luY2x1ZGUgPGxpbnV4L3N0cmlu
Zy5oPg0KI2luY2x1ZGUgPGxpbnV4L2xvY2tzLmg+DQoNCiNpbmNsdWRlIDxh
c20vdWFjY2Vzcy5oPg0KDQovKiBzb21lIHJhbmRvbSBudW1iZXIgKi8NCiNk
ZWZpbmUgUkFNRlNfTUFHSUMJMHg4NTg0NThmNg0KDQpzdGF0aWMgc3RydWN0
IHN1cGVyX29wZXJhdGlvbnMgcmFtZnNfb3BzOw0Kc3RhdGljIHN0cnVjdCBh
ZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgcmFtZnNfYW9wczsNCnN0YXRpYyBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJhbWZzX2Rpcl9vcGVyYXRpb25zOw0K
c3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmFtZnNfZmlsZV9vcGVy
YXRpb25zOw0Kc3RhdGljIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHJhbWZz
X2Rpcl9pbm9kZV9vcGVyYXRpb25zOw0KDQpzdGF0aWMgaW50IHJhbWZzX3N0
YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qgc3RhdGZzICpi
dWYpDQp7DQoJYnVmLT5mX3R5cGUgPSBSQU1GU19NQUdJQzsNCglidWYtPmZf
YnNpemUgPSBQQUdFX0NBQ0hFX1NJWkU7DQoJYnVmLT5mX25hbWVsZW4gPSAy
NTU7DQoJcmV0dXJuIDA7DQp9DQoNCi8qDQogKiBMb29rdXAgdGhlIGRhdGEu
IFRoaXMgaXMgdHJpdmlhbCAtIGlmIHRoZSBkZW50cnkgZGlkbid0IGFscmVh
ZHkNCiAqIGV4aXN0LCB3ZSBrbm93IGl0IGlzIG5lZ2F0aXZlLg0KICovDQpz
dGF0aWMgc3RydWN0IGRlbnRyeSAqIHJhbWZzX2xvb2t1cChzdHJ1Y3QgaW5v
ZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0Kew0KCWRfYWRkKGRl
bnRyeSwgTlVMTCk7DQoJcmV0dXJuIE5VTEw7DQp9DQoNCi8qDQogKiBSZWFk
IGEgcGFnZS4gQWdhaW4gdHJpdmlhbC4gSWYgaXQgZGlkbid0IGFscmVhZHkg
ZXhpc3QNCiAqIGluIHRoZSBwYWdlIGNhY2hlLCBpdCBpcyB6ZXJvLWZpbGxl
ZC4NCiAqLw0Kc3RhdGljIGludCByYW1mc19yZWFkcGFnZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBwYWdlICogcGFnZSkNCnsNCglpZiAoIVBh
Z2VfVXB0b2RhdGUocGFnZSkpIHsNCgkJbWVtc2V0KCh2b2lkICopIHBhZ2Vf
YWRkcmVzcyhwYWdlKSwgMCwgUEFHRV9DQUNIRV9TSVpFKTsNCgkJU2V0UGFn
ZVVwdG9kYXRlKHBhZ2UpOw0KCX0NCglVbmxvY2tQYWdlKHBhZ2UpOw0KCXJl
dHVybiAwOw0KfQ0KDQovKg0KICogV3JpdGluZzoganVzdCBtYWtlIHN1cmUg
dGhlIHBhZ2UgZ2V0cyBtYXJrZWQgZGlydHksIHNvIHRoYXQNCiAqIHRoZSBw
YWdlIHN0ZWFsZXIgd29uJ3QgZ3JhYiBpdC4NCiAqLw0Kc3RhdGljIGludCBy
YW1mc193cml0ZXBhZ2Uoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSwgc3RydWN0
IHBhZ2UgKnBhZ2UpDQp7DQoJU2V0UGFnZURpcnR5KHBhZ2UpOw0KCXJldHVy
biAwOw0KfQ0KDQpzdGF0aWMgaW50IHJhbWZzX3ByZXBhcmVfd3JpdGUoc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIHRvKQ0Kew0KCXZvaWQgKmFkZHI7DQoNCglhZGRy
ID0gKHZvaWQgKikga21hcChwYWdlKTsNCglpZiAoIVBhZ2VfVXB0b2RhdGUo
cGFnZSkpIHsNCgkJbWVtc2V0KGFkZHIsIDAsIFBBR0VfQ0FDSEVfU0laRSk7
DQoJCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsNCgl9DQoJU2V0UGFnZURpcnR5
KHBhZ2UpOw0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgaW50IHJhbWZzX2Nv
bW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBh
Z2UsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgdG8pDQp7DQoJc3RydWN0
IGlub2RlICppbm9kZSA9IChzdHJ1Y3QgaW5vZGUqKXBhZ2UtPm1hcHBpbmct
Pmhvc3Q7DQoJbG9mZl90IHBvcyA9ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8
IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87DQoNCglrdW5tYXAocGFnZSk7DQoJ
aWYgKHBvcyA+IGlub2RlLT5pX3NpemUpDQoJCWlub2RlLT5pX3NpemUgPSBw
b3M7DQoJcmV0dXJuIDA7DQp9DQoNCnN0cnVjdCBpbm9kZSAqcmFtZnNfZ2V0
X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCBtb2RlLCBpbnQg
ZGV2KQ0Kew0KCXN0cnVjdCBpbm9kZSAqIGlub2RlID0gZ2V0X2VtcHR5X2lu
b2RlKCk7DQoNCglpZiAoaW5vZGUpIHsNCgkJaW5vZGUtPmlfc2IgPSBzYjsN
CgkJaW5vZGUtPmlfZGV2ID0gc2ItPnNfZGV2Ow0KCQlpbm9kZS0+aV9tb2Rl
ID0gbW9kZTsNCgkJaW5vZGUtPmlfdWlkID0gY3VycmVudC0+ZnN1aWQ7DQoJ
CWlub2RlLT5pX2dpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KCQlpbm9kZS0+aV9z
aXplID0gMDsNCgkJaW5vZGUtPmlfYmxrc2l6ZSA9IFBBR0VfQ0FDSEVfU0la
RTsNCgkJaW5vZGUtPmlfYmxvY2tzID0gMDsNCgkJaW5vZGUtPmlfcmRldiA9
IGRldjsNCgkJaW5vZGUtPmlfbmxpbmsgPSAxOw0KCQlpbm9kZS0+aV9vcCA9
IE5VTEw7DQoJCWlub2RlLT5pX2ZvcCA9IE5VTEw7DQoJCWlub2RlLT5pX21h
cHBpbmctPmFfb3BzID0gJnJhbWZzX2FvcHM7DQoJCWlub2RlLT5pX2F0aW1l
ID0gaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IENVUlJFTlRf
VElNRTsNCgkJc3dpdGNoIChtb2RlICYgU19JRk1UKSB7DQoJCWRlZmF1bHQ6
DQoJCQlpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUsIG1vZGUsIGRldik7DQoJ
CQlicmVhazsNCgkJY2FzZSBTX0lGUkVHOg0KCQkJaW5vZGUtPmlfZm9wID0g
JnJhbWZzX2ZpbGVfb3BlcmF0aW9uczsNCgkJCWJyZWFrOw0KCQljYXNlIFNf
SUZESVI6DQoJCQlpbm9kZS0+aV9vcCA9ICZyYW1mc19kaXJfaW5vZGVfb3Bl
cmF0aW9uczsNCgkJCWlub2RlLT5pX2ZvcCA9ICZyYW1mc19kaXJfb3BlcmF0
aW9uczsNCgkJCWJyZWFrOw0KCQljYXNlIFNfSUZMTks6DQoJCQlpbm9kZS0+
aV9vcCA9ICZwYWdlX3N5bWxpbmtfaW5vZGVfb3BlcmF0aW9uczsNCgkJCWJy
ZWFrOw0KCQl9DQoJfQ0KCXJldHVybiBpbm9kZTsNCn0NCg0KLyoNCiAqIEZp
bGUgY3JlYXRpb24uIEFsbG9jYXRlIGFuIGlub2RlLCBhbmQgd2UncmUgZG9u
ZS4uDQogKi8NCnN0YXRpYyBpbnQgcmFtZnNfbWtub2Qoc3RydWN0IGlub2Rl
ICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUsIGludCBk
ZXYpDQp7DQoJc3RydWN0IGlub2RlICogaW5vZGUgPSByYW1mc19nZXRfaW5v
ZGUoZGlyLT5pX3NiLCBtb2RlLCBkZXYpOw0KCWludCBlcnJvciA9IC1FTk9T
UEM7DQoNCglpZiAoaW5vZGUpIHsNCgkJZF9pbnN0YW50aWF0ZShkZW50cnks
IGlub2RlKTsNCgkJZGdldChkZW50cnkpOwkJLyogRXh0cmEgY291bnQgLSBw
aW4gdGhlIGRlbnRyeSBpbiBjb3JlICovDQoJCWVycm9yID0gMDsNCgl9DQoJ
cmV0dXJuIGVycm9yOw0KfQ0KDQpzdGF0aWMgaW50IHJhbWZzX21rZGlyKHN0
cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqIGRlbnRyeSwgaW50
IG1vZGUpDQp7DQoJcmV0dXJuIHJhbWZzX21rbm9kKGRpciwgZGVudHJ5LCBt
b2RlIHwgU19JRkRJUiwgMCk7DQp9DQoNCnN0YXRpYyBpbnQgcmFtZnNfY3Jl
YXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IGludCBtb2RlKQ0Kew0KCXJldHVybiByYW1mc19ta25vZChkaXIsIGRlbnRy
eSwgbW9kZSB8IFNfSUZSRUcsIDApOw0KfQ0KDQovKg0KICogTGluayBhIGZp
bGUuLg0KICovDQpzdGF0aWMgaW50IHJhbWZzX2xpbmsoc3RydWN0IGRlbnRy
eSAqb2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVu
dHJ5ICogZGVudHJ5KQ0Kew0KCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBvbGRf
ZGVudHJ5LT5kX2lub2RlOw0KDQoJaWYgKFNfSVNESVIoaW5vZGUtPmlfbW9k
ZSkpDQoJCXJldHVybiAtRVBFUk07DQoNCglpbm9kZS0+aV9ubGluaysrOw0K
CWlub2RlLT5pX2NvdW50Kys7CS8qIE5ldyBkZW50cnkgcmVmZXJlbmNlICov
DQoJZGdldChkZW50cnkpOwkJLyogRXh0cmEgcGlubmluZyBjb3VudCBmb3Ig
dGhlIGNyZWF0ZWQgZGVudHJ5ICovDQoJZF9pbnN0YW50aWF0ZShkZW50cnks
IGlub2RlKTsNCglyZXR1cm4gMDsNCn0NCg0KLyoNCiAqIENoZWNrIHRoYXQg
YSBkaXJlY3RvcnkgaXMgZW1wdHkgKHRoaXMgd29ya3MNCiAqIGZvciByZWd1
bGFyIGZpbGVzIHRvbywgdGhleSdsbCBqdXN0IGFsd2F5cyBiZQ0KICogY29u
c2lkZXJlZCBlbXB0eS4uKS4NCiAqDQogKiBOb3RlIHRoYXQgYW4gZW1wdHkg
ZGlyZWN0b3J5IGNhbiBzdGlsbCBoYXZlDQogKiBjaGlsZHJlbiwgdGhleSBq
dXN0IGFsbCBoYXZlIHRvIGJlIG5lZ2F0aXZlLi4NCiAqLw0Kc3RhdGljIGlu
dCByYW1mc19lbXB0eShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQp7DQoJc3Ry
dWN0IGxpc3RfaGVhZCAqbGlzdCA9IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7
DQoNCgl3aGlsZSAobGlzdCAhPSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCgkJ
c3RydWN0IGRlbnRyeSAqZGUgPSBsaXN0X2VudHJ5KGxpc3QsIHN0cnVjdCBk
ZW50cnksIGRfY2hpbGQpOw0KDQoJCWlmIChkZS0+ZF9pbm9kZSkNCgkJCXJl
dHVybiAwOw0KCQlsaXN0ID0gbGlzdC0+bmV4dDsNCgl9DQoJcmV0dXJuIDE7
DQp9DQoNCi8qDQogKiBUaGlzIHdvcmtzIGZvciBib3RoIGRpcmVjdG9yaWVz
IGFuZCByZWd1bGFyIGZpbGVzLg0KICogKG5vbi1kaXJlY3RvcmllcyB3aWxs
IGFsd2F5cyBoYXZlIGVtcHR5IHN1YmRpcnMpDQogKi8NCnN0YXRpYyBpbnQg
cmFtZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQ0Kew0KCWludCByZXR2YWwgPSAtRU5PVEVNUFRZOw0KDQoJ
aWYgKHJhbWZzX2VtcHR5KGRlbnRyeSkpIHsNCgkJc3RydWN0IGlub2RlICpp
bm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsNCg0KCQlpbm9kZS0+aV9ubGluay0t
Ow0KCQlkcHV0KGRlbnRyeSk7CQkJLyogVW5kbyB0aGUgY291bnQgZnJvbSAi
Y3JlYXRlIiAtIHRoaXMgZG9lcyBhbGwgdGhlIHdvcmsgKi8NCgkJZF9kZWxl
dGUoZGVudHJ5KTsNCgkJcmV0dmFsID0gMDsNCgl9DQoJcmV0dXJuIHJldHZh
bDsNCn0NCg0KI2RlZmluZSByYW1mc19ybWRpciByYW1mc191bmxpbmsNCg0K
LyoNCiAqIFRoZSBWRlMgbGF5ZXIgYWxyZWFkeSBkb2VzIGFsbCB0aGUgZGVu
dHJ5IHN0dWZmIGZvciByZW5hbWUsDQogKiB3ZSBqdXN0IGhhdmUgdG8gZGVj
cmVtZW50IHRoZSB1c2FnZSBjb3VudCBmb3IgdGhlIHRhcmdldCBpZg0KICog
aXQgZXhpc3RzIHNvIHRoYXQgdGhlIFZGUyBsYXllciBjb3JyZWN0bHkgZnJl
ZSdzIGl0IHdoZW4gaXQNCiAqIGdldHMgb3ZlcndyaXR0ZW4uDQogKi8NCnN0
YXRpYyBpbnQgcmFtZnNfcmVuYW1lKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIs
IHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqIG5l
d19kaXIsc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkNCnsNCglpbnQgZXJy
b3IgPSAtRU5PVEVNUFRZOw0KDQoJaWYgKHJhbWZzX2VtcHR5KG5ld19kZW50
cnkpKSB7DQoJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBuZXdfZGVudHJ5LT5k
X2lub2RlOw0KCQlpZiAoaW5vZGUpIHsNCgkJCWlub2RlLT5pX25saW5rLS07
DQoJCQlkcHV0KG5ld19kZW50cnkpOw0KCQl9DQoJCWVycm9yID0gMDsNCgl9
DQoJcmV0dXJuIGVycm9yOw0KfQ0KDQpzdGF0aWMgaW50IHJhbWZzX3N5bWxp
bmsoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
IGNvbnN0IGNoYXIgKiBzeW1uYW1lKQ0Kew0KCWludCBlcnJvcjsNCg0KCWVy
cm9yID0gcmFtZnNfbWtub2QoZGlyLCBkZW50cnksIFNfSUZMTksgfCBTX0lS
V1hVR08sIDApOw0KCWlmICghZXJyb3IpIHsNCgkJaW50IGwgPSBzdHJsZW4o
c3ltbmFtZSkrMTsNCgkJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+
ZF9pbm9kZTsNCgkJZXJyb3IgPSBibG9ja19zeW1saW5rKGlub2RlLCBzeW1u
YW1lLCBsKTsNCgl9DQoJcmV0dXJuIGVycm9yOw0KfQ0KDQovKg0KICogVGhp
cyByZWFsbHkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9jIGZpbGxk
aXIsDQogKiBvbmNlIHByb2MgZG9lcyB0aGUgIm9uZSBkZW50cnkgdHJlZSIg
dGhpbmcuLg0KICovDQpzdGF0aWMgaW50IHJhbWZzX3JlYWRkaXIoc3RydWN0
IGZpbGUgKiBmaWxwLCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRp
cikNCnsNCglpbnQgaTsNCglzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxw
LT5mX2RlbnRyeTsNCg0KCWkgPSBmaWxwLT5mX3BvczsNCglzd2l0Y2ggKGkp
IHsNCgkJY2FzZSAwOg0KCQkJaWYgKGZpbGxkaXIoZGlyZW50LCAiLiIsIDEs
IGksIGRlbnRyeS0+ZF9pbm9kZS0+aV9pbm8pIDwgMCkNCgkJCQlicmVhazsN
CgkJCWkrKzsNCgkJCWZpbHAtPmZfcG9zKys7DQoJCQkvKiBmYWxsdGhyb3Vn
aCAqLw0KCQljYXNlIDE6DQoJCQlpZiAoZmlsbGRpcihkaXJlbnQsICIuLiIs
IDIsIGksIGRlbnRyeS0+ZF9wYXJlbnQtPmRfaW5vZGUtPmlfaW5vKSA8IDAp
DQoJCQkJYnJlYWs7DQoJCQlpKys7DQoJCQlmaWxwLT5mX3BvcysrOw0KCQkJ
LyogZmFsbHRocm91Z2ggKi8NCgkJZGVmYXVsdDogew0KCQkJc3RydWN0IGxp
c3RfaGVhZCAqbGlzdCA9IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7DQoNCgkJ
CWludCBqID0gaS0yOw0KCQkJZm9yICg7Oykgew0KCQkJCWlmIChsaXN0ID09
ICZkZW50cnktPmRfc3ViZGlycykNCgkJCQkJcmV0dXJuIDA7DQoJCQkJaWYg
KCFqKQ0KCQkJCQlicmVhazsNCgkJCQlqLS07DQoJCQkJbGlzdCA9IGxpc3Qt
Pm5leHQ7DQoJCQl9DQoNCgkJCWRvIHsNCgkJCQlzdHJ1Y3QgZGVudHJ5ICpk
ZSA9IGxpc3RfZW50cnkobGlzdCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7
DQoNCgkJCQlpZiAoZGUtPmRfaW5vZGUgJiYgZmlsbGRpcihkaXJlbnQsIGRl
LT5kX25hbWUubmFtZSwgZGUtPmRfbmFtZS5sZW4sIGZpbHAtPmZfcG9zLCBk
ZS0+ZF9pbm9kZS0+aV9pbm8pIDwgMCkNCgkJCQkJYnJlYWs7DQoJCQkJZmls
cC0+Zl9wb3MrKzsNCgkJCQlsaXN0ID0gbGlzdC0+bmV4dDsNCgkJCX0gd2hp
bGUgKGxpc3QgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKTsNCgkJfQ0KCX0NCgly
ZXR1cm4gMDsNCn0NCg0Kc3RhdGljIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29w
ZXJhdGlvbnMgcmFtZnNfYW9wcyA9IHsNCglyZWFkcGFnZToJcmFtZnNfcmVh
ZHBhZ2UsDQoJd3JpdGVwYWdlOglyYW1mc193cml0ZXBhZ2UsDQoJcHJlcGFy
ZV93cml0ZToJcmFtZnNfcHJlcGFyZV93cml0ZSwNCgljb21taXRfd3JpdGU6
CXJhbWZzX2NvbW1pdF93cml0ZQ0KfTsNCg0Kc3RhdGljIHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgcmFtZnNfZmlsZV9vcGVyYXRpb25zID0gew0KCXJlYWQ6
CQlnZW5lcmljX2ZpbGVfcmVhZCwNCgl3cml0ZToJCWdlbmVyaWNfZmlsZV93
cml0ZSwNCgltbWFwOgkJZ2VuZXJpY19maWxlX21tYXANCn07DQoNCnN0YXRp
YyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJhbWZzX2Rpcl9vcGVyYXRpb25z
ID0gew0KCXJlYWQ6CQlnZW5lcmljX3JlYWRfZGlyLA0KCXJlYWRkaXI6CXJh
bWZzX3JlYWRkaXIsDQp9Ow0KDQpzdGF0aWMgc3RydWN0IGlub2RlX29wZXJh
dGlvbnMgcmFtZnNfZGlyX2lub2RlX29wZXJhdGlvbnMgPSB7DQoJY3JlYXRl
OgkJcmFtZnNfY3JlYXRlLA0KCWxvb2t1cDoJCXJhbWZzX2xvb2t1cCwNCgls
aW5rOgkJcmFtZnNfbGluaywNCgl1bmxpbms6CQlyYW1mc191bmxpbmssDQoJ
c3ltbGluazoJcmFtZnNfc3ltbGluaywNCglta2RpcjoJCXJhbWZzX21rZGly
LA0KCXJtZGlyOgkJcmFtZnNfcm1kaXIsDQoJbWtub2Q6CQlyYW1mc19ta25v
ZCwNCglyZW5hbWU6CQlyYW1mc19yZW5hbWUsDQp9Ow0KDQoNCnN0YXRpYyBz
dHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyByYW1mc19vcHMgPSB7DQoJc3RhdGZz
OgkgcmFtZnNfc3RhdGZzLA0KfTsNCg0Kc3RhdGljIHN0cnVjdCBzdXBlcl9i
bG9jayAqcmFtZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBz
Yiwgdm9pZCAqIGRhdGEsIGludCBzaWxlbnQpDQp7DQoJc3RydWN0IGlub2Rl
ICogaW5vZGU7DQoJc3RydWN0IGRlbnRyeSAqIHJvb3Q7DQoNCglzYi0+c19i
bG9ja3NpemUgPSBQQUdFX0NBQ0hFX1NJWkU7DQoJc2ItPnNfYmxvY2tzaXpl
X2JpdHMgPSBQQUdFX0NBQ0hFX1NISUZUOw0KCXNiLT5zX21hZ2ljID0gUkFN
RlNfTUFHSUM7DQoJc2ItPnNfb3AgPSAmcmFtZnNfb3BzOw0KCWlub2RlID0g
cmFtZnNfZ2V0X2lub2RlKHNiLCBTX0lGRElSIHwgMDc1NSwgMCk7DQoJaWYg
KCFpbm9kZSkNCgkJcmV0dXJuIE5VTEw7DQoNCglyb290ID0gZF9hbGxvY19y
b290KGlub2RlKTsNCglpZiAoIXJvb3QpIHsNCgkJaXB1dChpbm9kZSk7DQoJ
CXJldHVybiBOVUxMOw0KCX0NCglzYi0+c19yb290ID0gcm9vdDsNCglyZXR1
cm4gc2I7DQp9DQoNCnN0YXRpYyBERUNMQVJFX0ZTVFlQRShyYW1mc19mc190
eXBlLCAicmFtZnMiLCByYW1mc19yZWFkX3N1cGVyLCAwKTsNCg0Kc3RhdGlj
IGludCBfX2luaXQgaW5pdF9yYW1mc19mcyh2b2lkKQ0Kew0KCXJldHVybiBy
ZWdpc3Rlcl9maWxlc3lzdGVtKCZyYW1mc19mc190eXBlKTsNCn0NCg0Kc3Rh
dGljIHZvaWQgX19leGl0IGV4aXRfcmFtZnNfZnModm9pZCkNCnsNCgl1bnJl
Z2lzdGVyX2ZpbGVzeXN0ZW0oJnJhbWZzX2ZzX3R5cGUpOw0KfQ0KDQptb2R1
bGVfaW5pdChpbml0X3JhbWZzX2ZzKQ0KbW9kdWxlX2V4aXQoZXhpdF9yYW1m
c19mcykNCg==
--17484290-2072998396-955292814=:1433--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/