boolean_t check_nw(mach_vm_address_t addr, mach_vm_size_t size) { int i; boolean_t ret; for (i=0; i<size/PAGE_SIZE; i++) { if ((ret = check_w(addr+i*PAGE_SIZE, PAGE_SIZE))) { sprintf(error, "page still writable"); return FALSE; } } return TRUE; }
boolean_t check_rw(mach_vm_address_t addr, mach_vm_size_t size) { int ret; int res; if (!(ret = check_w(addr, size))) return ret; if (!(ret = check_r(addr, size, &res))) return ret; if ((size==SUPERPAGE_SIZE) && (res!=0xfff00000)) { sprintf(error, "checksum error"); return FALSE; } return TRUE; }
static void end_quads() { int i, j, order[4] = {3, 0, 2, 1}; /* Should be four points in the buffer */ assert_msg(gl_vbuf_top == 4, "Wrong number of vertices."); gl_vbuf[order[3]].flags = PVR_CMD_VERTEX_EOL; /* mat_transform((vector_t*)&gl_vbuf[0].x, (vector_t*)&gl_xbuf[0].x, 4, sizeof(pvr_vertex_t)); */ for (i=0; i<4; i++) { float x = gl_vbuf[i].x, y = gl_vbuf[i].y, z = gl_vbuf[i].z, w = 1.0f; mat_trans_single4(x, y, z, w); gl_xbuf[i].x = x; gl_xbuf[i].y = y; if (w == 1.0f) gl_xbuf[i].z = ((gl_viewport_scale[2] * z) + gl_viewport_offset[2]); else gl_xbuf[i].z = w; } /* Throw it all to the TA using direct render */ if (check_w(gl_xbuf, 4)) for (i=0; i<4; i++) { j = order[i]; vert_xbuf.flags = gl_vbuf[j].flags; vert_xbuf.x = gl_xbuf[j].x; vert_xbuf.y = gl_xbuf[j].y; vert_xbuf.z = gl_xbuf[j].z; vert_xbuf.u0 = gl_vbuf[j].u; vert_xbuf.v0 = gl_vbuf[j].v; vert_xbuf.argb0 = gl_vbuf[j].argb; vert_xbuf.oargb0 = gl_vbuf[j].oargb; vert_xbuf.u1 = 0.0f; vert_xbuf.v1 = 0.0f; vert_xbuf.argb1 = 0xff00ff00; vert_xbuf.oargb1 = 0xffff0000; pvr_prim(&vert_xbuf, sizeof(pvr_vertex_tpcm_t)); } }
static void atexit_unlink_socket(void) { check_w(unlink(socket_name), "unlink()"); }