1342,80 → 1342,77 |
extern int linuxcomp_setfd(struct inode *i, int i_rdev); |
|
/* Shark Inode emulation */ |
int fb_open_inode(int num) { |
|
struct inode *i; |
|
i = (struct inode *)kmalloc(sizeof(struct inode),GFP_KERNEL); |
|
linuxcomp_setfd(i,num); |
|
if (fb_open(i,NULL)) { |
kfree(i); |
return -1; |
} |
int fb_open_inode(int num) |
{ |
struct inode *i; |
|
kfree(i); |
return 0; |
|
i = (struct inode *)kmalloc(sizeof(struct inode),GFP_KERNEL); |
|
linuxcomp_setfd(i,num); |
|
if (fb_open(i,NULL)) { |
kfree(i); |
return -1; |
} |
|
kfree(i); |
return 0; |
} |
|
/* Shark Inode emulation */ |
int fb_close_inode(int num) { |
int fb_close_inode(int num) |
{ |
struct inode *i; |
|
struct inode *i; |
i = (struct inode *)kmalloc(sizeof(struct inode),GFP_KERNEL); |
|
i = (struct inode *)kmalloc(sizeof(struct inode),GFP_KERNEL); |
linuxcomp_setfd(i,num); |
|
linuxcomp_setfd(i,num); |
if(fb_release(i,NULL)) { |
kfree(i); |
return -1; |
} |
|
if(fb_release(i,NULL)) { |
kfree(i); |
return -1; |
} |
kfree(i); |
|
kfree(i); |
return 0; |
} |
|
return 0; |
int fb_set_mode_inode(int num, unsigned char *modeopt) |
{ |
struct fb_var_screeninfo var; |
struct fb_info *info = registered_fb[num]; |
struct fb_fillrect rect; |
|
} |
fb_find_mode(&var,info,modeopt,NULL,0,NULL,0); |
|
int fb_set_mode_inode(int num, unsigned char *modeopt) { |
var.xoffset = 0; |
var.yoffset = 0; |
var.xres_virtual = var.xres; |
var.yres_virtual = var.yres; |
|
struct fb_var_screeninfo var; |
struct fb_info *info = registered_fb[num]; |
struct fb_fillrect rect; |
if (info->fbops->fb_check_var) |
info->fbops->fb_check_var(&var, info); |
|
fb_find_mode(&var,info,modeopt,NULL,0,NULL,0); |
memcpy(&(info->var),&var,sizeof(struct fb_var_screeninfo)); |
|
var.xoffset = 0; |
var.yoffset = 0; |
var.xres_virtual = var.xres; |
var.yres_virtual = var.yres; |
if (info->fbops->fb_set_par) |
info->fbops->fb_set_par(info); |
fb_pan_display(info, &info->var); |
|
if (info->fbops->fb_check_var) |
info->fbops->fb_check_var(&var, info); |
|
memcpy(&(info->var),&var,sizeof(struct fb_var_screeninfo)); |
if (info->var.bits_per_pixel > 8) |
info->fix.visual = FB_VISUAL_TRUECOLOR; |
|
if (info->fbops->fb_set_par) |
info->fbops->fb_set_par(info); |
fb_pan_display(info, &info->var); |
rect.dx = 0; |
rect.dy = 0; |
rect.width = info->var.xres; |
rect.height = info->var.yres; |
rect.color = 0; |
rect.rop = ROP_COPY; |
|
if (info->var.bits_per_pixel > 8) |
info->fix.visual = FB_VISUAL_TRUECOLOR; |
cfb_fillrect(info,&rect); |
|
rect.dx = 0; |
rect.dy = 0; |
rect.width = info->var.xres; |
rect.height = info->var.yres; |
rect.color = 0; |
rect.rop = ROP_COPY; |
|
cfb_fillrect(info,&rect); |
|
return 0; |
|
return 0; |
} |
|
/** |