Exemple #1
0
paranode get_prim(char* prim_name) {
  CAMLparam0();
  CAMLlocal1(prim);

  // build the var expression
  prim = caml_callback(*ocaml_get_prim, caml_copy_string(prim_name));

  // build the node and return
  CAMLreturnT(paranode, mk_root(prim));
}
Exemple #2
0
static int init_inode()
{
	int i;
	puts("initialize");
	memset(inodes, 0, sizeof(inodes));
	
	for(i = 0; i < MAX_FS_VALUE; i ++) {

		inodes[i].name = (char*)calloc(sizeof(char),MAX_NAME_LEN);
		strcpy(inodes[i].name, "");
		inodes[i].data = NULL;
	}
	mk_root();
	puts("memset end");
	return 0;
}
Exemple #3
0
paranode mk_node(value exp, source_info_t *src_info) {
  // printf("C: mk_node: src_info addr = %d\n", src_info);
  CAMLparam1(exp);
  CAMLlocal3(ocaml_src_info, ast_info, node);

  // build the ast_info and src_info
  //printf("C: making source info\n");
  ocaml_src_info = mk_src_info(src_info);

  //printf("C: mk_ast_info\n");
  ast_info = caml_callback(*ocaml_mk_ast_info, Val_unit);
  //printf("-- AST INFO POINTER: %p\n", ast_info);

  //printf("C: allocating node\n");
  // build the node
  node = caml_alloc_tuple(3);
  Store_field(node, 0, exp);
  Store_field(node, 1, ocaml_src_info);
  Store_field(node, 2, ast_info);
  paranode wrapped =  mk_root(node);
  //printf("Contains value %d\n", wrapped->v);
  CAMLreturnT(paranode, wrapped);
}