From owner-freebsd-emulation@FreeBSD.ORG Thu Dec 14 12:13:20 2006 Return-Path: X-Original-To: emulation@freebsd.org Delivered-To: freebsd-emulation@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EE3F116A4D2 for ; Thu, 14 Dec 2006 12:13:20 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.239]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3729A43DA4 for ; Thu, 14 Dec 2006 11:59:53 +0000 (GMT) (envelope-from swhetzel@gmail.com) Received: by nz-out-0506.google.com with SMTP id i11so235150nzh for ; Thu, 14 Dec 2006 04:01:28 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=C1fpIsUk9j+60C3anyUu1nTASCjb2BwVjpbswWwFMPVORVeR5yive3ztPA3kTGk7CP+n2YnoFbukn+/13L45JsNnqDolED3F423KLMHvJc0UvOX7LqvJe845geIkIOOc3PTFx1ervWAV3L0S53a2xkjNkMLD7C1Z4DU01oDQPbI= Received: by 10.65.210.18 with SMTP id m18mr1415163qbq.1166097687920; Thu, 14 Dec 2006 04:01:27 -0800 (PST) Received: by 10.65.61.1 with HTTP; Thu, 14 Dec 2006 04:01:27 -0800 (PST) Message-ID: <790a9fff0612140401h7bf0bdb0idb1590120ae95e3f@mail.gmail.com> Date: Thu, 14 Dec 2006 06:01:27 -0600 From: "Scot Hetzel" To: emulation@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_72120_10226074.1166097687876" Cc: Subject: linuxolator: proc/filesystems implementation X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Dec 2006 12:13:21 -0000 ------=_Part_72120_10226074.1166097687876 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Linux has a file in the procfs that shows all the loaded filesystem modules. I have implemented the function that fills this file using the linprocfs module. What the function does is look for specific kernel modules using module_lookupbyname to create an entry in the proc/filesystems file: # cat /compat/linux/proc/filesystems cd9660 nodev devfs nodev bsdprocfs mfs msdosfs nfs nfs4 nodev procfs nodev sysfs ufs # kldload smbfs # cat /compat/linux/proc/filesystems cd9660 nodev devfs nodev bsdprocfs mfs msdosfs nfs nfs4 nodev procfs smbfs nodev sysfs ufs Unloading a filesystem kernel module will remove the entry from proc/filesystems. Scot -- DISCLAIMER: No electrons were mamed while sending this message. Only slightly bruised. ------=_Part_72120_10226074.1166097687876 Content-Type: text/x-diff; name="linprocfs_filesystem.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linprocfs_filesystem.patch" X-Attachment-Id: f_evp4fm4c SW5kZXg6IGNvbXBhdC9saW5wcm9jZnMvbGlucHJvY2ZzLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9saW5wcm9jZnMvbGlucHJvY2ZzLmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTAxCmRpZmYgLXUgLXIxLjEwMSBsaW5wcm9jZnMuYwotLS0gY29tcGF0 L2xpbnByb2Nmcy9saW5wcm9jZnMuYwkyNyBOb3YgMjAwNiAyMToxMDo1NSAtMDAwMAkxLjEwMQor KysgY29tcGF0L2xpbnByb2Nmcy9saW5wcm9jZnMuYwkyOSBOb3YgMjAwNiAwNToyMTo1MSAtMDAw MApAQCAtMTAzMSw2ICsxMDMxLDY1IEBACiB9CiAKIC8qCisgKiBGaWxsZXIgZnVuY3Rpb24gZm9y IHByb2MvZmlsZXN5c3RlbXMKKyAqCisgKiBOT1RFOiBUaGUgb25seSBwcm9ibGVtIGlzIHRoYXQg YXMgbmV3IGZpbGVzeXN0ZW1zIGFyZSBhZGRlZCwgdGhleQorICogICAgICAgd2lsbCBuZWVkIHRv IGJlIGFkZGVkIHRvIHRoaXMgbGlzdCBhbHBhYmV0aWNhbGx5LCBhcyB0aGUKKyAqICAgICAgIGxp c3QgY2FuJ3QgYmUgdXBkYXRlZCBkeW5hbWljYWxseS4KKyAqLworc3RhdGljIGludAorbGlucHJv Y2ZzX2RvZmlsZXN5c3RlbXMoUEZTX0ZJTExfQVJHUykKK3sKKworI2RlZmluZSBGU19BREQobmFt ZSwgbm9kZXYsIGZpbGVzeXN0ZW0pIFwKKwlpZiAobW9kdWxlX2xvb2t1cGJ5bmFtZShuYW1lKSAh PSBOVUxMKSBcCisJICAgIHNidWZfcHJpbnRmKHNiLCAiJXNcdCVzXG4iLCBcCisJCW5vZGV2ID8g Im5vZGV2IiA6ICIiLCBmaWxlc3lzdGVtKTsKKworCU1PRF9TTE9DSzsKKwkvKgorCSAqIFByaW50 IGEgbGlzdCBvZiB0aGUgY3VycmVudGx5IGxvYWRlZCBrZXJuZWwgZmlsZXN5c3RlbSBtb2R1bGVz LgorCSAqCisJICoJRnJlZUJTRAkJTm8JTGludXgKKwkgKglLZXJuZWwJCVNwZWNpYWwgRmlsZXN5 c3RlbQorCSAqCU1vZHVsZQkJRGV2aWNlCU5hbWUKKwkgKi8KKwlGU19BREQoImNkOTY2MCIsCTAs CSJjZDk2NjAiKTsKKwlGU19BREQoImRldmZzIiwJCTEsCSJkZXZmcyIpOworCUZTX0FERCgiZXh0 MmZzIiwJMCwJImV4dDJmcyIpOworCUZTX0FERCgicHJvY2ZzIiwJMSwJImJzZHByb2NmcyIpOwkv KiByZW5hbWVkIHByb2NmcyBtb2R1bGUgdG8gYnNkcHJvY2ZzICovCisJRlNfQUREKCJmZGVzY2Zz IiwJMSwJImZkZXNjZnMiKTsKKwlGU19BREQoImdfbWQiLAkJMCwJIm1mcyIpOworCUZTX0FERCgi bXNkb3NmcyIsCTAsCSJtc2Rvc2ZzIik7CisKKwlGU19BREQoIm5mcyIsCQkwLAkibmZzIik7CQkv KiBYWFg6IFNob3VsZCBObyBTcGVjaWFsIERldmljZSBiZSAxIGZvciBuZnMqICovCisJRlNfQURE KCJuZnM0IiwJCTAsCSJuZnM0Iik7CisKKwlGU19BREQoIm50ZnMiLAkJMCwJIm50ZnMiKTsKKwlG U19BREQoIm51bGxmcyIsCTEsCSJudWxsZnMiKTsKKworCUZTX0FERCgibndmcyIsCQkwLAkibndm cyIpOwkvKiBYWFg6IFNob3VsZCBObyBTcGVjaWFsIERldmljZSBiZSAxIGZvciBud2ZzICovCisK KwlGU19BREQoImxpbnByb2NmcyIsCTEsCSJwcm9jZnMiKTsJLyogcmVuYW1lZCB0byBsaW51eCBm aWxlc3lzdGVtIG5hbWUgKi8KKwlGU19BREQoInBvcnRhbGZzIiwJMSwJInBvcnRhbGZzIik7CisJ RlNfQUREKCJyZWlzZXJmcyIsCTAsCSJyZWlzZXJmcyIpOworCisJRlNfQUREKCJzbWJmcyIsCQkw LAkic21iZnMiKTsJLyogWFhYOiBTaG91bGQgTm8gU3BlY2lhbCBEZXZpY2UgYmUgMSBmb3Igc21i ZnMgKi8KKworCUZTX0FERCgibGluc3lzZnMiLAkxLAkic3lzZnMiKTsJLyogcmVuYW1lZCB0byBs aW51eCBmaWxlc3lzdGVtIG5hbWUgKi8KKwlGU19BREQoInVkZiIsCQkwLAkidWRmIik7CisJRlNf QUREKCJ1ZnMiLAkJMCwJInVmcyIpOworCUZTX0FERCgidW1hcGZzIiwJMSwJInVtYXBmcyIpOwor CUZTX0FERCgidW5pb25mcyIsCTEsCSJ1bmlvbmZzIik7CisJRlNfQUREKCJ4ZnMiLAkJMCwJInhm cyIpOworCUZTX0FERCgiemZzIiwJCTAsCSJ6ZnMiKTsKKwlNT0RfU1VOTE9DSzsKKyN1bmRlZiBG U19BREQKKworCXJldHVybiAoMCk7Cit9CisKKy8qCiAgKiBGaWxsZXIgZnVuY3Rpb24gZm9yIHBy b2MvY21kbGluZQogICovCiBzdGF0aWMgaW50CkBAIC0xMDc2LDYgKzExMzUsOCBAQAogCSAgICBO VUxMLCBOVUxMLCBQRlNfUkQpOwogCXBmc19jcmVhdGVfZmlsZShyb290LCAiZGV2aWNlcyIsICZs aW5wcm9jZnNfZG9kZXZpY2VzLAogCSAgICBOVUxMLCBOVUxMLCBQRlNfUkQpOworCXBmc19jcmVh dGVfZmlsZShyb290LCAiZmlsZXN5c3RlbXMiLCAmbGlucHJvY2ZzX2RvZmlsZXN5c3RlbXMsCisJ ICAgIE5VTEwsIE5VTEwsIFBGU19SRCk7CiAJcGZzX2NyZWF0ZV9maWxlKHJvb3QsICJsb2FkYXZn IiwgJmxpbnByb2Nmc19kb2xvYWRhdmcsCiAJICAgIE5VTEwsIE5VTEwsIFBGU19SRCk7CiAJcGZz X2NyZWF0ZV9maWxlKHJvb3QsICJtZW1pbmZvIiwgJmxpbnByb2Nmc19kb21lbWluZm8sCg== ------=_Part_72120_10226074.1166097687876--