Annotation of Gnu-Mach/chips/audio_config.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Mach Operating System
                      3:  * Copyright (c) 1992 Carnegie Mellon University
                      4:  * All Rights Reserved.
                      5:  * 
                      6:  * Permission to use, copy, modify and distribute this software and its
                      7:  * documentation is hereby granted, provided that both the copyright
                      8:  * notice and this permission notice appear in all copies of the
                      9:  * software, derivative works or modified versions, and any portions
                     10:  * thereof, and that both notices appear in supporting documentation.
                     11:  * 
                     12:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     13:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     14:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     15:  * 
                     16:  * Carnegie Mellon requests users of this software to return to
                     17:  * 
                     18:  *  Software Distribution Coordinator  or  [email protected]
                     19:  *  School of Computer Science
                     20:  *  Carnegie Mellon University
                     21:  *  Pittsburgh PA 15213-3890
                     22:  * 
                     23:  * any improvements or extensions that they make and grant Carnegie Mellon
                     24:  * the rights to redistribute these changes.
                     25:  */
                     26: /*
                     27:  *  Here platform specific code to define sample_t & co
                     28:  *  [to cope with weird DMA engines], and other customs
                     29:  */
                     30: #ifdef FLAMINGO
                     31: #define splaudio       splbio
                     32: #define        sample_t        unsigned char   /* later */
                     33: #define        samples_to_chars        bcopy
                     34: #define        chars_to_samples        bcopy
                     35: /* Sparse space ! */
                     36: typedef struct {
                     37:        volatile unsigned long  cr;     /* command register (wo) */
                     38: /*#define ir cr                                /* interrupt register (ro) */
                     39:        volatile unsigned long  dr;     /* data register (rw) */
                     40:        volatile unsigned long  dsr1;   /* D-channel status register 1 (ro) */
                     41:        volatile unsigned long  der;    /* D-channel error register (ro) */
                     42:        volatile unsigned long  dctb;   /* D-channel transmit register (wo) */
                     43: /*#define dcrb dctb                    /* D-channel receive register (ro) */
                     44:        volatile unsigned long  bbtb;   /* Bb-channel transmit register (wo) */
                     45: /*#define bbrb bbtb                    /* Bb-channel receive register (ro) */
                     46:        volatile unsigned long  bctb;   /* Bc-channel transmit register (wo)*/
                     47: /*#define bcrb bctb                    /* Bc-channel receive register (ro) */
                     48:        volatile unsigned long  dsr2;   /* D-channel status register 2 (ro) */
                     49: } amd79c30_padded_regs_t;
                     50: 
                     51: /* give the chip 400ns in between accesses */
                     52: #define        read_reg(r,v)                           \
                     53:        { (v) = ((r) >> 8) & 0xff; delay(1); }
                     54: 
                     55: #define write_reg(r,v)                         \
                     56:        { (r) = (((v) & 0xff) << 8) |           \
                     57:                 0x200000000L; /*bytemask*/     \
                     58:                delay(1); wbflush();            \
                     59:        }
                     60: 
                     61: /* Write 16 bits of data from variable v to the data port of the audio chip */
                     62: #define        WAMD16(regs, v)                         \
                     63:        { write_reg((regs)->dr,v);              \
                     64:          write_reg((regs)->dr,v>>8); }
                     65: 
                     66: #define mb() wbflush()
                     67: 
                     68: #endif /* FLAMINGO */
                     69: 
                     70: 
                     71: #ifdef MAXINE
                     72: #define splaudio       splhigh
                     73: typedef struct {
                     74:        volatile unsigned char  cr;     /* command register (wo) */
                     75: /*#define ir cr                                /* interrupt register (ro) */
                     76:        char                            pad0[63];
                     77:        volatile unsigned char  dr;     /* data register (rw) */
                     78:        char                            pad1[63];
                     79:        volatile unsigned char  dsr1;   /* D-channel status register 1 (ro) */
                     80:        char                            pad2[63];
                     81:        volatile unsigned char  der;    /* D-channel error register (ro) */
                     82:        char                            pad3[63];
                     83:        volatile unsigned char  dctb;   /* D-channel transmit register (wo) */
                     84: /*#define dcrb dctb                    /* D-channel receive register (ro) */
                     85:        char                            pad4[63];
                     86:        volatile unsigned char  bbtb;   /* Bb-channel transmit register (wo) */
                     87: /*#define bbrb bbtb                    /* Bb-channel receive register (ro) */
                     88:        char                            pad5[63];
                     89:        volatile unsigned char  bctb;   /* Bc-channel transmit register (wo)*/
                     90: /*#define bcrb bctb                    /* Bc-channel receive register (ro) */
                     91:        char                            pad6[63];
                     92:        volatile unsigned char  dsr2;   /* D-channel status register 2 (ro) */
                     93:        char                            pad7[63];
                     94: } amd79c30_padded_regs_t;
                     95: 
                     96: /* give the chip 400ns in between accesses */
                     97: #define        read_reg(r,v)                           \
                     98:        { (v) = (r); delay(1); }
                     99: 
                    100: #define write_reg(r,v)                         \
                    101:        { (r) = (v); delay(1); wbflush(); }
                    102: 
                    103: /* Write 16 bits of data from variable v to the data port of the audio chip */
                    104: #define        WAMD16(regs, v)                         \
                    105:        { write_reg((regs)->dr,v);              \
                    106:          write_reg((regs)->dr,v>>8); }
                    107: 
                    108: #define mb()
                    109: 
                    110: #endif /* MAXINE */
                    111: 
                    112: 
                    113: #ifndef        sample_t
                    114: #define        sample_t        unsigned char
                    115: #define        samples_to_chars        bcopy
                    116: #define        chars_to_samples        bcopy
                    117: #endif
                    118: 
                    119: /*
                    120:  * More architecture-specific customizations
                    121:  */
                    122: #ifdef alpha
                    123: #define sample_rpt_int(x)      (((x)<<24)|((x)<<16)|((x)<<8)|((x)<<0))
                    124: #define sample_rpt_long(x)     ((sample_rpt_int(x)<<32)|sample_rpt_int(x))
                    125: #endif
                    126: 
                    127: #ifndef        sample_rpt_long
                    128: #define sample_rpt_long(x)     (((x)<<24)|((x)<<16)|((x)<<8)|((x)<<0))
                    129: #endif
                    130: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.