void run_perf_tests(sqlfs_t *sqlfs, int testsize) { int i, size; struct timeval tstart, tstop; char testfilename[PATH_MAX]; char randomdata[testsize]; struct fuse_file_info fi = { 0 }; randomfilename(testfilename, PATH_MAX, "read_n_bytes"); sqlfs_proc_write(sqlfs, testfilename, randomdata, testsize, 0, &fi); printf("reads without transactions ------------------------------\n"); for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) { gettimeofday(&tstart, NULL); for(i = 0; i < testsize / size; i++) { test_read_n_bytes_nosleep(sqlfs, testfilename, size); } gettimeofday(&tstop, NULL); printf("* read %d bytes in %d %d byte chunks in \t%f seconds\n", testsize, testsize / size, size, TIMING(tstart,tstop)); } printf("reads with transactions ------------------------------\n"); for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) { gettimeofday(&tstart, NULL); sqlfs_begin_transaction(sqlfs); for(i = 0; i < testsize / size; i++) { test_read_n_bytes_nosleep(sqlfs, testfilename, size); } sqlfs_complete_transaction(sqlfs,1); gettimeofday(&tstop, NULL); printf("* read %d bytes in %d %d byte chunks in \t%f seconds\n", testsize, testsize / size, size, TIMING(tstart,tstop)); } printf("writes without transactions ------------------------------\n"); for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) { gettimeofday(&tstart, NULL); for(i = 0; i < testsize / size; i++) { test_write_n_bytes_nosleep(sqlfs, size); } gettimeofday(&tstop, NULL); printf("* wrote %d bytes in %d %d byte chunks in \t%f seconds\n", testsize, testsize / size, size, TIMING(tstart,tstop)); } printf("writes with transactions ------------------------------\n"); for (size=START_BLOCK_SIZE; size <= END_BLOCK_SIZE ; size *= 2) { gettimeofday(&tstart, NULL); sqlfs_begin_transaction(sqlfs); for(i = 0; i < testsize / size; i++) { test_write_n_bytes_nosleep(sqlfs, size); } sqlfs_complete_transaction(sqlfs,1); gettimeofday(&tstop, NULL); printf("* wrote %d bytes in %d %d byte chunks in \t%f seconds\n", testsize, testsize / size, size, TIMING(tstart,tstop)); } }
void * video_hw_init(void) { //register GraphicDevice *pGD = (GraphicDevice *)&smi; struct panel_config pcfg; /* int hsw=0, hfp=0, hbp=0; int vsw=0, vfp=0, vbp=0; int lclk = 1, pclk=2, pol_flags = 0; int acbi = 0, acb = 0;*/ int bpp = 0; struct ctfb_res_modes *res_mode; struct ctfb_res_modes var_mode; char * penv; pre_setup_video_env(); if (NULL == (penv = getenv("ub_vid"))) return NULL; res_mode = (struct ctfb_res_modes *) &var_mode; bpp = video_get_params (res_mode, penv); smi.winSizeX = res_mode->xres; smi.winSizeY = res_mode->yres; smi.plnSizeX = res_mode->xres; smi.plnSizeY = res_mode->yres; smi.gdfBytesPP = bpp; if (2 == bpp) smi.gdfIndex = GDF_16BIT_565RGB; else if (1 == bpp) smi.gdfIndex = GDF__8BIT_332RGB; pcfg.panel_type = res_mode->vmode&1; pcfg.timing_h = TIMING(res_mode->hsync_len, res_mode->left_margin, res_mode->right_margin); //hsw, hfp, hbp); pcfg.timing_v = TIMING(res_mode->vsync_len, res_mode->upper_margin, res_mode->lower_margin); //vsw, vfp, vbp); pcfg.data_lines = 3; pcfg.lcd_size = SIZE(smi.winSizeX, smi.winSizeY); pcfg.load_mode = 0; //0x00000204 >> FRAME_MODE_SHIFT; smi.frameAdrs = LCD_VIDEO_ADDR; smi.memSize = smi.winSizeX * smi.winSizeY * smi.gdfBytesPP; pcfg.panel_color= 0; pcfg.divisor = DIV(res_mode->pixclock >> 8, res_mode->pixclock & 0xff); //lclk, pclk); pcfg.pol_freq = omapdss_set_pol_freq(res_mode->vmode >>1, res_mode->sync >> 8, res_mode->sync & 0xff); //pol_flags, acbi, acb); // 0, 0); //0x30000; //printf("Done w/ lcd init\n"); /*if (!panel_cfg->panel_type) pcfg.gfx_attrib = GFX_BURST(2) | GFX_FMT(RGB_16) //GFX_FMT(BMP_8) | GFX_EN; else*/ pcfg.gfx_attrib = GFX_BURST(2) | GFX_FMT(RGB_16) | GFX_EN; vidmem_clear(smi.frameAdrs, smi.winSizeX, smi.winSizeY, smi.gdfBytesPP); omap3_dss_panel_config(&pcfg); omap3_dss_enable(); return ((void*)&smi); }
PyObject * get_standard_timings(struct vbe_edid1_info *edid) { PyObject *timings[8]; int i, j; for(i = j = 0; j < 8; j++) { double aspect = 1; unsigned int x, y; unsigned char xres, vfreq; xres = edid->standard_timing[j].xresolution; vfreq = edid->standard_timing[j].vfreq; if((xres != vfreq) || ((xres != 0) && (xres != 1)) || ((vfreq != 0) && (vfreq != 1))) { switch(edid->standard_timing[j].aspect) { case 0: aspect = 0.625; break; /*undefined*/ case 1: aspect = 0.750; break; case 2: aspect = 0.800; break; case 3: aspect = 0.5625; break; } x = xres * 8 + 248; y = x * aspect; timings[i++] = TIMING(x, y, (vfreq & 0x3f) + 60); } } PyObject *standard_timings = PyTuple_New(i); for (j = 0; j < i; j++) PyTuple_SetItem(standard_timings, j, timings[j]); return standard_timings; }
PyObject * get_established_timings(struct vbe_edid1_info *edid) { PyObject *timings[16]; int i = 0, j; if(edid->established_timings.timing_720x400_70) timings[i++] = TIMING(720, 400, 70); if(edid->established_timings.timing_720x400_88) timings[i++] = TIMING(720, 400, 88); if(edid->established_timings.timing_640x480_60) timings[i++] = TIMING(640, 480, 60); if(edid->established_timings.timing_640x480_67) timings[i++] = TIMING(640, 480, 67); if(edid->established_timings.timing_640x480_72) timings[i++] = TIMING(640, 480, 72); if(edid->established_timings.timing_640x480_75) timings[i++] = TIMING(640, 480, 75); if(edid->established_timings.timing_800x600_56) timings[i++] = TIMING(800, 600, 56); if(edid->established_timings.timing_800x600_60) timings[i++] = TIMING(800, 600, 60); if(edid->established_timings.timing_800x600_72) timings[i++] = TIMING(800, 600, 72); if(edid->established_timings.timing_800x600_75) timings[i++] = TIMING(800, 600, 75); if(edid->established_timings.timing_832x624_75) timings[i++] = TIMING(832, 624, 75); /*if(edid->established_timings.timing_1024x768_87i) timings[i++] = "1024x768@87i";*/ if(edid->established_timings.timing_1024x768_60) timings[i++] = TIMING(1024, 768, 60); if(edid->established_timings.timing_1024x768_70) timings[i++] = TIMING(1024, 768, 70); if(edid->established_timings.timing_1024x768_75) timings[i++] = TIMING(1024, 768, 75); if(edid->established_timings.timing_1280x1024_75) timings[i++] = TIMING(1280, 1024, 75); PyObject *established_timings = PyTuple_New(i); for (j = 0; j < i; j++) PyTuple_SetItem(established_timings, j, timings[j]); return established_timings; }