[PATCH] gdbarmsim: Remove
Chris Johns
chrisj at rtems.org
Thu Mar 19 23:10:39 UTC 2020
Looks good and thanks.
Plus there is this ...
https://docs.rtems.org/branches/master/user/bsps/bsps-arm.html#gdbarmsim
:)
Chris
On 20/3/20 7:56 am, Joel Sherrill wrote:
> Closes #3611.
> ---
> .../arm/gdbarmsim/config/arm1136jfs-testsuite.tcfg | 5 -
> bsps/arm/gdbarmsim/config/arm1136jfs.cfg | 18 -
> bsps/arm/gdbarmsim/config/arm1136js-testsuite.tcfg | 5 -
> bsps/arm/gdbarmsim/config/arm1136js.cfg | 18 -
> bsps/arm/gdbarmsim/config/arm7tdmi-testsuite.tcfg | 5 -
> bsps/arm/gdbarmsim/config/arm7tdmi.cfg | 18 -
> bsps/arm/gdbarmsim/config/arm920-testsuite.tcfg | 5 -
> bsps/arm/gdbarmsim/config/arm920.cfg | 18 -
> .../gdbarmsim/config/armcortexa9-testsuite.tcfg | 5 -
> bsps/arm/gdbarmsim/config/armcortexa9.cfg | 19 -
> bsps/arm/gdbarmsim/console/console-io.c | 58 --
> bsps/arm/gdbarmsim/headers.am | 11 -
> bsps/arm/gdbarmsim/include/bsp.h | 85 ---
> bsps/arm/gdbarmsim/include/bsp/irq.h | 95 ---
> bsps/arm/gdbarmsim/include/bsp/swi.h | 110 ---
> bsps/arm/gdbarmsim/include/tm27.h | 1 -
> bsps/arm/gdbarmsim/irq/irq-dispatch.c | 50 --
> bsps/arm/gdbarmsim/irq/irq.c | 71 --
> bsps/arm/gdbarmsim/start/bsp_specs | 9 -
> bsps/arm/gdbarmsim/start/bspreset.c | 17 -
> bsps/arm/gdbarmsim/start/bspstart.c | 22 -
> bsps/arm/gdbarmsim/start/bspstarthooks.c | 20 -
> bsps/arm/gdbarmsim/start/linkcmds | 23 -
> bsps/arm/gdbarmsim/start/syscalls.c | 763 ---------------------
> c/src/lib/libbsp/arm/acinclude.m4 | 2 -
> c/src/lib/libbsp/arm/gdbarmsim/Makefile.am | 57 --
> c/src/lib/libbsp/arm/gdbarmsim/configure.ac | 21 -
> 27 files changed, 1531 deletions(-)
> delete mode 100644 bsps/arm/gdbarmsim/config/arm1136jfs-testsuite.tcfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm1136jfs.cfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm1136js-testsuite.tcfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm1136js.cfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm7tdmi-testsuite.tcfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm7tdmi.cfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm920-testsuite.tcfg
> delete mode 100644 bsps/arm/gdbarmsim/config/arm920.cfg
> delete mode 100644 bsps/arm/gdbarmsim/config/armcortexa9-testsuite.tcfg
> delete mode 100644 bsps/arm/gdbarmsim/config/armcortexa9.cfg
> delete mode 100644 bsps/arm/gdbarmsim/console/console-io.c
> delete mode 100644 bsps/arm/gdbarmsim/headers.am
> delete mode 100644 bsps/arm/gdbarmsim/include/bsp.h
> delete mode 100644 bsps/arm/gdbarmsim/include/bsp/irq.h
> delete mode 100644 bsps/arm/gdbarmsim/include/bsp/swi.h
> delete mode 100644 bsps/arm/gdbarmsim/include/tm27.h
> delete mode 100644 bsps/arm/gdbarmsim/irq/irq-dispatch.c
> delete mode 100644 bsps/arm/gdbarmsim/irq/irq.c
> delete mode 100644 bsps/arm/gdbarmsim/start/bsp_specs
> delete mode 100644 bsps/arm/gdbarmsim/start/bspreset.c
> delete mode 100644 bsps/arm/gdbarmsim/start/bspstart.c
> delete mode 100644 bsps/arm/gdbarmsim/start/bspstarthooks.c
> delete mode 100644 bsps/arm/gdbarmsim/start/linkcmds
> delete mode 100644 bsps/arm/gdbarmsim/start/syscalls.c
> delete mode 100644 c/src/lib/libbsp/arm/gdbarmsim/Makefile.am
> delete mode 100644 c/src/lib/libbsp/arm/gdbarmsim/configure.ac
>
> diff --git a/bsps/arm/gdbarmsim/config/arm1136jfs-testsuite.tcfg b/bsps/arm/gdbarmsim/config/arm1136jfs-testsuite.tcfg
> deleted file mode 100644
> index 70a1a31..0000000
> --- a/bsps/arm/gdbarmsim/config/arm1136jfs-testsuite.tcfg
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#
> -# The GDB ARM Simulator does not have a tick interrupt.
> -#
> -
> -include: testdata/require-tick-isr.tcfg
> diff --git a/bsps/arm/gdbarmsim/config/arm1136jfs.cfg b/bsps/arm/gdbarmsim/config/arm1136jfs.cfg
> deleted file mode 100644
> index be4d5a6..0000000
> --- a/bsps/arm/gdbarmsim/config/arm1136jfs.cfg
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -#
> -# Config file for GDB ARM Simulator as arm1136jf-s (FPU)
> -#
> -
> -include $(RTEMS_ROOT)/make/custom/default.cfg
> -
> -RTEMS_CPU=arm
> -
> -# This contains the compiler options necessary to select the CPU model
> -# and (hopefully) optimize for it.
> -CPU_CFLAGS = -mcpu=arm1136jf-s
> -
> -# optimize flag: typically -O2
> -CFLAGS_OPTIMIZE_V = -O2 -g
> -
> -# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
> -CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
> -LDFLAGS = -Wl,--gc-sections
> diff --git a/bsps/arm/gdbarmsim/config/arm1136js-testsuite.tcfg b/bsps/arm/gdbarmsim/config/arm1136js-testsuite.tcfg
> deleted file mode 100644
> index 70a1a31..0000000
> --- a/bsps/arm/gdbarmsim/config/arm1136js-testsuite.tcfg
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#
> -# The GDB ARM Simulator does not have a tick interrupt.
> -#
> -
> -include: testdata/require-tick-isr.tcfg
> diff --git a/bsps/arm/gdbarmsim/config/arm1136js.cfg b/bsps/arm/gdbarmsim/config/arm1136js.cfg
> deleted file mode 100644
> index 83308c3..0000000
> --- a/bsps/arm/gdbarmsim/config/arm1136js.cfg
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -#
> -# Config file for GDB ARM Simulator as arm1136j-s (no FPU)
> -#
> -
> -include $(RTEMS_ROOT)/make/custom/default.cfg
> -
> -RTEMS_CPU=arm
> -
> -# This contains the compiler options necessary to select the CPU model
> -# and (hopefully) optimize for it.
> -CPU_CFLAGS = -mcpu=arm1136j-s
> -
> -# optimize flag: typically -O2
> -CFLAGS_OPTIMIZE_V = -O2 -g
> -
> -# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
> -CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
> -LDFLAGS = -Wl,--gc-sections
> diff --git a/bsps/arm/gdbarmsim/config/arm7tdmi-testsuite.tcfg b/bsps/arm/gdbarmsim/config/arm7tdmi-testsuite.tcfg
> deleted file mode 100644
> index 70a1a31..0000000
> --- a/bsps/arm/gdbarmsim/config/arm7tdmi-testsuite.tcfg
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#
> -# The GDB ARM Simulator does not have a tick interrupt.
> -#
> -
> -include: testdata/require-tick-isr.tcfg
> diff --git a/bsps/arm/gdbarmsim/config/arm7tdmi.cfg b/bsps/arm/gdbarmsim/config/arm7tdmi.cfg
> deleted file mode 100644
> index e992733..0000000
> --- a/bsps/arm/gdbarmsim/config/arm7tdmi.cfg
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -#
> -# Config file for GDB ARM Simulator as arm7tdmi
> -#
> -
> -include $(RTEMS_ROOT)/make/custom/default.cfg
> -
> -RTEMS_CPU=arm
> -
> -# This contains the compiler options necessary to select the CPU model
> -# and (hopefully) optimize for it.
> -CPU_CFLAGS = -mcpu=arm7tdmi
> -
> -# optimize flag: typically -O2
> -CFLAGS_OPTIMIZE_V = -O2 -g
> -
> -# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
> -CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
> -LDFLAGS = -Wl,--gc-sections
> diff --git a/bsps/arm/gdbarmsim/config/arm920-testsuite.tcfg b/bsps/arm/gdbarmsim/config/arm920-testsuite.tcfg
> deleted file mode 100644
> index 70a1a31..0000000
> --- a/bsps/arm/gdbarmsim/config/arm920-testsuite.tcfg
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#
> -# The GDB ARM Simulator does not have a tick interrupt.
> -#
> -
> -include: testdata/require-tick-isr.tcfg
> diff --git a/bsps/arm/gdbarmsim/config/arm920.cfg b/bsps/arm/gdbarmsim/config/arm920.cfg
> deleted file mode 100644
> index b246d5b..0000000
> --- a/bsps/arm/gdbarmsim/config/arm920.cfg
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -#
> -# Config file for GDB ARM Simulator as arm920
> -#
> -
> -include $(RTEMS_ROOT)/make/custom/default.cfg
> -
> -RTEMS_CPU=arm
> -
> -# This contains the compiler options necessary to select the CPU model
> -# and (hopefully) optimize for it.
> -CPU_CFLAGS = -mcpu=arm920
> -
> -# optimize flag: typically -O2
> -CFLAGS_OPTIMIZE_V = -O2 -g
> -
> -# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
> -CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
> -LDFLAGS = -Wl,--gc-sections
> diff --git a/bsps/arm/gdbarmsim/config/armcortexa9-testsuite.tcfg b/bsps/arm/gdbarmsim/config/armcortexa9-testsuite.tcfg
> deleted file mode 100644
> index 70a1a31..0000000
> --- a/bsps/arm/gdbarmsim/config/armcortexa9-testsuite.tcfg
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#
> -# The GDB ARM Simulator does not have a tick interrupt.
> -#
> -
> -include: testdata/require-tick-isr.tcfg
> diff --git a/bsps/arm/gdbarmsim/config/armcortexa9.cfg b/bsps/arm/gdbarmsim/config/armcortexa9.cfg
> deleted file mode 100644
> index 6eecf70..0000000
> --- a/bsps/arm/gdbarmsim/config/armcortexa9.cfg
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -#
> -# Config file for GDB ARM Simulator as cortex-a9
> -#
> -
> -include $(RTEMS_ROOT)/make/custom/default.cfg
> -
> -RTEMS_CPU=arm
> -
> -# This contains the compiler options necessary to select the CPU model
> -# and (hopefully) optimize for it.
> -# CPU_CFLAGS = -mcpu=arm920 -mstructure-size-boundary=8
> -CPU_CFLAGS = -mcpu=cortex-a9
> -
> -# optimize flag: typically -O2
> -CFLAGS_OPTIMIZE_V = -O2 -g
> -
> -# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
> -CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
> -LDFLAGS = -Wl,--gc-sections
> diff --git a/bsps/arm/gdbarmsim/console/console-io.c b/bsps/arm/gdbarmsim/console/console-io.c
> deleted file mode 100644
> index 8bea74d..0000000
> --- a/bsps/arm/gdbarmsim/console/console-io.c
> +++ /dev/null
> @@ -1,58 +0,0 @@
> -/*
> - * COPYRIGHT (c) 1989-2009.
> - * On-Line Applications Research Corporation (OAR).
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <bsp.h>
> -#include <bsp/console-polled.h>
> -#include <rtems/libio.h>
> -#include <stdlib.h>
> -#include <assert.h>
> -
> -/*
> - * console_initialize_hardware
> - *
> - * This routine initializes the console hardware.
> - *
> - */
> -void console_initialize_hardware(void)
> -{
> - return;
> -}
> -
> -/*
> - * console_outbyte_polled
> - *
> - * This routine transmits a character using polling.
> - */
> -void console_outbyte_polled(
> - int port,
> - char ch
> -)
> -{
> - gdbarmsim_writec(ch);
> -}
> -
> -/*
> - * console_inbyte_nonblocking
> - *
> - * This routine polls for a character.
> - */
> -
> -int console_inbyte_nonblocking(
> - int port
> -)
> -{
> - return -1;
> -}
> -
> -#include <rtems/bspIo.h>
> -
> -static void MyBSP_output_char(char c) { console_outbyte_polled( 0, c ); }
> -
> -BSP_output_char_function_type BSP_output_char = MyBSP_output_char;
> -BSP_polling_getchar_function_type BSP_poll_char = NULL;
> diff --git a/bsps/arm/gdbarmsim/headers.am b/bsps/arm/gdbarmsim/headers.am
> deleted file mode 100644
> index 25e9fca..0000000
> --- a/bsps/arm/gdbarmsim/headers.am
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -## This file was generated by "./boostrap -H".
> -
> -include_HEADERS =
> -include_HEADERS += ../../../../../../bsps/arm/gdbarmsim/include/bsp.h
> -include_HEADERS += include/bspopts.h
> -include_HEADERS += ../../../../../../bsps/arm/gdbarmsim/include/tm27.h
> -
> -include_bspdir = $(includedir)/bsp
> -include_bsp_HEADERS =
> -include_bsp_HEADERS += ../../../../../../bsps/arm/gdbarmsim/include/bsp/irq.h
> -include_bsp_HEADERS += ../../../../../../bsps/arm/gdbarmsim/include/bsp/swi.h
> diff --git a/bsps/arm/gdbarmsim/include/bsp.h b/bsps/arm/gdbarmsim/include/bsp.h
> deleted file mode 100644
> index d70be07..0000000
> --- a/bsps/arm/gdbarmsim/include/bsp.h
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup RTEMSBSPsARMGDBSim
> - *
> - * @brief Global BSP definitions.
> - */
> -
> -/*
> - * COPYRIGHT (c) 1989-2009.
> - * On-Line Applications Research Corporation (OAR).
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#ifndef LIBBSP_ARM_GDBARMSIM_BSP_H
> -#define LIBBSP_ARM_GDBARMSIM_BSP_H
> -
> -/**
> - * @defgroup RTEMSBSPsARMGDBSim GDB Simulator
> - *
> - * @ingroup RTEMSBSPsARM
> - *
> - * @brief GDB Simulator Board Support Package.
> - *
> - * @{
> - */
> -
> -#include <bspopts.h>
> -#include <bsp/default-initial-extension.h>
> -
> -#include <rtems.h>
> -
> -#include <sys/stat.h>
> -
> -#ifdef __cplusplus
> -extern "C" {
> -#endif
> -
> -/**
> - * @brief Support for simulated clock tick
> - */
> -void *clock_driver_sim_idle_body(uintptr_t);
> -#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
> -
> -/*
> - * Access to the GDB simulator.
> - *
> - * NOTE: Full list possible is included. Not all are available in BSP.
> - */
> -int gdbarmsim_system(const char *);
> -int gdbarmsim_rename(const char *, const char *);
> -int gdbarmsim__isatty(int);
> -/* clock_t gdbarmsim_times(struct tms *); */
> -int gdbarmsim_gettimeofday(struct timeval *, void *);
> -int gdbarmsim_unlink(const char *);
> -int gdbarmsim_link(void);
> -int gdbarmsim_stat(const char *, struct stat *);
> -int gdbarmsim_fstat(int, struct stat *);
> -int gdbarmsim_swistat(int fd, struct stat * st);
> -int gdbarmsim_close(int);
> -clock_t gdbarmsim_clock(void);
> -int gdbarmsim_swiclose(int);
> -int gdbarmsim_open(const char *, int, ...);
> -int gdbarmsim_swiopen(const char *, int);
> -int gdbarmsim_writec(const char c);
> -int gdbarmsim_write(int, char *, int);
> -int gdbarmsim_swiwrite(int, char *, int);
> -int gdbarmsim_lseek(int, int, int);
> -int gdbarmsim_swilseek(int, int, int);
> -int gdbarmsim_read(int, char *, int);
> -int gdbarmsim_swiread(int, char *, int);
> -void initialise_monitor_handles(void);
> -
> -
> -#ifdef __cplusplus
> -}
> -#endif
> -
> -/** @} */
> -
> -#endif /* _BSP_H */
> -
> diff --git a/bsps/arm/gdbarmsim/include/bsp/irq.h b/bsps/arm/gdbarmsim/include/bsp/irq.h
> deleted file mode 100644
> index 3c86d22..0000000
> --- a/bsps/arm/gdbarmsim/include/bsp/irq.h
> +++ /dev/null
> @@ -1,95 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup bsp_interrupt
> - *
> - * @brief Dummy interrupt definitions.
> - */
> -
> -/*
> - * Copyright (c) 2008
> - * Embedded Brains GmbH
> - * Obere Lagerstr. 30
> - * D-82178 Puchheim
> - * Germany
> - * rtems at embedded-brains.de
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#ifndef LIBBSP_ARM_DUMMY_IRQ_H
> -#define LIBBSP_ARM_DUMMY_IRQ_H
> -
> -#ifndef ASM
> -
> -#include <rtems.h>
> -#include <rtems/irq.h>
> -#include <rtems/irq-extension.h>
> -
> -/**
> - * @addtogroup bsp_interrupt
> - *
> - * @{
> - */
> -
> -#define DUMMY_IRQ_WDT 0
> -#define DUMMY_IRQ_SOFTWARE 1
> -#define DUMMY_IRQ_ARM_CORE_0 2
> -#define DUMMY_IRQ_ARM_CORE_1 3
> -#define DUMMY_IRQ_TIMER_0 4
> -#define DUMMY_IRQ_TIMER_1 5
> -#define DUMMY_IRQ_UART_0 6
> -#define DUMMY_IRQ_UART_1 7
> -#define DUMMY_IRQ_PWM 8
> -#define DUMMY_IRQ_I2C_0 9
> -#define DUMMY_IRQ_SPI_SSP_0 10
> -#define DUMMY_IRQ_SSP_1 11
> -#define DUMMY_IRQ_PLL 12
> -#define DUMMY_IRQ_RTC 13
> -#define DUMMY_IRQ_EINT_0 14
> -#define DUMMY_IRQ_EINT_1 15
> -#define DUMMY_IRQ_EINT_2 16
> -#define DUMMY_IRQ_EINT_3 17
> -#define DUMMY_IRQ_ADC_0 18
> -#define DUMMY_IRQ_I2C_1 19
> -#define DUMMY_IRQ_BOD 20
> -#define DUMMY_IRQ_ETHERNET 21
> -#define DUMMY_IRQ_USB 22
> -#define DUMMY_IRQ_CAN 23
> -#define DUMMY_IRQ_SD_MMC 24
> -#define DUMMY_IRQ_DMA 25
> -#define DUMMY_IRQ_TIMER_2 26
> -#define DUMMY_IRQ_TIMER_3 27
> -#define DUMMY_IRQ_UART_2 28
> -#define DUMMY_IRQ_UART_3 29
> -#define DUMMY_IRQ_I2C_2 30
> -#define DUMMY_IRQ_I2S 31
> -
> -#define DUMMY_IRQ_PRIORITY_VALUE_MIN 0U
> -#define DUMMY_IRQ_PRIORITY_VALUE_MAX 15U
> -
> -/**
> - * @brief Minimum vector number.
> - */
> -#define BSP_INTERRUPT_VECTOR_MIN DUMMY_IRQ_WDT
> -
> -/**
> - * @brief Maximum vector number.
> - */
> -#define BSP_INTERRUPT_VECTOR_MAX DUMMY_IRQ_I2S
> -
> -void bsp_interrupt_dispatch(void);
> -
> -#if 0
> -void lpc24xx_irq_set_priority( rtems_vector_number vector, unsigned priority);
> -
> -unsigned lpc24xx_irq_priority( rtems_vector_number vector);
> -#endif
> -
> -/** @} */
> -
> -#endif /* ASM */
> -
> -#endif /* LIBBSP_ARM_DUMMY_IRQ_H */
> diff --git a/bsps/arm/gdbarmsim/include/bsp/swi.h b/bsps/arm/gdbarmsim/include/bsp/swi.h
> deleted file mode 100644
> index 7604ad9..0000000
> --- a/bsps/arm/gdbarmsim/include/bsp/swi.h
> +++ /dev/null
> @@ -1,110 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup RTEMSBSPsARMGDBSim
> - *
> - * @brief Software interrupt definitions.
> - */
> -
> -/**
> - * @defgroup gdbarmsim_swi SWI Definitions
> - *
> - * @ingroup RTEMSBSPsARMGDBSim
> - *
> - * @brief Software interrupt definitions.
> - */
> -
> -/*
> - * Copied from libgloss 1 Oct 2009.
> - * Minor modifications to work with RTEMS.
> - */
> -
> -/* SWI numbers for RDP (Demon) monitor. */
> -#define SWI_WriteC 0x0
> -#define SWI_Write0 0x2
> -#define SWI_ReadC 0x4
> -#define SWI_CLI 0x5
> -#define SWI_GetEnv 0x10
> -#define SWI_Exit 0x11
> -#define SWI_EnterOS 0x16
> -
> -#define SWI_GetErrno 0x60
> -#define SWI_Clock 0x61
> -#define SWI_Time 0x63
> -#define SWI_Remove 0x64
> -#define SWI_Rename 0x65
> -#define SWI_Open 0x66
> -
> -#define SWI_Close 0x68
> -#define SWI_Write 0x69
> -#define SWI_Read 0x6a
> -#define SWI_Seek 0x6b
> -#define SWI_Flen 0x6c
> -
> -#define SWI_IsTTY 0x6e
> -#define SWI_TmpNam 0x6f
> -#define SWI_InstallHandler 0x70
> -#define SWI_GenerateError 0x71
> -
> -
> -/* Now the SWI numbers and reason codes for RDI (Angel) monitors. */
> -#define AngelSWI_ARM 0x123456
> -#ifdef __thumb__
> -#define AngelSWI 0xAB
> -#else
> -#define AngelSWI AngelSWI_ARM
> -#endif
> -/* For Thumb-2 code use the BKPT instruction instead of SWI. */
> -#ifdef __thumb2__
> -#define AngelSWIInsn "bkpt"
> -#define AngelSWIAsm bkpt
> -#else
> -#define AngelSWIInsn "swi"
> -#define AngelSWIAsm swi
> -#endif
> -
> -/* The reason codes: */
> -#define AngelSWI_Reason_Open 0x01
> -#define AngelSWI_Reason_Close 0x02
> -#define AngelSWI_Reason_WriteC 0x03
> -#define AngelSWI_Reason_Write0 0x04
> -#define AngelSWI_Reason_Write 0x05
> -#define AngelSWI_Reason_Read 0x06
> -#define AngelSWI_Reason_ReadC 0x07
> -#define AngelSWI_Reason_IsTTY 0x09
> -#define AngelSWI_Reason_Seek 0x0A
> -#define AngelSWI_Reason_FLen 0x0C
> -#define AngelSWI_Reason_TmpNam 0x0D
> -#define AngelSWI_Reason_Remove 0x0E
> -#define AngelSWI_Reason_Rename 0x0F
> -#define AngelSWI_Reason_Clock 0x10
> -#define AngelSWI_Reason_Time 0x11
> -#define AngelSWI_Reason_System 0x12
> -#define AngelSWI_Reason_Errno 0x13
> -#define AngelSWI_Reason_GetCmdLine 0x15
> -#define AngelSWI_Reason_HeapInfo 0x16
> -#define AngelSWI_Reason_EnterSVC 0x17
> -#define AngelSWI_Reason_ReportException 0x18
> -#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
> -#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
> -
> -#if defined(ARM_RDI_MONITOR) && !defined(__ASSEMBLER__)
> -
> -static inline int
> -do_AngelSWI (int reason, void * arg)
> -{
> - int value;
> - __asm__ volatile ("mov r0, %1; mov r1, %2; " AngelSWIInsn " %a3; mov %0, r0"
> - : "=r" (value) /* Outputs */
> - : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */
> - : "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc"
> - /* Clobbers r0 and r1, and lr if in supervisor mode */);
> - /* Accordingly to page 13-77 of ARM DUI 0040D other registers
> - can also be clobbered. Some memory positions may also be
> - changed by a system call, so they should not be kept in
> - registers. Note: we are assuming the manual is right and
> - Angel is respecting the APCS. */
> - return value;
> -}
> -
> -#endif
> diff --git a/bsps/arm/gdbarmsim/include/tm27.h b/bsps/arm/gdbarmsim/include/tm27.h
> deleted file mode 100644
> index 0dfa7bf..0000000
> --- a/bsps/arm/gdbarmsim/include/tm27.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <rtems/tm27-default.h>
> diff --git a/bsps/arm/gdbarmsim/irq/irq-dispatch.c b/bsps/arm/gdbarmsim/irq/irq-dispatch.c
> deleted file mode 100644
> index f045fb8..0000000
> --- a/bsps/arm/gdbarmsim/irq/irq-dispatch.c
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup bsp_interrupt
> - *
> - * @brief GDB ARM Simulator interrupt support.
> - */
> -
> -/*
> - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved.
> - *
> - * embedded brains GmbH
> - * Obere Lagerstr. 30
> - * 82178 Puchheim
> - * Germany
> - * <rtems at embedded-brains.de>
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <rtems/score/armv4.h>
> -
> -#include <bsp.h>
> -#include <bsp/irq.h>
> -#include <bsp/irq-generic.h>
> -
> -#ifdef ARM_MULTILIB_ARCH_V4
> -
> -void bsp_interrupt_dispatch(void)
> -{
> - /* Read current vector number */
> - /* rtems_vector_number vector = VICVectAddr; */
> - rtems_vector_number vector = 0;
> -
> - /* Enable interrupts in program status register */
> - uint32_t psr = _ARMV4_Status_irq_enable();
> -
> - /* Dispatch interrupt handlers */
> - bsp_interrupt_handler_dispatch(vector);
> -
> - /* Restore program status register */
> - _ARMV4_Status_restore(psr);
> -
> - /* Acknowledge interrupt */
> - //VICVectAddr = 0;
> -}
> -
> -#endif /* ARM_MULTILIB_ARCH_V4 */
> diff --git a/bsps/arm/gdbarmsim/irq/irq.c b/bsps/arm/gdbarmsim/irq/irq.c
> deleted file mode 100644
> index 886f928..0000000
> --- a/bsps/arm/gdbarmsim/irq/irq.c
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup bsp_interrupt
> - *
> - * @brief GDB ARM Simulator interrupt support.
> - */
> -
> -/*
> - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved.
> - *
> - * embedded brains GmbH
> - * Obere Lagerstr. 30
> - * 82178 Puchheim
> - * Germany
> - * <rtems at embedded-brains.de>
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <rtems/score/armv4.h>
> -#include <rtems/score/armv7m.h>
> -
> -#include <bsp.h>
> -#include <bsp/irq.h>
> -#include <bsp/irq-generic.h>
> -#include <bsp/linker-symbols.h>
> -
> -/*
> - * Prototypes
> - */
> -void lpc24xx_irq_set_priority(rtems_vector_number, unsigned);
> -unsigned lpc24xx_irq_get_priority(rtems_vector_number);
> -
> -static inline bool lpc24xx_irq_is_valid(rtems_vector_number vector)
> -{
> - return vector <= BSP_INTERRUPT_VECTOR_MAX;
> -}
> -
> -void lpc24xx_irq_set_priority(rtems_vector_number vector, unsigned priority)
> -{
> -}
> -
> -unsigned lpc24xx_irq_get_priority(rtems_vector_number vector)
> -{
> - return 0; /* bogus value to avoid warning */
> -}
> -
> -#ifdef ARM_MULTILIB_ARCH_V4
> -
> -void bsp_interrupt_vector_enable(rtems_vector_number vector)
> -{
> - bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
> -}
> -
> -void bsp_interrupt_vector_disable(rtems_vector_number vector)
> -{
> - bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
> -}
> -
> -rtems_status_code bsp_interrupt_facility_initialize(void)
> -{
> - /* Install the IRQ exception handler */
> - _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
> -
> - return RTEMS_SUCCESSFUL;
> -}
> -
> -#endif /* ARM_MULTILIB_ARCH_V4 */
> diff --git a/bsps/arm/gdbarmsim/start/bsp_specs b/bsps/arm/gdbarmsim/start/bsp_specs
> deleted file mode 100644
> index 47dd31d..0000000
> --- a/bsps/arm/gdbarmsim/start/bsp_specs
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -%rename endfile old_endfile
> -%rename startfile old_startfile
> -
> -*startfile:
> -%{!qrtems: %(old_startfile)} \
> -%{!nostdlib: %{qrtems: crti.o%s crtbegin.o%s}}
> -
> -*endfile:
> -%{!qrtems: %(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s}
> diff --git a/bsps/arm/gdbarmsim/start/bspreset.c b/bsps/arm/gdbarmsim/start/bspreset.c
> deleted file mode 100644
> index b32c80e..0000000
> --- a/bsps/arm/gdbarmsim/start/bspreset.c
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -/*
> - * COPYRIGHT (c) 1989-2009.
> - * On-Line Applications Research Corporation (OAR).
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <rtems.h>
> -#include <bsp/bootcard.h>
> -#include <bsp/swi.h>
> -
> -void bsp_reset( void )
> -{
> - __asm__ ("swi %a0" :: "i" (SWI_Exit));
> -}
> diff --git a/bsps/arm/gdbarmsim/start/bspstart.c b/bsps/arm/gdbarmsim/start/bspstart.c
> deleted file mode 100644
> index de31264..0000000
> --- a/bsps/arm/gdbarmsim/start/bspstart.c
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/*
> - * COPYRIGHT (c) 1989-2009.
> - * On-Line Applications Research Corporation (OAR).
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <bsp.h>
> -#include <bsp/bootcard.h>
> -
> -void initialise_monitor_handles(void);
> -
> -/*
> - * This routine would usually do the bulk of the system initialization.
> - * But if a BSP doesn't need to do anything, it can use this version.
> - */
> -void bsp_start( void )
> -{
> - initialise_monitor_handles(void);
> -}
> diff --git a/bsps/arm/gdbarmsim/start/bspstarthooks.c b/bsps/arm/gdbarmsim/start/bspstarthooks.c
> deleted file mode 100644
> index 996d358..0000000
> --- a/bsps/arm/gdbarmsim/start/bspstarthooks.c
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -/*
> - * Copyright (c) 2014 Chris Johns <chrisj at rtems.org> All rights reserved.
> - *
> - * The license and distribution terms for this file may be
> - * found in the file LICENSE in this distribution or at
> - * http://www.rtems.org/license/LICENSE.
> - */
> -
> -#include <bsp.h>
> -#include <bsp/start.h>
> -#
> -BSP_START_TEXT_SECTION void bsp_start_hook_0(void)
> -{
> -}
> -
> -BSP_START_TEXT_SECTION void bsp_start_hook_1(void)
> -{
> - bsp_start_copy_sections();
> - bsp_start_clear_bss();
> -}
> diff --git a/bsps/arm/gdbarmsim/start/linkcmds b/bsps/arm/gdbarmsim/start/linkcmds
> deleted file mode 100644
> index 536dbf5..0000000
> --- a/bsps/arm/gdbarmsim/start/linkcmds
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -MEMORY {
> - RAM : ORIGIN = 0x00000000, LENGTH = 4M
> -}
> -
> -REGION_ALIAS ("REGION_START", RAM);
> -REGION_ALIAS ("REGION_VECTOR", RAM);
> -REGION_ALIAS ("REGION_TEXT", RAM);
> -REGION_ALIAS ("REGION_TEXT_LOAD", RAM);
> -REGION_ALIAS ("REGION_RODATA", RAM);
> -REGION_ALIAS ("REGION_RODATA_LOAD", RAM);
> -REGION_ALIAS ("REGION_DATA", RAM);
> -REGION_ALIAS ("REGION_DATA_LOAD", RAM);
> -REGION_ALIAS ("REGION_FAST_TEXT", RAM);
> -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM);
> -REGION_ALIAS ("REGION_FAST_DATA", RAM);
> -REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM);
> -REGION_ALIAS ("REGION_BSS", RAM);
> -REGION_ALIAS ("REGION_WORK", RAM);
> -REGION_ALIAS ("REGION_STACK", RAM);
> -REGION_ALIAS ("REGION_NOCACHE", RAM);
> -REGION_ALIAS ("REGION_NOCACHE_LOAD", RAM);
> -
> -INCLUDE linkcmds.armv4
> diff --git a/bsps/arm/gdbarmsim/start/syscalls.c b/bsps/arm/gdbarmsim/start/syscalls.c
> deleted file mode 100644
> index 2e761dd..0000000
> --- a/bsps/arm/gdbarmsim/start/syscalls.c
> +++ /dev/null
> @@ -1,763 +0,0 @@
> -/*
> - * Copied from libgloss 1 Oct 2009.
> - * Minor modifications to work with RTEMS.
> - */
> -
> -/* Support files for GNU libc. Files in the system namespace go here.
> - Files in the C namespace (ie those that do not start with an
> - underscore) go in .c. */
> -
> -/*
> - * Rename all the functions present here to stop then clashing with RTEMS
> - * names.
> - */
> -
> -#include <_ansi.h>
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#include <sys/fcntl.h>
> -#include <stdio.h>
> -#include <string.h>
> -#include <time.h>
> -#include <sys/time.h>
> -#include <sys/times.h>
> -#include <errno.h>
> -#include <reent.h>
> -#include <unistd.h>
> -#include <sys/wait.h>
> -#include <bsp/swi.h>
> -
> -#include <bsp.h>
> -
> -/* Forward prototypes. */
> -static int checkerror(int);
> -static int error(int);
> -static int get_errno(void);
> -
> -/* Struct used to keep track of the file position, just so we
> - can implement fseek(fh,x,SEEK_CUR). */
> -struct fdent
> -{
> - int handle;
> - int pos;
> -};
> -
> -#define MAX_OPEN_FILES 20
> -
> -/* User file descriptors (fd) are integer indexes into
> - the openfiles[] array. Error checking is done by using
> - findslot().
> -
> - This openfiles array is manipulated directly by only
> - these 5 functions:
> -
> - findslot() - Translate entry.
> - newslot() - Find empty entry.
> - initilise_monitor_handles() - Initialize entries.
> - _swiopen() - Initialize entry.
> - _close() - Handle stdout == stderr case.
> -
> - Every other function must use findslot(). */
> -
> -static struct fdent openfiles [MAX_OPEN_FILES];
> -
> -static struct fdent* findslot (int);
> -static int newslot (void);
> -
> -/* Register name faking - works in collusion with the linker. */
> -register char * stack_ptr __asm__ ("sp");
> -
> -
> -/* following is copied from libc/stdio/local.h to check std streams */
> -extern void __sinit(struct _reent *);
> -#define CHECK_INIT(ptr) \
> - do \
> - { \
> - if ((ptr) && !(ptr)->__sdidinit) \
> - __sinit (ptr); \
> - } \
> - while (0)
> -
> -static int monitor_stdin;
> -static int monitor_stdout;
> -static int monitor_stderr;
> -
> -/* Return a pointer to the structure associated with
> - the user file descriptor fd. */
> -static struct fdent*
> -findslot (int fd)
> -{
> - CHECK_INIT(_REENT);
> -
> - /* User file descriptor is out of range. */
> - if ((unsigned int)fd >= MAX_OPEN_FILES)
> - return NULL;
> -
> - /* User file descriptor is open? */
> - if (openfiles[fd].handle == -1)
> - return NULL;
> -
> - /* Valid. */
> - return &openfiles[fd];
> -}
> -
> -/* Return the next lowest numbered free file
> - structure, or -1 if we can't find one. */
> -static int
> -newslot (void)
> -{
> - int i;
> -
> - for (i = 0; i < MAX_OPEN_FILES; i++)
> - if (openfiles[i].handle == -1)
> - break;
> -
> - if (i == MAX_OPEN_FILES)
> - return -1;
> -
> - return i;
> -}
> -
> -void
> -initialise_monitor_handles (void)
> -{
> - int i;
> -
> - /* Open the standard file descriptors by opening the special
> - * teletype device, ":tt", read-only to obtain a descritpor for
> - * standard input and write-only to obtain a descriptor for standard
> - * output. Finally, open ":tt" in append mode to obtain a descriptor
> - * for standard error. Since this is a write mode, most kernels will
> - * probably return the same value as for standard output, but the
> - * kernel can differentiate the two using the mode flag and return a
> - * different descriptor for standard error.
> - */
> -
> -#ifdef ARM_RDI_MONITOR
> - int volatile block[3];
> -
> - block[0] = (int) ":tt";
> - block[2] = 3; /* length of filename */
> - block[1] = 0; /* mode "r" */
> - monitor_stdin = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
> -
> - block[0] = (int) ":tt";
> - block[2] = 3; /* length of filename */
> - block[1] = 4; /* mode "w" */
> - monitor_stdout = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
> -
> - block[0] = (int) ":tt";
> - block[2] = 3; /* length of filename */
> - block[1] = 8; /* mode "a" */
> - monitor_stderr = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
> -#else
> - int fh;
> - const char * name;
> -
> - name = ":tt";
> - __asm__ ("mov r0,%2; mov r1, #0; swi %a1; mov %0, r0"
> - : "=r"(fh)
> - : "i" (SWI_Open),"r"(name)
> - : "r0","r1");
> - monitor_stdin = fh;
> -
> - name = ":tt";
> - __asm__ ("mov r0,%2; mov r1, #4; swi %a1; mov %0, r0"
> - : "=r"(fh)
> - : "i" (SWI_Open),"r"(name)
> - : "r0","r1");
> - monitor_stdout = fh;
> -
> - name = ":tt";
> - __asm__ ("mov r0,%2; mov r1, #8; swi %a1; mov %0, r0"
> - : "=r"(fh)
> - : "i" (SWI_Open),"r"(name)
> - : "r0","r1");
> - monitor_stderr = fh;
> -#endif
> -
> - /* If we failed to open stderr, redirect to stdout. */
> - if (monitor_stderr == -1)
> - monitor_stderr = monitor_stdout;
> -
> - for (i = 0; i < MAX_OPEN_FILES; i ++)
> - openfiles[i].handle = -1;
> -
> - openfiles[0].handle = monitor_stdin;
> - openfiles[0].pos = 0;
> - openfiles[1].handle = monitor_stdout;
> - openfiles[1].pos = 0;
> - openfiles[2].handle = monitor_stderr;
> - openfiles[2].pos = 0;
> -}
> -
> -static int
> -get_errno (void)
> -{
> -#ifdef ARM_RDI_MONITOR
> - return do_AngelSWI (AngelSWI_Reason_Errno, NULL);
> -#else
> - register int r0 __asm__ ("r0");
> - __asm__ ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno));
> - return r0;
> -#endif
> -}
> -
> -/* Set errno and return result. */
> -static int
> -error (int result)
> -{
> - errno = get_errno ();
> - return result;
> -}
> -
> -/* Check the return and set errno appropriately. */
> -static int
> -checkerror (int result)
> -{
> - if (result == -1)
> - return error (-1);
> - return result;
> -}
> -
> -/* fh, is a valid internal file handle.
> - ptr, is a null terminated string.
> - len, is the length in bytes to read.
> - Returns the number of bytes *not* written. */
> -int
> -gdbarmsim_swiread (int fh,
> - char * ptr,
> - int len)
> -{
> -#ifdef ARM_RDI_MONITOR
> - int block[3];
> -
> - block[0] = fh;
> - block[1] = (int) ptr;
> - block[2] = len;
> -
> - return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block));
> -#else
> - register int r0 __asm__ ("r0");
> - register int r1 __asm__ ("r1");
> - register int r2 __asm__ ("r2");
> - r0 = fh;
> - r1 = (int)ptr;
> - r2 = len;
> - __asm__ ("swi %a4"
> - : "=r" (r0)
> - : "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Read));
> - return checkerror (r0);
> -#endif
> -}
> -
> -/* fd, is a valid user file handle.
> - Translates the return of _swiread into
> - bytes read. */
> -int
> -gdbarmsim_read (int fd,
> - char * ptr,
> - int len)
> -{
> - int res;
> - struct fdent *pfd;
> -
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> - res = gdbarmsim_swiread (pfd->handle, ptr, len);
> -
> - if (res == -1)
> - return res;
> -
> - pfd->pos += len - res;
> -
> - /* res == len is not an error,
> - at least if we want feof() to work. */
> - return len - res;
> -}
> -
> -/* fd, is a user file descriptor. */
> -int
> -gdbarmsim_swilseek (int fd,
> - int ptr,
> - int dir)
> -{
> - int res;
> - struct fdent *pfd;
> -
> - /* Valid file descriptor? */
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> - /* Valid whence? */
> - if ((dir != SEEK_CUR)
> - && (dir != SEEK_SET)
> - && (dir != SEEK_END))
> - {
> - errno = EINVAL;
> - return -1;
> - }
> -
> - /* Convert SEEK_CUR to SEEK_SET */
> - if (dir == SEEK_CUR)
> - {
> - ptr = pfd->pos + ptr;
> - /* The resulting file offset would be negative. */
> - if (ptr < 0)
> - {
> - errno = EINVAL;
> - if ((pfd->pos > 0) && (ptr > 0))
> - errno = EOVERFLOW;
> - return -1;
> - }
> - dir = SEEK_SET;
> - }
> -
> -#ifdef ARM_RDI_MONITOR
> - int block[2];
> - if (dir == SEEK_END)
> - {
> - block[0] = pfd->handle;
> - res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, block));
> - if (res == -1)
> - return -1;
> - ptr += res;
> - }
> -
> - /* This code only does absolute seeks. */
> - block[0] = pfd->handle;
> - block[1] = ptr;
> - res = checkerror (do_AngelSWI (AngelSWI_Reason_Seek, block));
> -#else
> - if (dir == SEEK_END)
> - {
> - __asm__ ("mov r0, %2; swi %a1; mov %0, r0"
> - : "=r" (res)
> - : "i" (SWI_Flen), "r" (pfd->handle)
> - : "r0");
> - checkerror (res);
> - if (res == -1)
> - return -1;
> - ptr += res;
> - }
> -
> - /* This code only does absolute seeks. */
> - __asm__ ("mov r0, %2; mov r1, %3; swi %a1; mov %0, r0"
> - : "=r" (res)
> - : "i" (SWI_Seek), "r" (pfd->handle), "r" (ptr)
> - : "r0", "r1");
> - checkerror (res);
> -#endif
> - /* At this point ptr is the current file position. */
> - if (res >= 0)
> - {
> - pfd->pos = ptr;
> - return ptr;
> - }
> - else
> - return -1;
> -}
> -
> -int
> -gdbarmsim_lseek (int fd,
> - int ptr,
> - int dir)
> -{
> - return gdbarmsim_swilseek (fd, ptr, dir);
> -}
> -
> -/* write a single character out the hosts stdout */
> -int
> -gdbarmsim_writec (const char c)
> -{
> -#ifdef ARM_RDI_MONITOR
> - int block[1];
> -
> - block[0] = ((int) c) & 0xff;;
> -
> - return checkerror (do_AngelSWI (AngelSWI_Reason_WriteC, block));
> -#else
> - register int r0 __asm__ ("r0");
> - r0 = ((int) c) & 0xff;
> - __asm__ ("swi %a2"
> - : "=r" (r0)
> - : "0"(r0), "i"(SWI_WriteC));
> - return checkerror (r0);
> -#endif
> -}
> -
> -/* fh, is a valid internal file handle.
> - Returns the number of bytes *not* written. */
> -int
> -gdbarmsim_swiwrite (int fh,
> - char * ptr,
> - int len)
> -{
> -#ifdef ARM_RDI_MONITOR
> - int block[3];
> -
> - block[0] = fh;
> - block[1] = (int) ptr;
> - block[2] = len;
> -
> - return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block));
> -#else
> - register int r0 __asm__ ("r0");
> - register int r1 __asm__ ("r1");
> - register int r2 __asm__ ("r2");
> - r0 = fh;
> - r1 = (int)ptr;
> - r2 = len;
> - __asm__ ("swi %a4"
> - : "=r" (r0)
> - : "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Write));
> - return checkerror (r0);
> -#endif
> -}
> -
> -/* fd, is a user file descriptor. */
> -int
> -gdbarmsim_write (int fd,
> - char * ptr,
> - int len)
> -{
> - int res;
> - struct fdent *pfd;
> -
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> - res = gdbarmsim_swiwrite (pfd->handle, ptr,len);
> -
> - /* Clearly an error. */
> - if (res < 0)
> - return -1;
> -
> - pfd->pos += len - res;
> -
> - /* We wrote 0 bytes?
> - Retrieve errno just in case. */
> - if ((len - res) == 0)
> - return error (0);
> -
> - return (len - res);
> -}
> -
> -int
> -gdbarmsim_swiopen (const char * path, int flags)
> -{
> - int aflags = 0, fh;
> -#ifdef ARM_RDI_MONITOR
> - int block[3];
> -#endif
> -
> - int fd = newslot ();
> -
> - if (fd == -1)
> - {
> - errno = EMFILE;
> - return -1;
> - }
> -
> - /* It is an error to open a file that already exists. */
> - if ((flags & O_CREAT)
> - && (flags & O_EXCL))
> - {
> - struct stat st;
> - int res;
> - res = gdbarmsim_stat (path, &st);
> - if (res != -1)
> - {
> - errno = EEXIST;
> - return -1;
> - }
> - }
> -
> - /* The flags are Unix-style, so we need to convert them. */
> -#ifdef O_BINARY
> - if (flags & O_BINARY)
> - aflags |= 1;
> -#endif
> -
> - /* In O_RDONLY we expect aflags == 0. */
> -
> - if (flags & O_RDWR)
> - aflags |= 2;
> -
> - if ((flags & O_CREAT)
> - || (flags & O_TRUNC)
> - || (flags & O_WRONLY))
> - aflags |= 4;
> -
> - if (flags & O_APPEND)
> - {
> - /* Can't ask for w AND a; means just 'a'. */
> - aflags &= ~4;
> - aflags |= 8;
> - }
> -
> -#ifdef ARM_RDI_MONITOR
> - block[0] = (int) path;
> - block[2] = strlen (path);
> - block[1] = aflags;
> -
> - fh = do_AngelSWI (AngelSWI_Reason_Open, block);
> -
> -#else
> - __asm__ ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0"
> - : "=r"(fh)
> - : "i" (SWI_Open),"r"(path),"r"(aflags)
> - : "r0","r1");
> -#endif
> -
> - /* Return a user file descriptor or an error. */
> - if (fh >= 0)
> - {
> - openfiles[fd].handle = fh;
> - openfiles[fd].pos = 0;
> - return fd;
> - }
> - else
> - return error (fh);
> -}
> -
> -int
> -gdbarmsim_open (const char * path, int flags, ...)
> -{
> - return gdbarmsim_swiopen (path, flags);
> -}
> -
> -/* fh, is a valid internal file handle. */
> -int
> -gdbarmsim_swiclose (int fh)
> -{
> -#ifdef ARM_RDI_MONITOR
> - return checkerror (do_AngelSWI (AngelSWI_Reason_Close, &fh));
> -#else
> - register int r0 __asm__ ("r0");
> - r0 = fh;
> - __asm__ ("swi %a2"
> - : "=r"(r0)
> - : "0"(r0), "i" (SWI_Close));
> - return checkerror (r0);
> -#endif
> -}
> -
> -/* fd, is a user file descriptor. */
> -int
> -gdbarmsim_close (int fd)
> -{
> - int res;
> - struct fdent *pfd;
> -
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> - /* Handle stderr == stdout. */
> - if ((fd == 1 || fd == 2)
> - && (openfiles[1].handle == openfiles[2].handle))
> - {
> - pfd->handle = -1;
> - return 0;
> - }
> -
> - /* Attempt to close the handle. */
> - res = gdbarmsim_swiclose (pfd->handle);
> -
> - /* Reclaim handle? */
> - if (res == 0)
> - pfd->handle = -1;
> -
> - return res;
> -}
> -
> -int
> -gdbarmsim_swistat (int fd, struct stat * st)
> -{
> - struct fdent *pfd;
> - int res;
> -
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> - /* Always assume a character device,
> - with 1024 byte blocks. */
> - st->st_mode |= S_IFCHR;
> - st->st_blksize = 1024;
> -#ifdef ARM_RDI_MONITOR
> - res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, &pfd->handle));
> -#else
> - __asm__ ("mov r0, %2; swi %a1; mov %0, r0"
> - : "=r" (res)
> - : "i" (SWI_Flen), "r" (pfd->handle)
> - : "r0");
> - checkerror (res);
> -#endif
> - if (res == -1)
> - return -1;
> - /* Return the file size. */
> - st->st_size = res;
> - return 0;
> -}
> -
> -int
> -gdbarmsim_fstat (int fd, struct stat * st)
> -{
> - memset (st, 0, sizeof (* st));
> - return gdbarmsim_swistat (fd, st);
> -}
> -
> -int
> -gdbarmsim_stat (const char *fname, struct stat *st)
> -{
> - int fd, res;
> - memset (st, 0, sizeof (* st));
> - /* The best we can do is try to open the file readonly.
> - If it exists, then we can guess a few things about it. */
> - if ((fd = gdbarmsim_open (fname, O_RDONLY)) == -1)
> - return -1;
> - st->st_mode |= S_IFREG | S_IREAD;
> - res = gdbarmsim_swistat (fd, st);
> - /* Not interested in the error. */
> - gdbarmsim_close (fd);
> - return res;
> -}
> -
> -int
> -gdbarmsim_unlink (const char *path)
> -{
> - int res;
> -#ifdef ARM_RDI_MONITOR
> - int block[2];
> - block[0] = (int)path;
> - block[1] = strlen(path);
> - res = do_AngelSWI (AngelSWI_Reason_Remove, block);
> -#else
> - register int r0 __asm__ ("r0");
> - r0 = (int)path;
> - __asm__ ("swi %a2"
> - : "=r"(r0)
> - : "0"(r0), "i" (SWI_Remove));
> - res = r0;
> -#endif
> - if (res == -1)
> - return error (res);
> - return 0;
> -}
> -
> -/* Return a clock that ticks at 100Hz. */
> -clock_t
> -gdbarmsim_clock (void)
> -{
> - clock_t timeval;
> -
> -#ifdef ARM_RDI_MONITOR
> - timeval = do_AngelSWI (AngelSWI_Reason_Clock,NULL);
> -#else
> - __asm__ ("swi %a1; mov %0, r0" : "=r" (timeval): "i" (SWI_Clock) : "r0");
> -#endif
> - return timeval;
> -}
> -
> -int
> -gdbarmsim__isatty (int fd)
> -{
> - struct fdent *pfd;
> -
> - pfd = findslot (fd);
> - if (pfd == NULL)
> - {
> - errno = EBADF;
> - return -1;
> - }
> -
> -#ifdef ARM_RDI_MONITOR
> - return checkerror (do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle));
> -#else
> - register int r0 __asm__ ("r0");
> - r0 = pfd->handle;
> - __asm__ ("swi %a2"
> - : "=r" (r0)
> - : "0"(r0), "i" (SWI_IsTTY));
> - return checkerror (r0);
> -#endif
> -}
> -
> -int
> -gdbarmsim_system (const char *s)
> -{
> -#ifdef ARM_RDI_MONITOR
> - int block[2];
> - int e;
> -
> - /* Hmmm. The ARM debug interface specification doesn't say whether
> - SYS_SYSTEM does the right thing with a null argument, or assign any
> - meaning to its return value. Try to do something reasonable.... */
> - if (!s)
> - return 1; /* maybe there is a shell available? we can hope. :-P */
> - block[0] = (int)s;
> - block[1] = strlen (s);
> - e = checkerror (do_AngelSWI (AngelSWI_Reason_System, block));
> - if ((e >= 0) && (e < 256))
> - {
> - /* We have to convert e, an exit status to the encoded status of
> - the command. To avoid hard coding the exit status, we simply
> - loop until we find the right position. */
> - int exit_code;
> -
> - for (exit_code = e; e && WEXITSTATUS (e) != exit_code; e <<= 1)
> - continue;
> - }
> - return e;
> -#else
> - register int r0 __asm__ ("r0");
> - r0 = (int)s;
> - __asm__ ("swi %a2"
> - : "=r" (r0)
> - : "0"(r0), "i" (SWI_CLI));
> - return checkerror (r0);
> -#endif
> -}
> -
> -int
> -gdbarmsim_rename (const char * oldpath, const char * newpath)
> -{
> -#ifdef ARM_RDI_MONITOR
> - int block[4];
> - block[0] = (int)oldpath;
> - block[1] = strlen(oldpath);
> - block[2] = (int)newpath;
> - block[3] = strlen(newpath);
> - return checkerror (do_AngelSWI (AngelSWI_Reason_Rename, block)) ? -1 : 0;
> -#else
> - register int r0 __asm__ ("r0");
> - register int r1 __asm__ ("r1");
> - r0 = (int)oldpath;
> - r1 = (int)newpath;
> - __asm__ ("swi %a3"
> - : "=r" (r0)
> - : "0" (r0), "r" (r1), "i" (SWI_Rename));
> - return checkerror (r0);
> -#endif
> -}
> diff --git a/c/src/lib/libbsp/arm/acinclude.m4 b/c/src/lib/libbsp/arm/acinclude.m4
> index 4d50477..6f75afe 100644
> --- a/c/src/lib/libbsp/arm/acinclude.m4
> +++ b/c/src/lib/libbsp/arm/acinclude.m4
> @@ -14,8 +14,6 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR],
> AC_CONFIG_SUBDIRS([csb337]);;
> edb7312 )
> AC_CONFIG_SUBDIRS([edb7312]);;
> - gdbarmsim )
> - AC_CONFIG_SUBDIRS([gdbarmsim]);;
> gumstix )
> AC_CONFIG_SUBDIRS([gumstix]);;
> imx )
> diff --git a/c/src/lib/libbsp/arm/gdbarmsim/Makefile.am b/c/src/lib/libbsp/arm/gdbarmsim/Makefile.am
> deleted file mode 100644
> index 0ae0e82..0000000
> --- a/c/src/lib/libbsp/arm/gdbarmsim/Makefile.am
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -ACLOCAL_AMFLAGS = -I ../../../../aclocal
> -
> -include $(top_srcdir)/../../../../automake/compile.am
> -include $(top_srcdir)/../../bsp.am
> -
> -dist_project_lib_DATA = ../../../../../../bsps/arm/gdbarmsim/start/bsp_specs
> -
> -noinst_PROGRAMS =
> -
> -
> -start.$(OBJEXT): ../../../../../../bsps/arm/shared/start/start.S
> - $(CPPASCOMPILE) -o $@ -c $<
> -project_lib_DATA = start.$(OBJEXT)
> -
> -project_lib_DATA += linkcmds
> -
> -project_lib_LIBRARIES = librtemsbsp.a
> -librtemsbsp_a_SOURCES =
> -
> -# startup
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspgetworkarea-default.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspstart-empty.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspfatal-default.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/start/bspreset.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/getentropy/getentropy-cpucounter.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/sbrk.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/start/syscalls.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/cpucounter/cpucounterfrequency.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/cpucounter/cpucounterread.c
> -# console
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/serial/console-polled.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/console/console-io.c
> -# clock
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/clock/clock-simidle.c
> -# timer
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/btimer/btimer-stub.c
> -# start hooks
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/start/bspstarthooks.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/start/bsp-start-memcpy.S
> -
> -# IRQ
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/irq/irq.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/gdbarmsim/irq/irq-dispatch.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-default-handler.c
> -
> -# Cache
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/cache/nocache.c
> -
> -# Shared
> -if shared
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/cp15/arm-cp15-set-exception-handler.c
> -librtemsbsp_a_SOURCES += ../../../../../../bsps/arm/shared/cp15/arm-cp15-set-ttb-entries.c
> -endif
> -
> -include $(srcdir)/../../../../../../bsps/shared/irq-sources.am
> -include $(srcdir)/../../../../../../bsps/shared/shared-sources.am
> -include $(srcdir)/../../../../../../bsps/arm/gdbarmsim/headers.am
> diff --git a/c/src/lib/libbsp/arm/gdbarmsim/configure.ac b/c/src/lib/libbsp/arm/gdbarmsim/configure.ac
> deleted file mode 100644
> index 1ae47dc..0000000
> --- a/c/src/lib/libbsp/arm/gdbarmsim/configure.ac
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -## Process this file with autoconf to produce a configure script.
> -
> -AC_PREREQ([2.69])
> -AC_INIT([rtems-c-src-lib-libbsp-arm-gdbarmsim],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
> -RTEMS_TOP(../../../../../..)
> -RTEMS_SOURCE_TOP
> -RTEMS_BUILD_TOP
> -RTEMS_BSP_LINKCMDS
> -
> -RTEMS_CANONICAL_TARGET_CPU
> -AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2])
> -RTEMS_BSP_CONFIGURE
> -
> -
> -RTEMS_BSP_CLEANUP_OPTIONS
> -
> -AM_CONDITIONAL(shared, test "$RTEMS_BSP" = "armcortexa9")
> -
> -# Explicitly list all Makefiles here
> -AC_CONFIG_FILES([Makefile])
> -AC_OUTPUT
>
More information about the devel
mailing list