提交 e24bb569 编写于 作者: 指向BIOS的野指针's avatar 指向BIOS的野指针

finish bwl starting

上级 54e58f47
......@@ -127,46 +127,35 @@ inline void relaunch_updater()
void start_bwl_server()
{
server_recv.open("/dev/bwl/reciever.pipe", bwl::Pipe::in);
signal(SIGBWLREQ, bwl::reqrec);
bwl::initDisplay(monitor_device);
//获取屏幕的帧缓冲
char *buffer = (char *)bwl::getDrmBuffer();
bwl::drm_buffer = buffer;
//向控制数据文件写数据供用户读取
std::fstream data(BWLDIR + "/data/monitor", std::ios::out);
data << bwl::getDisplayWidth() << '\n'
<< bwl::getDisplayHeight() << '\n'
<< getDisplayPixDpt();
data.close();
bwl::setmonitor(bwl::getDisplayWidth(), bwl::getDisplayHeight(), getDisplayPixDpt());
bwl::drm_buffer = buffer;
bwl::log("init finished.");
//初始化完成
//初始化数据
bwl::__page *p0 = bwl::createPage(0);
//初始化服务器完成
//初始化基础数据
bwl::__page *p0 = bwl::createPage(0); //创建page0,又称为logpage,用于打印日志
if (p0 == (bwl::__page *)-2)
{
bwl::bwl_exit(30);
bwl::bwl_exit(LOGPAGE_INIT_FAILED);
}
pages[0] = p0;
current_pgid = 0;
pages[0]->owners[pages[0]->ownerc++] = getpid();
for (int i = 0; i < bwl::getMonitorWidth(); i++)
for (int j = 0; j < bwl::getMonitorHeight(); j++)
{
buffer_at(p0->server_bg_layer, i, j, bwl::getMonitorWidth()) = 0x00101011;
}
//标记运行中
server_running = true;
//给p0背景刷新
bwl::__updating_signals::bg udblk;
udblk.sig = true;
udblk.pos[0] = -1;
udblk.pos[1] = 0;
udblk.size[0] = 0;
udblk.size[1] = 0;
bwl::__ud.bg_update_que.push(udblk);
//启动刷新线程
launch_updater();
//启动guilog
bwl::initGUILog((uint32_t *)p0->server_bg_layer, bwl::getMonitorWidth(), bwl::getMonitorHeight(), 0x00101011);
signal(SIGBWLREQ, bwl::reqrec); //开始接收用户程序信号
bwl::putString("\fbwl-server running."); //向logpage打印日志
}
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册