linker_set.c

来自「基于组件方式开发操作系统的OSKIT源代码」· C语言 代码 · 共 34 行

C
34
字号
#include <sys/param.h>#include <sys/linker_set.h>#include <oskit/dev/dev.h>    /* for osenv_mem_{alloc,free} */#include <oskit/c/strings.h>  /* for bcopy */voidfreebsd_linker_set_add(struct linker_set *set, void *sym){	void **new_items;	new_items = (void *)osenv_mem_alloc((set->ls_length + 2) * sizeof(void *), 0, 0);#if 0	printf("in %s: ",__FUNCTION__);	printf("add %x to %x (%d entries)\n", sym, set, set->ls_length);#endif	bcopy(set->ls_items, new_items, set->ls_length * sizeof(void *));	new_items[set->ls_length] = sym;	set->ls_length++;	new_items[set->ls_length] = NULL;	if (set->ls_items)		osenv_mem_free(set->ls_items, 0, 			       set->ls_length * sizeof(void *));#if 0	printf("set->ls_items is %x; new_items is %x\n", set->ls_items, 	       new_items);#endif	set->ls_items = new_items;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?