vitastor/osd_main.cpp

41 lines
874 B
C++
Raw Permalink Normal View History

2019-12-15 01:11:51 +03:00
#include "osd.h"
2020-01-15 23:20:07 +03:00
#include <signal.h>
void handle_sigint(int sig)
{
exit(0);
}
2019-12-15 01:11:51 +03:00
int main(int narg, char *args[])
{
if (sizeof(osd_any_op_t) > OSD_PACKET_SIZE ||
sizeof(osd_any_reply_t) > OSD_PACKET_SIZE)
2019-12-15 01:11:51 +03:00
{
perror("BUG: too small packet size");
return 1;
}
blockstore_config_t config;
2020-01-15 23:20:07 +03:00
for (int i = 1; i < narg; i++)
{
if (args[i][0] == '-' && args[i][1] == '-' && i < narg-1)
{
char *opt = args[i]+2;
config[opt] = args[++i];
}
}
signal(SIGINT, handle_sigint);
2019-12-15 01:11:51 +03:00
ring_loop_t *ringloop = new ring_loop_t(512);
blockstore_t *bs = new blockstore_t(config, ringloop);
2019-12-15 01:11:51 +03:00
osd_t *osd = new osd_t(config, bs, ringloop);
while (1)
{
ringloop->loop();
ringloop->wait();
}
delete osd;
delete bs;
delete ringloop;
return 0;
}