- 论坛徽章:
- 0
|
回复 1# hongshaohu
具体你可以看看下面的代码,和上面的参数输出对应,具体含义我不是很清楚,得你好好研究一番了:- /*********************************************************
- * Show video mode information.
-
- 相关宏常量可以在"/usr/include/sys/fbio.h"里面看看。
- */
- 949
- 950 static void
- 951 show_mode_info(void)
- 952 {
- 953 char buf[80];
- 954 struct video_info _info;
- 955 int c;
- 956 int mm;
- 957 int mode;
- 958
- 959 printf(" mode# flags type size "
- 960 "font window linear buffer\n");
- 961 printf("---------------------------------------"
- 962 "---------------------------------------\n");
- 963
- 964 for (mode = 0; mode <= M_VESA_MODE_MAX; ++mode) {
- 965 _info.vi_mode = mode;
- 966 if (ioctl(0, CONS_MODEINFO, &_info))
- 967 continue;
- 968 if (_info.vi_mode != mode)
- 969 continue;
- 970
- 971 printf("%3d (0x%03x)", mode, mode);
- 972 printf(" 0x%08x", _info.vi_flags);
- 973 if (_info.vi_flags & V_INFO_GRAPHICS) {
- 974 c = 'G';
- 975
- 976 if (_info.vi_mem_model == V_INFO_MM_PLANAR)
- 977 snprintf(buf, sizeof(buf), "%dx%dx%d %d",
- 978 _info.vi_width, _info.vi_height,
- 979 _info.vi_depth, _info.vi_planes);
- 980 else {
- 981 switch (_info.vi_mem_model) {
- 982 case V_INFO_MM_PACKED:
- 983 mm = 'P';
- 984 break;
- 985 case V_INFO_MM_DIRECT:
- 986 mm = 'D';
- 987 break;
- 988 case V_INFO_MM_CGA:
- 989 mm = 'C';
- 990 break;
- 991 case V_INFO_MM_HGC:
- 992 mm = 'H';
- 993 break;
- 994 case V_INFO_MM_VGAX:
- 995 mm = 'V';
- 996 break;
- 997 default:
- 998 mm = ' ';
- 999 break;
- 1000 }
- 1001 snprintf(buf, sizeof(buf), "%dx%dx%d %c",
- 1002 _info.vi_width, _info.vi_height,
- 1003 _info.vi_depth, mm);
- 1004 }
- 1005 } else {
- 1006 c = 'T';
- 1007
- 1008 snprintf(buf, sizeof(buf), "%dx%d",
- 1009 _info.vi_width, _info.vi_height);
- 1010 }
- 1011
- 1012 printf(" %c %-15s", c, buf);
- 1013 snprintf(buf, sizeof(buf), "%dx%d",
- 1014 _info.vi_cwidth, _info.vi_cheight);
- 1015 printf(" %-5s", buf);
- 1016 printf(" 0x%05zx %2dk %2dk",
- 1017 _info.vi_window, (int)_info.vi_window_size/1024,
- 1018 (int)_info.vi_window_gran/1024);
- 1019 printf(" 0x%08zx %dk\n",
- 1020 _info.vi_buffer, (int)_info.vi_buffer_size/1024);
- 1021 }
- 1022 }
复制代码 |
|