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

deliver all error static number to 'types.h'

上级 97618c2b
......@@ -71,7 +71,6 @@ namespace bwl
* @param pgid 对于bwl服务器来说,是使用的pgid
* @return __page*
*/
#define CREATE_PAGE_FAULT (__page *)(-2)
__page * BWLAPI createPage(id_t pgid);
/**
......@@ -92,8 +91,6 @@ namespace bwl
* @param y 纵坐标
* @return __frame*
*/
#define CREATE_FRAME_FAULT (__frame *)(-2)
#define TRUNCATE_SHM_FAULT (__frame *)(-3)
__frame * BWLAPI createFrame(id_t fid, __page *page, std::string name, uint64_t width, uint64_t height, int64_t x, int64_t y);
/**
......
......@@ -26,6 +26,18 @@ extern std::string monitor_device;
#define SHMPAGEDIR (std::string("/dev_bwl") + monitor_device + "_pages_")
#define SHMFRMDIR (std::string("/dev_bwl") + monitor_device + "_frames_")
/* 错误常量 */
#define LOGPAGE_INIT_FAILED (-1) //创建logpage失败
#define CREATE_PAGE_FAULT (-2) //创建页错误
#define CREATE_FRAME_FAULT (-3) //创建窗口错误
#define TRUNCATE_SHM_FAULT (-4) //改变共享内存大小错误
//无法判断到底是创建窗口还是页时发生
#define PIPE_NOT_READABLE (-5)//管道不可读
#define PIPE_NOT_WRITABLE (-6)//管道不可写
namespace bwl
{
typedef unsigned long long id_t;
......
......@@ -52,7 +52,7 @@ namespace bwl
int shmf = shm_open((SHMPAGEDIR + std::to_string(pgid) + std::string("_shm")).c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_PAGE_FAULT;
return (__page *)CREATE_PAGE_FAULT;
}
if (ftruncate(shmf, sizeof(__page)))
{
......@@ -70,7 +70,7 @@ namespace bwl
shmf = shm_open((SHMPAGEDIR + std::to_string(pgid) + std::string("_bgbuffer")).c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_PAGE_FAULT;
return (__page *)CREATE_PAGE_FAULT;
}
if (ftruncate(shmf, BGBUFSIZE))
{
......@@ -120,11 +120,11 @@ namespace bwl
int shmf = shm_open((SHMFRMDIR + std::to_string(fid) + "_shm").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_FRAME_FAULT;
return (__frame *)CREATE_FRAME_FAULT;
}
if (ftruncate(shmf, sizeof(__frame) + name.length() + 1))
{
return TRUNCATE_SHM_FAULT;
return (__frame *)TRUNCATE_SHM_FAULT;
}
__frame *frame = (__frame *)mmap(nullptr, sizeof(__frame) + name.length() + 1,
PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
......@@ -152,11 +152,11 @@ namespace bwl
shmf = shm_open((SHMFRMDIR + std::to_string(fid) + "_buffer").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_FRAME_FAULT;
return (__frame *)CREATE_FRAME_FAULT;
}
if (ftruncate(shmf, FRMBUFSIZE))
{
return TRUNCATE_SHM_FAULT;
return (__frame *)TRUNCATE_SHM_FAULT;
}
frame->server_buf = mmap(nullptr, FRMBUFSIZE, PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
close(shmf);
......
......@@ -77,7 +77,7 @@ namespace bwl
int shmf = std::shm_open((SHMPAGEDIR + std::to_string(pgid) + "_shm").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_PAGE_FAULT;
return (__page *)CREATE_PAGE_FAULT;
}
__page *page = (__page *)std::mmap(nullptr, sizeof(__page), PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
std::close(shmf);
......@@ -86,7 +86,7 @@ namespace bwl
shmf = std::shm_open((SHMPAGEDIR + std::to_string(pgid) + "_bgbuffer").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_PAGE_FAULT;
return (__page *)CREATE_PAGE_FAULT;
}
page->client_bg_layer = std::mmap(nullptr, getBgBuffSize(), PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
std::close(shmf);
......@@ -148,7 +148,7 @@ namespace bwl
int shmf = std::shm_open((SHMFRMDIR + std::to_string(fid) + "_shm").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_FRAME_FAULT;
return (__frame *)CREATE_FRAME_FAULT;
}
__frame *frame = (__frame *)std::mmap(nullptr, sizeof(__frame) + name.length() + 1,
PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
......@@ -159,7 +159,7 @@ namespace bwl
shmf = std::shm_open((SHMFRMDIR + std::to_string(fid) + "_buffer").c_str(), O_RDWR | O_EXCL, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_FRAME_FAULT;
return (__frame *)CREATE_FRAME_FAULT;
}
frame->client_buf = std::mmap(nullptr, width * height * frame->pixdepth, PROT_READ | PROT_WRITE, MAP_SHARED, shmf, 0);
std::close(shmf);
......@@ -217,7 +217,7 @@ namespace bwl
int shmf = std::shm_open((SHMPAGEDIR + std::to_string(pgid) + "_shm").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_PAGE_FAULT;
return (__page *)CREATE_PAGE_FAULT;
}
__page *page = (__page *)std::mmap(nullptr, sizeof(__page), PROT_READ, MAP_SHARED, shmf, 0);
std::close(shmf);
......@@ -230,14 +230,14 @@ namespace bwl
int shmf = std::shm_open((SHMFRMDIR + std::to_string(fid) + "_shm").c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
if (shmf == -1)
{
return CREATE_FRAME_FAULT;
return (__frame *)CREATE_FRAME_FAULT;
}
__frame *frame = (__frame *)std::mmap(nullptr, sizeof(__frame),
PROT_READ, MAP_SHARED, shmf, 0);
int namelen = frame->namelen;
std::munmap(frame, sizeof(__frame));
frame = (__frame *)std::mmap(nullptr, sizeof(__frame) + namelen + 1,
PROT_READ, MAP_SHARED, shmf, 0);
PROT_READ, MAP_SHARED, shmf, 0);
std::close(shmf);
return frame;
}
......
......@@ -82,7 +82,7 @@ namespace bwl
return 0;
}
else
return -1;
return PIPE_NOT_READABLE;
}
int Pipe::write(char *buffer, int size)
......@@ -129,7 +129,7 @@ namespace bwl
return 0;
}
else
return -1;
return PIPE_NOT_WRITABLE;
}
void Pipe::open(std::string path, int mode)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册