1 // Copyright 2008 Dolphin Emulator Project
2 // Licensed under GPLv2+
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include "Common/CommonTypes.h"
8 
9 class PointerWrap;
10 
11 namespace GPFifo
12 {
13 enum
14 {
15   GATHER_PIPE_SIZE = 32
16 };
17 
18 // Init
19 void Init();
20 void DoState(PointerWrap& p);
21 
22 // ResetGatherPipe
23 void ResetGatherPipe();
24 void UpdateGatherPipe();
25 void CheckGatherPipe();
26 void FastCheckGatherPipe();
27 
28 bool IsEmpty();
29 
30 // Write
31 void Write8(u8 value);
32 void Write16(u16 value);
33 void Write32(u32 value);
34 void Write64(u64 value);
35 
36 // These expect pre-byteswapped values
37 // Also there's an upper limit of about 512 per batch
38 // Most likely these should be inlined into JIT instead
39 void FastWrite8(u8 value);
40 void FastWrite16(u16 value);
41 void FastWrite32(u32 value);
42 void FastWrite64(u64 value);
43 }  // namespace GPFifo
44