- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 sigsetjmp, siglongjmp
#include <stdio.h>#include <signal.h>#include <setjmp.h>#include <unistd.h>#include <sys/time.h>sigjmp_buf jmp_env;static void connect_alarm(int a){ siglong...
2019-08-31 18:33:13 219
原创 ucontext函数说明
ucontext用于在用户空间切换函数运行上下文。什么是函数运行上下文,首先一个函数运行的必要环境包括1调用函数,也就是函数运行结束后返回哪里2函数的栈,返回地址一般被保存在栈上3 函数的代码来看下深入理解计算机系统中的一张图这图可以说明栈的情况。现在我们来看下ucontext提供的四个函数,和他们的主要意图/* Get user context and store it in ...
2019-08-31 17:49:05 787
原创 glib主事件循环
研究qemu事件派发机制,没想到牵扯到了glib,没办法分析一下吧qemu里面的glib主事件循环的api大概有如下几个 ctx = (AioContext *) g_source_new(&aio_source_funcs, sizeof(AioContext)); g_source_set_can_recurse(&ctx->source, true);...
2019-08-18 13:27:58 2962 1
原创 qemu2 时钟系统分析
我们都知道程序能够执行,cpu能够运转,全都是靠时钟系统去驱动,我们今天来分析下qemu时钟系统如何工作time系统的文章主要在include/qemu/timer.h 中,我们主要分析它是如何实现的首先分析下时钟的功能1 记录时间2 处理定时任务qemu支持四种时钟/** 1. QEMUClockType: 2. 3. The following clock types are...
2019-08-17 13:32:07 2564
原创 qemu2的qom系统分析(-)对象系统
前边分析machine的注册和选择,发现如果 不了解qom系统是很难分析的。qom系统的说明在include/qom/object.h中。看注释估计是个中国人写的系统用于创建新的类型和对象,也就是我们在面向对象系统里面说的class,和object, 另外系统还实现了接口继承(可以多继承)。下面我们来看下这个面向对象系统是如何实现的。首先我们来剖析下面向对象系统的特点。首先面向对象系统把...
2019-08-11 14:55:44 1309 1
原创 qemu2 machine的注册和的选择
在qemu里面,machine代表一台要虚拟的硬件机器,那么qemu是如何注册和选择机器的?我们今天就来分析一下我们以i386机器为例子进行分析首先# For now, use stubs/sdl-null.c as an empty/fake SDL UI backend.# TODO: Use the glue code to use the Qt-based UI instead....
2019-08-11 12:11:05 1784
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人