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

Function sysAddFrameBuffer

source/kernel/sys/sysfb.cpp:25–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23U32 fbGetBpp();
24
25void sysAddFrameBuffer(const std::shared_ptr<FsNode>& sysNode, const std::shared_ptr<FsNode>& devicesNode) {
26 std::shared_ptr<FsNode> classNode = sysNode->getChildByName(B("class"));
27
28 if (!classNode) {
29 classNode = Fs::addFileNode(B("/sys/class"), B(""), B(""), true, sysNode);
30 }
31
32 std::shared_ptr<FsNode> graphicsNode = classNode->getChildByName(B("graphics"));
33
34 if (!graphicsNode) {
35 graphicsNode = Fs::addFileNode(B("/sys/class/graphics"), B(""), B(""), true, classNode);
36 }
37 Fs::addDynamicLinkFile(B("/sys/class/graphics/fb0"), k_mdev(0, 0), graphicsNode, false, B("../../devices/virtual/graphics/fb0"));
38 Fs::addDynamicLinkFile(B("/sys/class/graphics/fbcon"), k_mdev(0, 0), graphicsNode, false, B("../../devices/virtual/graphics/fbcon"));
39
40 std::shared_ptr<FsNode> virtualNode = devicesNode->getChildByName(B("virtual"));
41 if (!virtualNode) {
42 virtualNode = Fs::addFileNode(B("/sys/devices/virtual"), B(""), B(""), true, devicesNode);
43 }
44
45 std::shared_ptr<FsNode> deviceGraphicsNode = virtualNode->getChildByName(B("graphics"));
46
47 if (!deviceGraphicsNode) {
48 deviceGraphicsNode = Fs::addFileNode(B("/sys/devices/virtual/graphics"), B(""), B(""), true, virtualNode);
49 }
50
51 std::shared_ptr<FsNode> fbConNode = deviceGraphicsNode->getChildByName(B("fbcon"));
52
53 if (!fbConNode) {
54 fbConNode = Fs::addFileNode(B("/sys/devices/virtual/graphics/fbcon"), B(""), B(""), true, deviceGraphicsNode);
55 }
56
57 std::shared_ptr<FsNode> fbNode = deviceGraphicsNode->getChildByName(B("fb0"));
58
59 if (!fbNode) {
60 fbNode = Fs::addFileNode(B("/sys/devices/virtual/graphics/fb0"), B(""), B(""), true, deviceGraphicsNode);
61 }
62
63 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fbcon/cursor_blink"), K__S_IREAD, k_mdev(0, 0), fbConNode, B("0"));
64 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fbcon/rotate"), K__S_IREAD, k_mdev(0, 0), fbConNode, B("0"));
65 Fs::addDynamicLinkFile(B("/sys/devices/virtual/graphics/fbcon/subsystem"), k_mdev(0, 0), graphicsNode, false, B("../../../../class/graphics"));
66 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fbcon/uevent"), K__S_IREAD, k_mdev(0, 0), fbConNode, B(""));
67
68 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/bits_per_pixel"), K__S_IREAD, k_mdev(0, 0), fbNode, BString::valueOf(fbGetBpp()));
69 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/blank"), K__S_IREAD, k_mdev(0, 0), fbNode, B(""));
70 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/dev"), K__S_IREAD, k_mdev(0, 0), fbNode, B("29:0"));
71 Fs::addDynamicLinkFile(B("/sys/devices/virtual/graphics/fb0/device"), k_mdev(0, 0), fbNode, false, B("../../../0000:00:0f.0"));
72 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/name"), K__S_IREAD, k_mdev(0, 0), fbNode, B("svgadrmfb"));
73 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/pan"), K__S_IREAD, k_mdev(0, 0), fbNode, B("0,0"));
74 Fs::addDynamicLinkFile(B("/sys/devices/virtual/graphics/fb0/subsystem"), k_mdev(0, 0), fbNode, false, B("../../../../../class/graphics"));
75 Fs::addVirtualFile(B("/sys/devices/virtual/graphics/fb0/uevent"), K__S_IREAD, k_mdev(0, 0), fbNode, B("MAJOR=29\nMINOR=0\nDEVNAME=fb0"));
76}

Callers 1

createSysfsFunction · 0.85

Calls 3

BFunction · 0.85
fbGetBppFunction · 0.85
getChildByNameMethod · 0.80

Tested by

no test coverage detected