---
 c/src/lib/libbsp/sparc/shared/include/grtc.h |    3 ++
 c/src/lib/libbsp/sparc/shared/tmtc/grtc.c    |   29 +++++++++++--------------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/c/src/lib/libbsp/sparc/shared/include/grtc.h 
b/c/src/lib/libbsp/sparc/shared/include/grtc.h
index ee1c806..932f970 100644
--- a/c/src/lib/libbsp/sparc/shared/include/grtc.h
+++ b/c/src/lib/libbsp/sparc/shared/include/grtc.h
@@ -145,6 +145,9 @@ struct grtc_ioc_stats {
 /* Register GRTC driver at driver manager */
 void grtc_register_drv(void);
 
+/* Register GRTC RMAP driver at driver manager */
+void grtc_rmap_register_drv (void);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c 
b/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
index 3794e95..600c40a 100644
--- a/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
+++ b/c/src/lib/libbsp/sparc/shared/tmtc/grtc.c
@@ -268,7 +268,7 @@ struct grtc_priv {
        /* Frame read data (Frame mode only) */
        int                     frame_state;
        int                     filler;
-       unsigned char           hdr[5] __attribute__((aligned(2)));
+       unsigned int            hdr[2];         /* 5 byte header */
        struct grtc_frame       *frm;           /* Frame currently beeing 
copied */
        int                     frmlen;
 
@@ -700,18 +700,17 @@ static int grtc_start(struct grtc_priv *pDev)
 static void grtc_stop(struct grtc_priv *pDev)
 {
        struct grtc_regs *regs = pDev->regs;
-       unsigned int tmp;
-       
+
        /* Disable the receiver */
        regs->cor = GRTC_SEB;
-       
+
        /* disable all interrupts and clear them */
        regs->imr = 0;
-       tmp = READ_REG(&regs->pir);
+       READ_REG(&regs->pir);
        regs->picr = GRTC_INT_ALL;
-       
+
        DBG("GRTC: STOPPED\n");
-       
+
        /* Flush semaphores in case a thread is stuck waiting for CLTUs (RX 
data) */
        rtems_semaphore_flush(pDev->sem_rx);
 }
@@ -1151,7 +1150,6 @@ static int grtc_hw_check_ending(struct grtc_priv *pDev, 
int max)
        unsigned int rp, wp, asr, bufmax, rrp, rwp;
        unsigned int upper, lower;
        unsigned int count, cnt, left;
-       int tot;
 
        FUNCDBG();
 
@@ -1183,7 +1181,6 @@ static int grtc_hw_check_ending(struct grtc_priv *pDev, 
int max)
        /* Count bytes will be read */
        count = max;
        left = count;
-       tot = 0;
        
        /* Read from upper part of data buffer */
        if ( upper > 0 ){
@@ -1358,7 +1355,7 @@ static int process_dma(struct grtc_priv *pDev)
                DBG2("FRAME_STATE_HDR\n");
                
                /* Wait for all of header to be in place by setting partial to 
0 */
-               ret = grtc_hw_copy(pDev,pDev->hdr,5,0);
+               ret = grtc_hw_copy(pDev, (unsigned char *)pDev->hdr, 5, 0);
                if ( ret < 0 ) {
                        /* Error copying header, restart scanning for new frame 
*/
                        DEBUG_ERR_LOG(pDev,1);
@@ -1374,7 +1371,7 @@ static int process_dma(struct grtc_priv *pDev)
                }
 
                /* The complete header has been copied, parse it */
-               pDev->frmlen = ((*(unsigned short *)&pDev->hdr[2]) & 0x3ff)+1;
+               pDev->frmlen = (((unsigned short *)pDev->hdr)[1] & 0x3ff)+1;
                if ( pDev->frmlen < 5 ) {
                        /* Error: frame length is not correct */
                        pDev->stats.err++;
@@ -1421,11 +1418,11 @@ static int process_dma(struct grtc_priv *pDev)
                frm->len = 5; /* Only header currenlty in frame */
 
                /* Copy Frame Header into frame structure */
-               *((unsigned char *)&frm->hdr + 0) = pDev->hdr[0];
-               *((unsigned char *)&frm->hdr + 1) = pDev->hdr[1];
-               *((unsigned char *)&frm->hdr + 2) = pDev->hdr[2];
-               *((unsigned char *)&frm->hdr + 3) = pDev->hdr[3];
-               *((unsigned char *)&frm->hdr + 4) = pDev->hdr[4];
+               ((unsigned char*)&frm->hdr)[0] = ((unsigned char*)pDev->hdr)[0];
+               ((unsigned char*)&frm->hdr)[1] = ((unsigned char*)pDev->hdr)[1];
+               ((unsigned char*)&frm->hdr)[2] = ((unsigned char*)pDev->hdr)[2];
+               ((unsigned char*)&frm->hdr)[3] = ((unsigned char*)pDev->hdr)[3];
+               ((unsigned char*)&frm->hdr)[4] = ((unsigned char*)pDev->hdr)[4];
 
                /* Calc Total and Filler byte count in frame */
                total_len = pDev->frmlen / 7;
-- 
1.7.0.4

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to