1 #include "dolSupport.h"
\r
2 #include "ProcessWrapper.h"
\r
7 unsigned write(void *port, void *buf, unsigned len, DOLProcess *process)
\r
9 Fifo *fifo = static_cast<Fifo *>(port);
\r
10 char *str = static_cast<char*>(buf);
\r
11 fifo->write((void*)str, len);
\r
19 unsigned read(void *port, void *buf, unsigned len, DOLProcess *process) {
\r
20 Fifo *fifo = static_cast<Fifo *>(port);
\r
21 char *str = static_cast<char*>(buf);
\r
22 fifo->read((void*)str, len);
\r
30 int wtest(void *port, unsigned len, DOLProcess *process) {
\r
31 Fifo *fifo = static_cast<Fifo *>(port);
\r
32 return (fifo->unused() >= len) ? 1 : 0;
\r
39 int rtest(void *port, unsigned len, DOLProcess *process) {
\r
40 Fifo *fifo = static_cast<Fifo *>(port);
\r
41 return (fifo->used() >= len) ? 1 : 0;
\r
48 unsigned reserve(void* fifo, void** destination, unsigned len, DOLProcess* p) {
\r
49 return ((WindowedFifo*)fifo)->reserve(destination, len);
\r
55 void release(void* fifo, DOLProcess* p) {
\r
56 ((WindowedFifo*)fifo)->release();
\r
62 unsigned capture(void* fifo, void** destination, unsigned len, DOLProcess* p) {
\r
63 return ((WindowedFifo*)fifo)->capture(destination, len);
\r
69 void consume(void* fifo, DOLProcess* p) {
\r
70 ((WindowedFifo*)fifo)->consume();
\r
77 void DOL_detach(DOLProcess* p) {
\r
78 static_cast<ProcessWrapper *>(p->wptr)->detach();
\r
85 void createPort(void** port,
\r
87 int number_of_indices,
\r
88 int index0, int range0) {
\r
89 *port = (void**)((void**)base)[index0];
\r
96 void createPort(void** port,
\r
98 int number_of_indices,
\r
99 int index0, int range0,
\r
100 int index1, int range1) {
\r
101 *port = (void**)((void**)base)[index0 * range1 + index1];
\r
108 void createPort(void** port,
\r
110 int number_of_indices,
\r
111 int index0, int range0,
\r
112 int index1, int range1,
\r
113 int index2, int range2) {
\r
114 *port = (void**)((void**)base)[index0 * range1 * range2
\r
115 + index1 * range2 + index2];
\r
122 void createPort(void** port,
\r
124 int number_of_indices,
\r
125 int index0, int range0,
\r
126 int index1, int range1,
\r
127 int index2, int range2,
\r
128 int index3, int range3) {
\r
129 *port = (void**)((void**)base)[index0 * range1 * range2 * range3
\r
130 + index1 * range2 * range3
\r