gdb_server: support gdb target description
commitd979d78e97786667d168ba183c9fc60c622d29c1
authorHsiangkai Wang <hsiangkai@gmail.com>
Tue, 7 May 2013 13:43:35 +0000 (7 21:43 +0800)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 7 Aug 2013 21:00:40 +0000 (7 21:00 +0000)
tree19e03565245a64cb7f3138433f78abce8c6acc9a
parent9f2922aa7abb385d1fb24def91fac7eb4e2304c5
gdb_server: support gdb target description

* Add a parameter in .get_gdb_reg_list() to return different
  register lists as generating target description.
* Modify STRUCT REG to let gdb generate target description
  according to register information.

The modified structure of register is
struct reg {
        const char *name;
        uint32_t number;  /* for regnum="num" */
        struct reg_feature *feature;  /* for register group feature name */
        bool caller_save;  /* for save-restore="yes|no" */
        void *value;
        bool dirty;
        bool valid;
        bool exist;
        uint32_t size;
        struct reg_data_type *reg_data_type;  /* for type="type" */
        const char *group;  /* for group="general|float|vector" */
        void *arch_info;
        const struct reg_arch_type *type;
};

Change-Id: I2096b67adf94518ba0b8b23d8c6a9f64ad7932b8
Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-on: http://openocd.zylin.com/1382
Tested-by: jenkins
Reviewed-by: Franck Jullien <franck.jullien@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
16 files changed:
src/rtos/linux.c
src/server/gdb_server.c
src/target/arm.h
src/target/armv4_5.c
src/target/armv7m.c
src/target/armv7m.h
src/target/avr32_ap7k.c
src/target/dsp563xx.c
src/target/mips32.c
src/target/mips32.h
src/target/nds32.c
src/target/nds32.h
src/target/register.h
src/target/target.c
src/target/target.h
src/target/target_type.h