bool_t create_parserinfo_mv(parserinfo_mv_t *pinfo) { bool_t ok = TRUE; if( pinfo ) { memset(pinfo, 0, sizeof(parserinfo_mv_t)); ok &= create_stdparserinfo(&pinfo->std); ok &= create_rcm(&pinfo->rcm); ok &= create_tempcollect(&pinfo->sav, "sav", MINVARSIZE, MAXVARSIZE); if( ok ) { pinfo->std.setup.flags = STDPARSE_ALLNODES|STDPARSE_ALWAYS_CHARDATA; pinfo->std.setup.cb.start_tag = start_tag; pinfo->std.setup.cb.end_tag = end_tag; pinfo->std.setup.cb.chardata = chardata; pinfo->std.setup.cb.dfault = dfault; pinfo->std.setup.start_file_fun = start_file_fun; pinfo->std.setup.end_file_fun = end_file_fun; pinfo->flags = 0; pinfo->tempfile = NULL; pinfo->tempfd = -1; } return ok; } return FALSE; }
static int dsm_init(void) { struct dsm_module_state *dsm_state = create_dsm_module_state(); dsm_zero_pfn_init(); printk("[dsm_init] ip : %s\n", ip); printk("[dsm_init] port : %d\n", port); if (create_rcm(dsm_state, ip, port)) goto err; if (dsm_sysfs_setup(dsm_state)) { destroy_rcm(dsm_state); } rdma_listen(dsm_state->rcm->cm_id, 2); dsm_hook_write(&my_dsm_hook); err: return misc_register(&rdma_misc); }