⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 identify.c

📁 linux 的引导程序源码The Microsoft&reg Windows&reg Software Development Kit (SDK) provides the documentation
💻 C
字号:
/* identify.c  -  Translate label names to kernel paths *//* Copyright 1992-1998 Werner Almesberger.Copyright 1999-2002 John Coffman.All rights reserved.Licensed under the terms contained in the file 'COPYING' in the source directory.*/#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include "common.h"#include "cfg.h"static char *identify,*opt;static void do_identify(char *var,char type){    char *label,*path,*alias,*initrd,*keytab;    int image, ramdisk,kt;#if 1    image = !!strchr(opt,'i');    ramdisk = !!strchr(opt,'r');    kt = !!strchr(opt,'k');    if (opt && !image && !ramdisk && !kt) exit(1);    if (!opt) image = 1;#else    image = ramdisk = 1;    printf("do_identify:  opt=\"%s\"\n", opt);#endif        label = strrchr(path = cfg_get_strg(cf_identify,var),'/');    if (label) label++;    if (cfg_get_strg(cf_all,"label")) label = cfg_get_strg(cf_all,"label");    else if (!label) label = path;    alias = cfg_get_strg(cf_all,"alias");    initrd = cfg_get_strg(cf_kernel,"initrd");    keytab = cfg_get_strg(cf_options,"keytable");    if (!keytab) keytab="us.ktl";#ifdef LCF_IGNORECASE    if (!strcasecmp(label,identify) || (alias && !strcasecmp(alias,identify))) {#else    if (!strcmp(label,identify) || (alias && !strcmp(alias,identify))) {#endif	if (image) printf("%s\n",path);	if (ramdisk) printf("%s\n",initrd?initrd:"No initial ramdisk specified");	if (kt) printf("%s\n",keytab);	exit(0);    }}void id_image(void){    cfg_init(cf_image);    (void) cfg_parse(cf_image);    do_identify("image",'i');    cfg_init(cf_identify);}void id_other(void){    cfg_init(cf_other);    cfg_init(cf_kernel);    curr_drv_map = curr_prt_map = 0;    (void) cfg_parse(cf_other);    cfg_init(cf_identify);}void identify_image(char *label,char *options){    identify = label;    opt = options;    cfg_init(cf_identify);    if (cfg_parse(cf_identify)) cfg_error("Syntax error");    fprintf(errstd,"No image found for \"%s\"\n",label);    exit(1);}

⌨️ 快捷键说明

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