IDA SDK
|
Used by processor_t::flag.
Macros | |
#define | PR_SEGS 0x000001 |
has segment registers? | |
#define | PR_USE32 0x000002 |
supports 32-bit addressing? | |
#define | PR_DEFSEG32 0x000004 |
segments are 32-bit by default | |
#define | PR_RNAMESOK 0x000008 |
allow user register names for location names | |
#define | PR_ADJSEGS 0x000020 |
IDA may adjust segments' starting/ending addresses. | |
#define | PR_DEFNUM 0x0000C0 |
mask - default number representation | |
#define | PRN_HEX 0x000000 |
hex | |
#define | PRN_OCT 0x000040 |
octal | |
#define | PRN_DEC 0x000080 |
decimal | |
#define | PRN_BIN 0x0000C0 |
binary | |
#define | PR_WORD_INS 0x000100 |
instruction codes are grouped 2bytes in binary line prefix | |
#define | PR_NOCHANGE 0x000200 |
The user can't change segments and code/data attributes (display only) | |
#define | PR_ASSEMBLE 0x000400 |
Module has a built-in assembler and will react to ev_assemble. | |
#define | PR_ALIGN 0x000800 |
All data items should be aligned properly. | |
#define | PR_TYPEINFO 0x001000 |
the processor module fully supports type information callbacks; without full support, function argument locations and other things will probably be wrong. More... | |
#define | PR_USE64 0x002000 |
supports 64-bit addressing? | |
#define | PR_SGROTHER 0x004000 |
the segment registers don't contain the segment selectors. | |
#define | PR_STACK_UP 0x008000 |
the stack grows up | |
#define | PR_BINMEM 0x010000 |
the processor module provides correct segmentation for binary files (i.e. it creates additional segments). More... | |
#define | PR_SEGTRANS 0x020000 |
the processor module supports the segment translation feature (meaning it calculates the code addresses using the map_code_ea() function) | |
#define | PR_CHK_XREF 0x040000 |
don't allow near xrefs between segments with different bases | |
#define | PR_NO_SEGMOVE 0x080000 |
the processor module doesn't support move_segm() (i.e. More... | |
#define | PR_USE_ARG_TYPES 0x200000 |
use processor_t::use_arg_types callback | |
#define | PR_SCALE_STKVARS 0x400000 |
use processor_t::get_stkvar_scale callback | |
#define | PR_DELAYED 0x800000 |
has delayed jumps and calls. More... | |
#define | PR_ALIGN_INSN 0x1000000 |
allow ida to create alignment instructions arbitrarily. More... | |
#define | PR_PURGING 0x2000000 |
there are calling conventions which may purge bytes from the stack | |
#define | PR_CNDINSNS 0x4000000 |
has conditional instructions | |
#define | PR_USE_TBYTE 0x8000000 |
BTMT_SPECFLT means _TBYTE type | |
#define | PR_DEFSEG64 0x10000000 |
segments are 64-bit by default | |
#define | PR_OUTER 0x20000000 |
has outer operands (currently only mc68k) | |
Variables | |
const problist_id_t | PR_NOBASE = 1 |
Can't find offset base. | |
const problist_id_t | PR_NONAME = 2 |
Can't find name. | |
const problist_id_t | PR_NOFOP = 3 |
Can't find forced op (not used anymore) | |
const problist_id_t | PR_NOCMT = 4 |
Can't find comment (not used anymore) | |
const problist_id_t | PR_NOXREFS = 5 |
Can't find references. | |
const problist_id_t | PR_JUMP = 6 |
Jump by table !!!! ignored. | |
const problist_id_t | PR_DISASM = 7 |
Can't disasm. | |
const problist_id_t | PR_HEAD = 8 |
Already head. | |
const problist_id_t | PR_ILLADDR = 9 |
Exec flows beyond limits. | |
const problist_id_t | PR_MANYLINES = 10 |
Too many lines. | |
const problist_id_t | PR_BADSTACK = 11 |
Failed to trace the value of the stack pointer. | |
const problist_id_t | PR_ATTN = 12 |
Attention! Probably erroneous situation. | |
const problist_id_t | PR_FINAL = 13 |
Decision to convert to instruction/data is made by IDA. | |
const problist_id_t | PR_ROLLED = 14 |
The decision made by IDA was wrong and rolled back. | |
const problist_id_t | PR_COLLISION = 15 |
FLAIR collision: the function with the given name already exists. | |
const problist_id_t | PR_DECIMP = 16 |
FLAIR match indecision: the patterns matched, but not the function(s) being referenced. | |
const problist_id_t | PR_END = 17 |
Number of problem types. | |
#define PR_TYPEINFO 0x001000 |
the processor module fully supports type information callbacks; without full support, function argument locations and other things will probably be wrong.
#define PR_BINMEM 0x010000 |
the processor module provides correct segmentation for binary files (i.e. it creates additional segments).
The kernel will not ask the user to specify the RAM/ROM sizes
#define PR_NO_SEGMOVE 0x080000 |
the processor module doesn't support move_segm() (i.e.
the user can't move segments)
#define PR_DELAYED 0x800000 |
has delayed jumps and calls.
If this flag is set, processor_t::is_basic_block_end, processor_t::delay_slot_insn should be implemented
#define PR_ALIGN_INSN 0x1000000 |
allow ida to create alignment instructions arbitrarily.
Since these instructions might lead to other wrong instructions and spoil the listing, IDA does not create them by default anymore