Print this page
OS-7095 Want risc-v disassembler

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libdisasm/common/libdisasm.h
          +++ new/usr/src/lib/libdisasm/common/libdisasm.h
↓ open down ↓ 16 lines elided ↑ open up ↑
  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   26   * Copyright 2015 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
       27 + * Copyright 2018, Joyent, Inc.
  27   28   */
  28   29  
  29   30  #ifndef _LIBDISASM_H
  30   31  #define _LIBDISASM_H
  31   32  
  32   33  #include <sys/types.h>
  33   34  
  34   35  #ifdef  __cplusplus
  35   36  extern "C" {
  36   37  #endif
↓ open down ↓ 11 lines elided ↑ open up ↑
  48   49  /* x86 diassembler flags */
  49   50  #define DIS_X86_SIZE16          0x100
  50   51  #define DIS_X86_SIZE32          0x010
  51   52  #define DIS_X86_SIZE64          0x020
  52   53  
  53   54  /* s390 disassembler flags */
  54   55  #define DIS_S370                0x200
  55   56  #define DIS_S390_31             0x400
  56   57  #define DIS_S390_64             0x800
  57   58  
       59 +/* risc-v disassembler flags */
       60 +#define DIS_RISCV_32            0x2000
       61 +#define DIS_RISCV_64            0x4000
       62 +
  58   63  /* generic disassembler flags */
  59   64  #define DIS_OCTAL               0x040
  60   65  #define DIS_NOIMMSYM            0x080
  61   66  
  62   67  #define DIS_ARCH_MASK           (DIS_SPARC_V8 | \
  63   68                  DIS_SPARC_V9 | DIS_SPARC_V9_SGI | DIS_SPARC_V9_OPL | \
  64   69                  DIS_X86_SIZE16 | DIS_X86_SIZE32 | DIS_X86_SIZE64 | \
  65      -                DIS_S370 | DIS_S390_31 | DIS_S390_64)
       70 +                DIS_S370 | DIS_S390_31 | DIS_S390_64 | DIS_RISCV_32 | \
       71 +                DIS_RISCV_64)
  66   72  
  67   73  typedef int (*dis_lookup_f)(void *, uint64_t, char *, size_t, uint64_t *,
  68   74      size_t *);
  69   75  typedef int (*dis_read_f)(void *, uint64_t, void *, size_t);
  70   76  
  71   77  extern dis_handle_t *dis_handle_create(int, void *, dis_lookup_f, dis_read_f);
  72   78  extern void dis_handle_destroy(dis_handle_t *);
  73   79  
  74   80  extern int dis_disassemble(dis_handle_t *, uint64_t, char *, size_t);
  75   81  extern uint64_t dis_previnstr(dis_handle_t *, uint64_t, int n);
↓ open down ↓ 20 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX