Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/nathanw_sa]: src/sys/arch/macppc/dev Make macppc compile by default with...



details:   https://anonhg.NetBSD.org/src/rev/931b25969f9d
branches:  nathanw_sa
changeset: 504716:931b25969f9d
user:      matt <matt%NetBSD.org@localhost>
date:      Fri Jun 08 00:32:03 2001 +0000

description:
Make macppc compile by default with -Wall -Wmissing-prototype in addition
to its currently enabled warnings.  For the lack of a better place, most
global function prototype wound up in <machine/autoconf.h> unless there
was a better place for them.  ofb_* structs renamed to offb_* to avoid
conflict with ofb_softc in <dev/ofw/openfirm.h>

diffstat:

 sys/arch/macppc/dev/dbdma.c |  134 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 134 insertions(+), 0 deletions(-)

diffs (138 lines):

diff -r dcffd72ed11a -r 931b25969f9d sys/arch/macppc/dev/dbdma.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/macppc/dev/dbdma.c       Fri Jun 08 00:32:03 2001 +0000
@@ -0,0 +1,134 @@
+/*     $NetBSD: dbdma.c,v 1.4.8.2 2001/06/08 00:32:03 matt Exp $       */
+
+/*
+ * Copyright 1991-1998 by Open Software Foundation, Inc. 
+ *              All Rights Reserved 
+ *  
+ * Permission to use, copy, modify, and distribute this software and 
+ * its documentation for any purpose and without fee is hereby granted, 
+ * provided that the above copyright notice appears in all copies and 
+ * that both the copyright notice and this permission notice appear in 
+ * supporting documentation. 
+ *  
+ * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE 
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+ * FOR A PARTICULAR PURPOSE. 
+ *  
+ * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR 
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, 
+ * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
+ * 
+ */
+
+#include <sys/param.h>
+#include <sys/malloc.h>
+#include <sys/systm.h>
+
+#include <uvm/uvm_extern.h>
+
+#include <machine/pio.h>
+#include <macppc/dev/dbdma.h>
+
+#define eieio() __asm__ volatile("eieio")
+
+
+dbdma_command_t        *dbdma_alloc_commands = NULL;
+
+void
+dbdma_start(dmap, commands)
+       dbdma_regmap_t *dmap;
+       dbdma_command_t *commands;
+{
+       unsigned long addr = vtophys((vaddr_t)commands);
+
+       if (addr & 0xf)
+               panic("dbdma_start command structure not 16-byte aligned");
+
+       dmap->d_intselect = 0xff;  /* Endian magic - clear out interrupts */
+       DBDMA_ST4_ENDIAN(&dmap->d_control, 
+                        DBDMA_CLEAR_CNTRL( (DBDMA_CNTRL_ACTIVE |
+                                            DBDMA_CNTRL_DEAD   |
+                                            DBDMA_CNTRL_WAKE   |
+                                            DBDMA_CNTRL_FLUSH  |
+                                            DBDMA_CNTRL_PAUSE  |
+                                            DBDMA_CNTRL_RUN      )));      
+       eieio();
+     
+       while (DBDMA_LD4_ENDIAN(&dmap->d_status) & DBDMA_CNTRL_ACTIVE)
+               eieio();
+
+       dmap->d_cmdptrhi = 0;   eieio();/* 64-bit not yet */
+       DBDMA_ST4_ENDIAN(&dmap->d_cmdptrlo, addr); eieio();
+
+       DBDMA_ST4_ENDIAN(&dmap->d_control, DBDMA_SET_CNTRL(DBDMA_CNTRL_RUN));
+       eieio();
+}
+
+void
+dbdma_stop(dmap)
+       dbdma_regmap_t *dmap;
+{
+       out32rb(&dmap->d_control, DBDMA_CLEAR_CNTRL(DBDMA_CNTRL_RUN) |
+                         DBDMA_SET_CNTRL(DBDMA_CNTRL_FLUSH));
+
+       while (in32rb(&dmap->d_status) &
+               (DBDMA_CNTRL_ACTIVE|DBDMA_CNTRL_FLUSH));
+}
+
+void
+dbdma_flush(dmap)
+       dbdma_regmap_t *dmap;
+{
+       out32rb(&dmap->d_control, DBDMA_SET_CNTRL(DBDMA_CNTRL_FLUSH));
+
+       while (in32rb(&dmap->d_status) & (DBDMA_CNTRL_FLUSH));
+}
+
+void
+dbdma_reset(dmap)
+       dbdma_regmap_t *dmap;
+{
+       out32rb(&dmap->d_control, 
+                        DBDMA_CLEAR_CNTRL( (DBDMA_CNTRL_ACTIVE |
+                                            DBDMA_CNTRL_DEAD   |
+                                            DBDMA_CNTRL_WAKE   |
+                                            DBDMA_CNTRL_FLUSH  |
+                                            DBDMA_CNTRL_PAUSE  |
+                                            DBDMA_CNTRL_RUN      )));      
+
+       while (in32rb(&dmap->d_status) & DBDMA_CNTRL_RUN);
+}
+
+void
+dbdma_continue(dmap)
+       dbdma_regmap_t *dmap;
+{
+       out32rb(&dmap->d_control,
+               DBDMA_SET_CNTRL(DBDMA_CNTRL_RUN | DBDMA_CNTRL_WAKE) |
+               DBDMA_CLEAR_CNTRL(DBDMA_CNTRL_PAUSE | DBDMA_CNTRL_DEAD));
+}
+
+void
+dbdma_pause(dmap)
+       dbdma_regmap_t *dmap;
+{
+       DBDMA_ST4_ENDIAN(&dmap->d_control,DBDMA_SET_CNTRL(DBDMA_CNTRL_PAUSE));
+       eieio();
+
+       while (DBDMA_LD4_ENDIAN(&dmap->d_status) & DBDMA_CNTRL_ACTIVE)
+               eieio();
+}
+
+dbdma_command_t        *
+dbdma_alloc(size)
+       int size;
+{
+       u_int buf;
+
+       buf = (u_int)malloc(size + 0x0f, M_DEVBUF, M_WAITOK);
+       buf = (buf + 0x0f) & ~0x0f;
+
+       return (dbdma_command_t *)buf;
+}



Home | Main Index | Thread Index | Old Index