+int video_mode_info(int n, struct video_mode *vid)
+{
+ struct vbe_mode_info *inf;
+
+ if(init_once() == -1) return -1;
+
+ if(!(inf = vbe_get_mode_info(modes[n] | VBE_MODE_LFB))) {
+ return -1;
+ }
+ vid->mode = modes[n];
+ vid->width = inf->xres;
+ vid->height = inf->yres;
+ vid->bpp = inf->bpp;
+ vid->rbits = inf->rmask_size;
+ vid->gbits = inf->gmask_size;
+ vid->bbits = inf->bmask_size;
+ vid->rshift = inf->rpos;
+ vid->gshift = inf->gpos;
+ vid->bshift = inf->bpos;
+ vid->rmask = color_mask(inf->rmask_size, inf->rpos);
+ vid->gmask = color_mask(inf->gmask_size, inf->gpos);
+ vid->bmask = color_mask(inf->bmask_size, inf->bpos);
+ return 0;