Revision 91aa69315ef9a76b8f734438617a2e32812b630f authored by Linus Torvalds on 20 February 2007, 18:26:46 UTC, committed by Linus Torvalds on 20 February 2007, 18:26:46 UTC
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (21 commits)
  natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards
  natsemi: Add support for using MII port with no PHY
  skge: race with workq and RTNL
  Replace local random function with random32()
  s2io: RTNL and flush_scheduled_work deadlock
  8139too: RTNL and flush_scheduled_work deadlock
  sis190: RTNL and flush_scheduled_work deadlock
  r8169: RTNL and flush_scheduled_work deadlock
  [PATCH] ieee80211softmac: Fix setting of initial transmit rates
  [PATCH] bcm43xx: OFDM fix for rev 1 cards
  [PATCH] bcm43xx: Fix for 4311 and 02/07/07 specification changes
  [PATCH] prism54: correct assignment of DOT1XENABLE in WE-19 codepaths
  [PATCH] zd1211rw: Readd zd_addr_t cast
  [PATCH] bcm43xx: Fix for oops on resume
  [PATCH] bcm43xx: Ignore ampdu status reports
  [PATCH] wavelan: Use ARRAY_SIZE macro when appropriate
  [PATCH] hostap: Use ARRAY_SIZE macro when appropriate
  [PATCH] misc-wireless: Use ARRAY_SIZE macro when appropriate
  [PATCH] ipw2100: Use ARRAY_SIZE macro when appropriate
  [PATCH] bcm43xx: Janitorial change - remove two unused variables
  ...
2 parent s a5527c6 + 6606e17
Raw File
mpmbox.h
/* $Id: mpmbox.h,v 1.4 1996/04/25 06:13:19 davem Exp $
 * mpmbox.h:  Interface and defines for the OpenProm mailbox
 *               facilities for MP machines under Linux.
 *
 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
 */

#ifndef _SPARC_MPMBOX_H
#define _SPARC_MPMBOX_H

/* The prom allocates, for each CPU on the machine an unsigned
 * byte in physical ram.  You probe the device tree prom nodes
 * for these values.  The purpose of this byte is to be able to
 * pass messages from one cpu to another.
 */

/* These are the main message types we have to look for in our
 * Cpu mailboxes, based upon these values we decide what course
 * of action to take.
 */

/* The CPU is executing code in the kernel. */
#define MAILBOX_ISRUNNING     0xf0

/* Another CPU called romvec->pv_exit(), you should call
 * prom_stopcpu() when you see this in your mailbox.
 */
#define MAILBOX_EXIT          0xfb

/* Another CPU called romvec->pv_enter(), you should call
 * prom_cpuidle() when this is seen.
 */
#define MAILBOX_GOSPIN        0xfc

/* Another CPU has hit a breakpoint either into kadb or the prom
 * itself.  Just like MAILBOX_GOSPIN, you should call prom_cpuidle()
 * at this point.
 */
#define MAILBOX_BPT_SPIN      0xfd

/* Oh geese, some other nitwit got a damn watchdog reset.  The party's
 * over so go call prom_stopcpu().
 */
#define MAILBOX_WDOG_STOP     0xfe

#ifndef __ASSEMBLY__

/* Handy macro's to determine a cpu's state. */

/* Is the cpu still in Power On Self Test? */
#define MBOX_POST_P(letter)  ((letter) >= 0x00 && (letter) <= 0x7f)

/* Is the cpu at the 'ok' prompt of the PROM? */
#define MBOX_PROMPROMPT_P(letter) ((letter) >= 0x80 && (letter) <= 0x8f)

/* Is the cpu spinning in the PROM? */
#define MBOX_PROMSPIN_P(letter) ((letter) >= 0x90 && (letter) <= 0xef)

/* Sanity check... This is junk mail, throw it out. */
#define MBOX_BOGON_P(letter) ((letter) >= 0xf1 && (letter) <= 0xfa)

/* Is the cpu actively running an application/kernel-code? */
#define MBOX_RUNNING_P(letter) ((letter) == MAILBOX_ISRUNNING)

#endif /* !(__ASSEMBLY__) */

#endif /* !(_SPARC_MPMBOX_H) */
back to top