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

📄 hw-bse.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
字号:
/* * Bright Star Engineering Inc. * * code for readng parameters from the * parameter blocks of the boot block * flash memory * */static int strcmp(const char *s1, const char *s2){  while (*s1 != '\0' && *s1 == *s2)    {      s1++;      s2++;    }  return (*(unsigned char *) s1) - (*(unsigned char *) s2);}struct pblk_t {  char type;  unsigned short size;};static char *bse_getflashparam(char *name) {  unsigned int esize;  char *q,*r;  unsigned char *p,*e;  struct pblk_t *thepb = (struct pblk_t *) 0x00004000;  struct pblk_t *altpb = (struct pblk_t *) 0x00006000;    if (thepb->type&1) {    if (altpb->type&1) {      /* no valid param block */       return (char*)0;    } else {      /* altpb is valid */      struct pblk_t *tmp;      tmp = thepb;      thepb = altpb;      altpb = tmp;    }  }  p = (char*)thepb + sizeof(struct pblk_t);  e = p + thepb->size;   while (p < e) {    q = p;    esize = *p;    if (esize == 0xFF) break;    if (esize == 0) break;    if (esize > 127) {      esize = (esize&0x7F)<<8 | p[1];      q++;    }    q++;    r=q;    if (*r && ((name == 0) || (!strcmp(name,r)))) {      while (*q++) ;      return q;    }    p+=esize;  }  return (char*)0;}void bse_setup(void) {  /* extract the linux cmdline from flash */  char *name=bse_getflashparam("linuxboot");  char *x = (char *)0xc0000100;  if (name) {     while (*name) *x++=*name++;  }  *x=0;}

⌨️ 快捷键说明

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