This patch removes all self references and fixes references to files in the now defunct arch/ppc64 tree. I think this accomplises everything wanted, though there might be a few references I missed. Signed-off-by: Jon Mason <jdmason@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			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;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
bootinfo_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);
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
bootinfo_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);
 | 
						|
}
 |