patch-1.3.4 linux/arch/sparc/prom/mp.c
Next file: linux/arch/sparc/prom/palloc.c
Previous file: linux/arch/sparc/prom/misc.c
Back to the patch index
Back to the overall index
- Lines: 87
- Date:
Sat Jun 17 10:46:00 1995
- Orig file:
v1.3.3/linux/arch/sparc/prom/mp.c
- Orig date:
Thu Jan 1 02:00:00 1970
diff -u --recursive --new-file v1.3.3/linux/arch/sparc/prom/mp.c linux/arch/sparc/prom/mp.c
@@ -0,0 +1,86 @@
+/* mp.c: OpenBoot Prom Multiprocessor support routines. Don't call
+ * these on a UP or else you will halt and catch fire. ;)
+ *
+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ */
+
+#include <asm/openprom.h>
+#include <asm/oplib.h>
+
+/* Start cpu with prom-tree node 'cpunode' using context described
+ * by 'ctable_reg' in context 'ctx' at program counter 'pc'.
+ *
+ * XXX Have to look into what the return values mean. XXX
+ */
+int
+prom_startcpu(int cpunode, struct linux_prom_registers *ctable_reg, int ctx, char *pc)
+{
+ switch(prom_vers) {
+ case PROM_V0:
+ case PROM_V2:
+ break;
+ case PROM_V3:
+ case PROM_P1275:
+ return (*(romvec->v3_cpustart))(cpunode, (int) ctable_reg, ctx, pc);
+ break;
+ };
+
+ return -1;
+}
+
+/* Stop CPU with device prom-tree node 'cpunode'.
+ * XXX Again, what does the return value really mean? XXX
+ */
+int
+prom_stopcpu(int cpunode)
+{
+ switch(prom_vers) {
+ case PROM_V0:
+ case PROM_V2:
+ break;
+ case PROM_V3:
+ case PROM_P1275:
+ return (*(romvec->v3_cpustop))(cpunode);
+ break;
+ };
+
+ return -1;
+}
+
+/* Make CPU with device prom-tree node 'cpunode' idle.
+ * XXX Return value, anyone? XXX
+ */
+int
+prom_idlecpu(int cpunode)
+{
+ switch(prom_vers) {
+ case PROM_V0:
+ case PROM_V2:
+ break;
+ case PROM_V3:
+ case PROM_P1275:
+ return (*(romvec->v3_cpuidle))(cpunode);
+ break;
+ };
+
+ return -1;
+}
+
+/* Resume the execution of CPU with nodeid 'cpunode'.
+ * XXX Come on, somebody has to know... XXX
+ */
+int
+prom_restartcpu(int cpunode)
+{
+ switch(prom_vers) {
+ case PROM_V0:
+ case PROM_V2:
+ break;
+ case PROM_V3:
+ case PROM_P1275:
+ return (*(romvec->v3_cpuresume))(cpunode);
+ break;
+ };
+
+ return -1;
+}
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