Date: Wed, 16 Sep 2009 09:42:22 -0500 From: Scot Hetzel <swhetzel@gmail.com> To: freebsd-emulation@freebsd.org Subject: Fwd: linuxolator: proc/filesystems and sysfs function implementations Message-ID: <790a9fff0909160742p1043e643i69febf5a7e88a97e@mail.gmail.com> In-Reply-To: <790a9fff0701261550n5982c0chea94dbfa208439da@mail.gmail.com> References: <790a9fff0701060012x40063f48pc842510b082df5a5@mail.gmail.com> <20070106130830.3c2e6d98@Magellan.Leidinger.net> <790a9fff0701132017g6c081567la4a759cea4618535@mail.gmail.com> <20070114105239.GA6955@stud.fit.vutbr.cz> <790a9fff0701141254s2c92b10ag6b042a019bc283c@mail.gmail.com> <20070115105921.wbv2yrd4bkgokcko@webmail.leidinger.net> <790a9fff0701252321x2c7bea62od928766849e32c68@mail.gmail.com> <790a9fff0701261550n5982c0chea94dbfa208439da@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--0016e64603c82f027f0473b2e8f6 Content-Type: text/plain; charset=ISO-8859-1 I see that Alexander Best had added sysfs to the linux-kernel wiki. Attached is the sysfs implementation that I had created back in 2007, and was reviewed on this list. Could someone commit this implentation to P4 or at least put it up some where so others can improve on it. Thanks, Scot --0016e64603c82f027f0473b2e8f6 Content-Type: text/x-diff; charset=US-ASCII; name="sysfs4.patch" Content-Disposition: attachment; filename="sysfs4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_exewt7ib SW5kZXg6IGNvbXBhdC9saW5wcm9jZnMvbGlucHJvY2ZzLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9saW5wcm9jZnMvbGlucHJvY2ZzLmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTA1CmRpZmYgLXUgLXIxLjEwNSBsaW5wcm9jZnMuYwotLS0gY29tcGF0 L2xpbnByb2Nmcy9saW5wcm9jZnMuYwkyMSBKYW4gMjAwNyAxMzoxODo1MiAtMDAwMAkxLjEwNQor KysgY29tcGF0L2xpbnByb2Nmcy9saW5wcm9jZnMuYwkyNiBKYW4gMjAwNiAwMTo1NzowOCAtMDAw MApAQCAtMTA0MSw2ICsxMTMzLDUxIEBACiB9CiAKIC8qCisgKiBGaWxsZXIgZnVuY3Rpb24gZm9y IHByb2MvZmlsZXN5c3RlbXMKKyAqLworc3RhdGljIGludAorbGlucHJvY2ZzX2RvZmlsZXN5c3Rl bXMoUEZTX0ZJTExfQVJHUykKK3sKKwlpbnQgaSwgZnNfZmxhZ3M7CisJY2hhciBmc19uYW1lW01G U05BTUVMRU5dOworCXN0cnVjdCB2ZnNjb25mICp2ZnNwOworCXN0YXRpYyBjaGFyICpsaW51eF9u b2RldmZzW10gPSB7CisJCS8qIEZpbGVzeXN0ZW1zIGluY2x1ZGVkIHdpdGggRnJlZUJTRCAqLwor CQkiY29kYSIsICJkZXZmcyIsICJmZGVzY2ZzIiwgIm1mcyIsICJuZnMiLAorCQkibmZzNCIsICJu dWxsZnMiLCAicG9ydGFsZnMiLCAicHJvY2ZzIiwKKwkJImxpbnByb2NmcyIsICJzbWJmcyIsICJs aW5zeXNmcyIsICJ1bmlvbmZzIiwKKworCQkvKiBGaWxlc3lzdGVtcyBpbmNsdWRlZCB3aXRoIExp bnV4ICovCisJCSI5cCIsICJhZnMiLCAiYXV0b2ZzIiwgImNpZnMiLCAiY29uZmlnZnMiLAorCQki ZGVidWdmcyIsICJkZXZwdHMiLCAiZnVzZSIsICJob3N0ZnMiLAorCQkiaHBwZnMiLCAiaHVnZXRs YmZzIiwgImpmZnMyIiwgIm5jcGZzIiwKKwkJIm5mc2QiLCAib3BlbnByb21mcyIsICJyYW1mcyIs ICJyb290ZnMiLAorCisJCU5VTEwKKwl9OworCisJVEFJTFFfRk9SRUFDSCh2ZnNwLCAmdmZzY29u ZiwgdmZjX2xpc3QpIHsKKworCQkvKiBEb2VzIHRoZSBmaWxlc3lzdGVtIHJlcXVpcmUgYSBkZXYg ZW50cnk/ICovCisJCWZzX2ZsYWdzID0gMTsJLyogRlNfUkVRVUlSRVNfREVWICovCisJCWZvciAo aSA9IDA7IGxpbnV4X25vZGV2ZnNbaV0gIT0gTlVMTDsgaSsrKSB7CisJCQlpZiAoc3RyY21wKGxp bnV4X25vZGV2ZnNbaV0sIHZmc3AtPnZmY19uYW1lKSA9PSAwKSB7CisJCQkgICAgZnNfZmxhZ3Mg PSAwOworCQkJICAgIGJyZWFrOworCQkJfQorCQl9CisKKwkJc3RybGNweShmc19uYW1lLCB2ZnNw LT52ZmNfbmFtZSwgc2l6ZW9mKGZzX25hbWUpKTsKKwkJYnNkMmxpbnV4X2ZzbmFtZShmc19uYW1l LCBzaXplb2YoZnNfbmFtZSkpOworCisJCXNidWZfcHJpbnRmKHNiLCAiJXNcdCVzXG4iLCBcCisJ CSAgICBmc19mbGFncyA/ICIiIDogIm5vZGV2IiwgZnNfbmFtZSk7CisJfQorCisJcmV0dXJuICgw KTsKK30KKworLyoKICAqIEZpbGxlciBmdW5jdGlvbiBmb3IgcHJvYy9jbWRsaW5lCiAgKi8KIHN0 YXRpYyBpbnQKQEAgLTEwODYsNiArMTIyMyw4IEBACiAJICAgIE5VTEwsIE5VTEwsIFBGU19SRCk7 CiAJcGZzX2NyZWF0ZV9maWxlKHJvb3QsICJkZXZpY2VzIiwgJmxpbnByb2Nmc19kb2RldmljZXMs CiAJICAgIE5VTEwsIE5VTEwsIFBGU19SRCk7CisJcGZzX2NyZWF0ZV9maWxlKHJvb3QsICJmaWxl c3lzdGVtcyIsICZsaW5wcm9jZnNfZG9maWxlc3lzdGVtcywKKwkgICAgTlVMTCwgTlVMTCwgUEZT X1JEKTsKIAlwZnNfY3JlYXRlX2ZpbGUocm9vdCwgImxvYWRhdmciLCAmbGlucHJvY2ZzX2RvbG9h ZGF2ZywKIAkgICAgTlVMTCwgTlVMTCwgUEZTX1JEKTsKIAlwZnNfY3JlYXRlX2ZpbGUocm9vdCwg Im1lbWluZm8iLCAmbGlucHJvY2ZzX2RvbWVtaW5mbywKSW5kZXg6IGNvbXBhdC9saW51eC9saW51 eF9taXNjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9s aW51eC9saW51eF9taXNjLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11IC1yMS4y IGxpbnV4X21pc2MuaAotLS0gY29tcGF0L2xpbnV4L2xpbnV4X21pc2MuaAkzMSBEZWMgMjAwNiAx MTo1NjoxNiAtMDAwMAkxLjIKKysrIGNvbXBhdC9saW51eC9saW51eF9taXNjLmgJMjYgSmFuIDIw MDYgMDI6MTI6MzAgLTAwMDAKQEAgLTQyLDQgKzQyLDkgQEAKIAogI2RlZmluZQlMSU5VWF9NQVhf Q09NTV9MRU4JMTYJLyogTWF4aW11bSBsZW5ndGggb2YgdGhlIHByb2Nlc3MgbmFtZS4gKi8KIAor LyogZGVmaW5lcyBmb3Igc3lzZnMgKi8KKyNkZWZpbmUgTElOVVhfR0VURlNJTkQJCTEJLyogVHJh bnNsYXRlIGZpbGVzeXN0ZW0gbmFtZSB0byBpbmRleCAqLworI2RlZmluZSBMSU5VWF9HRVRGU1RZ UAkJMgkvKiBUcmFuc2xhdGUgaW5kZXggdG8gZmlsZXN5c3RlbSBuYW1lICovCisjZGVmaW5lIExJ TlVYX0dFVE5GU1RZUAkJMwkvKiBSZXR1cm4gdG90YWwgbnVtYmVyIG9mIGZpbGVzeXN0ZW1zICov CisKICNlbmRpZgkvKiBfTElOVVhfTUlTQ19IXyAqLwpJbmRleDogY29tcGF0L2xpbnV4L2xpbnV4 X3V0aWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvY29tcGF0L2xp bnV4L2xpbnV4X3V0aWwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOApkaWZmIC11IC1yMS4y OCBsaW51eF91dGlsLmgKLS0tIGNvbXBhdC9saW51eC9saW51eF91dGlsLmgJMjcgSnVuIDIwMDYg MTg6MzA6NDkgLTAwMDAJMS4yOAorKysgY29tcGF0L2xpbnV4L2xpbnV4X3V0aWwuaAkyNiBKYW4g MjAwNiAwMjowMTozNCAtMDAwMApAQCAtMTAxLDQgKzEwMyw3IEBACiBjaGFyCSpsaW51eF9nZXRf Y2hhcl9kZXZpY2VzKHZvaWQpOwogdm9pZAlsaW51eF9mcmVlX2dldF9jaGFyX2RldmljZXMoY2hh ciAqc3RyaW5nKTsKIAorLyogdXNlZCBieSBzeXNmcyBhbmQgbGlucHJvY2ZzX2RvZmlsZXN5c3Rl bXMgZnVuY3Rpb25zICovCit2b2lkCWJzZDJsaW51eF9mc25hbWUoY2hhciAqbmFtZSwgaW50IHNp emUpOworCiAjZW5kaWYgLyogIV9MSU5VWF9VVElMX0hfICovCkluZGV4OiBhbWQ2NC9saW51eDMy L2xpbnV4MzJfZHVtbXkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMv YW1kNjQvbGludXgzMi9saW51eDMyX2R1bW15LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpk aWZmIC11IC1yMS43IGxpbnV4MzJfZHVtbXkuYwotLS0gYW1kNjQvbGludXgzMi9saW51eDMyX2R1 bW15LmMJMzEgRGVjIDIwMDYgMTM6MTY6MDAgLTAwMDAJMS43CisrKyBhbWQ2NC9saW51eDMyL2xp bnV4MzJfZHVtbXkuYwkxNiBKYW4gMjAwNyAwMjo0MjowMyAtMDAwMApAQCAtNTAsNiArNTAsNSBA QAogRFVNTVkoZ2V0X2tlcm5lbF9zeW1zKTsKIERVTU1ZKHF1b3RhY3RsKTsKIERVTU1ZKGJkZmx1 c2gpOwotRFVNTVkoc3lzZnMpOwogRFVNTVkocXVlcnlfbW9kdWxlKTsKIERVTU1ZKG5mc3NlcnZj dGwpOwpJbmRleDogaTM4Ni9saW51eC9saW51eF9kdW1teS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9ob21lL25jdnMvc3JjL3N5cy9pMzg2L2xpbnV4L2xpbnV4X2R1bW15LmMsdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuNDUKZGlmZiAtdSAtcjEuNDUgbGludXhfZHVtbXkuYwotLS0gaTM4Ni9saW51 eC9saW51eF9kdW1teS5jCTMxIERlYyAyMDA2IDEzOjE2OjAwIC0wMDAwCTEuNDUKKysrIGkzODYv bGludXgvbGludXhfZHVtbXkuYwkxNiBKYW4gMjAwNyAwMzowMjo1NiAtMDAwMApAQCAtNTIsNiAr NTIsNSBAQAogRFVNTVkoZ2V0X2tlcm5lbF9zeW1zKTsKIERVTU1ZKHF1b3RhY3RsKTsKIERVTU1Z KGJkZmx1c2gpOwotRFVNTVkoc3lzZnMpOwogRFVNTVkodm04Nik7CiBEVU1NWShxdWVyeV9tb2R1 bGUpOwpJbmRleDogY29tcGF0L2xpbnV4L2xpbnV4X21pc2MuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvaG9tZS9uY3ZzL3NyYy9zeXMvY29tcGF0L2xpbnV4L2xpbnV4X21pc2MuYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4yMDUKZGlmZiAtdSAtcjEuMjA1IGxpbnV4X21pc2MuYwotLS0gY29tcGF0 L2xpbnV4L2xpbnV4X21pc2MuYwk3IEphbiAyMDA3IDE5OjMwOjE5IC0wMDAwCTEuMjA1CisrKyBj b21wYXQvbGludXgvbGludXhfbWlzYy5jCTI2IEphbiAyMDA2IDA0OjU2OjUyIC0wMDAwCkBAIC0x NzE2LDMgKzE3MjksMTE0IEBACiB7CiAJcmV0dXJuIChjaHJvb3QodGQsIChzdHJ1Y3QgY2hyb290 X2FyZ3MgKilhcmdzKSk7CiB9CisKKy8qIHRhYmxlIHVzZWQgdG8gZGVyaXZlIGxpbnV4IGZpbGVz eXN0ZW0gbmFtZXMgdG8vZnJvbSBmcmVlYnNkIGZpbGVzeXN0ZW0gbmFtZXMgKi8KK3N0YXRpYyBz dHJ1Y3Qge2NvbnN0IGNoYXIgKmxfbmFtZTsgY29uc3QgY2hhciAqYl9uYW1lO30gbDJiZnNfdGJs W10gPSB7CisJeyAiZXh0MiIsICJleHQyZnMiIH0sCisJeyAiZXh0MyIsICJleHQyZnMifSwKKwl7 ICJpc285NjYwIiwgImNkOTY2MCJ9LAorCXsgIm1zZG9zIiwgIm1zZG9zZnMifSwKKwl7ICJic2Rw cm9jZnMiLCAicHJvY2ZzIn0sCisJeyAicHJvYyIsICJsaW5wcm9jZnMifSwKKwl7ICJzeXNmcyIs ICJsaW5zeXNmcyJ9LAorCXsgInVmcyIsICJmZnMifSwKKwl7ICJ2ZmF0IiwgIm1zZG9zZnMifSwK Kwl7IE5VTEwsIE5VTEwgfQorfTsKKworLyogCisgKiBUcmFuc2xhdGUgYnNkIGZpbGVzeXN0ZW0g bmFtZSB0byBsaW51eCBmaWxlc3lzdGVtIG5hbWUKKyAqIHVzZWQgYnkgbGlucHJvY2ZzX2RvZmls ZXN5c3RlbXMgYW5kIHN5c2ZzIExJTlVYX0dFVEZTVFlQCisgKi8KK3ZvaWQKK2JzZDJsaW51eF9m c25hbWUoY2hhciAqbmFtZSwgaW50IHNpemUpCit7CisJaW50IGk7CisKKwlmb3IgKCBpID0gMDsg bDJiZnNfdGJsW2ldLmJfbmFtZSAhPSBOVUxMOyBpKyspIHsKKwkJaWYgKHN0cmNtcChsMmJmc190 YmxbaV0uYl9uYW1lLCBuYW1lKSA9PSAwKSB7CisJCQlzdHJsY3B5KG5hbWUsIGwyYmZzX3RibFtp XS5sX25hbWUsIHNpemUpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKK2ludAorbGludXhfc3lz ZnMoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBsaW51eF9zeXNmc19hcmdzICphcmdzKQorewor CWludCBpLCBlcnJvcj0wOworCXVuc2lnbmVkIGludCBpbmRleCA9IDA7CisJY2hhciBmc19uYW1l W01GU05BTUVMRU5dOworCXN0cnVjdCB2ZnNjb25mICp2ZnNwOworCisJc3dpdGNoIChhcmdzLT5v cHRpb24pIHsKKwkJLyoKKwkJICogVHJhbnNsYXRlIHRoZSBmaWxlc3lzdGVtIGlkZW50aWZpZXIg c3RyaW5nIGludG8gYQorCQkgKiBmaWxlc3lzdGVtIHR5cGUgaW5kZXguCisJCSAqLworCQljYXNl IExJTlVYX0dFVEZTSU5EOgorCQkJLyogSXMgYXJncy0+YXJnMSB2YWxpZCwgaWYgbm90IHZhbGlk IHJldHVybiBFRkFVTFQgKi8KKwkJCWVycm9yID0gY29weWluc3RyKCh2b2lkICopKHJlZ2lzdGVy X3QpYXJncy0+YXJnMSwgZnNfbmFtZSwKKwkJCQkJICBNRlNOQU1FTEVOLCBOVUxMKTsKKwkJCWlm IChlcnJvcikgeworCQkJCXJldHVybiAoZXJyb3IpOworIAkJCX0KKworCQkJZm9yICggaSA9IDA7 IGwyYmZzX3RibFtpXS5sX25hbWUgIT0gTlVMTDsgaSsrKSB7CisJCQkJaWYgKHN0cmNtcChsMmJm c190YmxbaV0ubF9uYW1lLCBmc19uYW1lKSA9PSAwKSB7CisJCQkJCXN0cmxjcHkoZnNfbmFtZSwg bDJiZnNfdGJsW2ldLmJfbmFtZSwKKwkJCQkJCXNpemVvZihmc19uYW1lKSk7CisJCQkJCWJyZWFr OworCQkJCX0KKwkJCX0KKworCQkJVEFJTFFfRk9SRUFDSCh2ZnNwLCAmdmZzY29uZiwgdmZjX2xp c3QpCisJCQkJaWYgKHN0cmNtcCh2ZnNwLT52ZmNfbmFtZSwgZnNfbmFtZSkgPT0gMCkgeworCQkJ CQl0ZC0+dGRfcmV0dmFsWzBdID0gaW5kZXg7CisJCQkJCWJyZWFrOworCQkJCX0gZWxzZQorCQkJ CQlpbmRleCsrOworCQkJaWYgKCF2ZnNwKQorCQkJCXJldHVybiAoRUlOVkFMKTsKKwkJCWJyZWFr OworCisJCS8qCisJCSAqIFRyYW5zbGF0ZSB0aGUgZmlsZS1zeXN0ZW0gdHlwZSBpbmRleCBpbnRv IGEKKwkJICogbnVsbC10ZXJtaW5hdGVkIGZpbGVzeXN0ZW0gaWRlbnRpZmllciBzdHJpbmcuCisJ CSAqLworCQljYXNlIExJTlVYX0dFVEZTVFlQOgorCQkJaW5kZXggPSBhcmdzLT5hcmcxOworCisJ CQlUQUlMUV9GT1JFQUNIKHZmc3AsICZ2ZnNjb25mLCB2ZmNfbGlzdCkKKwkJCQlpZiAoaW5kZXgt LSA8PSAwKQorCQkJCQlicmVhazsKKwkJCWlmICghdmZzcCkKKwkJCQlyZXR1cm4gKEVJTlZBTCk7 CisKKwkJCXN0cmxjcHkoZnNfbmFtZSwgdmZzcC0+dmZjX25hbWUsIHNpemVvZihmc19uYW1lKSk7 CisJCQlic2QybGludXhfZnNuYW1lKGZzX25hbWUpOworCisJCQkvKgorCQkJICogV2UgYXNzdW1l IHRoYXQgdGhlIGJ1ZmZlciBwb2ludGVkIHRvIGJ5CisJCQkgKiAodm9pZCAqKShyZWdpc3Rlcl90 KWFyZ3MtPmFyZzIgaXMgZ3JlYXRlciB0aGFuIE1GU05BTUVMRU4KKwkJCSAqLworCQkJZXJyb3Ig PSBjb3B5b3V0KGZzX25hbWUsICh2b2lkICopKHJlZ2lzdGVyX3QpYXJncy0+YXJnMiwKKwkJCQkJ TUZTTkFNRUxFTik7CisJCQlicmVhazsKKworCQkvKgorCQkgKiBSZXR1cm4gdGhlIHRvdGFsIG51 bWJlciBvZiBmaWxlIHN5c3RlbSB0eXBlcworCQkgKiBjdXJyZW50bHkgcHJlc2VudCBpbiB0aGUg a2VybmVsLgorCQkgKi8KKwkJY2FzZSBMSU5VWF9HRVRORlNUWVA6CisJCQlUQUlMUV9GT1JFQUNI KHZmc3AsICZ2ZnNjb25mLCB2ZmNfbGlzdCkKKwkJCQlpbmRleCsrOworCQkJdGQtPnRkX3JldHZh bFswXSA9IGluZGV4OworCQkJYnJlYWs7CisKKwkJLyogSW52YWxpZCBvcHRpb24gcGFzc2VkICov CisJCWRlZmF1bHQ6CisJCQllcnJvciA9IEVJTlZBTDsKKwl9CisJcmV0dXJuIChlcnJvcik7Cit9 Cg== --0016e64603c82f027f0473b2e8f6--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?790a9fff0909160742p1043e643i69febf5a7e88a97e>