2
* Copyright (C) 2008 Sourcefire, Inc.
4
* Authors: aCaB <acab@clamav.net>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
#ifndef __DISASMPRIV_H
22
#define __DISASMPRIV_H
25
#include "clamav-config.h"
338
ACCESS_NOARG, /* arg not present */
339
ACCESS_IMM, /* immediate */
340
ACCESS_REL, /* +/- immediate */
341
ACCESS_REG, /* register */
342
ACCESS_MEM /* [something] */
345
enum DIS_SIZE { /* for mem access, immediate and relative */
357
REG_EAX, REG_ECX, REG_EDX, REG_EBX, REG_ESP, REG_EBP, REG_ESI, REG_EDI,
358
REG_AX, REG_CX, REG_DX, REG_BX, REG_SP, REG_BP, REG_SI, REG_DI,
359
REG_AH, REG_CH, REG_DH, REG_BH, REG_AL, REG_CL, REG_DL, REG_BL,
360
REG_ES, REG_CS, REG_SS, REG_DS, REG_FS, REG_GS,
361
REG_CR0, REG_CR1, REG_CR2, REG_CR3, REG_CR4, REG_CR5, REG_CR6, REG_CR7,
362
REG_DR0, REG_DR1, REG_DR2, REG_DR3, REG_DR4, REG_DR5, REG_DR6, REG_DR7,
363
REG_ST0, REG_ST1, REG_ST2, REG_ST3, REG_ST4, REG_ST5, REG_ST6, REG_ST7,
369
enum DIS_ACCESS access;
379
/* uint48_t f; FIXME */
383
enum X86REGS r1; /* scaled */
384
enum X86REGS r2; /* added */
385
uint8_t scale; /* r1 multiplier */
392
/* FIXME: pack this thing and make macroes to access it in different compilers */
396
enum DIS_STATE state;
400
struct DIS_ARGS args[3];