update to ida 7.6, add builds

This commit is contained in:
2021-10-31 21:20:46 +02:00
parent e0e0f2be99
commit b1809fe2d9
1408 changed files with 279193 additions and 302468 deletions

View File

@@ -0,0 +1,117 @@
#ifndef _OUTUTIL_HPP__
#define _OUTUTIL_HPP__
const color_t COLOR_NONE = 0;
#define WARN_SYM ('#')
#define MIN_ARG_SIZE 3
#define STR_PRESERVED 64 // overlapped (MAXSTR*2) preservation (for color)
class out_java_t;
//----------------------------------------------------------------------
#ifdef TEST_FMTSTR
class out_java_t
{
public:
qstring outbuf;
void out_char(char c);
void out_line(const char *str);
private:
AS_PRINTF(2, 0) void out_vprintf(const char *format, va_list va);
};
#else
class out_java_t : public outctx_t
{
out_java_t(void) = delete; // not used
// due to create_context() call we cannot use PM from outctx_t
java_t &pm() { return *GET_MODULE_DATA(java_t); }
inline bool jasmin(void) const { return GET_MODULE_DATA(java_t)->jasmin(); }
public:
// oututil.cpp
int out_commented(const char *p, color_t color = COLOR_NONE);
bool change_line(bool main = false);
size_t putLine(java_t &pm);
bool checkLine(size_t size);
bool chkOutLine(const char *str, size_t len);
bool chkOutKeyword(const char *str, uint len);
bool chkOutSymbol(char c);
bool chkOutChar(char c);
bool chkOutSymSpace(char c);
uchar putShort(ushort value, uchar wsym = WARN_SYM);
char outName(ea_t from, int n, ea_t ea, uval_t off, uchar *rbad);
uchar putVal(const op_t &x, uchar mode, uchar warn);
uchar OutUtf8(ushort index, fmt_t mode, color_t color = COLOR_NONE);
uchar out_index(ushort index, fmt_t mode, color_t color, uchar as_index);
uchar out_alt_ind(uint32 val);
void out_method_label(uchar is_end);
uchar outOffName(ushort off);
bool block_begin(uchar off);
bool block_end(uint32 off);
bool block_close(uint32 off, const char *name);
bool close_comment(void);
uchar out_nodelist(uval_t nodeid, uchar pos, const char *pref);
void init_prompted_output(uchar pos = 0);
void term_prompted_output(void);
uchar OutConstant(const op_t &_x, bool include_descriptor=false);
void myBorder(void);
uchar out_problems(char str[MAXSTR], const char *prefix);
uchar putScope(ushort scope, uint32 doff);
size_t debLine(java_t &pm);
void OutKeyword(const char *str, size_t len);
void outLine(const char *str, uint len);
uchar chkOutDot(void);
void OutSpace(void);
uchar chkOutSpace(void);
size_t putDeb(uchar next);
bool out_operand(const op_t &x);
void out_insn(void);
void out_proc_mnem(void);
// npooluti.cpp
size_t _one_line(void) { return 0; }
int fmtString(java_t &pm, ushort index, ssize_t size, fmt_t mode, _PRMPT_ putproc = NULL);
void trunc_name(uint num, uchar type = 0);
// out.cpp
bool out_sm_end(void);
bool out_deprecated(uchar pos);
bool out_sm_start(int same);
bool out_stackmap(const SMinfo *pinf);
uchar OutModes(uint32 mode);
uchar sign_out(ushort utsign, char mode);
void out_switch(void);
bool close_annotation(uint32 pos);
const ushort *annotation(const ushort *p, uint *plen, uint pos);
const ushort *annotation_element(const ushort *p, uint *plen, uint pos, ushort name);
uchar annotation_loop(const uval_t *pnodes, uint nodecnt);
uchar enclose_out(void);
uchar out_seg_type(fmt_t fmt);
uchar out_field_type(void);
uchar out_includes(uval_t node, uchar pos);
void java_header(void);
void java_segstart(segment_t *seg);
void java_segend(segment_t *seg);
void java_data(bool /*analyze_only*/);
// map.cpp
bool print_newline(void);
size_t write_utf(void);
private:
char putMethodLabel(ushort off);
};
CASSERT(sizeof(out_java_t) == sizeof(outctx_t));
#endif // TEST_FMTSTR
//----------------------------------------------------------------------
#define CHK_OUT_STR(p) chkOutLine(p, sizeof(p)-1)
#define OUT_KEYWORD(p) OutKeyword(p, sizeof(p)-1)
#define CHK_OUT_KEYWORD(p) chkOutKeyword(p, sizeof(p)-1)
#define OUT_STR(p) outLine(p, sizeof(p)-1)
#endif