summaryrefslogtreecommitdiff
path: root/libs/dolphin/src/am/__am.h
blob: 7907a627c973e43419612b8e1fbb80a4edcb949f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef _DOLPHIN_AM_INTERNAL_H_
#define _DOLPHIN_AM_INTERNAL_H_

#include <dolphin/am.h>
#include <dolphin/dvd.h>
#include <dolphin/ar.h>

#ifdef __cplusplus
extern "C" {
#endif

#define AM_STACK_ENTRIES 16

typedef struct {
    DVDFileInfo file_handle;
    ARQRequest arq_handle;
    AMCallback callback;
    char* path;
    void* buffer;
    volatile u32 file_length;
    volatile u32 curr_read_offset;
    volatile u32 read_length;
    volatile u32 aram_start_addr;
    volatile u32 curr_aram_offset;
    volatile int poll_flag;
} AMReadInfo;

extern AMReadInfo __AMReadInfo[AM_STACK_ENTRIES];

static void __AM_dvd_callback(s32 result, DVDFileInfo* handle);
static void __AM_arq_callback(u32 task);
static void __AM_arq_poll_callback(u32 task);
u32 __AMPushBuffered(char* path, void* buffer, u32 buffer_size, AMCallback callback, int async_flag);

#ifdef __cplusplus
}
#endif

#endif