X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fmips%2Fdv-tx3904sio.c;h=f9fb647099ae8d4a50d4f8ae8c43c8f4cb17ea75;hb=41792d688a5a1f158d6e9ecda2b603ae122d69a1;hp=a1e3ddbefd2d67fc2ebe44d0d8346bbe714e409d;hpb=5b64ad42d36e6d487e1f7287d37fbc243a178e72;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/mips/dv-tx3904sio.c b/sim/mips/dv-tx3904sio.c index a1e3ddbefd..f9fb647099 100644 --- a/sim/mips/dv-tx3904sio.c +++ b/sim/mips/dv-tx3904sio.c @@ -1,21 +1,20 @@ /* This file is part of the program GDB, the GNU debugger. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + along with this program. If not, see . */ @@ -167,6 +166,7 @@ struct tx3904sio unsigned_4 sdisr; #define SDISR_WR_MASK 0x00070000U #define SDISR_SET_BYTE(c,o,b) ((c)->sdisr = SDISR_WR_MASK & (((c)->sdisr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8))) +#define SDISR_CLEAR_FLAG_BYTE(c,o,b) ((c)->sdisr = SDISR_WR_MASK & (((c)->sdisr & ~LSMASK32((o)*8+7,(o)*8)) & ((b)<< (o)*8))) #define SDISR_GET_TDIS(c) ((c)->sdisr & 0x00020000) #define SDISR_SET_TDIS(c) ((c)->sdisr |= 0x00020000) #define SDISR_GET_RDIS(c) ((c)->sdisr & 0x00010000) @@ -419,7 +419,7 @@ tx3904sio_io_write_buffer (struct hw *me, last_int = controller->sdisr & controller->sdicr; /* HW_TRACE ((me, "sdisr - sdisr %08x sdicr %08x", controller->sdisr, controller->sdicr)); */ - SDISR_SET_BYTE(controller, reg_offset, write_byte); + SDISR_CLEAR_FLAG_BYTE(controller, reg_offset, write_byte); /* HW_TRACE ((me, "sdisr + sdisr %08x sdicr %08x", controller->sdisr, controller->sdicr)); */ next_int = controller->sdisr & controller->sdicr; @@ -582,7 +582,7 @@ tx3904sio_fifo_push(struct hw* me, struct tx3904sio_fifo* fifo, char it) char* next_buf = zalloc(next_size); memcpy(next_buf, fifo->buffer, fifo->used); - if(fifo->buffer != NULL) zfree(fifo->buffer); + if(fifo->buffer != NULL) free(fifo->buffer); fifo->buffer = next_buf; fifo->size = next_size; } @@ -598,7 +598,7 @@ tx3904sio_fifo_reset(struct hw* me, struct tx3904sio_fifo* fifo) /* HW_TRACE ((me, "reset fifo")); */ fifo->used = 0; fifo->size = 0; - zfree(fifo->buffer); + free(fifo->buffer); fifo->buffer = 0; }