OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [or1ksim/] [cpu/] [common/] [labels.h] - Diff between revs 1350 and 1748

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1350 Rev 1748
Line 1... Line 1...
/* labels.h -- Abstract entities header file handling labels
/* labels.h -- Abstract entities header file handling labels
 
 
   Copyright (C) 2001 Marko Mlinar, markom@opencores.org
   Copyright (C) 2001 Marko Mlinar, markom@opencores.org
 
   Copyright (C) 2008 Embecosm Limited
 
 
 
   Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
 
 
   This file is part of Or1ksim, the OpenRISC 1000 Architectural Simulator.
 
 
This file is part of OpenRISC 1000 Architectural Simulator.
   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 free software; you can redistribute it and/or modify
   This program is distributed in the hope that it will be useful, but WITHOUT
it under the terms of the GNU General Public License as published by
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
the Free Software Foundation; either version 2 of the License, or
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
(at your option) any later version.
   more details.
 
 
This program is distributed in the hope that it will be useful,
   You should have received a copy of the GNU General Public License along
but WITHOUT ANY WARRANTY; without even the implied warranty of
   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
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
/* This program is commented throughout in a fashion suitable for processing
along with this program; if not, write to the Free Software
   with Doxygen. */
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
 
 
#ifndef _LABELS_H_
 
#define _LABELS_H_
 
 
 
#define LABELS_HASH_SIZE 119
#ifndef LABELS__H_
 
#define LABELS__H_
 
 
/* Structure for holding one label per particular memory location */
/* Package include */
struct label_entry {
#include "abstract.h"
 
 
 
/*! Structure for holding one label per particular memory location */
 
struct label_entry
 
{
  char *name;
  char *name;
  oraddr_t addr;
  oraddr_t addr;
  struct label_entry *next;
  struct label_entry *next;
};
};
 
 
struct breakpoint_entry {
/*! Structure repesenting a breakpoint */
 
struct breakpoint_entry
 
{
  oraddr_t addr;
  oraddr_t addr;
  struct breakpoint_entry *next;
  struct breakpoint_entry *next;
};
};
 
 
/* Label handling */
/* Globally visible variables */
void init_labels();
 
void add_label (oraddr_t addr, char *name);
 
struct label_entry *get_label (oraddr_t addr);
 
struct label_entry *find_label (char *name);
 
 
 
/* Searches mem array for a particular label and returns label's address.
 
   If label does not exist, returns 0. */
 
oraddr_t eval_label (char *name);
 
 
 
/* Breakpoint handling */
 
void breakpoints_init ();
 
void add_breakpoint (oraddr_t addr);
 
void remove_breakpoint (oraddr_t addr);
 
void print_breakpoints ();
 
int has_breakpoint (oraddr_t addr);
 
void init_breakpoints ();
 
 
 
extern struct breakpoint_entry *breakpoints;
extern struct breakpoint_entry *breakpoints;
#define CHECK_BREAKPOINTS (breakpoints)
 
 
 
#endif /* _LABELS_H_ */
/* Function prototypes for external use */
 
extern void                init_labels ();
 
extern void                add_label (oraddr_t  addr,
 
                                      char     *name);
 
extern struct label_entry *get_label (oraddr_t addr);
 
extern struct label_entry *find_label (char *name);
 
extern oraddr_t            eval_label (char *name);
 
extern void                add_breakpoint (oraddr_t addr);
 
extern void                remove_breakpoint (oraddr_t addr);
 
extern void                print_breakpoints ();
 
extern int                 has_breakpoint (oraddr_t addr);
 
extern void                init_breakpoints ();
 
 
 
#endif  /* LABELS__H_ */
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.