linux/arch/mips/include/asm/pmon.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Copyright (C) 2004 by Ralf Baechle
   7 *
   8 * The cpustart method is a PMC-Sierra's function to start the secondary CPU.
   9 * Stock PMON 2000 has the smpfork, semlock and semunlock methods instead.
  10 */
  11#ifndef _ASM_PMON_H
  12#define _ASM_PMON_H
  13
  14struct callvectors {
  15        int     (*open) (char*, int, int);
  16        int     (*close) (int);
  17        int     (*read) (int, void*, int);
  18        int     (*write) (int, void*, int);
  19        off_t   (*lseek) (int, off_t, int);
  20        int     (*printf) (const char*, ...);
  21        void    (*cacheflush) (void);
  22        char*   (*gets) (char*);
  23        union {
  24                int     (*smpfork) (unsigned long cp, char *sp);
  25                int     (*cpustart) (long, void (*)(void), void *, long);
  26        } _s;
  27        int     (*semlock) (int sem);
  28        void    (*semunlock) (int sem);
  29};
  30
  31extern struct callvectors *debug_vectors;
  32
  33#define pmon_open(name, flags, mode)    debug_vectors->open(name, flage, mode)
  34#define pmon_close(fd)                  debug_vectors->close(fd)
  35#define pmon_read(fd, buf, count)       debug_vectors->read(fd, buf, count)
  36#define pmon_write(fd, buf, count)      debug_vectors->write(fd, buf, count)
  37#define pmon_lseek(fd, off, whence)     debug_vectors->lseek(fd, off, whence)
  38#define pmon_printf(fmt...)             debug_vectors->printf(fmt)
  39#define pmon_cacheflush()               debug_vectors->cacheflush()
  40#define pmon_gets(s)                    debug_vectors->gets(s)
  41#define pmon_cpustart(n, f, sp, gp)     debug_vectors->_s.cpustart(n, f, sp, gp)
  42#define pmon_smpfork(cp, sp)            debug_vectors->_s.smpfork(cp, sp)
  43#define pmon_semlock(sem)               debug_vectors->semlock(sem)
  44#define pmon_semunlock(sem)             debug_vectors->semunlock(sem)
  45
  46#endif /* _ASM_PMON_H */
  47