2
* SDL - Simple DirectMedia Layer
3
* CELL BE Support for PS3 Framebuffer
4
* Copyright (C) 2008, 2009 International Business Machines Corporation
6
* This library is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU Lesser General Public License as published
8
* by the Free Software Foundation; either version 2.1 of the License, or
9
* (at your option) any later version.
11
* This library is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
21
* Martin Lowinski <lowinski [at] de [dot] ibm [ibm] com>
22
* Dirk Herrendoerfer <d.herrendoerfer [at] de [dot] ibm [dot] com>
23
* SPE code based on research by:
28
/* Common definitions/makros for SPUs */
38
#define DMA_WAIT_TAG(_tag) \
39
mfc_write_tag_mask(1<<(_tag)); \
40
mfc_read_tag_status_all();
42
/* SPU mailbox messages */
54
#define MAX_HDTV_WIDTH 1920
55
#define MAX_HDTV_HEIGHT 1080
56
/* One stride of HDTV */
57
#define BUFFER_SIZE 7680
59
/* fb_writer ppu/spu exchange parms */
60
struct fb_writer_parms_t {
63
uint32_t out_line_stride;
64
uint32_t in_line_stride;
65
uint32_t bounded_input_height;
66
uint32_t bounded_input_width;
67
uint32_t fb_pixel_size;
69
/* This padding is to fulfill the need for 16 byte alignment. On parm change, update! */
71
} __attribute__((aligned(128)));
73
/* yuv2rgb ppu/spu exchange parms */
74
struct yuv2rgb_parms_t {
81
unsigned int src_pixel_width;
82
unsigned int src_pixel_height;
84
/* This padding is to fulfill the need for 16 byte alignment. On parm change, update! */
85
char padding[128 - ((4 * sizeof(uint8_t *) + 2 * sizeof(unsigned int)) & 0x7F)];
86
} __attribute__((aligned(128)));
88
/* bilin_scaler ppu/spu exchange parms */
89
struct scale_parms_t {
96
unsigned int src_pixel_width;
97
unsigned int src_pixel_height;
99
unsigned int dst_pixel_width;
100
unsigned int dst_pixel_height;
102
/* This padding is to fulfill the need for 16 byte alignment. On parm change, update! */
103
char padding[128 - ((4 * sizeof(uint8_t *) + 4 * sizeof(unsigned int)) & 0x7F)];
104
} __attribute__((aligned(128)));
106
#endif /* _SPU_COMMON_H */