Lines Matching refs:vmode

196 static int vesa_bios_get_mode(int mode, struct vesa_mode *vmode, int flags);
226 static int vesa_get_bpscanline(struct vesa_mode *vmode);
306 vesa_bios_get_mode(int mode, struct vesa_mode *vmode, int flags)
312 buf = x86bios_alloc(&offs, sizeof(*vmode), flags);
326 x86bios_free(buf, sizeof(*vmode));
330 bcopy(buf, vmode, sizeof(*vmode));
331 x86bios_free(buf, sizeof(*vmode));
714 vesa_get_bpscanline(struct vesa_mode *vmode)
718 if ((vmode->v_modeattr & V_MODEGRAPHICS) != 0) {
720 switch (vmode->v_bpp / vmode->v_planes) {
722 bpsl = vmode->v_width / 8;
725 bpsl = vmode->v_width / 4;
728 bpsl = vmode->v_width / 2;
731 bpsl = vmode->v_width * ((vmode->v_bpp + 7) / 8);
732 bpsl /= vmode->v_planes;
737 if ((vmode->v_modeattr & V_MODELFB) != 0 &&
739 vmode->v_linbpscanline > bpsl)
740 return (vmode->v_linbpscanline);
743 if (vmode->v_bpscanline < bpsl)
747 return (vmode->v_bpscanline);
765 struct vesa_mode vmode;
881 if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode, M_WAITOK))
884 vmode.v_modeattr = le16toh(vmode.v_modeattr);
885 vmode.v_wgran = le16toh(vmode.v_wgran);
886 vmode.v_wsize = le16toh(vmode.v_wsize);
887 vmode.v_waseg = le16toh(vmode.v_waseg);
888 vmode.v_wbseg = le16toh(vmode.v_wbseg);
889 vmode.v_posfunc = le32toh(vmode.v_posfunc);
890 vmode.v_bpscanline = le16toh(vmode.v_bpscanline);
891 vmode.v_width = le16toh(vmode.v_width);
892 vmode.v_height = le16toh(vmode.v_height);
893 vmode.v_lfb = le32toh(vmode.v_lfb);
894 vmode.v_offscreen = le32toh(vmode.v_offscreen);
895 vmode.v_offscreensize = le16toh(vmode.v_offscreensize);
896 vmode.v_linbpscanline = le16toh(vmode.v_linbpscanline);
897 vmode.v_maxpixelclock = le32toh(vmode.v_maxpixelclock);
901 if ((vmode.v_modeattr &
906 if ((vmode.v_modeattr & V_MODEOPTINFO) == 0) {
910 vmode.v_modeattr & V_MODEGRAPHICS ?
912 vmode.v_width, vmode.v_height, vmode.v_bpp,
913 vmode.v_modeattr);
919 bsize = vesa_get_bpscanline(&vmode) * vmode.v_height;
920 if ((vmode.v_modeattr & V_MODEGRAPHICS) != 0)
921 bsize *= vmode.v_planes;
928 vmode.v_modeattr & V_MODEGRAPHICS ?
930 vmode.v_width, vmode.v_height, vmode.v_bpp,
931 vmode.v_modeattr);
956 vmode.v_modeattr & V_MODEGRAPHICS ? "graphics" : "text",
957 vmode.v_width, vmode.v_height, vmode.v_bpp);
960 if ((vmode.v_width & 0xff00) >> 8 == vmode.v_height - 1) {
961 vmode.v_width &= 0xff;
962 vmode.v_waseg = 0xb8000 >> 4;
969 vesa_vmode[modes].vi_width = vmode.v_width;
970 vesa_vmode[modes].vi_height = vmode.v_height;
971 vesa_vmode[modes].vi_depth = vmode.v_bpp;
972 vesa_vmode[modes].vi_planes = vmode.v_planes;
973 vesa_vmode[modes].vi_cwidth = vmode.v_cwidth;
974 vesa_vmode[modes].vi_cheight = vmode.v_cheight;
975 vesa_vmode[modes].vi_window = (vm_offset_t)vmode.v_waseg << 4;
977 vesa_vmode[modes].vi_window_size = vmode.v_wsize * 1024;
978 vesa_vmode[modes].vi_window_gran = vmode.v_wgran * 1024;
979 if (vmode.v_modeattr & V_MODELFB)
980 vesa_vmode[modes].vi_buffer = vmode.v_lfb;
983 vesa_translate_mmodel(vmode.v_memmodel);
986 if ((vmode.v_modeattr & V_MODELFB) != 0 &&
989 vmode.v_linredfieldpos;
991 vmode.v_lingreenfieldpos;
993 vmode.v_linbluefieldpos;
995 vmode.v_linresfieldpos;
997 vmode.v_linredmasksize;
999 vmode.v_lingreenmasksize;
1001 vmode.v_linbluemasksize;
1003 vmode.v_linresmasksize;
1006 vmode.v_redfieldpos;
1008 vmode.v_greenfieldpos;
1010 vmode.v_bluefieldpos;
1012 vmode.v_resfieldpos;
1014 vmode.v_redmasksize;
1016 vmode.v_greenmasksize;
1018 vmode.v_bluemasksize;
1020 vmode.v_resmasksize;
1024 vesa_vmode[modes].vi_pixel_size = (vmode.v_bpp + 7) / 8;
1028 vesa_translate_flags(vmode.v_modeattr) | V_INFO_VESA;
1848 struct vesa_mode vmode;
1885 if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode, M_NOWAIT))
1890 vesa_vmodetab[i], vmode.v_modeattr);
1891 if (vmode.v_modeattr & V_MODEOPTINFO) {
1892 if (vmode.v_modeattr & V_MODEGRAPHICS) {
1894 vmode.v_width, vmode.v_height,
1895 vmode.v_bpp, vmode.v_planes);
1898 vmode.v_width, vmode.v_height);
1901 vmode.v_cwidth, vmode.v_cheight);
1903 vmode.v_ipages + 1, vmode.v_memmodel);
1905 if (vmode.v_modeattr & V_MODELFB) {
1907 vmode.v_lfb, vmode.v_offscreen,
1908 vmode.v_offscreensize*1024);
1912 vmode.v_waseg, vmode.v_waattr,
1913 vmode.v_wbseg, vmode.v_wbattr);
1915 vmode.v_wsize, vmode.v_wgran);