123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /* This file is part of the program psim.
- Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- */
- #ifndef _MON_H_
- #define _MON_H_
- #include "basics.h"
- #include "itable.h"
- /* monitor/logger: counts what the simulation is up to */
- typedef unsigned long count_type;
- /* Interfact to model to return model specific information */
- typedef struct _model_print model_print;
- struct _model_print {
- model_print *next;
- const char *name;
- const char *suffix_singular;
- const char *suffix_plural;
- count_type count;
- };
- /* Additional events to monitor */
- typedef enum _mon_events {
- mon_event_icache_miss,
- nr_mon_events
- } mon_events;
- typedef struct _mon mon;
- typedef struct _cpu_mon cpu_mon;
- INLINE_MON\
- (mon *) mon_create
- (void);
- INLINE_MON\
- (cpu_mon *) mon_cpu
- (mon *monitor,
- int cpu_nr);
- INLINE_MON\
- (void) mon_init
- (mon *monitor,
- int nr_cpus);
- INLINE_MON\
- (void) mon_issue
- (itable_index index,
- cpu *processor,
- unsigned_word cia);
- /* NOTE - there is no mon_iload - it is made reduntant by mon_issue()
- and besides when the cpu's have their own cache, the information is
- wrong */
- INLINE_MON\
- (void) mon_read
- (unsigned_word ea,
- unsigned_word ra,
- unsigned nr_bytes,
- cpu *processor,
- unsigned_word cia);
- INLINE_MON\
- (void) mon_write
- (unsigned_word ea,
- unsigned_word ra,
- unsigned nr_bytes,
- cpu *processor,
- unsigned_word cia);
- INLINE_MON\
- (void) mon_event
- (mon_events event,
- cpu *processor,
- unsigned_word cia);
- INLINE_MON\
- (unsigned) mon_get_number_of_insns
- (mon *monitor,
- int cpu_nr);
- INLINE_MON\
- (void) mon_print_info
- (psim *system,
- mon *monitor,
- int verbose);
- #endif
|