Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/mips/include/asm/sn/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  launch.h   Sprache: C

 
/*
 * 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

#include <asm/sn/types.h>
#include <asm/sn/addrs.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_MAGIC  0xaddbead2addbead3
#ifdef CONFIG_SGI_IP27
#define LAUNCH_SIZEOF  0x100
#define LAUNCH_PADSZ  0xa0
#endif

#define LAUNCH_OFF_MAGIC 0x00 /* Struct offsets for assembly     */
#define LAUNCH_OFF_BUSY  0x08
#define LAUNCH_OFF_CALL  0x10
#define LAUNCH_OFF_CALLC 0x18
#define LAUNCH_OFF_CALLPARM 0x20
#define LAUNCH_OFF_STACK 0x28
#define LAUNCH_OFF_GP  0x30
#define LAUNCH_OFF_BEVUTLB 0x38
#define LAUNCH_OFF_BEVNORMAL 0x40
#define LAUNCH_OFF_BEVECC 0x48

#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.
 */


#ifndef __ASSEMBLY__

typedef int launch_state_t;
typedef void (*launch_proc_t)(u64 call_parm);

typedef struct 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*/
 volatile void *stack_addr; /* Stack pointer for slave function */
 volatile void *gp_addr;  /* Global pointer for slave func.   */
 volatile char  *bevutlb;/* Address of bev utlb ex handler   */
 volatile char  *bevnormal;/*Address of bev normal ex handler */
 volatile char  *bevecc;/* Address of bev cache err handler */
 volatile char  pad[160]; /* Pad to LAUNCH_SIZEOF     */
} launch_t;

/*
 * PROM entry points for launch routines are determined by IPxxprom/start.s
 */


#define LAUNCH_SLAVE (*(void (*)(int nasid, int cpu, \
        launch_proc_t call_addr, \
        u64 call_parm, \
        void *stack_addr, \
        void *gp_addr)) \
    IP27PROM_LAUNCHSLAVE)

#define LAUNCH_WAIT (*(void (*)(int nasid, int cpu, int timeout_msec)) \
    IP27PROM_WAITSLAVE)

#define LAUNCH_POLL (*(launch_state_t (*)(int nasid, int cpu)) \
    IP27PROM_POLLSLAVE)

#define LAUNCH_LOOP (*(void (*)(void)) \
    IP27PROM_SLAVELOOP)

#define LAUNCH_FLASH (*(void (*)(void)) \
    IP27PROM_FLASHLEDS)

#endif /* !__ASSEMBLY__ */

#endif /* _ASM_SN_LAUNCH_H */

Messung V0.5
C=79 H=89 G=83

¤ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.