QEMU的128位算法集合(基于QEMU2.0.0)
2015-09-28 09:56
381 查看
QEMU的128位算法集合,通常用于QEMU中GPA的地址运算,这里总结如下
[align=justify] [/align][align=justify] [/align]
/* * 128位数据结构,由64bit组成,注意这是有符号数,所以高部分最多用63bit,表示127bit的数字 */ struct Int128 { uint64_t lo; int64_t hi; }; |
[align=center]函数[/align] | [align=center]意义[/align] |
[align=justify]Int128 int128_make64(uint64_t a)[/align] | [align=justify]将 64BIT数字转换为 128bit 的格式, 放在128bit的低 64 为[/align] |
[align=justify]uint64_t int128_get64(Int128 a)[/align] | [align=justify]得到 64bit 的值,也就是取得低 64位[/align] |
[align=justify]Int128 int128_zero(void)[/align] | [align=justify]0[/align] |
[align=justify]Int128 int128_one(void)[/align] | [align=justify]1[/align] |
[align=justify]Int128 int128_and(Int128 a, Int128 b)[/align] | [align=justify]a & b[/align] |
[align=justify]Int128 int128_rshift(Int128 a, int n)[/align] | [align=justify]a >> n[/align] |
[align=justify]Int128 int128_add(Int128 a, Int128 b)[/align] | [align=justify]a + b[/align] |
[align=justify]Int128 int128_neg(Int128 a)[/align] | [align=justify]-a[/align] |
[align=justify]Int128 int128_sub(Int128 a, Int128 b)[/align] | [align=justify]a – b[/align] |
[align=justify]int128_nonneg(Int128 a)[/align] | [align=justify]a >= 0[/align] |
[align=justify]bool int128_eq(Int128 a, Int128 b)[/align] | [align=justify]a == b[/align] |
[align=justify]bool int128_ne(Int128 a, Int128 b)[/align] | [align=justify]a != b[/align] |
[align=justify]bool int128_ge(Int128 a, Int128 b)[/align] | [align=justify]a >= b[/align] |
[align=justify]bool int128_lt(Int128 a, Int128 b)[/align] | [align=justify] a < b [/align] |
[align=justify] bool int128_le(Int128 a, Int128 b)[/align] | [align=justify]a <= b[/align] |
[align=justify]bool int128_gt(Int128 a, Int128 b)[/align] | [align=justify]a > b[/align] |
[align=justify] bool int128_nz(Int128 a)[/align] | [align=justify]a != 0[/align] |
[align=justify] Int128 int128_min(Int128 a, Int128 b)[/align] | [align=justify]a <= b ? a : b[/align] |
[align=justify]Int128 int128_max(Int128 a, Int128 b)[/align] | [align=justify]a >= b ? a : b[/align] |
[align=justify]void int128_addto(Int128 *a, Int128 b)[/align] | [align=justify]a = a + b[/align] |
[align=justify]void int128_subfrom(Int128 *a, Int128 b)[/align] | [align=justify]a = a – b[/align] |
相关文章推荐
- QEMU中VCPU线程间的IPI发送核间中断(基于QEMU2.0.0)
- 通过KVM_SET_USER_MEMORY_REGION操作虚拟机内存(Kernel 3.10.0 & qemu 2.0.0)
- Samba服务器的配置
- ARM SERVER 虚拟机挂载多块磁盘问题的解决方法
- eclipse 如何将maven target目录排除在搜索结果之外?
- QEMU VCPU线程同步机制之QemuCond(基于QEMU2.0.0)
- Linux 新api eventfd
- KVM源代码分析1:基本工作原理
- select(poll)实现代码实现分析(基于kernel 3.10.0)
- select(poll)实现代码实现分析(基于kernel 3.10.0)
- 安卓优化
- Vhost Architecture(基于kernel3.10.0 & qemu2.0.0)
- [个人推荐]理解poll_wait
- linux内核的等待队列使用方法,wait_queue_head_t,进程休眠
- [个人推荐] Linux poll机制分析(基于内核3.10.0)
- linux poll 和 等待队列休眠的关系(基于kernel 3.10.0)
- VI VIM 在行首行尾添加文字字符串
- 新手对Bash环境变量解析漏洞的理解 http://www.linuxidc.com/Linux/2014-10/107984.htm
- Android sendevent/getevent 用法
- vmware workstation11安装redhat5