view vidix/sysdep/AsmMacros_arm32.h @ 24892:80180dc13565

Change decode_audio() interface Rewrite decode_audio to better deal with filters that handle input in large blocks. It now always places output in sh_audio->a_out_buffer (which was always given as a parameter before) and reallocates the buffer if needed. After the changes filters can return arbitrarily large blocks of data without some of it being lost. The new version also allows simplifying some code.
author uau
date Thu, 01 Nov 2007 06:52:19 +0000
parents 88bed2131f19
children 9c4ad35fabc5
line wrap: on
line source

/*
   This file is based on:
   $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/util/AsmMacros.h,v 1.1 2001/11/16 21:13:34 tsi Exp $
   Modified for readability by Nick Kurshev
*/

#ifndef ASMMACROS_ARM32_H
#define ASMMACROS_ARM32_H
unsigned int IOPortBase;  /* Memory mapped I/O port area */

static __inline__ void outb(short port,char val)
{
	 if ((unsigned short)port >= 0x400) return;
	*(volatile unsigned char*)(((unsigned short)(port))+IOPortBase) = val;
}

static __inline__ void outw(short port,short val)
{
	 if ((unsigned short)port >= 0x400) return;
	*(volatile unsigned short*)(((unsigned short)(port))+IOPortBase) = val;
}

static __inline__ void outl(short port,int val)
{
	 if ((unsigned short)port >= 0x400) return;
	*(volatile unsigned long*)(((unsigned short)(port))+IOPortBase) = val;
}

static __inline__ unsigned int inb(short port)
{
	 if ((unsigned short)port >= 0x400) return((unsigned int)-1);
	return(*(volatile unsigned char*)(((unsigned short)(port))+IOPortBase));
}

static __inline__ unsigned int inw(short port)
{
	 if ((unsigned short)port >= 0x400) return((unsigned int)-1);
	return(*(volatile unsigned short*)(((unsigned short)(port))+IOPortBase));
}

static __inline__ unsigned int inl(short port)
{
	 if ((unsigned short)port >= 0x400) return((unsigned int)-1);
	return(*(volatile unsigned long*)(((unsigned short)(port))+IOPortBase));
}

#define intr_disable()
#define intr_enable()

#endif /* ASMMACROS_ARM32_H */