From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7896) id 8D96D3858D20; Sat, 29 Oct 2022 08:15:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8D96D3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1667031321; bh=socwGSgdEQI7CjMYNspO+fvdlfP56tV5hwiidm7b2/w=; h=From:To:Subject:Date:From; b=sNFWqNpTLz8HaOcKgOjEOsykNmAVcRGk9edBesuuVJYSCJ9HDSQaywdQMTfa7b+Lb 7TUdvFqPQSTBWDCej8iWwKoOiFXagVInzu9N2bNQ1qj8QFZ73rRHmanDEXRDXRdHaj iSQuCNsxt0q77k4IVftiL2rCrn9f7T11gcQ2q9gY= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tsukasa OI To: gdb-cvs@sourceware.org Subject: [binutils-gdb] sim/erc32: Use int32_t as event callback argument X-Act-Checkin: binutils-gdb X-Git-Author: Tsukasa OI X-Git-Refname: refs/heads/master X-Git-Oldrev: dc4e697f2fec232cecfd1d162365ce836c785369 X-Git-Newrev: e47530f72f587550b1ff2f2adcfa4f64ec702d82 Message-Id: <20221029081521.8D96D3858D20@sourceware.org> Date: Sat, 29 Oct 2022 08:15:00 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3De47530f72f58= 7550b1ff2f2adcfa4f64ec702d82 commit e47530f72f587550b1ff2f2adcfa4f64ec702d82 Author: Tsukasa OI Date: Sat Sep 24 09:49:42 2022 +0000 sim/erc32: Use int32_t as event callback argument =20 Clang generates a warning if an argument is passed to a function without prototype (zero arguments, even without (void)). Such calls are deprec= ated forms of indefinite arguments passing ("-Wdeprecated-non-prototype"). On the default configuration, it causes a build failure (unless "--disable-werror" is specified). =20 To fix that, this commit makes struct evcell to use int32_t as a callba= ck (cfunc) argument of an event. int32_t is chosen because "event" functi= on accepts "int32_t arg". Diff: --- sim/erc32/README.sis | 4 ++-- sim/erc32/erc32.c | 28 ++++++++++++++-------------- sim/erc32/func.c | 10 +++++----- sim/erc32/sis.h | 4 ++-- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/sim/erc32/README.sis b/sim/erc32/README.sis index b119f038ac2..b85479ef039 100644 --- a/sim/erc32/README.sis +++ b/sim/erc32/README.sis @@ -241,8 +241,8 @@ interrupts. The following functions are available to th= e user-defined memory module: =20 event(cfunc,arg,delta) -void (*cfunc)(); -int arg; +void (*cfunc)(int32_t); +int32_t arg; unsigned int delta; =20 set_int(level,callback,arg) diff --git a/sim/erc32/erc32.c b/sim/erc32/erc32.c index 0206c02e6f0..d7cc1f1cf3b 100644 --- a/sim/erc32/erc32.c +++ b/sim/erc32/erc32.c @@ -274,19 +274,19 @@ static void port_init (void); static uint32_t read_uart (uint32_t addr); static void write_uart (uint32_t addr, uint32_t data); static void flush_uart (void); -static void uarta_tx (void); -static void uartb_tx (void); -static void uart_rx (void *arg); -static void uart_intr (void *arg); +static void uarta_tx (int32_t); +static void uartb_tx (int32_t); +static void uart_rx (int32_t); +static void uart_intr (int32_t); static void uart_irq_start (void); -static void wdog_intr (void *arg); +static void wdog_intr (int32_t); static void wdog_start (void); -static void rtc_intr (void *arg); +static void rtc_intr (int32_t); static void rtc_start (void); static uint32_t rtc_counter_read (void); static void rtc_scaler_set (uint32_t val); static void rtc_reload_set (uint32_t val); -static void gpt_intr (void *arg); +static void gpt_intr (int32_t); static void gpt_start (void); static uint32_t gpt_counter_read (void); static void gpt_scaler_set (uint32_t val); @@ -1245,7 +1245,7 @@ flush_uart(void) =20 ATTRIBUTE_UNUSED static void -uarta_tx(void) +uarta_tx(int32_t arg ATTRIBUTE_UNUSED) { =20 while (f1open && fwrite(&uarta_sreg, 1, 1, f1out) !=3D 1); @@ -1261,7 +1261,7 @@ uarta_tx(void) =20 ATTRIBUTE_UNUSED static void -uartb_tx(void) +uartb_tx(int32_t arg ATTRIBUTE_UNUSED) { while (f2open && fwrite(&uartb_sreg, 1, 1, f2out) !=3D 1); if (uart_stat_reg & UARTB_HRE) { @@ -1276,7 +1276,7 @@ uartb_tx(void) =20 ATTRIBUTE_UNUSED static void -uart_rx(void *arg) +uart_rx(int32_t arg ATTRIBUTE_UNUSED) { int32_t rsize; char rxd; @@ -1318,7 +1318,7 @@ uart_rx(void *arg) } =20 static void -uart_intr(void *arg) +uart_intr(int32_t arg ATTRIBUTE_UNUSED) { read_uart(0xE8); /* Check for UART interrupts every 1000 clk */ flush_uart(); /* Flush UART ports */ @@ -1341,7 +1341,7 @@ uart_irq_start(void) /* Watch-dog */ =20 static void -wdog_intr(void *arg) +wdog_intr(int32_t arg ATTRIBUTE_UNUSED) { if (wdog_status =3D=3D disabled) { wdog_status =3D stopped; @@ -1379,7 +1379,7 @@ wdog_start(void) =20 =20 static void -rtc_intr(void *arg) +rtc_intr(int32_t arg ATTRIBUTE_UNUSED) { if (rtc_counter =3D=3D 0) { =20 @@ -1430,7 +1430,7 @@ rtc_reload_set(uint32_t val) } =20 static void -gpt_intr(void *arg) +gpt_intr(int32_t arg ATTRIBUTE_UNUSED) { if (gpt_counter =3D=3D 0) { mec_irq(12); diff --git a/sim/erc32/func.c b/sim/erc32/func.c index af92c9f7d48..85d3c0cb8ec 100644 --- a/sim/erc32/func.c +++ b/sim/erc32/func.c @@ -298,7 +298,7 @@ disp_reg(struct pstate *sregs, char *reg) #ifdef ERRINJ =20 void -errinj (void) +errinj (int32_t arg ATTRIBUTE_UNUSED) { int err; =20 @@ -825,7 +825,7 @@ dis_mem(uint32_t addr, uint32_t len, struct disassemble= _info *info) /* Add event to event queue */ =20 void -event(void (*cfunc) (), int32_t arg, uint64_t delta) +event(void (*cfunc) (int32_t), int32_t arg, uint64_t delta) { struct evcell *ev1, *evins; =20 @@ -887,8 +887,8 @@ advance_time(struct pstate *sregs) { =20 struct evcell *evrem; - void (*cfunc) (); - uint32_t arg; + void (*cfunc) (int32_t); + int32_t arg; uint64_t endtime; =20 #ifdef STAT @@ -926,7 +926,7 @@ int wait_for_irq(void) { struct evcell *evrem; - void (*cfunc) (); + void (*cfunc) (int32_t); int32_t arg; uint64_t endtime; =20 diff --git a/sim/erc32/sis.h b/sim/erc32/sis.h index 71033137f2c..36346cae641 100644 --- a/sim/erc32/sis.h +++ b/sim/erc32/sis.h @@ -124,7 +124,7 @@ struct pstate { }; =20 struct evcell { - void (*cfunc) (); + void (*cfunc) (int32_t); int32_t arg; uint64_t time; struct evcell *nxt; @@ -183,7 +183,7 @@ extern void init_signals (void); struct disassemble_info; extern void dis_mem (uint32_t addr, uint32_t len, struct disassemble_info *info); -extern void event (void (*cfunc) (), int32_t arg, uint64_t delta); +extern void event (void (*cfunc) (int32_t), int32_t arg, uint64_t delta); extern void set_int (int32_t level, void (*callback) (), int32_t arg); extern void advance_time (struct pstate *sregs); extern uint32_t now (void);