svn commit: r307542 - in head/sys: contrib/ncsw/Peripherals/BM contrib/ncsw/Peripherals/QM contrib/ncsw/inc contrib/ncsw/inc/Peripherals contrib/ncsw/user/env dev/dpaa
Justin Hibbits
jhibbits at FreeBSD.org
Tue Oct 18 00:55:18 UTC 2016
Author: jhibbits
Date: Tue Oct 18 00:55:15 2016
New Revision: 307542
URL: https://svnweb.freebsd.org/changeset/base/307542
Log:
Use proper integer-pointer type conversions.
As part of an effort to extend Book-E to the 64-bit world, make the necessary
changes to the DPAA/dTSEC driver set to be integer-pointer conversion clean.
This means no more casts to int, and use uintptr_t where needed.
Since the NCSW source is effectively obsolete, direct changes to the source tree
are safe.
Modified:
head/sys/contrib/ncsw/Peripherals/BM/bman_low.c
head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c
head/sys/contrib/ncsw/Peripherals/QM/qman_low.h
head/sys/contrib/ncsw/inc/Peripherals/bm_ext.h
head/sys/contrib/ncsw/inc/Peripherals/fm_ext.h
head/sys/contrib/ncsw/inc/Peripherals/qm_ext.h
head/sys/contrib/ncsw/inc/error_ext.h
head/sys/contrib/ncsw/inc/xx_ext.h
head/sys/contrib/ncsw/user/env/xx.c
head/sys/dev/dpaa/bman.c
head/sys/dev/dpaa/bman_portals.c
head/sys/dev/dpaa/fman.c
head/sys/dev/dpaa/portals_common.c
head/sys/dev/dpaa/qman.c
head/sys/dev/dpaa/qman_portals.c
Modified: head/sys/contrib/ncsw/Peripherals/BM/bman_low.c
==============================================================================
--- head/sys/contrib/ncsw/Peripherals/BM/bman_low.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/Peripherals/BM/bman_low.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -51,45 +51,45 @@
/***************************/
/* Cache-inhibited register offsets */
-#define REG_RCR_PI_CINH (void *)0x0000
-#define REG_RCR_CI_CINH (void *)0x0004
-#define REG_RCR_ITR (void *)0x0008
-#define REG_CFG (void *)0x0100
-#define REG_SCN(n) ((void *)(0x0200 + ((n) << 2)))
-#define REG_ISR (void *)0x0e00
-#define REG_IER (void *)0x0e04
-#define REG_ISDR (void *)0x0e08
-#define REG_IIR (void *)0x0e0c
+#define REG_RCR_PI_CINH 0x0000
+#define REG_RCR_CI_CINH 0x0004
+#define REG_RCR_ITR 0x0008
+#define REG_CFG 0x0100
+#define REG_SCN(n) (0x0200 + ((n) << 2))
+#define REG_ISR 0x0e00
+#define REG_IER 0x0e04
+#define REG_ISDR 0x0e08
+#define REG_IIR 0x0e0c
/* Cache-enabled register offsets */
-#define CL_CR (void *)0x0000
-#define CL_RR0 (void *)0x0100
-#define CL_RR1 (void *)0x0140
-#define CL_RCR (void *)0x1000
-#define CL_RCR_PI_CENA (void *)0x3000
-#define CL_RCR_CI_CENA (void *)0x3100
+#define CL_CR 0x0000
+#define CL_RR0 0x0100
+#define CL_RR1 0x0140
+#define CL_RCR 0x1000
+#define CL_RCR_PI_CENA 0x3000
+#define CL_RCR_CI_CENA 0x3100
/* The h/w design requires mappings to be size-aligned so that "add"s can be
* reduced to "or"s. The primitives below do the same for s/w. */
-static __inline__ void *ptr_ADD(void *a, void *b)
+static __inline__ void *ptr_ADD(void *a, uintptr_t b)
{
- return (void *)((uintptr_t)a + (uintptr_t)b);
+ return (void *)((uintptr_t)a + b);
}
/* Bitwise-OR two pointers */
-static __inline__ void *ptr_OR(void *a, void *b)
+static __inline__ void *ptr_OR(void *a, uintptr_t b)
{
- return (void *)((uintptr_t)a | (uintptr_t)b);
+ return (void *)((uintptr_t)a | b);
}
/* Cache-inhibited register access */
-static __inline__ uint32_t __bm_in(struct bm_addr *bm, void *offset)
+static __inline__ uint32_t __bm_in(struct bm_addr *bm, uintptr_t offset)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(bm->addr_ci, offset);
return GET_UINT32(*tmp);
}
-static __inline__ void __bm_out(struct bm_addr *bm, void *offset, uint32_t val)
+static __inline__ void __bm_out(struct bm_addr *bm, uintptr_t offset, uint32_t val)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(bm->addr_ci, offset);
WRITE_UINT32(*tmp, val);
@@ -101,26 +101,26 @@ static __inline__ void __bm_out(struct b
#define bm_cl(n) (void *)((n) << 6)
/* Cache-enabled (index) register access */
-static __inline__ void __bm_cl_touch_ro(struct bm_addr *bm, void *offset)
+static __inline__ void __bm_cl_touch_ro(struct bm_addr *bm, uintptr_t offset)
{
dcbt_ro(ptr_ADD(bm->addr_ce, offset));
}
-static __inline__ void __bm_cl_touch_rw(struct bm_addr *bm, void *offset)
+static __inline__ void __bm_cl_touch_rw(struct bm_addr *bm, uintptr_t offset)
{
dcbt_rw(ptr_ADD(bm->addr_ce, offset));
}
-static __inline__ uint32_t __bm_cl_in(struct bm_addr *bm, void *offset)
+static __inline__ uint32_t __bm_cl_in(struct bm_addr *bm, uintptr_t offset)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(bm->addr_ce, offset);
return GET_UINT32(*tmp);
}
-static __inline__ void __bm_cl_out(struct bm_addr *bm, void *offset, uint32_t val)
+static __inline__ void __bm_cl_out(struct bm_addr *bm, uintptr_t offset, uint32_t val)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(bm->addr_ce, offset);
WRITE_UINT32(*tmp, val);
dcbf(tmp);
}
-static __inline__ void __bm_cl_invalidate(struct bm_addr *bm, void *offset)
+static __inline__ void __bm_cl_invalidate(struct bm_addr *bm, uintptr_t offset)
{
dcbi(ptr_ADD(bm->addr_ce, offset));
}
@@ -156,7 +156,7 @@ static __inline__ uint8_t cyc_diff(uint8
/* Bit-wise logic to convert a ring pointer to a ring index */
static __inline__ uint8_t RCR_PTR2IDX(struct bm_rcr_entry *e)
{
- return (uint8_t)(((uint32_t)e >> 6) & (BM_RCR_SIZE - 1));
+ return (uint8_t)(((uintptr_t)e >> 6) & (BM_RCR_SIZE - 1));
}
/* Increment the 'cursor' ring pointer, taking 'vbit' into account */
@@ -483,12 +483,12 @@ void bm_isr_bscn_mask(struct bm_portal *
uint32_t __bm_isr_read(struct bm_portal *portal, enum bm_isr_reg n)
{
- return __bm_in(&portal->addr, PTR_MOVE(REG_ISR, (n << 2)));
+ return __bm_in(&portal->addr, REG_ISR + (n << 2));
}
void __bm_isr_write(struct bm_portal *portal, enum bm_isr_reg n, uint32_t val)
{
- __bm_out(&portal->addr, PTR_MOVE(REG_ISR, (n << 2)), val);
+ __bm_out(&portal->addr, REG_ISR + (n << 2), val);
}
Modified: head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c
==============================================================================
--- head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -568,8 +568,8 @@ mr_loop:
qmPortalMrPvbUpdate(p_QmPortal->p_LowQmPortal);
p_Msg = qm_mr_current(p_QmPortal->p_LowQmPortal);
if (p_Msg) {
- struct qman_fq *p_FqFqs = (void *)p_Msg->fq.contextB;
- struct qman_fq *p_FqErn = (void *)p_Msg->ern.tag;
+ struct qman_fq *p_FqFqs = UINT_TO_PTR(p_Msg->fq.contextB);
+ struct qman_fq *p_FqErn = UINT_TO_PTR(p_Msg->ern.tag);
uint8_t verb =(uint8_t)(p_Msg->verb & QM_MR_VERB_TYPE_MASK);
t_QmRejectedFrameInfo rejectedFrameInfo;
@@ -646,7 +646,7 @@ static void LoopDequeueRing(t_Handle h_Q
p_Dq = qm_dqrr_current(p_QmPortal->p_LowQmPortal);
if (!p_Dq)
break;
- p_Fq = (void *)p_Dq->contextB;
+ p_Fq = UINT_TO_PTR(p_Dq->contextB);
if (p_Dq->stat & QM_DQRR_STAT_UNSCHEDULED) {
/* We only set QMAN_FQ_STATE_NE when retiring, so we only need
* to check for clearing it when doing volatile dequeues. It's
@@ -728,7 +728,7 @@ static void LoopDequeueRingDcaOptimized(
p_Dq = qm_dqrr_current(p_QmPortal->p_LowQmPortal);
if (!p_Dq)
break;
- p_Fq = (void *)p_Dq->contextB;
+ p_Fq = UINT_TO_PTR(p_Dq->contextB);
if (p_Dq->stat & QM_DQRR_STAT_UNSCHEDULED) {
/* We only set QMAN_FQ_STATE_NE when retiring, so we only need
* to check for clearing it when doing volatile dequeues. It's
@@ -802,7 +802,7 @@ static void LoopDequeueRingOptimized(t_H
p_Dq = qm_dqrr_current(p_QmPortal->p_LowQmPortal);
if (!p_Dq)
break;
- p_Fq = (void *)p_Dq->contextB;
+ p_Fq = UINT_TO_PTR(p_Dq->contextB);
if (p_Dq->stat & QM_DQRR_STAT_UNSCHEDULED) {
/* We only set QMAN_FQ_STATE_NE when retiring, so we only need
* to check for clearing it when doing volatile dequeues. It's
@@ -1483,7 +1483,7 @@ static t_Error QmPortalPullFrame(t_Handl
p_Dq = qm_dqrr_current(p_QmPortal->p_LowQmPortal);
if (!p_Dq)
continue;
- p_Fq = (void *)p_Dq->contextB;
+ p_Fq = UINT_TO_PTR(p_Dq->contextB);
ASSERT_COND(p_Dq->fqid);
p_Dst = (uint32_t *)p_Frame;
p_Src = (uint32_t *)&p_Dq->fd;
@@ -1811,7 +1811,7 @@ t_Error QM_PORTAL_PollFrame(t_Handle h_Q
PUNLOCK(p_QmPortal);
return ERROR_CODE(E_EMPTY);
}
- p_Fq = (void *)p_Dq->contextB;
+ p_Fq = UINT_TO_PTR(p_Dq->contextB);
ASSERT_COND(p_Dq->fqid);
if (p_Fq)
{
@@ -2141,7 +2141,7 @@ t_Error QM_FQR_Enqueue(t_Handle h_QmFqr,
}
p_Eq->fqid = p_Fq->fqid;
- p_Eq->tag = (uint32_t)p_Fq;
+ p_Eq->tag = (uintptr_t)p_Fq;
/* gcc does a dreadful job of the following;
* eq->fd = *fd;
* It causes the entire function to save/restore a wider range of
Modified: head/sys/contrib/ncsw/Peripherals/QM/qman_low.h
==============================================================================
--- head/sys/contrib/ncsw/Peripherals/QM/qman_low.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/Peripherals/QM/qman_low.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -51,61 +51,61 @@
/***************************/
/* Cache-inhibited register offsets */
-#define REG_EQCR_PI_CINH (void *)0x0000
-#define REG_EQCR_CI_CINH (void *)0x0004
-#define REG_EQCR_ITR (void *)0x0008
-#define REG_DQRR_PI_CINH (void *)0x0040
-#define REG_DQRR_CI_CINH (void *)0x0044
-#define REG_DQRR_ITR (void *)0x0048
-#define REG_DQRR_DCAP (void *)0x0050
-#define REG_DQRR_SDQCR (void *)0x0054
-#define REG_DQRR_VDQCR (void *)0x0058
-#define REG_DQRR_PDQCR (void *)0x005c
-#define REG_MR_PI_CINH (void *)0x0080
-#define REG_MR_CI_CINH (void *)0x0084
-#define REG_MR_ITR (void *)0x0088
-#define REG_CFG (void *)0x0100
-#define REG_ISR (void *)0x0e00
-#define REG_IER (void *)0x0e04
-#define REG_ISDR (void *)0x0e08
-#define REG_IIR (void *)0x0e0c
-#define REG_ITPR (void *)0x0e14
+#define REG_EQCR_PI_CINH 0x0000
+#define REG_EQCR_CI_CINH 0x0004
+#define REG_EQCR_ITR 0x0008
+#define REG_DQRR_PI_CINH 0x0040
+#define REG_DQRR_CI_CINH 0x0044
+#define REG_DQRR_ITR 0x0048
+#define REG_DQRR_DCAP 0x0050
+#define REG_DQRR_SDQCR 0x0054
+#define REG_DQRR_VDQCR 0x0058
+#define REG_DQRR_PDQCR 0x005c
+#define REG_MR_PI_CINH 0x0080
+#define REG_MR_CI_CINH 0x0084
+#define REG_MR_ITR 0x0088
+#define REG_CFG 0x0100
+#define REG_ISR 0x0e00
+#define REG_IER 0x0e04
+#define REG_ISDR 0x0e08
+#define REG_IIR 0x0e0c
+#define REG_ITPR 0x0e14
/* Cache-enabled register offsets */
-#define CL_EQCR (void *)0x0000
-#define CL_DQRR (void *)0x1000
-#define CL_MR (void *)0x2000
-#define CL_EQCR_PI_CENA (void *)0x3000
-#define CL_EQCR_CI_CENA (void *)0x3100
-#define CL_DQRR_PI_CENA (void *)0x3200
-#define CL_DQRR_CI_CENA (void *)0x3300
-#define CL_MR_PI_CENA (void *)0x3400
-#define CL_MR_CI_CENA (void *)0x3500
-#define CL_RORI_CENA (void *)0x3600
-#define CL_CR (void *)0x3800
-#define CL_RR0 (void *)0x3900
-#define CL_RR1 (void *)0x3940
+#define CL_EQCR 0x0000
+#define CL_DQRR 0x1000
+#define CL_MR 0x2000
+#define CL_EQCR_PI_CENA 0x3000
+#define CL_EQCR_CI_CENA 0x3100
+#define CL_DQRR_PI_CENA 0x3200
+#define CL_DQRR_CI_CENA 0x3300
+#define CL_MR_PI_CENA 0x3400
+#define CL_MR_CI_CENA 0x3500
+#define CL_RORI_CENA 0x3600
+#define CL_CR 0x3800
+#define CL_RR0 0x3900
+#define CL_RR1 0x3940
-static __inline__ void *ptr_ADD(void *a, void *b)
+static __inline__ void *ptr_ADD(void *a, uintptr_t b)
{
- return (void *)((uintptr_t)a + (uintptr_t)b);
+ return (void *)((uintptr_t)a + b);
}
/* The h/w design requires mappings to be size-aligned so that "add"s can be
* reduced to "or"s. The primitives below do the same for s/w. */
/* Bitwise-OR two pointers */
-static __inline__ void *ptr_OR(void *a, void *b)
+static __inline__ void *ptr_OR(void *a, uintptr_t b)
{
- return (void *)((uintptr_t)a + (uintptr_t)b);
+ return (void *)((uintptr_t)a + b);
}
/* Cache-inhibited register access */
-static __inline__ uint32_t __qm_in(struct qm_addr *qm, void *offset)
+static __inline__ uint32_t __qm_in(struct qm_addr *qm, uintptr_t offset)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(qm->addr_ci, offset);
return GET_UINT32(*tmp);
}
-static __inline__ void __qm_out(struct qm_addr *qm, void *offset, uint32_t val)
+static __inline__ void __qm_out(struct qm_addr *qm, uintptr_t offset, uint32_t val)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(qm->addr_ci, offset);
WRITE_UINT32(*tmp, val);
@@ -114,29 +114,29 @@ static __inline__ void __qm_out(struct q
#define qm_out(reg, val) __qm_out(&portal->addr, REG_##reg, (uint32_t)val)
/* Convert 'n' cachelines to a pointer value for bitwise OR */
-#define qm_cl(n) (void *)((n) << 6)
+#define qm_cl(n) ((n) << 6)
/* Cache-enabled (index) register access */
-static __inline__ void __qm_cl_touch_ro(struct qm_addr *qm, void *offset)
+static __inline__ void __qm_cl_touch_ro(struct qm_addr *qm, uintptr_t offset)
{
dcbt_ro(ptr_ADD(qm->addr_ce, offset));
}
-static __inline__ void __qm_cl_touch_rw(struct qm_addr *qm, void *offset)
+static __inline__ void __qm_cl_touch_rw(struct qm_addr *qm, uintptr_t offset)
{
dcbt_rw(ptr_ADD(qm->addr_ce, offset));
}
-static __inline__ uint32_t __qm_cl_in(struct qm_addr *qm, void *offset)
+static __inline__ uint32_t __qm_cl_in(struct qm_addr *qm, uintptr_t offset)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(qm->addr_ce, offset);
return GET_UINT32(*tmp);
}
-static __inline__ void __qm_cl_out(struct qm_addr *qm, void *offset, uint32_t val)
+static __inline__ void __qm_cl_out(struct qm_addr *qm, uintptr_t offset, uint32_t val)
{
uint32_t *tmp = (uint32_t *)ptr_ADD(qm->addr_ce, offset);
WRITE_UINT32(*tmp, val);
dcbf(tmp);
}
-static __inline__ void __qm_cl_invalidate(struct qm_addr *qm, void *offset)
+static __inline__ void __qm_cl_invalidate(struct qm_addr *qm, uintptr_t offset)
{
dcbi(ptr_ADD(qm->addr_ce, offset));
}
@@ -190,7 +190,7 @@ static __inline__ void __qm_portal_unbin
/* Bit-wise logic to convert a ring pointer to a ring index */
static __inline__ uint8_t EQCR_PTR2IDX(struct qm_eqcr_entry *e)
{
- return (uint8_t)(((uint32_t)e >> 6) & (QM_EQCR_SIZE - 1));
+ return (uint8_t)(((uintptr_t)e >> 6) & (QM_EQCR_SIZE - 1));
}
/* Increment the 'cursor' ring pointer, taking 'vbit' into account */
@@ -459,7 +459,7 @@ static __inline__ uint8_t qm_eqcr_get_fi
static __inline__ uint8_t DQRR_PTR2IDX(struct qm_dqrr_entry *e)
{
- return (uint8_t)(((uint32_t)e >> 6) & (QM_DQRR_SIZE - 1));
+ return (uint8_t)(((uintptr_t)e >> 6) & (QM_DQRR_SIZE - 1));
}
static __inline__ struct qm_dqrr_entry *DQRR_INC(struct qm_dqrr_entry *e)
@@ -829,7 +829,7 @@ static __inline__ uint8_t qm_dqrr_get_ma
static __inline__ uint8_t MR_PTR2IDX(struct qm_mr_entry *e)
{
- return (uint8_t)(((uint32_t)e >> 6) & (QM_MR_SIZE - 1));
+ return (uint8_t)(((uintptr_t)e >> 6) & (QM_MR_SIZE - 1));
}
static __inline__ struct qm_mr_entry *MR_INC(struct qm_mr_entry *e)
@@ -1139,10 +1139,10 @@ static __inline__ void qm_isr_set_iperio
static __inline__ uint32_t __qm_isr_read(struct qm_portal *portal, enum qm_isr_reg n)
{
- return __qm_in(&portal->addr, PTR_MOVE(REG_ISR, (n << 2)));
+ return __qm_in(&portal->addr, REG_ISR + (n << 2));
}
static __inline__ void __qm_isr_write(struct qm_portal *portal, enum qm_isr_reg n, uint32_t val)
{
- __qm_out(&portal->addr, PTR_MOVE(REG_ISR, (n << 2)), val);
+ __qm_out(&portal->addr, REG_ISR + (n << 2), val);
}
Modified: head/sys/contrib/ncsw/inc/Peripherals/bm_ext.h
==============================================================================
--- head/sys/contrib/ncsw/inc/Peripherals/bm_ext.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/inc/Peripherals/bm_ext.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -124,7 +124,7 @@ typedef struct {
t_Handle h_App; /**< A handle to an application layer object; This handle will
be passed by the driver upon calling the above callbacks.
NOTE: this parameter relevant only for BM in master mode ('guestId'=NCSW_MASTER_ID). */
- int errIrq; /**< BM error interrupt line; NO_IRQ if interrupts not used.
+ uintptr_t errIrq; /**< BM error interrupt line; NO_IRQ if interrupts not used.
NOTE: this parameter relevant only for BM in master mode ('guestId'=NCSW_MASTER_ID). */
uint8_t partBpidBase; /**< The first buffer-pool-id dedicated to this partition.
Modified: head/sys/contrib/ncsw/inc/Peripherals/fm_ext.h
==============================================================================
--- head/sys/contrib/ncsw/inc/Peripherals/fm_ext.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/inc/Peripherals/fm_ext.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -322,9 +322,9 @@ typedef struct t_FmParams {
t_Handle h_App; /**< Relevant when guestId = NCSW_MASSTER_ID only.
A handle to an application layer object; This handle will
be passed by the driver upon calling the above callbacks */
- int irq; /**< Relevant when guestId = NCSW_MASSTER_ID only.
+ uintptr_t irq; /**< Relevant when guestId = NCSW_MASSTER_ID only.
FM interrupt source for normal events */
- int errIrq; /**< Relevant when guestId = NCSW_MASSTER_ID only.
+ uintptr_t errIrq; /**< Relevant when guestId = NCSW_MASSTER_ID only.
FM interrupt source for errors */
t_FmPcdFirmwareParams firmware; /**< Relevant when guestId = NCSW_MASSTER_ID only.
Ucode */
Modified: head/sys/contrib/ncsw/inc/Peripherals/qm_ext.h
==============================================================================
--- head/sys/contrib/ncsw/inc/Peripherals/qm_ext.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/inc/Peripherals/qm_ext.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -249,7 +249,7 @@ typedef struct {
t_QmExceptionsCallback *f_Exception; /**< An application callback routine to handle exceptions.*/
t_Handle h_App; /**< A handle to an application layer object; This handle will
be passed by the driver upon calling the above callbacks */
- int errIrq; /**< error interrupt line; NO_IRQ if interrupts not used */
+ uintptr_t errIrq; /**< error interrupt line; NO_IRQ if interrupts not used */
uint32_t partFqidBase; /**< The first frame-queue-id dedicated to this partition.
NOTE: this parameter relevant only when working with multiple partitions. */
uint32_t partNumOfFqids; /**< Number of frame-queue-ids dedicated to this partition.
Modified: head/sys/contrib/ncsw/inc/error_ext.h
==============================================================================
--- head/sys/contrib/ncsw/inc/error_ext.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/inc/error_ext.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -353,7 +353,8 @@ int ERROR_DYNAMIC_LEVEL = ERROR_GLOBAL_L
#define PRINT_FORMAT "[CPU%02d, %s:%d %s]"
#define PRINT_FMT_PARAMS CORE_GetId(), __FILE__, __LINE__, __FUNCTION__
-#define ERR_STRING(err) #err
+#define _ERR_STRING(err) #err
+#define ERR_STRING(err) _ERR_STRING(err)
#if (!(defined(DEBUG_ERRORS)) || (DEBUG_ERRORS == 0))
/* No debug/error/event messages at all */
Modified: head/sys/contrib/ncsw/inc/xx_ext.h
==============================================================================
--- head/sys/contrib/ncsw/inc/xx_ext.h Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/inc/xx_ext.h Tue Oct 18 00:55:15 2016 (r307542)
@@ -197,7 +197,7 @@ char XX_GetChar(void);
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_PreallocAndBindIntr(int irq, unsigned int cpu);
+t_Error XX_PreallocAndBindIntr(uintptr_t irq, unsigned int cpu);
/**************************************************************************//**
@Function XX_DeallocIntr
@@ -208,7 +208,7 @@ t_Error XX_PreallocAndBindIntr(int irq,
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_DeallocIntr(int irq);
+t_Error XX_DeallocIntr(uintptr_t irq);
/**************************************************************************//**
@Function XX_SetIntr
@@ -221,7 +221,7 @@ t_Error XX_DeallocIntr(int irq);
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_SetIntr(int irq, t_Isr *f_Isr, t_Handle handle);
+t_Error XX_SetIntr(uintptr_t irq, t_Isr *f_Isr, t_Handle handle);
/**************************************************************************//**
@Function XX_FreeIntr
@@ -232,7 +232,7 @@ t_Error XX_SetIntr(int irq, t_Isr *f_Isr
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_FreeIntr(int irq);
+t_Error XX_FreeIntr(uintptr_t irq);
/**************************************************************************//**
@Function XX_EnableIntr
@@ -243,7 +243,7 @@ t_Error XX_FreeIntr(int irq);
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_EnableIntr(int irq);
+t_Error XX_EnableIntr(uintptr_t irq);
/**************************************************************************//**
@Function XX_DisableIntr
@@ -254,7 +254,7 @@ t_Error XX_EnableIntr(int irq);
@Return E_OK on success; error code otherwise..
*//***************************************************************************/
-t_Error XX_DisableIntr(int irq);
+t_Error XX_DisableIntr(uintptr_t irq);
#if !(defined(__MWERKS__) && defined(OPTIMIZED_FOR_SPEED))
/**************************************************************************//**
Modified: head/sys/contrib/ncsw/user/env/xx.c
==============================================================================
--- head/sys/contrib/ncsw/user/env/xx.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/contrib/ncsw/user/env/xx.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -368,7 +368,7 @@ XX_Dispatch(void *arg)
}
t_Error
-XX_PreallocAndBindIntr(int irq, unsigned int cpu)
+XX_PreallocAndBindIntr(uintptr_t irq, unsigned int cpu)
{
struct resource *r;
unsigned int inum;
@@ -388,7 +388,7 @@ XX_PreallocAndBindIntr(int irq, unsigned
}
t_Error
-XX_DeallocIntr(int irq)
+XX_DeallocIntr(uintptr_t irq)
{
struct resource *r;
unsigned int inum;
@@ -404,7 +404,7 @@ XX_DeallocIntr(int irq)
}
t_Error
-XX_SetIntr(int irq, t_Isr *f_Isr, t_Handle handle)
+XX_SetIntr(uintptr_t irq, t_Isr *f_Isr, t_Handle handle)
{
device_t dev;
struct resource *r;
@@ -453,7 +453,7 @@ finish:
}
t_Error
-XX_FreeIntr(int irq)
+XX_FreeIntr(uintptr_t irq)
{
device_t dev;
struct resource *r;
@@ -477,7 +477,7 @@ XX_FreeIntr(int irq)
}
t_Error
-XX_EnableIntr(int irq)
+XX_EnableIntr(uintptr_t irq)
{
struct resource *r;
@@ -490,7 +490,7 @@ XX_EnableIntr(int irq)
}
t_Error
-XX_DisableIntr(int irq)
+XX_DisableIntr(uintptr_t irq)
{
struct resource *r;
Modified: head/sys/dev/dpaa/bman.c
==============================================================================
--- head/sys/dev/dpaa/bman.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/bman.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -114,7 +114,7 @@ bman_attach(device_t dev)
bp.totalNumOfBuffers = BMAN_MAX_BUFFERS;
bp.f_Exception = bman_exception;
bp.h_App = sc;
- bp.errIrq = (int)sc->sc_ires;
+ bp.errIrq = (uintptr_t)sc->sc_ires;
bp.partBpidBase = 0;
bp.partNumOfPools = BM_MAX_NUM_OF_POOLS;
printf("base address: %llx\n", (uint64_t)bp.baseAddress);
Modified: head/sys/dev/dpaa/bman_portals.c
==============================================================================
--- head/sys/dev/dpaa/bman_portals.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/bman_portals.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -95,7 +95,7 @@ bman_portals_detach(device_t dev)
}
if (sc->sc_dp[i].dp_ires != NULL) {
- XX_DeallocIntr((int)sc->sc_dp[i].dp_ires);
+ XX_DeallocIntr((uintptr_t)sc->sc_dp[i].dp_ires);
bus_release_resource(dev, SYS_RES_IRQ,
sc->sc_dp[i].dp_irid, sc->sc_dp[i].dp_ires);
}
@@ -116,7 +116,8 @@ bman_portal_setup(struct bman_softc *bsc
struct dpaa_portals_softc *sc;
t_BmPortalParam bpp;
t_Handle portal;
- unsigned int cpu, p;
+ unsigned int cpu;
+ uintptr_t p;
/* Return NULL if we're not ready or while detach */
if (bp_sc == NULL)
@@ -129,9 +130,9 @@ bman_portal_setup(struct bman_softc *bsc
cpu = PCPU_GET(cpuid);
/* Check if portal is ready */
- while (atomic_cmpset_acq_32((uint32_t *)&sc->sc_dp[cpu].dp_ph,
+ while (atomic_cmpset_acq_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph,
0, -1) == 0) {
- p = atomic_load_acq_32((uint32_t *)&sc->sc_dp[cpu].dp_ph);
+ p = atomic_load_acq_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph);
/* Return if portal is already initialized */
if (p != 0 && p != -1) {
@@ -153,7 +154,7 @@ bman_portal_setup(struct bman_softc *bsc
bpp.ciBaseAddress = rman_get_bushandle(sc->sc_rres[1]);
bpp.h_Bm = bsc->sc_bh;
bpp.swPortalId = cpu;
- bpp.irq = (int)sc->sc_dp[cpu].dp_ires;
+ bpp.irq = (uintptr_t)sc->sc_dp[cpu].dp_ires;
portal = BM_PORTAL_Config(&bpp);
if (portal == NULL)
@@ -162,8 +163,7 @@ bman_portal_setup(struct bman_softc *bsc
if (BM_PORTAL_Init(portal) != E_OK)
goto err;
- atomic_store_rel_32((uint32_t *)&sc->sc_dp[cpu].dp_ph,
- (uint32_t)portal);
+ atomic_store_rel_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph, (uintptr_t)portal);
sched_unpin();
@@ -173,7 +173,7 @@ err:
if (portal != NULL)
BM_PORTAL_Free(portal);
- atomic_store_rel_32((uint32_t *)&sc->sc_dp[cpu].dp_ph, 0);
+ atomic_store_rel_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph, 0);
sched_unpin();
return (NULL);
Modified: head/sys/dev/dpaa/fman.c
==============================================================================
--- head/sys/dev/dpaa/fman.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/fman.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -66,8 +66,8 @@ enum fman_mu_ram_map {
struct fman_config {
device_t fman_device;
uintptr_t mem_base_addr;
- int irq_num;
- int err_irq_num;
+ uintptr_t irq_num;
+ uintptr_t err_irq_num;
uint8_t fm_id;
t_FmExceptionsCallback *exception_callback;
t_FmBusErrorCallback *bus_error_callback;
@@ -282,8 +282,8 @@ fman_attach(device_t dev)
cfg.fman_device = dev;
cfg.fm_id = device_get_unit(dev);
cfg.mem_base_addr = rman_get_bushandle(sc->mem_res);
- cfg.irq_num = (int)sc->irq_res;
- cfg.err_irq_num = (int)sc->err_irq_res;
+ cfg.irq_num = (uintptr_t)sc->irq_res;
+ cfg.err_irq_num = (uintptr_t)sc->err_irq_res;
cfg.exception_callback = fman_exception_callback;
cfg.bus_error_callback = fman_error_callback;
Modified: head/sys/dev/dpaa/portals_common.c
==============================================================================
--- head/sys/dev/dpaa/portals_common.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/portals_common.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -121,7 +121,7 @@ dpaa_portal_alloc_res(device_t dev, stru
return (ENXIO);
}
- err = XX_PreallocAndBindIntr((int)sc->sc_dp[cpu].dp_ires, cpu);
+ err = XX_PreallocAndBindIntr((uintptr_t)sc->sc_dp[cpu].dp_ires, cpu);
if (err != E_OK) {
device_printf(dev, "Could not prealloc and bind interrupt\n");
Modified: head/sys/dev/dpaa/qman.c
==============================================================================
--- head/sys/dev/dpaa/qman.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/qman.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -205,7 +205,7 @@ qman_attach(device_t dev)
qp.pfdrMemPartitionId = NCSW_MASTER_ID;
qp.f_Exception = qman_exception;
qp.h_App = sc;
- qp.errIrq = (int)sc->sc_ires;
+ qp.errIrq = (uintptr_t)sc->sc_ires;
qp.partFqidBase = QMAN_FQID_BASE;
qp.partNumOfFqids = QMAN_MAX_FQIDS;
qp.partCgsBase = 0;
@@ -255,7 +255,7 @@ qman_detach(device_t dev)
QM_Free(sc->sc_qh);
if (sc->sc_ires != NULL)
- XX_DeallocIntr((int)sc->sc_ires);
+ XX_DeallocIntr((uintptr_t)sc->sc_ires);
if (sc->sc_ires != NULL)
bus_release_resource(dev, SYS_RES_IRQ,
Modified: head/sys/dev/dpaa/qman_portals.c
==============================================================================
--- head/sys/dev/dpaa/qman_portals.c Mon Oct 17 23:25:31 2016 (r307541)
+++ head/sys/dev/dpaa/qman_portals.c Tue Oct 18 00:55:15 2016 (r307542)
@@ -100,7 +100,7 @@ qman_portals_detach(device_t dev)
}
if (sc->sc_dp[i].dp_ires != NULL) {
- XX_DeallocIntr((int)sc->sc_dp[i].dp_ires);
+ XX_DeallocIntr((uintptr_t)sc->sc_dp[i].dp_ires);
bus_release_resource(dev, SYS_RES_IRQ,
sc->sc_dp[i].dp_irid, sc->sc_dp[i].dp_ires);
}
@@ -120,7 +120,8 @@ qman_portal_setup(struct qman_softc *qsc
{
struct dpaa_portals_softc *sc;
t_QmPortalParam qpp;
- unsigned int cpu, p;
+ unsigned int cpu;
+ uintptr_t p;
t_Handle portal;
/* Return NULL if we're not ready or while detach */
@@ -134,9 +135,9 @@ qman_portal_setup(struct qman_softc *qsc
cpu = PCPU_GET(cpuid);
/* Check if portal is ready */
- while (atomic_cmpset_acq_32((uint32_t *)&sc->sc_dp[cpu].dp_ph,
+ while (atomic_cmpset_acq_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph,
0, -1) == 0) {
- p = atomic_load_acq_32((uint32_t *)&sc->sc_dp[cpu].dp_ph);
+ p = atomic_load_acq_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph);
/* Return if portal is already initialized */
if (p != 0 && p != -1) {
@@ -158,7 +159,7 @@ qman_portal_setup(struct qman_softc *qsc
qpp.ciBaseAddress = rman_get_bushandle(sc->sc_rres[1]);
qpp.h_Qm = qsc->sc_qh;
qpp.swPortalId = cpu;
- qpp.irq = (int)sc->sc_dp[cpu].dp_ires;
+ qpp.irq = (uintptr_t)sc->sc_dp[cpu].dp_ires;
qpp.fdLiodnOffset = 0;
qpp.f_DfltFrame = qman_received_frame_callback;
qpp.f_RejectedFrame = qman_rejected_frame_callback;
@@ -174,8 +175,8 @@ qman_portal_setup(struct qman_softc *qsc
if (QM_PORTAL_AddPoolChannel(portal, QMAN_COMMON_POOL_CHANNEL) != E_OK)
goto err;
- atomic_store_rel_32((uint32_t *)&sc->sc_dp[cpu].dp_ph,
- (uint32_t)portal);
+ atomic_store_rel_ptr((uintptr_t *)&sc->sc_dp[cpu].dp_ph,
+ (uintptr_t)portal);
sched_unpin();
return (portal);
More information about the svn-src-head
mailing list