summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/shared/can/occan.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/sparc/shared/can/occan.c')
-rw-r--r--bsps/sparc/shared/can/occan.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/bsps/sparc/shared/can/occan.c b/bsps/sparc/shared/can/occan.c
index b45b11dc72..c0bc315db1 100644
--- a/bsps/sparc/shared/can/occan.c
+++ b/bsps/sparc/shared/can/occan.c
@@ -80,7 +80,7 @@ typedef struct {
int full; /* 1 = base contain cnt CANMsgs, tail==head */
CANMsg *tail, *head;
CANMsg *base;
- char fifoarea[0];
+ CANMsg fifoarea[0];
} occan_fifo;
/* PELICAN */
@@ -448,10 +448,9 @@ int occan_init2(struct drvmgr_dev *dev)
occan_priv *priv;
DBG("OCCAN[%d] on bus %s\n", dev->minor_drv, dev->parent->dev->name);
- priv = dev->priv = malloc(sizeof(occan_priv));
+ priv = dev->priv = grlib_calloc(1, sizeof(*priv));
if ( !priv )
return DRVMGR_NOMEM;
- memset(priv, 0, sizeof(*priv));
priv->dev = dev;
return DRVMGR_OK;
@@ -1881,15 +1880,11 @@ void occan_interrupt(void *arg)
static occan_fifo *occan_fifo_create(int cnt)
{
occan_fifo *fifo;
- fifo = malloc(sizeof(occan_fifo)+cnt*sizeof(CANMsg));
+ fifo = grlib_calloc(1, sizeof(*fifo)+cnt*sizeof(CANMsg));
if ( fifo ){
fifo->cnt = cnt;
- fifo->full = 0;
- fifo->ovcnt = 0;
- fifo->base = (CANMsg *)&fifo->fifoarea[0];
+ fifo->base = &fifo->fifoarea[0];
fifo->tail = fifo->head = fifo->base;
- /* clear CAN Messages */
- memset(fifo->base,0,cnt * sizeof(CANMsg));
}
return fifo;
}