/* Copyright Motorola, Inc. 1993, 1994 ALL RIGHTS RESERVED You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE so long as this entire notice is retained without alteration in any modified and/or redistributed versions, and that such modified versions are clearly identified as such. No licenses are granted by implication, estoppel or otherwise under any patents or trademarks of Motorola, Inc. The SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) AND ANY ACCOMPANYING WRITTEN MATERIALS. To the maximum extent permitted by applicable law, IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. */ /* 0 1 2 3 4 5 6 7 8 012345678901234567890123456789012345678901234567890123456789012345678901234567890 */ /* ----------------------------------------------------------------------- */ /* file: brk_pts.h purpose: This file contains the declarations for the data structures which are needed for the breakpoint operations. inputs: NO outputs: NO return: NO (hey, it's a header file...) modification history: 11/13/92 MH */ #include "cpu.h" #ifndef IN_BREAKPOINTS #define WHERE extern #else #define WHERE #endif /* --------------------------------------------------------------------- ===================== Prototype Our Functions ======================= --------------------------------------------------------------------- */ WHERE STATUS write_to_BPDS(); WHERE STATUS read_from_BPDS(); WHERE STATUS get_index(); WHERE STATUS breakpoint_set(); WHERE STATUS breakpoint_delete(); WHERE STATUS breakpoint_initialize(); WHERE STATUS breakpoint_list(); WHERE STATUS flush_breakpoints(); WHERE STATUS restore_breakpoints(); WHERE STATUS is_a_breakpoint(); /* --------------------------------------------------------------------- ==================== Breakpoint Data Structure ====================== --------------------------------------------------------------------- */ #define MAX_BPDS_ENTRIES 20 #define ILLEGAL_OPCODE 0x00000000l typedef struct { /* This structure is needed because we are storing three fields in the breakpoint data structure. */ /* This is the "valid bit" field. This field is used to determine if this entry in the data- structure is presently being used. */ int vbit; /* This is the address where we are setting a breakpoint. */ INTEGER bp_address; /* This is the instruction found in memory at address "bp_address". */ INTEGER bp_instruct; } breakpoint_type; WHERE breakpoint_type BPDS[MAX_BPDS_ENTRIES]; #undef WHERE