int main () { void *p = &main; char *arg = p - (*(int *)(p - 8)); int flags = (*(int *)(p - 12)); if (strlen(arg) <= 0) { return 1; } while(arg[0]==' ' || arg[0]=='\t') arg++; if (strlen(arg) > 256) return !(errnum = ERR_WONT_FIT); if (open(arg)) { read ((unsigned long long)(unsigned int)(char *) RAW_ADDR (BASE_FONT_ADDR), -1, 0xedde0d90); close(); if (InitFont()) { unsigned long long ch; arg=skip_to(0,arg); if (! safe_parse_maxint(&arg,&ch)) return 0; ch &= 0xffff; if (ch) { ReadCharDistX(ch); int dwOffset; WORD bytesPerLine = 0; dwOffset = ReadCharDotArray(ch, &bytesPerLine); DisplayChar(_fl_header.YSize, bytesPerLine, (char *)BASE_FONT_ADDR + dwOffset); return 0; } } return 1; } else { printf ("load fontfile failed!\n"); return 0; } }
/** * @attention 本注释得到了"核高基"科技重大专项2012年课题“开源操作系统内核分析和安全性评估 *(课题编号:2012ZX01039-004)”的资助。 * * @copyright 注释添加单位:清华大学——03任务(Linux内核相关通用基础软件包分析)承担单位 * * @author 注释添加人员:谢文学 * * @date 注释添加日期:2013年5月10日 * * @note 注释详细内容: * * 本函数实现线性内存分配器的初始化的功能。实际就是将linalloc_topaddr设置为 * mbi.mem_upper以上1MB的位置。 */ static void reset_linalloc (void) { linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000); }
static void reset_linalloc (void) { linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000); linalloc_topaddr -= ZFS_SCRATCH_SIZE; }