Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jan 2007 22:17:05 -0600
From:      "Scot Hetzel" <swhetzel@gmail.com>
To:        freebsd-emulation@freebsd.org
Cc:        Alexander Leidinger <Alexander@leidinger.net>
Subject:   Re: linuxolator: proc/filesystems and sysfs function implementations
Message-ID:  <790a9fff0701132017g6c081567la4a759cea4618535@mail.gmail.com>
In-Reply-To: <20070106130830.3c2e6d98@Magellan.Leidinger.net>
References:  <790a9fff0701060012x40063f48pc842510b082df5a5@mail.gmail.com> <20070106130830.3c2e6d98@Magellan.Leidinger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_30898_24571429.1168748225274
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Attached is an implementation for the linux sysfs() function and
linprocfs (proc/filesystems).

I have run the sysfs01-06 LTP tests, and it passes all tests.

NOTE: kldload ext2fs before running the sysfs01 test.

The code uses 2 translation functions located in linux_util.c:

bsd_to_linux_fs - converts BSD filesystem name to the Linux
equivalent, and if the filesystem requires a dev entry (used by
linprocfs_do_filesystems function).
linux_to_bsd_fs - converts Linux filesystem name to the BSD equivalent

Scot
-- 
DISCLAIMER:
No electrons were mamed while sending this message. Only slightly bruised.

------=_Part_30898_24571429.1168748225274
Content-Type: text/x-diff; name=sysfs.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ewwy5dlo
Content-Disposition: attachment; filename="sysfs.patch"

SW5kZXg6IGFtZDY0L2xpbnV4MzIvbGludXgzMl9kdW1teS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9ob21lL25jdnMvc3JjL3N5cy9hbWQ2NC9saW51eDMyL2xpbnV4MzJfZHVtbXkuYyx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXUgLXIxLjcgbGludXgzMl9kdW1teS5jCi0tLSBhbWQ2
NC9saW51eDMyL2xpbnV4MzJfZHVtbXkuYwkzMSBEZWMgMjAwNiAxMzoxNjowMCAtMDAwMAkxLjcK
KysrIGFtZDY0L2xpbnV4MzIvbGludXgzMl9kdW1teS5jCTMxIERlYyAyMDA2IDIzOjUxOjI2IC0w
MDAwCkBAIC01MCw2ICs1MCw1IEBACiBEVU1NWShnZXRfa2VybmVsX3N5bXMpOwogRFVNTVkocXVv
dGFjdGwpOwogRFVNTVkoYmRmbHVzaCk7Ci1EVU1NWShzeXNmcyk7CiBEVU1NWShxdWVyeV9tb2R1
bGUpOwogRFVNTVkobmZzc2VydmN0bCk7CiBJbmRleDogaTM4Ni9saW51eC9saW51eF9kdW1teS5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9pMzg2L2xpbnV4L2xpbnV4
X2R1bW15LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDUKZGlmZiAtdSAtcjEuNDUgbGludXhf
ZHVtbXkuYwotLS0gaTM4Ni9saW51eC9saW51eF9kdW1teS5jCTMxIERlYyAyMDA2IDEzOjE2OjAw
IC0wMDAwCTEuNDUKKysrIGkzODYvbGludXgvbGludXhfZHVtbXkuYwkzMSBEZWMgMjAwNiAyMzo1
NTo1NyAtMDAwMApAQCAtNTIsNiArNTIsNSBAQAogRFVNTVkoZ2V0X2tlcm5lbF9zeW1zKTsKIERV
TU1ZKHF1b3RhY3RsKTsKIERVTU1ZKGJkZmx1c2gpOwotRFVNTVkoc3lzZnMpOwogRFVNTVkodm04
Nik7CiBEVU1NWShxdWVyeV9tb2R1bGUpOwpJbmRleDogY29tcGF0L2xpbnV4L2xpbnV4X21pc2Mu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvY29tcGF0L2xpbnV4L2xp
bnV4X21pc2MuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMDUKZGlmZiAtdSAtcjEuMjA1IGxp
bnV4X21pc2MuYwotLS0gY29tcGF0L2xpbnV4L2xpbnV4X21pc2MuYwk3IEphbiAyMDA3IDE5OjMw
OjE5IC0wMDAwCTEuMjA1CisrKyBjb21wYXQvbGludXgvbGludXhfbWlzYy5jCTE0IEphbiAyMDA3
IDAxOjU2OjQxIC0wMDAwCkBAIC0xNzExLDMgKzE3MjQsODMgQEAKIAogCXJldHVybiAoZXJyb3Ip
OwogfQogCiBpbnQKIGxpbnV4X2Nocm9vdChzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGxpbnV4
X2Nocm9vdF9hcmdzICphcmdzKQogewogCXJldHVybiAoY2hyb290KHRkLCAoc3RydWN0IGNocm9v
dF9hcmdzICopYXJncykpOwp9CisKK2ludAorbGludXhfc3lzZnMoc3RydWN0IHRocmVhZCAqdGQs
IHN0cnVjdCBsaW51eF9zeXNmc19hcmdzICphcmdzKQoreworCWludCBlcnJvcj0wOworCXVuc2ln
bmVkIGludCBpbmRleCA9IDA7CisJc2l6ZV90IGxlbjsKKwljaGFyICpidWY7CisJY2hhciAqbmFt
ZTsKKwlzdHJ1Y3QgbGludXhfZmlsZV9zeXN0ZW1fdHlwZSBmczsKKwlzdHJ1Y3QgdmZzY29uZiAq
dmZzcDsKKworCXN3aXRjaCAoYXJncy0+b3B0aW9uKSB7CisJCS8qCisJCSAqIFRyYW5zbGF0ZSB0
aGUgZmlsZXN5c3RlbSBpZGVudGlmaWVyIHN0cmluZyBpbnRvIGEKKwkJICogZmlsZXN5c3RlbSB0
eXBlIGluZGV4LgorCQkgKi8KKwkJY2FzZSAxOgorCQkJLyogaXMgYXJncy0+YXJnMSBpcyB2YWxp
ZCwgaWYgbm90IHZhbGlkIHJldHVybiBFRkFVTFQgKi8KKwkJCW5hbWUgPSAoY2hhciAqKSBtYWxs
b2MoTUZTTkFNRUxFTiwgTV9URU1QLCBNX1dBSVRPSyk7CisJCQllcnJvciA9IGNvcHlpbnN0cigo
Y2hhciAqKSh1aW50cHRyX3QpYXJncy0+YXJnMSwgbmFtZSwKKwkJCQkJICBNRlNOQU1FTEVOLCAm
bGVuKTsKKwkJCWlmIChlcnJvcikgeworCQkJCUxGUkVFUEFUSChuYW1lKTsKKwkJCQlyZXR1cm4g
KGVycm9yKTsKKyAJCQl9CisKKwkJCWVycm9yID0gRUlOVkFMOworCisJCQlsaW51eF90b19ic2Rf
ZnMobmFtZSwgJmZzKTsKKworCQkJVEFJTFFfRk9SRUFDSCh2ZnNwLCAmdmZzY29uZiwgdmZjX2xp
c3QpCisJCQkJaWYgKHN0cmNtcCh2ZnNwLT52ZmNfbmFtZSwgZnMubmFtZSkgPT0gMCkgeworCQkJ
CQl0ZC0+dGRfcmV0dmFsWzBdID0gaW5kZXg7CisJCQkJCWVycm9yID0gMDsKKwkJCQkJYnJlYWs7
CisJCQkJfSBlbHNlCisJCQkJCWluZGV4Kys7CisJCQlMRlJFRVBBVEgobmFtZSk7CisJCQlicmVh
azsKKworCQkvKgorCQkgKiBUcmFuc2xhdGUgdGhlIGZpbGUtc3lzdGVtIHR5cGUgaW5kZXggaW50
byBhIG51bGwtdGVybWluYXRlZAorCQkgKiBmaWxlc3lzdGVtIGlkZW50aWZpZXIgc3RyaW5nLgor
CQkgKi8KKwkJY2FzZSAyOgorCQkJaW5kZXggPSBhcmdzLT5hcmcxOworCQkJYnVmID0gKGNoYXIg
KikodWludHB0cl90KWFyZ3MtPmFyZzI7CisKKwkJCVRBSUxRX0ZPUkVBQ0godmZzcCwgJnZmc2Nv
bmYsIHZmY19saXN0KQorCQkJCWlmIChpbmRleC0tIDw9IDApCisJCQkJCWJyZWFrOworCQkJaWYg
KCF2ZnNwKQorCQkJCXJldHVybiBFSU5WQUw7CisKKwkJCWJzZF90b19saW51eF9mcyh2ZnNwLT52
ZmNfbmFtZSwgJmZzKTsKKwkJCWxlbiA9IHN0cmxlbihmcy5uYW1lKSArIDE7CisJCQllcnJvciA9
IGNvcHlvdXQoZnMubmFtZSwgYnVmLCBsZW4pOworCQkJYnJlYWs7CisKKwkJLyoKKwkJICogUmV0
dXJuIHRoZSB0b3RhbCBudW1iZXIgb2YgZmlsZSBzeXN0ZW0gdHlwZXMgY3VycmVudGx5IHByZXNl
bnQKKwkJICogaW4gdGhlIGtlcm5lbC4KKwkJICovCisJCWNhc2UgMzoKKwkJCVRBSUxRX0ZPUkVB
Q0godmZzcCwgJnZmc2NvbmYsIHZmY19saXN0KQorCQkJCWluZGV4Kys7CisJCQl0ZC0+dGRfcmV0
dmFsWzBdID0gaW5kZXg7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVycm9yID0gRUlOVkFM
OworCX0KKwlyZXR1cm4gKGVycm9yKTsKK30KSW5kZXg6IGNvbXBhdC9saW51eC9saW51eF91dGls
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9saW51eC9s
aW51eF91dGlsLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzEKZGlmZiAtdSAtcjEuMzEgbGlu
dXhfdXRpbC5jCi0tLSBjb21wYXQvbGludXgvbGludXhfdXRpbC5jCTE1IEF1ZyAyMDA2IDEyOjU0
OjI5IC0wMDAwCTEuMzEKKysrIGNvbXBhdC9saW51eC9saW51eF91dGlsLmMJMTQgSmFuIDIwMDcg
MDI6MTE6MDggLTAwMDAKQEAgLTIyNCwzICsyMjQsODIgQEAKIAogCXJldHVybiAoRUlOVkFMKTsK
IH0KKwordm9pZAorYnNkX3RvX2xpbnV4X2ZzKGNoYXIgKm5hbWUsIHN0cnVjdCBsaW51eF9maWxl
X3N5c3RlbV90eXBlICpmcykKK3sKKyNkZWZpbmUgTF9OT0RFVihmbmFtZSkgXAorCWlmIChzdHJj
bXAoZm5hbWUsIG5hbWUpID09IDApIFwKKwkgICAgZnMtPmZzX2ZsYWdzID0gMDsKKyNkZWZpbmUg
RjJMX05BTUUoZm5hbWUsIGxuYW1lKSBcCisJaWYgKHN0cmNtcChmbmFtZSwgbmFtZSkgPT0gMCkg
XAorCSAgIHN0cmNweShmcy0+bmFtZSwgbG5hbWUpOworCisJTF9OT0RFVigiOXAiKQorCWVsc2Ug
TF9OT0RFVigiYWZzIikKKwllbHNlIExfTk9ERVYoImF1dG9mcyIpCisJZWxzZSBMX05PREVWKCJj
aWZzIikKKwllbHNlIExfTk9ERVYoImNvZGEiKQorCWVsc2UgTF9OT0RFVigiY29uZmlnZnMiKQor
CWVsc2UgTF9OT0RFVigiZGVidWdmcyIpCisJZWxzZSBMX05PREVWKCJkZXZmcyIpCisJZWxzZSBM
X05PREVWKCJkZXZwdHMiKQorCWVsc2UgTF9OT0RFVigiZmRlc2NmcyIpCisJZWxzZSBMX05PREVW
KCJmdXNlIikKKwllbHNlIExfTk9ERVYoImhvc3RmcyIpCisJZWxzZSBMX05PREVWKCJocHBmcyIp
CisJZWxzZSBMX05PREVWKCJodWdldGxiZnMiKQorCWVsc2UgTF9OT0RFVigiamZmczIiKQorCWVs
c2UgTF9OT0RFVigibWZzIikKKwllbHNlIExfTk9ERVYoIm5jcGZzIikKKwllbHNlIExfTk9ERVYo
Im5mcyIpCisJZWxzZSBMX05PREVWKCJuZnM0IikKKwllbHNlIExfTk9ERVYoIm5mc2QiKQorCWVs
c2UgTF9OT0RFVigibnVsbGZzIikKKwllbHNlIExfTk9ERVYoIm9wZW5wcm9tZnMiKQorCWVsc2Ug
TF9OT0RFVigicG9ydGFsZnMiKQorCWVsc2UgTF9OT0RFVigicHJvY2ZzIikKKwllbHNlIExfTk9E
RVYoImxpbnByb2NmcyIpCisJZWxzZSBMX05PREVWKCJyYW1mcyIpCisJZWxzZSBMX05PREVWKCJy
b290ZnMiKQorCWVsc2UgTF9OT0RFVigic21iZnMiKQorCWVsc2UgTF9OT0RFVigibGluc3lzZnMi
KQorCWVsc2UgTF9OT0RFVigidW5pb25mcyIpCisJZWxzZQorCQlmcy0+ZnNfZmxhZ3MgPSAxOwkv
KiBGU19SRVFVSVJFU19ERVYgKi8KKworCUYyTF9OQU1FKCJleHQyZnMiLCAiZXh0MiIpCisJZWxz
ZSBGMkxfTkFNRSgiY2Q5NjYwIiwgImlzbzk2NjAiKQorCWVsc2UgRjJMX05BTUUoIm1zZG9zZnMi
LCAibXNkb3MiKQorCWVsc2UgRjJMX05BTUUoInByb2NmcyIsICJic2Rwcm9jZnMiKQorCWVsc2Ug
RjJMX05BTUUoImxpbnByb2NmcyIsICJwcm9jIikKKwllbHNlIEYyTF9OQU1FKCJsaW5zeXNmcyIs
ICJzeXNmcyIpCisJZWxzZSBGMkxfTkFNRSgiZmZzIiwgInVmcyIpCisJZWxzZQorCQlzdHJjcHko
ZnMtPm5hbWUsIG5hbWUpOworI3VuZGVmIExfTk9ERVYKKyN1bmRlZiBGMkxfTkFNRQorfQorCit2
b2lkCitsaW51eF90b19ic2RfZnMoY2hhciAqbmFtZSwgc3RydWN0IGxpbnV4X2ZpbGVfc3lzdGVt
X3R5cGUgKmZzKQoreworCisjZGVmaW5lIEwyRl9OQU1FKGxuYW1lLCBmbmFtZSkgXAorCWlmIChz
dHJjbXAobG5hbWUsIG5hbWUpID09IDApIFwKKwkgICBzdHJjcHkoZnMtPm5hbWUsIGZuYW1lKTsK
KworCUwyRl9OQU1FKCJleHQyIiwgImV4dDJmcyIpCisJZWxzZSBMMkZfTkFNRSgiZXh0MyIsICJl
eHQyZnMiKQorCWVsc2UgTDJGX05BTUUoImlzbzk2NjAiLCAiY2Q5NjYwIikKKwllbHNlIEwyRl9O
QU1FKCJtc2RvcyIsICJtc2Rvc2ZzIikKKwllbHNlIEwyRl9OQU1FKCJic2Rwcm9jZnMiLCAicHJv
Y2ZzIikKKwllbHNlIEwyRl9OQU1FKCJwcm9jIiwgImxpbnByb2NmcyIpCisJZWxzZSBMMkZfTkFN
RSgic3lzZnMiLCAibGluc3lzZnMiKQorCWVsc2UgTDJGX05BTUUoInVmcyIsICJmZnMiKQorCWVs
c2UgTDJGX05BTUUoInZmYXQiLCAibXNkb3NmcyIpCisJZWxzZQorCQlzdHJjcHkoZnMtPm5hbWUs
IG5hbWUpOworCisjdW5kZWYgTDJGX05BTUUKK30KSW5kZXg6IGNvbXBhdC9saW51eC9saW51eF91
dGlsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9saW51
eC9saW51eF91dGlsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjgKZGlmZiAtdSAtcjEuMjgg
bGludXhfdXRpbC5oCi0tLSBjb21wYXQvbGludXgvbGludXhfdXRpbC5oCTI3IEp1biAyMDA2IDE4
OjMwOjQ5IC0wMDAwCTEuMjgKKysrIGNvbXBhdC9saW51eC9saW51eF91dGlsLmgJMTQgSmFuIDIw
MDcgMDI6MDg6NDIgLTAwMDAKQEAgLTEwMSw0ICsxMDEsMTIgQEAKIGNoYXIJKmxpbnV4X2dldF9j
aGFyX2RldmljZXModm9pZCk7CiB2b2lkCWxpbnV4X2ZyZWVfZ2V0X2NoYXJfZGV2aWNlcyhjaGFy
ICpzdHJpbmcpOwogCitzdHJ1Y3QgbGludXhfZmlsZV9zeXN0ZW1fdHlwZSB7CisJY2hhcgluYW1l
WzE2XTsKKwlpbnQJZnNfZmxhZ3M7Cit9OworCit2b2lkCWJzZF90b19saW51eF9mcyhjaGFyICpu
YW1lLCBzdHJ1Y3QgbGludXhfZmlsZV9zeXN0ZW1fdHlwZSAqZnMpOwordm9pZAlsaW51eF90b19i
c2RfZnMoY2hhciAqbmFtZSwgc3RydWN0IGxpbnV4X2ZpbGVfc3lzdGVtX3R5cGUgKmZzKTsKKwog
I2VuZGlmIC8qICFfTElOVVhfVVRJTF9IXyAqLwpJbmRleDogY29tcGF0L2xpbnByb2Nmcy9saW5w
cm9jZnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvY29tcGF0L2xp
bnByb2Nmcy9saW5wcm9jZnMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDEKZGlmZiAtdSAt
cjEuMTAxIGxpbnByb2Nmcy5jCi0tLSBjb21wYXQvbGlucHJvY2ZzL2xpbnByb2Nmcy5jCTI3IE5v
diAyMDA2IDIxOjEwOjU1IC0wMDAwCTEuMTAxCisrKyBjb21wYXQvbGlucHJvY2ZzL2xpbnByb2Nm
cy5jCTE0IEphbiAyMDA3IDAwOjA3OjI4IC0wMDAwCkBAIC0xMDMxLDYgKzEwMzEsMjQgQEAKIH0K
IAogLyoKKyAqIEZpbGxlciBmdW5jdGlvbiBmb3IgcHJvYy9maWxlc3lzdGVtcworICovCitzdGF0
aWMgaW50CitsaW5wcm9jZnNfZG9maWxlc3lzdGVtcyhQRlNfRklMTF9BUkdTKQoreworCXN0cnVj
dCB2ZnNjb25mICp2ZnNwOworCXN0cnVjdCBsaW51eF9maWxlX3N5c3RlbV90eXBlIGZzOworCisJ
VEFJTFFfRk9SRUFDSCh2ZnNwLCAmdmZzY29uZiwgdmZjX2xpc3QpIHsKKwkJYnNkX3RvX2xpbnV4
X2ZzKHZmc3AtPnZmY19uYW1lLCAmZnMpOworCQlzYnVmX3ByaW50ZihzYiwgIiVzXHQlc1xuIiwg
XAorCQkgICAgZnMuZnNfZmxhZ3MgPyAiIiA6ICJub2RldiIsIGZzLm5hbWUpOworCX0KKworCXJl
dHVybiAoMCk7Cit9CisKKy8qCiAgKiBGaWxsZXIgZnVuY3Rpb24gZm9yIHByb2MvY21kbGluZQog
ICovCiBzdGF0aWMgaW50CkBAIC0xMDc2LDYgKzEwOTQsOCBAQAogCSAgICBOVUxMLCBOVUxMLCBQ
RlNfUkQpOwogCXBmc19jcmVhdGVfZmlsZShyb290LCAiZGV2aWNlcyIsICZsaW5wcm9jZnNfZG9k
ZXZpY2VzLAogCSAgICBOVUxMLCBOVUxMLCBQRlNfUkQpOworCXBmc19jcmVhdGVfZmlsZShyb290
LCAiZmlsZXN5c3RlbXMiLCAmbGlucHJvY2ZzX2RvZmlsZXN5c3RlbXMsCisJICAgIE5VTEwsIE5V
TEwsIFBGU19SRCk7CiAJcGZzX2NyZWF0ZV9maWxlKHJvb3QsICJsb2FkYXZnIiwgJmxpbnByb2Nm
c19kb2xvYWRhdmcsCiAJICAgIE5VTEwsIE5VTEwsIFBGU19SRCk7CiAJcGZzX2NyZWF0ZV9maWxl
KHJvb3QsICJtZW1pbmZvIiwgJmxpbnByb2Nmc19kb21lbWluZm8sCg==
------=_Part_30898_24571429.1168748225274--



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