File: awe_compat-fbsd.h

package info (click to toggle)
kernel-source-sparc-2.2.1 2.2.1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 62,800 kB
  • ctags: 188,320
  • sloc: ansic: 1,114,164; asm: 49,922; makefile: 8,272; sh: 1,831; perl: 1,584; tcl: 409; lisp: 218; cpp: 186; awk: 133; sed: 72
file content (173 lines) | stat: -rw-r--r-- 5,280 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*
 * sound/awe_compat.h
 *
 * Compat defines for the AWE32/SB32/AWE64 wave table synth driver.
 *   version 0.4.3; Nov. 1, 1998
 *
 * Copyright (C) 1996-1998 Takashi Iwai
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#ifndef AWE_COMPAT_H_DEF
#define AWE_COMPAT_H_DEF

/*================================================================
 * version check
 *================================================================*/

/* FreeBSD version check */
#include <i386/isa/sound/awe_config.h>

#define AWE_OBSOLETE_VOXWARE
#if __FreeBSD__ >= 2
#  include <osreldate.h>
#  if __FreeBSD_version >= 300000
#    undef AWE_OBSOLETE_VOXWARE
#  endif
#endif
#ifdef __linux__
#  include <linux/config.h>
#endif


/*================================================================
 * INCLUDE OTHER HEADER FILES
 *================================================================*/

/* reading configuration of sound driver */

#ifdef AWE_OBSOLETE_VOXWARE

#include <i386/isa/sound/sound_config.h>
#if defined(CONFIGURE_SOUNDCARD) && !defined(EXCLUDE_AWE32)
#define CONFIG_AWE32_SYNTH
#endif

#else /* AWE_OBSOLETE_VOXWARE */

#ifdef HAS_LOWLEVEL_H
#include "lowlevel.h"
#endif

#include <i386/isa/sound/sound_config.h>
#if defined(CONFIGURE_SOUNDCARD) && defined(CONFIG_AWE32)
#  define CONFIG_AWE32_SYNTH
#endif

#endif /* AWE_OBSOLETE_VOXWARE */


/*================================================================
 * include AWE header files
 *================================================================*/

#if defined(CONFIG_AWE32_SYNTH) || defined(CONFIG_AWE32_SYNTH_MODULE)

#include <i386/isa/sound/awe_hw.h>
#include <i386/isa/sound/awe_version.h>
#include <i386/isa/sound/awe_voice.h>

#ifdef AWE_HAS_GUS_COMPATIBILITY
/* include finetune table */
#ifdef AWE_OBSOLETE_VOXWARE
#  define SEQUENCER_C
#endif
#include <i386/isa/sound/tuning.h>
#include <machine/ultrasound.h>
#endif /* AWE_HAS_GUS_COMPATIBILITY */


/*----------------------------------------------------------------
 * compatibility macros for AWE32 driver
 *----------------------------------------------------------------*/

/* redefine following macros */
#undef IOCTL_IN
#undef IOCTL_OUT
#undef OUTW
#undef COPY_FROM_USER
#undef COPY_TO_USER
#undef GET_BYTE_FROM_USER
#undef GET_SHORT_FROM_USER
#undef IOCTL_TO_USER
  
/* inline is not checked yet.. maybe it'll work */
#define INLINE	/*inline*/

#define KERN_WARNING /**/

/*----------------------------------------------------------------
 * memory management for freebsd
 *----------------------------------------------------------------*/

/* i/o requests; nothing */
#define awe_check_port()	0	/* always false */
#define awe_request_region()	/* nothing */
#define awe_release_region()	/* nothing */

#define AWE_DYNAMIC_BUFFER

#define my_malloc_init(ptr)	/* nothing */
#define my_malloc_memptr()	0
#define my_malloc(size)		malloc(size, M_TEMP, M_WAITOK)
#define my_free(ptr)		if (ptr) {free(ptr, M_TEMP);}

#define INIT_TABLE(buffer,index,nums,type) {buffer=NULL; index=0;}

/*----------------------------------------------------------------
 * i/o interfaces for freebsd
 *----------------------------------------------------------------*/

/* according to linux rule; the arguments are swapped */
#define OUTW(data,addr)		outw(addr, data)

#define COPY_FROM_USER(target,source,offs,count) \
	uiomove(((caddr_t)(target)),(count),((struct uio *)(source)))
#define COPY_TO_USER(target,source,offs,count) \
	uiomove(((caddr_t)(source)),(count),((struct uio *)(target)))
#define GET_BYTE_FROM_USER(target,addr,offs) \
	uiomove(((char*)&(target)), 1, ((struct uio *)(addr)))
#define GET_SHORT_FROM_USER(target,addr,offs) \
	uiomove(((char*)&(target)), 2, ((struct uio *)(addr)))
#define IOCTL_TO_USER(target,offs,source,count) \
	memcpy(&((target)[offs]), (source), (count))
#define IO_WRITE_CHECK(cmd)	(cmd & IOC_IN)
#define IOCTL_IN(arg)		(*(int*)(arg))
#define IOCTL_OUT(arg,val)	(*(int*)(arg) = (val))
#define BZERO(target,len)	bzero((caddr_t)target, len)
#define MEMCPY(dst,src,len)	bcopy((caddr_t)src, (caddr_t)dst, len)

#ifndef AWE_OBSOLETE_VOXWARE
#  define printk printf
#  define RET_ERROR(err)		-err
#endif


/* old style device tables (not modulized) */
#define sound_alloc_synthdev() \
	(num_synths >= MAX_SYNTH_DEV ? -1 : num_synths++)
#define sound_alloc_mixerdev() \
	(num_mixers >= MAX_MIXER_DEV ? -1 : num_mixers++)
#define sound_alloc_mididev() \
	(num_midis >= MAX_MIXER_DEV ? -1 : num_midis++)
#define sound_unload_synthdev(dev)	/**/
#define sound_unload_mixerdev(dev)	/**/
#define sound_unload_mididev(dev)	/**/


#endif /* CONFIG_AWE32_SYNTH */

#endif /* AWE_COMPAT_H_DEF */