giorawinterrupt.c 1.2 KB
/**************************************************************************
 *									  *
 *		 Copyright (C) 1994, Silicon Graphics, Inc.		  *
 *									  *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright law.  They  may  not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *									  *
 **************************************************************************/

#include "osint.h"
#include "piint.h"
#include "rcp.h"

/*
 * Name: __osGIORawInterrupt
 * 
 * Description:
 *	Interrupt the Indy host with specified value
 *
 * Note:
 *	Only the low 6 bits are valid
 */
void
__osGIORawInterrupt(s32 value)
{
    register u32 stat;
	
    stat = IO_READ(PI_STATUS_REG);
    while (stat & (PI_STATUS_IO_BUSY | PI_STATUS_DMA_BUSY)) {
        stat = IO_READ(PI_STATUS_REG);
    } 

    IO_WRITE(GIO_GIO_INTR_REG,	value);

    stat = IO_READ(PI_STATUS_REG);
    while (stat & (PI_STATUS_IO_BUSY | PI_STATUS_DMA_BUSY)) {
        stat = IO_READ(PI_STATUS_REG);
    } 
}