summaryrefslogtreecommitdiffstats
path: root/sys/dev/hfa/fore_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hfa/fore_buffer.c')
-rw-r--r--sys/dev/hfa/fore_buffer.c48
1 files changed, 29 insertions, 19 deletions
diff --git a/sys/dev/hfa/fore_buffer.c b/sys/dev/hfa/fore_buffer.c
index d03f315..491733a 100644
--- a/sys/dev/hfa/fore_buffer.c
+++ b/sys/dev/hfa/fore_buffer.c
@@ -92,6 +92,7 @@ fore_buf_allocate(fup)
Fore_unit *fup;
{
caddr_t memp;
+ vm_paddr_t pmemp;
/*
* Allocate non-cacheable memory for buffer supply status words
@@ -105,12 +106,17 @@ fore_buf_allocate(fup)
fup->fu_buf1s_stat = (Q_status *) memp;
fup->fu_buf1l_stat = ((Q_status *) memp) + BUF1_SM_QUELEN;
- memp = (caddr_t)vtophys(fup->fu_buf1s_stat);
- if (memp == NULL) {
+ pmemp = vtophys(fup->fu_buf1s_stat);
+ if (pmemp == 0) {
return (1);
}
- fup->fu_buf1s_statd = (Q_status *) memp;
- fup->fu_buf1l_statd = ((Q_status *) memp) + BUF1_SM_QUELEN;
+ fup->fu_buf1s_statd = pmemp;
+
+ pmemp = vtophys(fup->fu_buf1l_stat);
+ if (pmemp == 0) {
+ return (1);
+ }
+ fup->fu_buf1l_statd = pmemp;
/*
* Allocate memory for buffer supply descriptors
@@ -126,13 +132,17 @@ fore_buf_allocate(fup)
fup->fu_buf1l_desc = ((Buf_descr *) memp) +
(BUF1_SM_QUELEN * BUF1_SM_ENTSIZE);
- memp = (caddr_t)vtophys(fup->fu_buf1s_desc);
- if (memp == NULL) {
+ pmemp = vtophys(fup->fu_buf1s_desc);
+ if (pmemp == 0) {
return (1);
}
- fup->fu_buf1s_descd = (Buf_descr *) memp;
- fup->fu_buf1l_descd = ((Buf_descr *) memp) +
- (BUF1_SM_QUELEN * BUF1_SM_ENTSIZE);
+ fup->fu_buf1s_descd = pmemp;
+
+ pmemp = vtophys(fup->fu_buf1l_desc);
+ if (pmemp == 0) {
+ return (1);
+ }
+ fup->fu_buf1l_descd = pmemp;
return (0);
}
@@ -160,9 +170,9 @@ fore_buf_initialize(fup)
Buf_queue *cqp;
H_buf_queue *hbp;
Buf_descr *bdp;
- Buf_descr *bdp_dma;
+ vm_paddr_t bdp_dma;
Q_status *qsp;
- Q_status *qsp_dma;
+ vm_paddr_t qsp_dma;
int i;
/*
@@ -215,9 +225,9 @@ fore_buf_initialize(fup)
*/
hbp++;
qsp++;
- qsp_dma++;
+ qsp_dma += sizeof(Q_status);
bdp += BUF1_SM_ENTSIZE;
- bdp_dma += BUF1_SM_ENTSIZE;
+ bdp_dma += BUF1_SM_ENTSIZE * sizeof(Buf_descr);
cqp++;
}
@@ -277,9 +287,9 @@ fore_buf_initialize(fup)
*/
hbp++;
qsp++;
- qsp_dma++;
+ qsp_dma += sizeof(Q_status);
bdp += BUF1_LG_ENTSIZE;
- bdp_dma += BUF1_LG_ENTSIZE;
+ bdp_dma += BUF1_LG_ENTSIZE * sizeof(Buf_descr);
cqp++;
}
@@ -755,9 +765,9 @@ fore_buf_free(fup)
if (fup->fu_buf1s_stat) {
atm_dev_free((volatile void *)fup->fu_buf1s_stat);
fup->fu_buf1s_stat = NULL;
- fup->fu_buf1s_statd = NULL;
+ fup->fu_buf1s_statd = 0;
fup->fu_buf1l_stat = NULL;
- fup->fu_buf1l_statd = NULL;
+ fup->fu_buf1l_statd = 0;
}
/*
@@ -766,9 +776,9 @@ fore_buf_free(fup)
if (fup->fu_buf1s_desc) {
atm_dev_free(fup->fu_buf1s_desc);
fup->fu_buf1s_desc = NULL;
- fup->fu_buf1s_descd = NULL;
+ fup->fu_buf1s_descd = 0;
fup->fu_buf1l_desc = NULL;
- fup->fu_buf1l_descd = NULL;
+ fup->fu_buf1l_descd = 0;
}
return;
OpenPOWER on IntegriCloud