KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
fifo.h
Go to the documentation of this file.
1/* KallistiOS ##version##
2
3 fifo.h
4 Copyright (C) 2023 Andy Barajas
5
6*/
7
8/** \file dc/fifo.h
9 \brief Macros to assess FIFO status.
10 \ingroup system_fifo
11
12 This header provides a set of macros to facilitate checking
13 the status of various FIFOs on the system.
14
15 \author Andy Barajas
16*/
17
18#ifndef __DC_FIFO_H
19#define __DC_FIFO_H
20
21#include <sys/cdefs.h>
22__BEGIN_DECLS
23
24/** \defgroup system_fifo FIFO
25 \brief API for checking FIFO statuses
26 \ingroup system
27
28 @{
29*/
30
31/** \brief Address of the FIFO status register.
32 Accessing this value provides the current status of all FIFOs.
33
34*/
35#define FIFO_STATUS (*(vuint32 const *)0xa05f688c)
36
37/** \name FIFO Status Indicators
38
39 \note
40 To determine the empty status of a specific FIFO, AND the desired FIFO
41 status mask with the value returned by FIFO_STATUS.
42
43 If the resulting value is non-zero, the FIFO is not empty. Otherwise,
44 it is empty.
45
46 @{
47*/
48
49#define FIFO_AICA (1 << 0) /** \brief AICA FIFO status mask. */
50#define FIFO_BBA (1 << 1) /** \brief BBA FIFO status mask. */
51#define FIFO_EXT2 (1 << 2) /** \brief EXT2 FIFO status mask. */
52#define FIFO_EXTDEV (1 << 3) /** \brief EXTDEV FIFO status mask. */
53#define FIFO_G2 (1 << 4) /** \brief G2 FIFO status mask. */
54#define FIFO_SH4 (1 << 5) /** \brief SH4 FIFO status mask. */
55
56/** @} */
57
58/** @} */
59
60__END_DECLS
61
62#endif /* __DC_FIFO_H */
63