diff options
Diffstat (limited to 'arch/sparc/prom/segment.c')
| -rw-r--r-- | arch/sparc/prom/segment.c | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/sparc/prom/segment.c b/arch/sparc/prom/segment.c new file mode 100644 index 00000000000..09d6460165a --- /dev/null +++ b/arch/sparc/prom/segment.c @@ -0,0 +1,29 @@ +/* $Id: segment.c,v 1.7 2000/08/26 02:38:03 anton Exp $ + * segment.c:  Prom routine to map segments in other contexts before + *             a standalone is completely mapped.  This is for sun4 and + *             sun4c architectures only. + * + * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) + */ + +#include <linux/types.h> +#include <linux/kernel.h> +#include <linux/sched.h> +#include <asm/openprom.h> +#include <asm/oplib.h> + +extern void restore_current(void); + +/* Set physical segment 'segment' at virtual address 'vaddr' in + * context 'ctx'. + */ +void +prom_putsegment(int ctx, unsigned long vaddr, int segment) +{ +	unsigned long flags; +	spin_lock_irqsave(&prom_lock, flags); +	(*(romvec->pv_setctxt))(ctx, (char *) vaddr, segment); +	restore_current(); +	spin_unlock_irqrestore(&prom_lock, flags); +	return; +}  |