MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / createSysDevices

Function createSysDevices

source/kernel/sys/sysdevices.cpp:23–160  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21#include "kstat.h"
22
23std::shared_ptr<FsNode> createSysDevices(const std::shared_ptr<FsNode> sysNode) {
24 std::shared_ptr<FsNode> devicesNode = sysNode->getChildByName(B("devices"));
25 if (!devicesNode) {
26 devicesNode = Fs::addFileNode(B("/sys/devices"), B(""), B(""), true, sysNode);
27 }
28
29 std::shared_ptr<FsNode> pciNode = devicesNode->getChildByName(B("pci0000:00"));
30 if (!pciNode) {
31 pciNode = Fs::addFileNode(B("/sys/devices/pci0000:00"), B(""), B(""), true, devicesNode);
32 }
33 std::shared_ptr<FsNode> pciSub1Node = pciNode->getChildByName(B("0000:00:10.0"));
34 if (!pciSub1Node) {
35 pciSub1Node = Fs::addFileNode(B("/sys/devices/pci0000:00/0000:00:10.0"), B(""), B(""), true, pciNode);
36 }
37
38 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/ari_enabled"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0"));
39 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/broken_parity_status"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0"));
40 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/class"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0x010000"));
41 // config?
42 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/consistent_dma_mask_bits"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("64"));
43 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/d3cold_allowed"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0"));
44 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/device"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0x0030"));
45 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/dma_mask_bits"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("64"));
46 Fs::addDynamicLinkFile(B("/sys/devices/pci0000:00/0000:00:10.0/driver"), k_mdev(0, 0), pciSub1Node, false, B("../../../bus/pci/drivers/mptspi"));
47 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/driver_override"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("(null)"));
48 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/enable"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("1"));
49 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/irq"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("17"));
50 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/local_cpulist"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0-")+BString::valueOf(Platform::getCpuCount()-1));
51 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/local_cpus"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("f"));
52 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/modalias"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("pci:v00001000d00000030sv000015ADsd00001976bc01sc00i00"));
53 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/msi_bus"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("1"));
54 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/msi_bus"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("1"));
55 Fs::addDynamicLinkFile(B("/sys/devices/pci0000:00/0000:00:10.0/subsystem"), k_mdev(0, 0), pciSub1Node, false, B("../../../bus/pci"));
56 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/subsystem_device"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0x1976"));
57 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/subsystem_vendor"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0x15ad"));
58 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/uevent"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("DRIVER=mptspi\nPCI_CLASS=10000\nPCI_ID=1000:0030\nPCI_SUBSYS_ID=15AD:1976\nPCI_SLOT_NAME=0000:00:10.0\nMODALIAS=pci:v00001000d00000030sv000015ADsd00001976bc01sc00i00"));
59 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/vendor"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("0x1000"));
60
61 std::shared_ptr<FsNode> hostNode = pciSub1Node->getChildByName(B("host2"));
62 if (!hostNode) {
63 hostNode = Fs::addFileNode(B("/sys/devices/pci0000:00/0000:00:10.0/host2"), B(""), B(""), true, pciSub1Node);
64 }
65 Fs::addDynamicLinkFile(B("/sys/devices/pci0000:00/0000:00:10.0/host2/subsystem"), k_mdev(0, 0), pciSub1Node, false, B("../../../../bus/scsi"));
66 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/host2/uevent"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("DEVTYPE=scsi_host"));
67
68 std::shared_ptr<FsNode> targetNode = hostNode->getChildByName(B("target2:0:0"));
69 if (!targetNode) {
70 targetNode = Fs::addFileNode(B("/sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0"), B(""), B(""), true, hostNode);
71 }
72 Fs::addVirtualFile(B("/sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0/uevent"), K__S_IREAD, k_mdev(0, 0), pciSub1Node, B("DEVTYPE=scsi_target"));
73 Fs::addDynamicLinkFile(B("/sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0/subsystem"), k_mdev(0, 0), pciSub1Node, false, B("../../../../../bus/scsi"));
74
75 std::shared_ptr<FsNode> target2Node = targetNode->getChildByName(B("2:0:0:0"));
76 if (!target2Node) {
77 target2Node = Fs::addFileNode(B("/sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0/2:0:0:0"), B(""), B(""), true, targetNode);
78 }
79
80 std::shared_ptr<FsNode> blockNode = target2Node->getChildByName(B("block"));

Callers 1

createSysfsFunction · 0.85

Calls 2

BFunction · 0.85
getChildByNameMethod · 0.80

Tested by

no test coverage detected