diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
commit | 1058def8e7827e56ce4a70afb4aeacb5dc44148f (patch) | |
tree | 4495d23e7b54ab5700e3839081e797c1eafe0db9 /kernel/framework/include/internal.h | |
download | oss4-upstream.tar.gz |
Imported Upstream version 4.2-build2006upstream/4.2-build2006upstream
Diffstat (limited to 'kernel/framework/include/internal.h')
-rw-r--r-- | kernel/framework/include/internal.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/kernel/framework/include/internal.h b/kernel/framework/include/internal.h new file mode 100644 index 0000000..66ca04e --- /dev/null +++ b/kernel/framework/include/internal.h @@ -0,0 +1,164 @@ +/* + * Purpose: Definitions for internal use by OSS + * + * Definitions for private use by the ossctl program. Everything defined + * in this file is likely to change without notice between OSS versions. + * + * Note that thse ioctl calls are not for public use. They cannot be used by + * applications that are not part of the official OSS distribution. + * + */ +/* + * + * This file is part of Open Sound System. + * + * Copyright (C) 4Front Technologies 1996-2008. + * + * This this source file is released under GPL v2 license (no other versions). + * See the COPYING file included in the main directory of this source + * distribution for the license terms and conditions. + * + */ + +#ifndef _INTERNAL_H_ +#define _INTERNAL_H_ + +/* + * This file defines ioctl codes 200 to 255 in the 'X' block. These codes may be + * reused for internal purposes by other OSSv4 implementations that don't use + * this file. Implementations based on the 'stock' OSS code can add their + * private use ioctl codes in this file. However in such case it's recommended + * to notify the OSS development community (4Front Technologies) so that the + * code can be marked as reserved in the official sources. + * + */ + +#define OSS_MAXERR 200 +typedef struct +{ + int nerrors; + int errors[OSS_MAXERR]; + int error_parms[OSS_MAXERR]; +} +oss_error_info; +#define BOOTERR_BAD_PCIIRQ 1 +#define BOOTERR_AC97CODEC 2 +#define BOOTERR_IRQSTORM 3 +#define BOOTERR_BIGMEM 4 + +extern oss_error_info oss_booterrors; + +#if 0 +typedef struct +{ + int mode; /* OPEN_READ and/or OPEN_WRITE */ + oss_devlist_t devlist; +} +oss_reroute_t; +#endif + +typedef struct +{ +/* + * Private structure for renumbering legacy dsp, mixer and MIDI devices + */ + int n; + short map[HARD_MAX_AUDIO_DEVFILES]; +} oss_renumber_t; +/* + * Some internal use only ioctl calls ('X', 200-255) + */ +#if 0 +#define OSSCTL_GET_REROUTE __SIOWR('X', 200, oss_reroute_t) +#define OSSCTL_SET_REROUTE __SIOW ('X', 200, oss_reroute_t) +#endif + +#ifdef APPLIST_SUPPORT +/* + * Application redirection list for audio.c. + */ +typedef struct +{ + char name[32 + 1]; /* Command name (such as xmms) */ + int mode; /* OPEN_READ|OPEN_WRITE */ + int dev; /* "Target" audio device number */ + int open_flags; /* Open flags to be passed to oss_audio_open_engine */ +} app_routing_t; + +#define APPLIST_SIZE 64 +extern app_routing_t oss_applist[APPLIST_SIZE]; +extern int oss_applist_size; + +#define OSSCTL_RESET_APPLIST __SIO ('X', 201) +#define OSSCTL_ADD_APPLIST __SIOW ('X', 201, app_routing_t) +#endif + +/* + * Legacy device file numbering calls + */ +#define OSSCTL_RENUM_AUDIODEVS __SIOW ('X', 202, oss_renumber_t) +#define OSSCTL_RENUM_MIXERDEVS __SIOW ('X', 203, oss_renumber_t) +#define OSSCTL_RENUM_MIDIDEVS __SIOW ('X', 204, oss_renumber_t) + +/* + * vmixctl related ioctl calls + */ + +typedef struct +{ + int masterdev; + int inputdev; + + int attach_flags; + +/* + * 0x000000xx reserved + * for #clients to prealloc + */ +#define VMIX_INSTALL_NOPREALLOC 0x00000100 +#define VMIX_INSTALL_NOINPUT 0x00000200 +#define VMIX_INSTALL_VISIBLE 0x00000400 +#define VMIX_INSTALL_MANUAL 0x00000800 /* By vmxctl */ +} vmixctl_attach_t; + +typedef struct +{ + int masterdev; + int rate; +} vmixctl_rate_t; + +typedef int oss_chninfo[128]; +typedef struct +{ + int masterdev; + oss_chninfo map; +} vmixctl_map_t; + +#define VMIXCTL_ATTACH __SIOW ('X', 220, vmixctl_attach_t) +#define VMIXCTL_DETACH __SIOW ('X', 221, vmixctl_attach_t) +#define VMIXCTL_RATE __SIOW ('X', 222, vmixctl_rate_t) +#define VMIXCTL_REMAP __SIOW ('X', 223, vmixctl_map_t) + +/* + * FreeBSD compatibility ioctl + */ +#define FREEBSD_GETBLKSIZE __SIOR ('P', 4, int) + +#ifdef DO_TIMINGS +#define DFLAG_ALL 0x00000001 +#define DFLAG_PROFILE 0x00000002 +/* + * Time counters + */ +#define DF_IDDLE 0 +#define DF_WRITE 1 +#define DF_READ 2 +#define DF_INTERRUPT 3 +#define DF_SLEEPWRITE 4 +#define DF_SLEEPREAD 5 +#define DF_SRCWRITE 6 +#define DF_SRCREAD 7 +#define DF_NRBINS 8 +#endif + +#endif |