#ifndef _MBI_H_1#define _MBI_H_23#include "platform_info.h"45/**************************************************************************6* *7* Copyright (C) 1994, Silicon Graphics, Inc. *8* *9* These coded instructions, statements, and computer programs contain *10* unpublished proprietary information of Silicon Graphics, Inc., and *11* are protected by Federal copyright law. They may not be disclosed *12* to third parties or copied or duplicated in any form, in whole or *13* in part, without the prior written consent of Silicon Graphics, Inc. *14* *15**************************************************************************/1617/**************************************************************************18*19* $Revision: 1.136 $20* $Date: 1999/01/05 13:04:00 $21* $Source: /hosts/gate3/exdisk2/cvs/N64OS/Master/cvsmdev2/PR/include/mbi.h,v $22*23**************************************************************************/2425/*26* Header file for the Media Binary Interface27*28* NOTE: This file is included by the RSP microcode, so any C-specific29* constructs must be bracketed by #ifdef _LANGUAGE_C30*31*/323334/*35* the SHIFT macros are used to build display list commands, inserting36* bit-fields into a 32-bit word. They take a value, a shift amount,37* and a width.38*39* For the left shift, the lower bits of the value are masked,40* then shifted left.41*42* For the right shift, the value is shifted right, then the lower bits43* are masked.44*45* (NOTE: _SHIFTL(v, 0, 32) won't work, just use an assignment)46*47*/48#define _SHIFTL(v, s, w) \49((unsigned int) (((unsigned int)(v) & ((0x01 << (w)) - 1)) << (s)))50#define _SHIFTR(v, s, w) \51((unsigned int)(((unsigned int)(v) >> (s)) & ((0x01 << (w)) - 1)))5253#define _SHIFT _SHIFTL /* old, for compatibility only */5455#define G_ON (1)56#define G_OFF (0)5758/**************************************************************************59*60* Graphics Binary Interface61*62**************************************************************************/6364#include <PR/gbi.h>6566/**************************************************************************67*68* Audio Binary Interface69*70**************************************************************************/7172#include <PR/abi.h>7374/**************************************************************************75*76* Task list77*78**************************************************************************/7980#define M_GFXTASK 181#define M_AUDTASK 282#define M_VIDTASK 383#define M_HVQTASK 684#define M_HVQMTASK 78586/**************************************************************************87*88* Segment macros and definitions89*90**************************************************************************/9192#define NUM_SEGMENTS (16)93#define SEGMENT_OFFSET(a) ((unsigned int)(a) & 0x00ffffff)94#define SEGMENT_NUMBER(a) (((unsigned int)(a) << 4) >> 28)95#define SEGMENT_ADDR(num, off) (((num) << 24) + (off))9697#ifndef NULL98#define NULL 099#endif100101#endif /* !_MBI_H_ */102103104