patch-1.3.44 linux/arch/sparc/kernel/promops.c
Next file: linux/arch/sparc/kernel/rtrap.S
Previous file: linux/arch/sparc/kernel/process.c
Back to the patch index
Back to the overall index
- Lines: 108
- Date:
Thu Jan 1 02:00:00 1970
- Orig file:
v1.3.43/linux/arch/sparc/kernel/promops.c
- Orig date:
Sun Feb 26 20:46:20 1995
diff -u --recursive --new-file v1.3.43/linux/arch/sparc/kernel/promops.c linux/arch/sparc/kernel/promops.c
@@ -1,107 +0,0 @@
-/* promops.c: Prom node tree operations and Prom Vector initialization
- * initialization routines.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- */
-
-#include <linux/kernel.h>
-
-#include <asm/openprom.h>
-
-/* #define DEBUG_PROMOPS */
-#define MAX_PR_LEN 64 /* exotic hardware probably overshoots this */
-
-int prom_node_root; /* initialized in init_prom */
-
-extern struct linux_romvec *romvec;
-
-/* These two functions return and siblings and direct child descendents
- * in the prom device tree respectively.
- */
-
-int
-node_get_sibling(int node)
-{
- return (*(romvec->pv_nodeops->no_nextnode))(node);
-}
-
-int
-node_get_child(int node)
-{
- return (*(romvec->pv_nodeops->no_child))(node);
-}
-
-/* The following routine is used during device probing to determine
- * an integer value property about a (perhaps virtual) device. This
- * could be anything, like the size of the mmu cache lines, etc.
- * the default return value is -1 is the prom has nothing interesting.
- */
-
-unsigned int prom_int_null;
-
-unsigned int *
-get_int_from_prom(int node, char *nd_prop, unsigned int *value)
-{
- unsigned int pr_len;
-
- *value = &prom_int_null; /* duh, I was returning -1 as an unsigned int, prom_panic() */
-
- pr_len = romvec->pv_nodeops->no_proplen(node, nd_prop);
- if(pr_len > MAX_PR_LEN)
- {
-#ifdef DEBUG_PROMOPS
- printk("Bad pr_len in promops -- node: %d nd_prop: %s pr_len: %d",
- node, nd_prop, (int) pr_len);
-#endif
- return value; /* XXX */
- }
-
- romvec->pv_nodeops->no_getprop(node, nd_prop, (char *) value);
-
- return value;
-}
-
-
-/* This routine returns what is termed a property string as opposed
- * to a property integer as above. This can be used to extract the
- * 'type' of device from the prom. An example could be the clock timer
- * chip type. By default you get returned a null string if garbage
- * is returned from the prom.
- */
-
-char *
-get_str_from_prom(int node, char *nd_prop, char *value)
-{
- unsigned int pr_len;
-
- *value='\n';
-
- pr_len = romvec->pv_nodeops->no_proplen(node, nd_prop);
- if(pr_len > MAX_PR_LEN)
- {
-#ifdef DEBUG_PROMOPS
- printk("Bad pr_len in promops -- node: %d nd_prop: %s pr_len: %d",
- node, nd_prop, pr_len);
-#endif
- return value; /* XXX */
- }
-
- romvec->pv_nodeops->no_getprop(node, nd_prop, value);
- value[pr_len] = 0;
-
- return value;
-}
-
-/* This gets called from head.S upon bootup to initialize the
- * prom vector pointer for the rest of the kernel.
- */
-
-void
-init_prom(struct linux_romvec *r_ptr)
-{
- romvec = r_ptr;
- prom_node_root = romvec->pv_nodeops->no_nextnode(0);
- prom_int_null = 0;
-
- return;
-}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this