zircon
tiantao2012
这个作者很懒,什么都没留下…
展开
-
zircon 启动代码
zircon 是fuchsia的内核,其base 版本是little kernel.zircon目前支持x86和arm64 两种架构,其arm64架构的入口地址为zircon-master\kernel\arch\arm64\start.S其入口函数如下:FUNCTION(_start) /* Save the Boot info for the primary CPU only...原创 2019-06-22 15:14:45 · 1765 阅读 · 0 评论 -
zircon的dpc机制
zircon中的dpc 机制由于减少系统中的线程,用户可以将要执行函数发给dpcdpc的入口函数如下:static void dpc_init(unsigned int level) { // initialize dpc for the main CPU dpc_init_for_cpu();}dpc_init_for_cpu 会为当前cpu 创建一个dpc threa...原创 2019-06-26 20:31:42 · 2381 阅读 · 0 评论 -
zircon的event机制
在zircon中线程同步的机制之一就是event机制。event机制的主要函数是event_signal 和 event_wait_deadline,其他的一些API 都是这两者的变种我们先来看看zx_status_t event_wait_deadline(event_t* e, zx_time_t deadline, bool interruptable) { return e...原创 2019-07-03 08:39:39 · 1391 阅读 · 0 评论 -
zircon的两种调度理解
zircon 实现两种调度机制,一种就是fair 其实现在fair_scheduler.cpp中,一种是基于时间片的其实现在sched.cpp 中,调度器的入口都在sche_reschedule()这个函数中。例如fair的实现如下:void sched_reschedule() { FairScheduler::Reschedule();}fair的实现是一个cpp的类。另一...原创 2019-07-06 17:22:49 · 51606 阅读 · 10 评论 -
zircon内核驱动初始化
zircon中内核驱动的初始化的的入口为platform_early_init->pdev_initpdev_init的代码如下:void pdev_init(const zbi_header_t* zbi) { ASSERT(zbi);#保存driver的入口 driver_zbi = zbi;#开始初始化内核驱动 pdev_run_hooks(LK_IN...原创 2019-07-19 15:16:31 · 1850 阅读 · 0 评论