📄 bootinfo.c
字号:
/* * General bootinfo record utilities * Author: Randy Vinson <rvinson@mvista.com> * * 2002 (c) MontaVista Software, Inc. This file is licensed under the terms * of the GNU General Public License version 2. This program is licensed * "as is" without any warranty of any kind, whether express or implied. */#include <linux/types.h>#include <linux/string.h>#include <asm/bootinfo.h>#include "nonstdio.h"static struct bi_record * birec = NULL;static struct bi_record *__bootinfo_build(struct bi_record *rec, unsigned long tag, unsigned long size, void *data){ /* set the tag */ rec->tag = tag; /* if the caller has any data, copy it */ if (size) memcpy(rec->data, (char *)data, size); /* set the record size */ rec->size = sizeof(struct bi_record) + size; /* advance to the next available space */ rec = (struct bi_record *)((unsigned long)rec + rec->size); return rec;}voidbootinfo_init(struct bi_record *rec){ /* save start of birec area */ birec = rec; /* create an empty list */ rec = __bootinfo_build(rec, BI_FIRST, 0, NULL); (void) __bootinfo_build(rec, BI_LAST, 0, NULL);}voidbootinfo_append(unsigned long tag, unsigned long size, void * data){ struct bi_record *rec = birec; /* paranoia */ if ((rec == NULL) || (rec->tag != BI_FIRST)) return; /* find the last entry in the list */ while (rec->tag != BI_LAST) rec = (struct bi_record *)((ulong)rec + rec->size); /* overlay BI_LAST record with new one and tag on a new BI_LAST */ rec = __bootinfo_build(rec, tag, size, data); (void) __bootinfo_build(rec, BI_LAST, 0, NULL);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -