From 6f60a05179838f69e095cd6425a5f1ac8b0bd2e2 Mon Sep 17 00:00:00 2001 From: "jinhyung.jo" Date: Wed, 4 Nov 2015 18:25:17 +0900 Subject: [PATCH] YaGL: Patches for the 64bit memory addressing Tizen 3.0 supports a 64bit guest. However current yagl is implemented by assumed to use the 32bit address. So modify the address related parts. I will also update the yagl platform sources. Change-Id: I5f56915fa68f8170d81c96e8f426f60ddc9d98e5 Signed-off-by: Jinhyung Jo --- hw/yagl/yagl_apis/gles/yagl_gles_calls.c | 76 +++++++++---------- hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c | 48 ++++++------ hw/yagl/yagl_apis/gles/yagl_host_gles_calls.h | 26 +++---- hw/yagl/yagl_device.c | 9 +-- hw/yagl/yagl_server.c | 4 +- hw/yagl/yagl_transport.c | 4 +- hw/yagl/yagl_transport.h | 11 ++- hw/yagl/yagl_transport_gl.h | 5 ++ 8 files changed, 97 insertions(+), 86 deletions(-) diff --git a/hw/yagl/yagl_apis/gles/yagl_gles_calls.c b/hw/yagl/yagl_apis/gles/yagl_gles_calls.c index bc7d978fb6..97dcff6c46 100644 --- a/hw/yagl/yagl_apis/gles/yagl_gles_calls.c +++ b/hw/yagl/yagl_apis/gles/yagl_gles_calls.c @@ -110,15 +110,15 @@ static void yagl_func_glReadPixelsOffset(struct yagl_transport *t) GLsizei height; GLenum format; GLenum type; - GLsizei pixels; + uintptr_t pixels; x = yagl_transport_get_out_GLint(t); y = yagl_transport_get_out_GLint(t); width = yagl_transport_get_out_GLsizei(t); height = yagl_transport_get_out_GLsizei(t); format = yagl_transport_get_out_GLenum(t); type = yagl_transport_get_out_GLenum(t); - pixels = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT7(glReadPixelsOffset, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, x, y, width, height, format, type, pixels); + pixels = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT7(glReadPixelsOffset, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, uintptr_t, x, y, width, height, format, type, pixels); (void)yagl_host_glReadPixelsOffset(x, y, width, height, format, type, pixels); YAGL_LOG_FUNC_EXIT(NULL); } @@ -269,14 +269,14 @@ static void yagl_func_glVertexAttribPointerOffset(struct yagl_transport *t) GLenum type; GLboolean normalized; GLsizei stride; - GLsizei offset; + uintptr_t offset; indx = yagl_transport_get_out_GLuint(t); size = yagl_transport_get_out_GLint(t); type = yagl_transport_get_out_GLenum(t); normalized = yagl_transport_get_out_GLboolean(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT6(glVertexAttribPointerOffset, GLuint, GLint, GLenum, GLboolean, GLsizei, GLsizei, indx, size, type, normalized, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT6(glVertexAttribPointerOffset, GLuint, GLint, GLenum, GLboolean, GLsizei, uintptr_t, indx, size, type, normalized, stride, offset); (void)yagl_host_glVertexAttribPointerOffset(indx, size, type, normalized, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -310,12 +310,12 @@ static void yagl_func_glVertexPointerOffset(struct yagl_transport *t) GLint size; GLenum type; GLsizei stride; - GLsizei offset; + uintptr_t offset; size = yagl_transport_get_out_GLint(t); type = yagl_transport_get_out_GLenum(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT4(glVertexPointerOffset, GLint, GLenum, GLsizei, GLsizei, size, type, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT4(glVertexPointerOffset, GLint, GLenum, GLsizei, uintptr_t, size, type, stride, offset); (void)yagl_host_glVertexPointerOffset(size, type, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -346,11 +346,11 @@ static void yagl_func_glNormalPointerOffset(struct yagl_transport *t) { GLenum type; GLsizei stride; - GLsizei offset; + uintptr_t offset; type = yagl_transport_get_out_GLenum(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT3(glNormalPointerOffset, GLenum, GLsizei, GLsizei, type, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT3(glNormalPointerOffset, GLenum, GLsizei, uintptr_t, type, stride, offset); (void)yagl_host_glNormalPointerOffset(type, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -384,12 +384,12 @@ static void yagl_func_glColorPointerOffset(struct yagl_transport *t) GLint size; GLenum type; GLsizei stride; - GLsizei offset; + uintptr_t offset; size = yagl_transport_get_out_GLint(t); type = yagl_transport_get_out_GLenum(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT4(glColorPointerOffset, GLint, GLenum, GLsizei, GLsizei, size, type, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT4(glColorPointerOffset, GLint, GLenum, GLsizei, uintptr_t, size, type, stride, offset); (void)yagl_host_glColorPointerOffset(size, type, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -425,12 +425,12 @@ static void yagl_func_glTexCoordPointerOffset(struct yagl_transport *t) GLint size; GLenum type; GLsizei stride; - GLsizei offset; + uintptr_t offset; size = yagl_transport_get_out_GLint(t); type = yagl_transport_get_out_GLenum(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT4(glTexCoordPointerOffset, GLint, GLenum, GLsizei, GLsizei, size, type, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT4(glTexCoordPointerOffset, GLint, GLenum, GLsizei, uintptr_t, size, type, stride, offset); (void)yagl_host_glTexCoordPointerOffset(size, type, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -505,13 +505,13 @@ static void yagl_func_glVertexAttribIPointerOffset(struct yagl_transport *t) GLint size; GLenum type; GLsizei stride; - GLsizei offset; + uintptr_t offset; index = yagl_transport_get_out_GLuint(t); size = yagl_transport_get_out_GLint(t); type = yagl_transport_get_out_GLenum(t); stride = yagl_transport_get_out_GLsizei(t); - offset = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT5(glVertexAttribIPointerOffset, GLuint, GLint, GLenum, GLsizei, GLsizei, index, size, type, stride, offset); + offset = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT5(glVertexAttribIPointerOffset, GLuint, GLint, GLenum, GLsizei, uintptr_t, index, size, type, stride, offset); (void)yagl_host_glVertexAttribIPointerOffset(index, size, type, stride, offset); YAGL_LOG_FUNC_EXIT(NULL); } @@ -640,15 +640,15 @@ static void yagl_func_glCopyBufferSubData(struct yagl_transport *t) { GLenum readTarget; GLenum writeTarget; - GLint readOffset; - GLint writeOffset; + GLintptr readOffset; + GLintptr writeOffset; GLsizei size; readTarget = yagl_transport_get_out_GLenum(t); writeTarget = yagl_transport_get_out_GLenum(t); - readOffset = yagl_transport_get_out_GLint(t); - writeOffset = yagl_transport_get_out_GLint(t); + readOffset = yagl_transport_get_out_GLintptr(t); + writeOffset = yagl_transport_get_out_GLintptr(t); size = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT5(glCopyBufferSubData, GLenum, GLenum, GLint, GLint, GLsizei, readTarget, writeTarget, readOffset, writeOffset, size); + YAGL_LOG_FUNC_ENTER_SPLIT5(glCopyBufferSubData, GLenum, GLenum, GLintptr, GLintptr, GLsizei, readTarget, writeTarget, readOffset, writeOffset, size); (void)yagl_host_glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size); YAGL_LOG_FUNC_EXIT(NULL); } @@ -818,7 +818,7 @@ static void yagl_func_glTexImage2DOffset(struct yagl_transport *t) GLint border; GLenum format; GLenum type; - GLsizei pixels; + uintptr_t pixels; target = yagl_transport_get_out_GLenum(t); level = yagl_transport_get_out_GLint(t); internalformat = yagl_transport_get_out_GLint(t); @@ -827,8 +827,8 @@ static void yagl_func_glTexImage2DOffset(struct yagl_transport *t) border = yagl_transport_get_out_GLint(t); format = yagl_transport_get_out_GLenum(t); type = yagl_transport_get_out_GLenum(t); - pixels = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT9(glTexImage2DOffset, GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, GLsizei, target, level, internalformat, width, height, border, format, type, pixels); + pixels = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT9(glTexImage2DOffset, GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, uintptr_t, target, level, internalformat, width, height, border, format, type, pixels); (void)yagl_host_glTexImage2DOffset(target, level, internalformat, width, height, border, format, type, pixels); YAGL_LOG_FUNC_EXIT(NULL); } @@ -941,7 +941,7 @@ static void yagl_func_glTexSubImage2DOffset(struct yagl_transport *t) GLsizei height; GLenum format; GLenum type; - GLsizei pixels; + uintptr_t pixels; target = yagl_transport_get_out_GLenum(t); level = yagl_transport_get_out_GLint(t); xoffset = yagl_transport_get_out_GLint(t); @@ -950,8 +950,8 @@ static void yagl_func_glTexSubImage2DOffset(struct yagl_transport *t) height = yagl_transport_get_out_GLsizei(t); format = yagl_transport_get_out_GLenum(t); type = yagl_transport_get_out_GLenum(t); - pixels = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT9(glTexSubImage2DOffset, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, target, level, xoffset, yoffset, width, height, format, type, pixels); + pixels = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT9(glTexSubImage2DOffset, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, uintptr_t, target, level, xoffset, yoffset, width, height, format, type, pixels); (void)yagl_host_glTexSubImage2DOffset(target, level, xoffset, yoffset, width, height, format, type, pixels); YAGL_LOG_FUNC_EXIT(NULL); } @@ -1137,7 +1137,7 @@ static void yagl_func_glTexImage3DOffset(struct yagl_transport *t) GLint border; GLenum format; GLenum type; - GLsizei pixels; + uintptr_t pixels; target = yagl_transport_get_out_GLenum(t); level = yagl_transport_get_out_GLint(t); internalformat = yagl_transport_get_out_GLint(t); @@ -1147,8 +1147,8 @@ static void yagl_func_glTexImage3DOffset(struct yagl_transport *t) border = yagl_transport_get_out_GLint(t); format = yagl_transport_get_out_GLenum(t); type = yagl_transport_get_out_GLenum(t); - pixels = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT10(glTexImage3DOffset, GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLsizei, target, level, internalformat, width, height, depth, border, format, type, pixels); + pixels = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT10(glTexImage3DOffset, GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, uintptr_t, target, level, internalformat, width, height, depth, border, format, type, pixels); (void)yagl_host_glTexImage3DOffset(target, level, internalformat, width, height, depth, border, format, type, pixels); YAGL_LOG_FUNC_EXIT(NULL); } @@ -1201,7 +1201,7 @@ static void yagl_func_glTexSubImage3DOffset(struct yagl_transport *t) GLsizei depth; GLenum format; GLenum type; - GLsizei pixels; + uintptr_t pixels; target = yagl_transport_get_out_GLenum(t); level = yagl_transport_get_out_GLint(t); xoffset = yagl_transport_get_out_GLint(t); @@ -1212,8 +1212,8 @@ static void yagl_func_glTexSubImage3DOffset(struct yagl_transport *t) depth = yagl_transport_get_out_GLsizei(t); format = yagl_transport_get_out_GLenum(t); type = yagl_transport_get_out_GLenum(t); - pixels = yagl_transport_get_out_GLsizei(t); - YAGL_LOG_FUNC_ENTER_SPLIT11(glTexSubImage3DOffset, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLsizei, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + pixels = yagl_transport_get_out_uintptr_t(t); + YAGL_LOG_FUNC_ENTER_SPLIT11(glTexSubImage3DOffset, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, uintptr_t, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); (void)yagl_host_glTexSubImage3DOffset(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); YAGL_LOG_FUNC_EXIT(NULL); } diff --git a/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c b/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c index 9fc94396cf..d6eae0ca7d 100644 --- a/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c +++ b/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.c @@ -609,7 +609,7 @@ void yagl_host_glReadPixelsOffset(GLint x, GLsizei height, GLenum format, GLenum type, - GLsizei pixels) + uintptr_t pixels) { gles_api_ts->driver->ReadPixels(x, y, @@ -617,7 +617,7 @@ void yagl_host_glReadPixelsOffset(GLint x, height, format, type, - (GLvoid*)(uintptr_t)pixels); + (GLvoid*)pixels); } void yagl_host_glDrawArraysInstanced(GLenum mode, @@ -722,11 +722,11 @@ void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLenum type, GLboolean normalized, GLsizei stride, - GLsizei offset) + uintptr_t offset) { gles_api_ts->driver->VertexAttribPointer(indx, size, type, normalized, stride, - (const GLvoid*)(uintptr_t)offset); + (const GLvoid*)offset); } void yagl_host_glVertexPointerData(GLint size, @@ -747,9 +747,9 @@ void yagl_host_glVertexPointerData(GLint size, void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset) + uintptr_t offset) { - gles_api_ts->driver->VertexPointer(size, type, stride, (const GLvoid*)(uintptr_t)offset); + gles_api_ts->driver->VertexPointer(size, type, stride, (const GLvoid*)offset); } void yagl_host_glNormalPointerData(GLenum type, @@ -768,9 +768,9 @@ void yagl_host_glNormalPointerData(GLenum type, void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, - GLsizei offset) + uintptr_t offset) { - gles_api_ts->driver->NormalPointer(type, stride, (const GLvoid*)(uintptr_t)offset); + gles_api_ts->driver->NormalPointer(type, stride, (const GLvoid*)offset); } void yagl_host_glColorPointerData(GLint size, @@ -791,9 +791,9 @@ void yagl_host_glColorPointerData(GLint size, void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset) + uintptr_t offset) { - gles_api_ts->driver->ColorPointer(size, type, stride, (const GLvoid*)(uintptr_t)offset); + gles_api_ts->driver->ColorPointer(size, type, stride, (const GLvoid*)offset); } void yagl_host_glTexCoordPointerData(GLint tex_id, @@ -815,9 +815,9 @@ void yagl_host_glTexCoordPointerData(GLint tex_id, void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset) + uintptr_t offset) { - gles_api_ts->driver->TexCoordPointer(size, type, stride, (const GLvoid*)(uintptr_t)offset); + gles_api_ts->driver->TexCoordPointer(size, type, stride, (const GLvoid*)offset); } void yagl_host_glDisableClientState(GLenum array) @@ -855,11 +855,11 @@ void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, - GLsizei offset) + uintptr_t offset) { gles_api_ts->driver->VertexAttribIPointer(index, size, type, stride, - (const GLvoid*)(uintptr_t)offset); + (const GLvoid*)offset); } void yagl_host_glGenBuffers(const GLuint *buffers, int32_t buffers_count) @@ -989,8 +989,8 @@ out1: void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, - GLint readOffset, - GLint writeOffset, + GLintptr readOffset, + GLintptr writeOffset, GLsizei size) { gles_api_ts->driver->CopyBufferSubData(readTarget, writeTarget, @@ -1128,7 +1128,7 @@ void yagl_host_glTexImage2DOffset(GLenum target, GLint border, GLenum format, GLenum type, - GLsizei pixels) + uintptr_t pixels) { gles_api_ts->driver->TexImage2D(target, level, @@ -1138,7 +1138,7 @@ void yagl_host_glTexImage2DOffset(GLenum target, border, format, type, - (const GLvoid*)(uintptr_t)pixels); + (const GLvoid*)pixels); } void yagl_host_glTexParameterf(GLenum target, @@ -1243,7 +1243,7 @@ void yagl_host_glTexSubImage2DOffset(GLenum target, GLsizei height, GLenum format, GLenum type, - GLsizei pixels) + uintptr_t pixels) { GLint row_length; @@ -1274,7 +1274,7 @@ void yagl_host_glTexSubImage2DOffset(GLenum target, height, format, type, - (const GLvoid*)(uintptr_t)pixels); + (const GLvoid*)pixels); if (format == GL_ALPHA) { gles_api_ts->driver->PixelStorei(GL_UNPACK_ROW_LENGTH, row_length); @@ -1371,7 +1371,7 @@ void yagl_host_glTexImage3DOffset(GLenum target, GLint border, GLenum format, GLenum type, - GLsizei pixels) + uintptr_t pixels) { gles_api_ts->driver->TexImage3D(target, level, @@ -1382,7 +1382,7 @@ void yagl_host_glTexImage3DOffset(GLenum target, border, format, type, - (const void*)(uintptr_t)pixels); + (const void*)pixels); } void yagl_host_glTexSubImage3DData(GLenum target, @@ -1420,7 +1420,7 @@ void yagl_host_glTexSubImage3DOffset(GLenum target, GLsizei depth, GLenum format, GLenum type, - GLsizei pixels) + uintptr_t pixels) { gles_api_ts->driver->TexSubImage3D(target, level, @@ -1432,7 +1432,7 @@ void yagl_host_glTexSubImage3DOffset(GLenum target, depth, format, type, - (const void*)(uintptr_t)pixels); + (const void*)pixels); } void yagl_host_glCopyTexSubImage3D(GLenum target, diff --git a/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.h b/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.h index 81484443ba..cc87ee57a4 100644 --- a/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.h +++ b/hw/yagl/yagl_apis/gles/yagl_host_gles_calls.h @@ -55,7 +55,7 @@ void yagl_host_glReadPixelsOffset(GLint x, GLsizei height, GLenum format, GLenum type, - GLsizei pixels); + uintptr_t pixels); void yagl_host_glDrawArraysInstanced(GLenum mode, GLint start, GLsizei count, @@ -87,7 +87,7 @@ void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLenum type, GLboolean normalized, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glVertexPointerData(GLint size, GLenum type, GLsizei stride, @@ -96,14 +96,14 @@ void yagl_host_glVertexPointerData(GLint size, void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glNormalPointerData(GLenum type, GLsizei stride, GLint first, const GLvoid *data, int32_t data_count); void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glColorPointerData(GLint size, GLenum type, GLsizei stride, @@ -112,7 +112,7 @@ void yagl_host_glColorPointerData(GLint size, void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glTexCoordPointerData(GLint tex_id, GLint size, GLenum type, @@ -122,7 +122,7 @@ void yagl_host_glTexCoordPointerData(GLint tex_id, void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glDisableClientState(GLenum array); void yagl_host_glEnableClientState(GLenum array); void yagl_host_glVertexAttribDivisor(GLuint index, @@ -137,7 +137,7 @@ void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, - GLsizei offset); + uintptr_t offset); void yagl_host_glGenBuffers(const GLuint *buffers, int32_t buffers_count); void yagl_host_glBindBuffer(GLenum target, GLuint buffer); @@ -160,8 +160,8 @@ void yagl_host_glMapBuffer(GLuint buffer, GLvoid *data, int32_t data_maxcount, int32_t *data_count); void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, - GLint readOffset, - GLint writeOffset, + GLintptr readOffset, + GLintptr writeOffset, GLsizei size); void yagl_host_glGenTextures(const GLuint *textures, int32_t textures_count); void yagl_host_glBindTexture(GLenum target, @@ -206,7 +206,7 @@ void yagl_host_glTexImage2DOffset(GLenum target, GLint border, GLenum format, GLenum type, - GLsizei pixels); + uintptr_t pixels); void yagl_host_glTexParameterf(GLenum target, GLenum pname, GLfloat param); @@ -236,7 +236,7 @@ void yagl_host_glTexSubImage2DOffset(GLenum target, GLsizei height, GLenum format, GLenum type, - GLsizei pixels); + uintptr_t pixels); void yagl_host_glClientActiveTexture(GLenum texture); void yagl_host_glTexEnvi(GLenum target, GLenum pname, @@ -280,7 +280,7 @@ void yagl_host_glTexImage3DOffset(GLenum target, GLint border, GLenum format, GLenum type, - GLsizei pixels); + uintptr_t pixels); void yagl_host_glTexSubImage3DData(GLenum target, GLint level, GLint xoffset, @@ -302,7 +302,7 @@ void yagl_host_glTexSubImage3DOffset(GLenum target, GLsizei depth, GLenum format, GLenum type, - GLsizei pixels); + uintptr_t pixels); void yagl_host_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, diff --git a/hw/yagl/yagl_device.c b/hw/yagl/yagl_device.c index a2a3b50c96..131c9a3e19 100644 --- a/hw/yagl/yagl_device.c +++ b/hw/yagl/yagl_device.c @@ -88,9 +88,8 @@ static void yagl_device_operate(YaGLState *s, int user_index, hwaddr buff_pa) uint8_t *buff = NULL; YAGL_LOG_FUNC_ENTER(yagl_device_operate, - "user_index = %d, buff_pa = 0x%X", - user_index, - (uint32_t)buff_pa); + "user_index = %d, buff_pa = %" PRIx64, + user_index, buff_pa); if (!buff_pa && !s->users[user_index].activated) { YAGL_LOG_CRITICAL("user %d is not activated", user_index); @@ -101,9 +100,9 @@ static void yagl_device_operate(YaGLState *s, int user_index, hwaddr buff_pa) buff = cpu_physical_memory_map(buff_pa, &buff_len, false); if (!buff || (buff_len != TARGET_PAGE_SIZE)) { - YAGL_LOG_CRITICAL("cpu_physical_memory_map(read) failed for user %d, buff_pa = 0x%X", + YAGL_LOG_CRITICAL("cpu_physical_memory_map(read) failed for user %d, buff_pa = %" PRIx64, user_index, - (uint32_t)buff_pa); + buff_pa); goto out; } diff --git a/hw/yagl/yagl_server.c b/hw/yagl/yagl_server.c index 77c9e62c90..b2bdcf65a4 100644 --- a/hw/yagl/yagl_server.c +++ b/hw/yagl/yagl_server.c @@ -327,8 +327,8 @@ void yagl_server_dispatch_update(struct yagl_server_state *ss, pages[i] = cpu_physical_memory_map(page_pa, &len, false); if (!pages[i] || (len != TARGET_PAGE_SIZE)) { - YAGL_LOG_CRITICAL("cpu_physical_memory_map(read) failed for page_pa = 0x%X", - (uint32_t)page_pa); + YAGL_LOG_CRITICAL("cpu_physical_memory_map(read) failed for page_pa = %" PRIx64, + page_pa); goto fail; } } diff --git a/hw/yagl/yagl_transport.c b/hw/yagl/yagl_transport.c index 00919878d9..2e84264efa 100644 --- a/hw/yagl/yagl_transport.c +++ b/hw/yagl/yagl_transport.c @@ -269,7 +269,7 @@ void yagl_transport_get_out_array(struct yagl_transport *t, const void **data, int32_t *count) { - target_ulong va = (target_ulong)yagl_transport_get_out_uint32_t(t); + target_ulong va = (target_ulong)yagl_transport_get_out_uintptr_t(t); uint32_t size; *count = yagl_transport_get_out_uint32_t(t); @@ -296,7 +296,7 @@ void yagl_transport_get_in_array(struct yagl_transport *t, int32_t *maxcount, int32_t **count) { - target_ulong va = (target_ulong)yagl_transport_get_out_uint32_t(t); + target_ulong va = (target_ulong)yagl_transport_get_out_uintptr_t(t); uint32_t size; struct yagl_transport_in_array *in_array; uint32_t offset; diff --git a/hw/yagl/yagl_transport.h b/hw/yagl/yagl_transport.h index 46dd5df8c9..f59a1c2ad4 100644 --- a/hw/yagl/yagl_transport.h +++ b/hw/yagl/yagl_transport.h @@ -153,6 +153,13 @@ static __inline uint32_t yagl_transport_get_out_uint32_t(struct yagl_transport * return tmp; } +static __inline uintptr_t yagl_transport_get_out_uintptr_t(struct yagl_transport *t) +{ + uintptr_t tmp = *(uintptr_t*)t->ptr; + t->ptr += 8; + return tmp; +} + static __inline float yagl_transport_get_out_float(struct yagl_transport *t) { float tmp = *(float*)t->ptr; @@ -163,7 +170,7 @@ static __inline float yagl_transport_get_out_float(struct yagl_transport *t) static __inline void yagl_transport_get_in_arg(struct yagl_transport *t, void **value) { - target_ulong va = (target_ulong)yagl_transport_get_out_uint32_t(t); + target_ulong va = (target_ulong)yagl_transport_get_out_uintptr_t(t); if (va) { uint32_t offset = t->ptr - t->batch_data; @@ -187,7 +194,7 @@ static __inline yagl_winsys_id yagl_transport_get_out_yagl_winsys_id(struct yagl static __inline target_ulong yagl_transport_get_out_va(struct yagl_transport *t) { - return (target_ulong)yagl_transport_get_out_uint32_t(t); + return (target_ulong)yagl_transport_get_out_uintptr_t(t); } #endif diff --git a/hw/yagl/yagl_transport_gl.h b/hw/yagl/yagl_transport_gl.h index bd5af3423f..8964d1da8c 100644 --- a/hw/yagl/yagl_transport_gl.h +++ b/hw/yagl/yagl_transport_gl.h @@ -78,4 +78,9 @@ static __inline GLuint yagl_transport_get_out_GLuint(struct yagl_transport *t) return yagl_transport_get_out_uint32_t(t); } +static __inline GLintptr yagl_transport_get_out_GLintptr(struct yagl_transport *t) +{ + return yagl_transport_get_out_uintptr_t(t); +} + #endif -- 2.34.1