update to ida 7.6, add builds
This commit is contained in:
117
idasdk76/module/java/oututil.hpp
Normal file
117
idasdk76/module/java/oututil.hpp
Normal 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
|
||||
Reference in New Issue
Block a user