Linux内核DRM实现分析——基于i915
1 接口
我们先看看i915_drv.c里面申明的driver变量:
static struct drm_driver driver = {
/* don't use mtrr's here, the Xserver or user space app should
* deal with them for intel hardware.
*/
.driver_features =
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | /* DRIVER_USE_MTRR |*/
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM,
.load = i915_driver_load,
.unload = i915_driver_unload,
.open = i915_driver_open,
.lastclose = i915_driver_lastclose,
.preclose = i915_driver_preclose,
.postclose = i915_driver_postclose,
.suspend = i915_suspend,
.resume = i915_resume,
.device_is_agp = i915_driver_device_is_agp,
.enable_vblank = i915_enable_vblank,
.disable_vblank = i915_disable_vblank,
.irq_preinstall = i915_driver_irq_preinstall,
.irq_postinstall = i915_driver_irq_postinstall,
.irq_uninstall = i915_driver_irq_uninstall,
.irq_handler = i915_driver_irq_handler,
.reclaim_buffers = drm_core_reclaim_buffers,
.get_map_ofs = drm_core_get_map_ofs,
.get_reg_ofs = drm_core_get_reg_ofs,
.master_create = i915_master_create,
.master_destroy = i915_master_destroy,
#if defined(CONFIG_DEBUG_FS)
.debugfs_init = i915_gem_debugfs_init,
.debugfs_cleanup = i915_gem_debugfs_cleanup,
#endif
.gem_init_object = i915_gem_init_object,
.gem_free_object = i915_gem_free_object,
.gem_vm_ops = &i915_gem_vm_ops,
.ioctls = i915_ioctls,
.fops = {
.owner = THIS_MODULE,
.open = drm_open,
.release = drm_release,
.ioctl = drm_ioctl,
.mmap = drm_gem_mmap,
.poll = drm_poll,
.fasync = drm_fasync,
#ifdef CONFIG_COMPAT
.compat_ioctl = i915_compat_ioctl,
#endif
},
.pci_driver = {
.name
相关文档:
一、引言
想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有
Windows下使用SQL
Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux
和Windows本身就有很大区别。为了让 ......
Linux 是出现约在 BSD 官司缠身、以及 Internet 开始风行之际.Linux 的开发者及爱好者正好能透过 Internet实时得发布新闻、发表新点子、提问讨论、递送程序代码及进行错误回报,这种藉由 Internet 的分布式合作方式带给Linux惊人的活力和无限的生命力,而经由 Internet 所带来的这种活力和生命力正是 Linux 长久以来能和 BS ......
#!/bin/sh
# define default value
URL='https://fetionapi.appspot.com/api/'
# your phone number
from='13600000000'
# your fetion password
PW='password'
......
安装ubuntu时,grub默认安装在第一个硬盘(hd0)的mbr中,其实就是把引导文件boot.img写入硬盘的mbr,当然,用户也可以选择不写入硬盘mbr 而是写入linux分区的引导扇区。grub以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。以前版本的grub其设备是从0开始编号,分区也是从0开始,主分区从0-3,逻辑分区从4开始, ......
c[tab][tab]: 获得以c开头的shell命令
alias lm='ls -al' : 取别名
unalias
type [cmd] : 判断是bash内建还是非内建的cmd
":双引号内的特殊字符可以保有变量特性
':单引号内的特殊字符尽为一般的字符
unset 变量名:取消变量名
$HOME
$PATH
$SHELL
$MAIL
$LANG
$RANDOM
$HSITSIZE
$ENV
env: 列出当前s ......