当前位置: 首页 > news >正文

建设网站企业网上银行登录官方wordpress更改内容

建设网站企业网上银行登录官方,wordpress更改内容,wordpress重写,网站建设后的专人维护以下内容源于朱有鹏嵌入式课程的学习与整理#xff0c;如有侵权请告知删除。 一、前言 framebuffer驱动框架包括以下两部分#xff1a; 1、内核开发者实现的部分#xff08;核心层#xff09; rootubuntu:省略部分路径/x210_kernel/drivers/video# ls *.o built-in.o …以下内容源于朱有鹏嵌入式课程的学习与整理如有侵权请告知删除。 一、前言 framebuffer驱动框架包括以下两部分 1、内核开发者实现的部分核心层 rootubuntu:省略部分路径/x210_kernel/drivers/video# ls *.o built-in.o cfbfillrect.o fbcmap.o fbmem.o fb_notify.o fbsysfs.o cfbcopyarea.o cfbimgblt.o fbcvt.o fbmon.o fb.o modedb.o rootubuntu:省略部分路径/x210_kernel/drivers/video# 通过检查内核编译结果相应目录中的.o文件得知驱动框架核心层主要涉及的文件 1drivers/video/fbmem.c主要文件 该文件创建graphics类注册fb设备驱动提供fb设备注册接口register_framebuffer。 该文件相对于fb设备就好比misc.c文件相对于杂散类设备其结构和分析方法类似。 2drivers/video/fbsysfs.c 这个文件与fb在/sys目录下的一些属性文件有关。 3drivers/video/modedb.c 这个文件与显示模式比如VGA、720P等的管理有关。 4drivers/video/fb_notify.c 2、驱动工程师实现的部分操作层 rootubuntu:省略部分路径/x210_kernel/drivers/video# cd samsung/ rootubuntu:省略部分路径/x210_kernel/drivers/video/samsung# ls *.o built-in.o s3cfb_fimd6x.o s3cfb.o rootubuntu:省略部分路径/x210_kernel/drivers/video/samsung# 通过检查内核编译结果相应目录中的.o文件得知具体操作层主要涉及的文件 1drivers/video/samsung/s3cfb.c这是驱动主要文件。 2drivers/video/samsung/s3cfb_fimd6x.c里面有很多LCD硬件操作的函数。 3arch/arm/mach-s5pv210/mach-x210.c负责提供platform_device。 4arch/arm/plat-s5p/devs.c为platform_device提供一些硬件描述信息。 接下来我们将对这两部分内容进行源码级别的分析。 二、fb驱动框架核心层分析 1、fbmem_init()函数 此函数位于drivers/video/fbmem.c文件中。 static int __init fbmem_init(void) {proc_create(fb, 0, NULL, fb_proc_fops);if (register_chrdev(FB_MAJOR,fb,fb_fops))printk(unable to get major %d for fb devs\n, FB_MAJOR);fb_class class_create(THIS_MODULE, graphics);if (IS_ERR(fb_class)) {printk(KERN_WARNING Unable to create fb class;errno %ld\n,\PTR_ERR(fb_class));fb_class NULL;}return 0; }#ifdef MODULE //MODULE没有定义 module_init(fbmem_init); static void __exit fbmem_exit(void) {remove_proc_entry(fb, NULL);class_destroy(fb_class);unregister_chrdev(FB_MAJOR, fb); }module_exit(fbmem_exit); MODULE_LICENSE(GPL); MODULE_DESCRIPTION(Framebuffer base); #else //MODULE没有定义所以对于fbmem_init而言执行的是这个 subsys_initcall(fbmem_init); #endif 1subsys_initcall(fbmem_init) 对于fbmem_init()函数因为没有定义MODULE表示以模块方式安装因此执行的是subsys_initial表示直接集成在内核中。又因为是直接集成的所以不需要卸载函数。 2proc_create(fb, 0, NULL, fb_proc_fops); fb_proc_fops和fb在proc文件系统中的表现即cat /proc/fb的实现 3register_chrdev(FB_MAJOR,fb,fb_fops) 利用register_chdev()函数注册fb设备注册之后在cat /proc/devices时显示有“29 fb”。 其中FB_MAJOR29而变量fb_fops的定义见下文。 4fb_class class_create(THIS_MODULE, graphics); 利用class_create()函数创建了一个名为“graphics”的类。即在/sys/class/下有graphics目录。 2、变量fb_fops 变量fb_fops定义在drivers/video/fbmem.c文件中内容如下 static const struct file_operations fb_fops {.owner THIS_MODULE,.read fb_read,.write fb_write,.unlocked_ioctl fb_ioctl,//省略部分代码 };可知其函数成员所指向的函数分别为fb_readfb_writefb_ioctl。后面将讨论这些函数。 3、register_framebuffer()函数 此函数位于drivers/video/fbmem.c文件中是fb驱动框架设计的fb设备注册接口内容如下。 /*** register_framebuffer - registers a frame buffer device* fb_info: frame buffer info structure* Registers a frame buffer device fb_info.* Returns negative errno on error, or zero for success.**/int register_framebuffer(struct fb_info *fb_info) {int i;struct fb_event event;struct fb_videomode mode;if (num_registered_fb FB_MAX)return -ENXIO;if (fb_check_foreignness(fb_info))//判断大小端模式return -ENOSYS;remove_conflicting_framebuffers(fb_info-apertures, fb_info-fix.id,fb_is_primary_device(fb_info));num_registered_fb;for (i 0 ; i FB_MAX; i)if (!registered_fb[i])break;fb_info-node i;mutex_init(fb_info-lock);mutex_init(fb_info-mm_lock);fb_info-dev device_create(fb_class, fb_info-device,MKDEV(FB_MAJOR, i), NULL, fb%d, i);if (IS_ERR(fb_info-dev)) {/* Not fatal */printk(KERN_WARNING Unable to create device for framebuffer %d; \errno %ld\n, i, PTR_ERR(fb_info-dev));fb_info-dev NULL;} elsefb_init_device(fb_info);if (fb_info-pixmap.addr NULL) {fb_info-pixmap.addr kmalloc(FBPIXMAPSIZE, GFP_KERNEL);if (fb_info-pixmap.addr) {fb_info-pixmap.size FBPIXMAPSIZE;fb_info-pixmap.buf_align 1;fb_info-pixmap.scan_align 1;fb_info-pixmap.access_align 32;fb_info-pixmap.flags FB_PIXMAP_DEFAULT;}} fb_info-pixmap.offset 0;if (!fb_info-pixmap.blit_x)fb_info-pixmap.blit_x ~(u32)0;if (!fb_info-pixmap.blit_y)fb_info-pixmap.blit_y ~(u32)0;if (!fb_info-modelist.prev || !fb_info-modelist.next)INIT_LIST_HEAD(fb_info-modelist);fb_var_to_videomode(mode, fb_info-var);fb_add_videomode(mode, fb_info-modelist);registered_fb[i] fb_info;event.info fb_info;if (!lock_fb_info(fb_info))return -ENODEV;fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, event);unlock_fb_info(fb_info);return 0; } 1struct fb_info 结构体 此结构体的定义如下 struct fb_info {int node; //fb_info在registered_fb数组的下标int flags;struct mutex lock; /* Lock for open/release/ioctl funcs */struct mutex mm_lock; /* Lock for fb_mmap and smem_* fields */struct fb_var_screeninfo var; /* Current var */struct fb_fix_screeninfo fix; /* Current fix */struct fb_monspecs monspecs; /* Current Monitor specs */struct work_struct queue; /* Framebuffer event queue */struct fb_pixmap pixmap; /* Image hardware mapper */struct fb_pixmap sprite; /* Cursor hardware mapper */struct fb_cmap cmap; /* Current cmap */struct list_head modelist; /* mode list */struct fb_videomode *mode; /* current mode *///省略部分代码struct fb_ops *fbops;struct device *device; /* This is the parent */struct device *dev; /* This is this fb device */int class_flag; /* private sysfs flags */char __iomem *screen_base; /* Virtual address */unsigned long screen_size; /* Amount of ioremapped VRAM or 0 */ void *pseudo_palette; /* Fake palette of 16 colors */ #define FBINFO_STATE_RUNNING 0 #define FBINFO_STATE_SUSPENDED 1u32 state; /* Hardware state i.e suspend */void *fbcon_par; /* fbcon use-only private area *//* From here on everything is device dependent */void *par;/* we need the PCI or similiar aperture base/size notsmem_start/size as smem_start may just be an objectallocated inside the aperture so may not actually overlap */struct apertures_struct {unsigned int count;struct aperture {resource_size_t base;resource_size_t size;} ranges[0];} *apertures; }; 2fb_check_foreignness()函数 判断大小端模式。 3remove_conflicting_framebuffers()函数 去掉冲突的fb。 4device_create()函数 在/sys/class/graphic目录下创建设备还是说创建设备文件/dev/xxx应该是后者。 5fb_init_device()函数 这是fb在sys文件系统的接口函数。涉及dev_set_drvdata和dev_get_drvdata。有待深入。 6fb_var_to_videomode()函数 1什么是mode 2fb_var_to_videomode()函数的内容 /*** fb_var_to_videomode - convert fb_var_screeninfo to fb_videomode* mode: pointer to struct fb_videomode* var: pointer to struct fb_var_screeninfo*/ void fb_var_to_videomode(struct fb_videomode *mode,const struct fb_var_screeninfo *var) {u32 pixclock, hfreq, htotal, vtotal;mode-name NULL;mode-xres var-xres;mode-yres var-yres;mode-pixclock var-pixclock;mode-hsync_len var-hsync_len;mode-vsync_len var-vsync_len;mode-left_margin var-left_margin;mode-right_margin var-right_margin;mode-upper_margin var-upper_margin;mode-lower_margin var-lower_margin;mode-sync var-sync;mode-vmode var-vmode FB_VMODE_MASK;mode-flag FB_MODE_IS_FROM_VAR;mode-refresh 0;if (!var-pixclock)return;pixclock PICOS2KHZ(var-pixclock) * 1000;htotal var-xres var-right_margin var-hsync_len var-left_margin;vtotal var-yres var-lower_margin var-vsync_len var-upper_margin;if (var-vmode FB_VMODE_INTERLACED)vtotal / 2;if (var-vmode FB_VMODE_DOUBLE)vtotal * 2;hfreq pixclock/htotal;mode-refresh hfreq/vtotal; } 7fb_add_videomode()函数 8registered_fb[i] fb_info 注册与登记该fb设备。结合fb_read等函数中对fb_info的使用。 关键点数据如何封装、数据由谁准备由谁消费、数据如何传递。 9fb_notifier_call_chain()函数 待写。
http://www.zqtcl.cn/news/57914/

相关文章:

  • 集团网站开发多少钱WordPress搜索不通过数据库
  • 建站的cms网站开发客户对话
  • 宿州做企业网站公司wordpress哪里编辑页脚
  • 学校宣传策划方案无锡网站seo报价
  • 微商城网站建设咨询网站建设完整代码
  • 如何建立自已的购物网站怎么做网站的301
  • 打开一个不良网站提示创建成功景观设计网站大全
  • 唐山手机网站建设西安网站制作百亿科技
  • 甘孜州住房城乡建设局网站个人网站设计方案
  • 怎么在网上查网站空间是双线还是单线wordpress华丽插件
  • 网站建设如何算成本WordPress仿虎嗅主题
  • app需要申请网站的子域名吗wordpress最佳固定链接
  • 湖北人工智能建站系统软件wordpress 图片缓存
  • 张店专业网站优化哪家好龙华网站建设招商
  • 名师工作室网站建设vps搭建asp网站
  • 海尔建设此网站的目的目前最火的大型网络游戏
  • 兼职做诚信网站认证关键词优化seo优化
  • 个人网站建设背景和目的十大网站在线观看
  • 天津网站建设揭秘哪个网站做网络推好
  • 大连模板建站软件大连网站建设外贸
  • 苏州免费网站制作衡水做网站找谁
  • 在虚拟机中如何做二级域名网站电脑游戏排行榜2020前十名
  • 大型大型网站建设方案设计方案包括哪些内容
  • 书w3school网站建设教程合肥做网站好的公司
  • 开发公司档案管理制度谷歌seo实战教程
  • 苏州网站建设有限公司网站访客qq抓取统计系统
  • 光谷做网站推广哪家好免费传奇游戏在线玩
  • 工程信息网站哪家做的较好泗县网站建设
  • 网站搜索功能设计长春网站建设phpjz
  • 建设人才信息网是什么网站wordpress 缓存