X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkUnixPkg%2FSec%2FUgaX11.c;h=47fb4fab7ac36e365232805302cf342c62ff55bc;hp=5fbdeae1e2efe1e653992dabf152f174a9571978;hb=76f407a69e668c8407ea736e2e3d9df07e046dc8;hpb=a53078b6346ebecf6fa39aa93e6500c5be500a2a diff --git a/EdkUnixPkg/Sec/UgaX11.c b/EdkUnixPkg/Sec/UgaX11.c index 5fbdeae1e2..47fb4fab7a 100644 --- a/EdkUnixPkg/Sec/UgaX11.c +++ b/EdkUnixPkg/Sec/UgaX11.c @@ -13,6 +13,8 @@ #include #include +extern void msSleep (unsigned long Milliseconds); + /* XQueryPointer */ struct uga_drv_shift_mask @@ -113,8 +115,8 @@ TryCreateShmImage(UGA_IO_PRIVATE *drv) /* Can this fail ? */ shmctl (drv->xshm_info.shmid, IPC_RMID, NULL); - drv->xshm_info.shmaddr = drv->image_data; - drv->image->data = drv->image_data; + drv->xshm_info.shmaddr = (char*)drv->image_data; + drv->image->data = (char*)drv->image_data; if (!XShmAttach (drv->display, &drv->xshm_info)) { @@ -189,7 +191,7 @@ UgaSize(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, UINT32 Width, UINT32 Height) drv->image_data = malloc((drv->width * drv->height) << drv->pixel_shift); drv->image = XCreateImage (drv->display, drv->visual, drv->depth, - ZPixmap, 0, drv->image_data, + ZPixmap, 0, (char *)drv->image_data, drv->width, drv->height, 8 << drv->pixel_shift, 0); } @@ -328,6 +330,7 @@ UgaColorToPixel (UGA_IO_PRIVATE *drv, unsigned long val) { EFI_UGA_PIXEL res; + memset (&res, 0, sizeof (EFI_UGA_PIXEL)); /* FIXME: should round instead of truncate. */ res.Red = (val >> drv->r.shift) << drv->r.csize; res.Green = (val >> drv->g.shift) << drv->g.csize; @@ -346,7 +349,7 @@ UgaCheckKey(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo) return EFI_SUCCESS; else { /* EFI is certainly polling. Be CPU-friendly. */ - usleep (50000); + msSleep (20); return EFI_NOT_READY; } }