vga.c (233892) | vga.c (298431) |
---|---|
1/*- 2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> 3 * Copyright (c) 1992-1998 S��ren Schmidt 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 15 unchanged lines hidden (view full) --- 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 */ 30 31#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> 3 * Copyright (c) 1992-1998 S��ren Schmidt 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 15 unchanged lines hidden (view full) --- 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 */ 30 31#include <sys/cdefs.h> |
32__FBSDID("$FreeBSD: head/sys/dev/fb/vga.c 233892 2012-04-04 21:19:55Z jkim $"); | 32__FBSDID("$FreeBSD: head/sys/dev/fb/vga.c 298431 2016-04-21 19:40:10Z pfg $"); |
33 34#include "opt_vga.h" 35#include "opt_fb.h" 36#ifndef FB_DEBUG 37#define FB_DEBUG 0 38#endif 39#include "opt_syscons.h" /* should be removed in the future, XXX */ 40 --- 556 unchanged lines hidden (view full) --- 597 { M_VGA_C90x50, M_VGA_C80x25 }, 598 { M_VGA_M90x60, M_VGA_M80x25 }, 599 { M_VGA_C90x60, M_VGA_C80x25 }, 600#endif 601 { M_VGA_MODEX, M_VGA_CG320 }, 602 }; 603 int i; 604 | 33 34#include "opt_vga.h" 35#include "opt_fb.h" 36#ifndef FB_DEBUG 37#define FB_DEBUG 0 38#endif 39#include "opt_syscons.h" /* should be removed in the future, XXX */ 40 --- 556 unchanged lines hidden (view full) --- 597 { M_VGA_C90x50, M_VGA_C80x25 }, 598 { M_VGA_M90x60, M_VGA_M80x25 }, 599 { M_VGA_C90x60, M_VGA_C80x25 }, 600#endif 601 { M_VGA_MODEX, M_VGA_CG320 }, 602 }; 603 int i; 604 |
605 for (i = 0; i < sizeof(mode_map)/sizeof(mode_map[0]); ++i) { | 605 for (i = 0; i < nitems(mode_map); ++i) { |
606 if (mode_map[i].from == mode) 607 return mode_map[i].to; 608 } 609 return mode; 610} 611#endif /* !VGA_NO_BIOS && !VGA_NO_MODE_CHANGE */ 612 613/* map a generic video mode to a known mode number */ --- 36 unchanged lines hidden (view full) --- 650 case KD_HERCULES: 651 return M_EGAMONO80x25; /* XXX: this name is confusing */ 652 653 default: 654 return -1; 655 } 656 } 657 | 606 if (mode_map[i].from == mode) 607 return mode_map[i].to; 608 } 609 return mode; 610} 611#endif /* !VGA_NO_BIOS && !VGA_NO_MODE_CHANGE */ 612 613/* map a generic video mode to a known mode number */ --- 36 unchanged lines hidden (view full) --- 650 case KD_HERCULES: 651 return M_EGAMONO80x25; /* XXX: this name is confusing */ 652 653 default: 654 return -1; 655 } 656 } 657 |
658 for (i = 0; i < sizeof(mode_map)/sizeof(mode_map[0]); ++i) { | 658 for (i = 0; i < nitems(mode_map); ++i) { |
659 if (mode_map[i].from == mode) 660 return ((color) ? mode_map[i].to_color : mode_map[i].to_mono); 661 } 662 return mode; 663} 664 665/* turn the BIOS video number into our video mode number */ 666static int --- 30 unchanged lines hidden (view full) --- 697 M_ENH_CG640, 698 M_BG640x480, M_CG640x480, 699 M_VGA_CG320, 700 }; 701 702 switch (type) { 703 704 case KD_VGA: | 659 if (mode_map[i].from == mode) 660 return ((color) ? mode_map[i].to_color : mode_map[i].to_mono); 661 } 662 return mode; 663} 664 665/* turn the BIOS video number into our video mode number */ 666static int --- 30 unchanged lines hidden (view full) --- 697 M_ENH_CG640, 698 M_BG640x480, M_CG640x480, 699 M_VGA_CG320, 700 }; 701 702 switch (type) { 703 704 case KD_VGA: |
705 if (bios_mode < sizeof(vga_modes)/sizeof(vga_modes[0])) | 705 if (bios_mode < nitems(vga_modes)) |
706 return vga_modes[bios_mode]; 707 else if (color) 708 return M_VGA_C80x25; 709 else 710 return M_VGA_M80x25; 711 break; 712 713 case KD_EGA: | 706 return vga_modes[bios_mode]; 707 else if (color) 708 return M_VGA_C80x25; 709 else 710 return M_VGA_M80x25; 711 break; 712 713 case KD_EGA: |
714 if (bios_mode < sizeof(ega_modes)/sizeof(ega_modes[0])) | 714 if (bios_mode < nitems(ega_modes)) |
715 return ega_modes[bios_mode]; 716 else if (color) 717 return M_ENH_C80x25; 718 else 719 return M_EGAMONO80x25; 720 break; 721 722 case KD_CGA: | 715 return ega_modes[bios_mode]; 716 else if (color) 717 return M_ENH_C80x25; 718 else 719 return M_EGAMONO80x25; 720 break; 721 722 case KD_CGA: |
723 if (bios_mode < sizeof(cga_modes)/sizeof(cga_modes[0])) | 723 if (bios_mode < nitems(cga_modes)) |
724 return cga_modes[bios_mode]; 725 else 726 return M_C80x25; 727 break; 728 729 case KD_MONO: 730 case KD_HERCULES: 731 return M_EGAMONO80x25; /* XXX: this name is confusing */ --- 35 unchanged lines hidden (view full) --- 767 { DCC_EGA40 /* CGA monitor */, DCC_MONO}, 768 { DCC_EGA80 /* CGA monitor */, DCC_MONO}, 769 { DCC_EGA80, DCC_MONO }, 770 { DCC_EGA80, DCC_MONO }, 771 { DCC_EGAMONO, DCC_CGA40 }, 772 { DCC_EGAMONO, DCC_CGA80 }, 773 }; 774 | 724 return cga_modes[bios_mode]; 725 else 726 return M_C80x25; 727 break; 728 729 case KD_MONO: 730 case KD_HERCULES: 731 return M_EGAMONO80x25; /* XXX: this name is confusing */ --- 35 unchanged lines hidden (view full) --- 767 { DCC_EGA40 /* CGA monitor */, DCC_MONO}, 768 { DCC_EGA80 /* CGA monitor */, DCC_MONO}, 769 { DCC_EGA80, DCC_MONO }, 770 { DCC_EGA80, DCC_MONO }, 771 { DCC_EGAMONO, DCC_CGA40 }, 772 { DCC_EGAMONO, DCC_CGA80 }, 773 }; 774 |
775 if ((code < 0) || (code >= sizeof(dcc)/sizeof(dcc[0]))) { | 775 if ((code < 0) || (code >= nitems(dcc))) { |
776 adp[V_ADP_PRIMARY] = adapter_init_value[DCC_MONO]; 777 adp[V_ADP_SECONDARY] = adapter_init_value[DCC_CGA80]; 778 } else { 779 adp[V_ADP_PRIMARY] = adapter_init_value[dcc[code].primary]; 780 adp[V_ADP_SECONDARY] = adapter_init_value[dcc[code].secondary]; 781 } 782} 783#endif /* VGA_NO_BIOS */ --- 129 unchanged lines hidden (view full) --- 913 {0xff}, {0xff}, {0xff}, {0xff}, 914 }; 915 int identical = TRUE; 916 int i; 917 918 if ((buf1 == NULL) || (buf2 == NULL)) 919 return COMP_DIFFERENT; 920 | 776 adp[V_ADP_PRIMARY] = adapter_init_value[DCC_MONO]; 777 adp[V_ADP_SECONDARY] = adapter_init_value[DCC_CGA80]; 778 } else { 779 adp[V_ADP_PRIMARY] = adapter_init_value[dcc[code].primary]; 780 adp[V_ADP_SECONDARY] = adapter_init_value[dcc[code].secondary]; 781 } 782} 783#endif /* VGA_NO_BIOS */ --- 129 unchanged lines hidden (view full) --- 913 {0xff}, {0xff}, {0xff}, {0xff}, 914 }; 915 int identical = TRUE; 916 int i; 917 918 if ((buf1 == NULL) || (buf2 == NULL)) 919 return COMP_DIFFERENT; 920 |
921 for (i = 0; i < sizeof(params)/sizeof(params[0]); ++i) { | 921 for (i = 0; i < nitems(params); ++i) { |
922 if (params[i].mask == 0) /* don't care */ 923 continue; 924 if ((buf1[i] & params[i].mask) != (buf2[i] & params[i].mask)) 925 return COMP_DIFFERENT; 926 if (buf1[i] != buf2[i]) 927 identical = FALSE; 928 } 929 return (identical) ? COMP_IDENTICAL : COMP_SIMILAR; --- 2143 unchanged lines hidden --- | 922 if (params[i].mask == 0) /* don't care */ 923 continue; 924 if ((buf1[i] & params[i].mask) != (buf2[i] & params[i].mask)) 925 return COMP_DIFFERENT; 926 if (buf1[i] != buf2[i]) 927 identical = FALSE; 928 } 929 return (identical) ? COMP_IDENTICAL : COMP_SIMILAR; --- 2143 unchanged lines hidden --- |