Print this page
6066 dis: support for System/370, System/390, and z/Architecture ELF bins

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libdisasm/common/libdisasm.h
          +++ new/usr/src/lib/libdisasm/common/libdisasm.h
↓ open down ↓ 15 lines elided ↑ open up ↑
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
  25   25   * Copyright 2012 Joshua M. Clulow <josh@sysmgr.org>
       26 + * Copyright 2015 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
  26   27   */
  27   28  
  28   29  #ifndef _LIBDISASM_H
  29   30  #define _LIBDISASM_H
  30   31  
  31   32  #include <sys/types.h>
  32   33  
  33   34  #ifdef  __cplusplus
  34   35  extern "C" {
  35   36  #endif
↓ open down ↓ 6 lines elided ↑ open up ↑
  42   43  #define DIS_SPARC_V8            0x001
  43   44  #define DIS_SPARC_V9            0x002
  44   45  #define DIS_SPARC_V9_SGI        0x004
  45   46  #define DIS_SPARC_V9_OPL        0x008
  46   47  
  47   48  /* x86 diassembler flags */
  48   49  #define DIS_X86_SIZE16          0x100
  49   50  #define DIS_X86_SIZE32          0x010
  50   51  #define DIS_X86_SIZE64          0x020
  51   52  
       53 +/* s390 disassembler flags */
       54 +#define DIS_S370                0x200
       55 +#define DIS_S390_31             0x400
       56 +#define DIS_S390_64             0x800
       57 +
  52   58  /* generic disassembler flags */
  53   59  #define DIS_OCTAL               0x040
  54   60  #define DIS_NOIMMSYM            0x080
  55   61  
  56   62  #define DIS_ARCH_MASK           (DIS_SPARC_V8 | \
  57   63                  DIS_SPARC_V9 | DIS_SPARC_V9_SGI | DIS_SPARC_V9_OPL | \
  58      -                DIS_X86_SIZE16 | DIS_X86_SIZE32 | DIS_X86_SIZE64)
       64 +                DIS_X86_SIZE16 | DIS_X86_SIZE32 | DIS_X86_SIZE64 | \
       65 +                DIS_S370 | DIS_S390_31 | DIS_S390_64)
  59   66  
  60   67  typedef int (*dis_lookup_f)(void *, uint64_t, char *, size_t, uint64_t *,
  61   68      size_t *);
  62   69  typedef int (*dis_read_f)(void *, uint64_t, void *, size_t);
  63   70  
  64   71  extern dis_handle_t *dis_handle_create(int, void *, dis_lookup_f, dis_read_f);
  65   72  extern void dis_handle_destroy(dis_handle_t *);
  66   73  
  67   74  extern int dis_disassemble(dis_handle_t *, uint64_t, char *, size_t);
  68   75  extern uint64_t dis_previnstr(dis_handle_t *, uint64_t, int n);
↓ open down ↓ 20 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX