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 + -
显示快捷键?