Some minor nits below. On Mon, Jun 12, 2017 at 17:54:09 +0300, Lluís Vilanova wrote: > Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> > --- > +/** > + * BreakpointHitType: > + * @BH_MISS: No hit > + * @BH_HIT_INSN: Hit, but continue translating instruction > + * @BH_HIT_TB: Hit, stop translating TB > + * > + * How to react to a breakpoint hit. > + */ > +typedef enum BreakpointHitType { > + BH_MISS, > + BH_HIT_INSN, > + BH_HIT_TB, > +} BreakpointHitType;
BH_MISS reads out loud to "Breakpoint Hit Miss"; that's quite counterintuitive. Similarly for the others (e.g. "breakpoint Hit Hit -- ??". Can we just do BP_{MISS,HIT,etc}? Thinking about it, perhaps BP_NONE is better than BP_MISS. (snip) > +/** > + * DisasContextBase: > + * @tb: Translation block for this disassembly. > + * @pc_first: Address of first guest instruction in this TB. > + * @pc_next: Address of next guest instruction in this TB (current during > + * disassembly). > + * @num_insns: Number of translated instructions (including current). > + * @singlestep_enabled: "Hardware" single stepping enabled. > + * > + * Architecture-agnostic disassembly context. > + */ > +typedef struct DisasContextBase { > + TranslationBlock *tb; > + target_ulong pc_first; > + target_ulong pc_next; > + DisasJumpType jmp_type; > + unsigned int num_insns; > + bool singlestep_enabled; > +} DisasContextBase; - @pc_next: I'd stick with @pc, it's shorter, it's everywhere already, and with the documentation it's very clear what it is for. - @jmp_type: missing doc :-) Thanks, E.