| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
|  | 14 | struct 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, long, long, long); | 
|  | 26 | } _s; | 
|  | 27 | int	(*semlock) (int sem); | 
|  | 28 | void	(*semunlock) (int sem); | 
|  | 29 | }; | 
|  | 30 |  | 
|  | 31 | extern 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 */ |