phunix/minix/fs/isofs/main.c
David van Moolenbroek c2f99d7c3a isofs: rename source directory to "isofs"
Change-Id: Ibe630f720b4399e7ebbbd850650036fbaa9cec7b
2014-09-18 13:00:57 +00:00

68 lines
1.4 KiB
C

/*
* This file contains the main function for the server. It waits for a request
* and then send a response.
*/
#include "inc.h"
#include <minix/optset.h>
static struct optset optset_table[] = {
{ "norock", OPT_BOOL, &opt.norock, TRUE },
{ NULL, 0, NULL, 0 }
};
static int sef_cb_init_fresh(int __unused type,
sef_init_info_t * __unused info)
{
/* Initialize the iso9660fs server. */
int i;
/* Defaults */
opt.norock = FALSE;
/* If we have been given an options string, parse options here. */
for (i = 1; i < env_argc - 1; i++)
if (!strcmp(env_argv[i], "-o"))
optset_parse(optset_table, env_argv[++i]);
setenv("TZ","",1); /* Used to calculate the time */
lmfs_buf_pool(NR_BUFS);
return OK;
}
static void sef_cb_signal_handler(int signo)
{
/* Only check for termination signal, ignore anything else. */
if (signo != SIGTERM) return;
fsdriver_terminate();
}
static void sef_local_startup(void)
{
/* Register init callbacks. */
sef_setcb_init_fresh(sef_cb_init_fresh);
sef_setcb_init_restart(sef_cb_init_fail);
/* No live update support for now. */
/* Register signal callbacks. */
sef_setcb_signal_handler(sef_cb_signal_handler);
/* Let SEF perform startup. */
sef_startup();
}
int main(int argc, char *argv[])
{
/* SEF local startup. */
env_setargs(argc, argv);
sef_local_startup();
fsdriver_task(&isofs_table);
return 0;
}