/* * Parse the init table, then set up the pointers after the processed * data, and adjust the brk() value to allow for the tables */ static void parse_inittab(void) { idata = inittab = sdata; while (sdata < sdata_end) parse_initline(); /* Allocate space for the control arrays */ initpid = (struct initpid *) idata; idata += sizeof(struct initpid) * initcount; brk_warn(idata); memset(initpid, 0, sizeof(struct initpid) * initcount); }
/* * Parse the init table, then set up the pointers after the processed * data, and adjust the brk() value to allow for the tables */ static void parse_inittab(void) { idata = inittab = sdata; while (sdata < sdata_end) parse_initline(); /* Allocate space for the control arrays */ initpid = (uint16_t *) idata; idata += 2 * initcount; initptr = (uint8_t **) idata; idata += sizeof(void *) * initcount; if (brk(idata) == -1) putstr("unable to return space\n"); memset(initpid, 0, 2 * initcount); memset(initptr, 0, sizeof(uint8_t *) * initcount); }