/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc. * Copyright (C) 2000 by Colin Ngam
*/ #ifndef _ASM_SN_LAUNCH_H #define _ASM_SN_LAUNCH_H
/* * The launch data structure resides at a fixed place in each node's memory * and is used to communicate between the master processor and the slave * processors. * * The master stores launch parameters in the launch structure * corresponding to a target processor that is in a slave loop, then sends * an interrupt to the slave processor. The slave calls the desired * function, then returns to the slave loop. The master may poll or wait * for the slaves to finish. * * There is an array of launch structures, one per CPU on the node. One * interrupt level is used per local CPU.
*/
#define LAUNCH_STATE_DONE 0 /* Return value of LAUNCH_POLL */ #define LAUNCH_STATE_SENT 1 #define LAUNCH_STATE_RECD 2
/* * The launch routine is called only if the complement address is correct. * * Before control is transferred to a routine, the complement address * is zeroed (invalidated) to prevent an accidental call from a spurious * interrupt. * * The slave_launch routine turns on the BUSY flag, and the slave loop * clears the BUSY flag after control is returned to it.
*/
typedefstruct launch_s { volatile u64 magic; /* Magic number */ volatile u64 busy; /* Slave currently active */ volatile launch_proc_t call_addr; /* Func. for slave to call */ volatile u64 call_addr_c; /* 1's complement of call_addr*/ volatile u64 call_parm; /* Single parm passed to call*/ volatilevoid *stack_addr; /* Stack pointer for slave function */ volatilevoid *gp_addr; /* Global pointer for slave func. */ volatilechar *bevutlb;/* Address of bev utlb ex handler */ volatilechar *bevnormal;/*Address of bev normal ex handler */ volatilechar *bevecc;/* Address of bev cache err handler */ volatilechar pad[160]; /* Pad to LAUNCH_SIZEOF */
} launch_t;
/* * PROM entry points for launch routines are determined by IPxxprom/start.s
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.