for循环 迭代一个数组 rust的for循环实际上是被编译器扩展成了对方法的调用。对于使用for循环来迭代一 …
简单实现posix中规定的memcmp函数
简介 memcmp函数的功能非常简单,传入两个指针s1和s2,以及要比较的字节大小n,比较这两块内存的值的差异 …
高效的无锁引用计数结构:lockref
lockref lockref是将自旋锁与引用计数变量融合在连续、对齐的8字节内的一种技术。 lockre …
C语言实现编译期断言
编译期断言是一种对编译期能计算出来的常量的值进行断言,从而避免代码中引入一些不合理的值。 实现原理 编译期断言 …
DragonOS中的READ_ONCE()宏和WRITE_ONCE()宏
DragonOS中实现了与Linux相似的READ_ONCE()宏以及WRITE_ONCE()宏,主要目的在于 …
GCC禁用对某个类型的变量的“基于类型别名的分析”——may_alias
在写C/C++代码的时候,如果我们写以下代码: 那么,在编译的时候,GCC会抛出警告信息,提示我们这里的存在“ …
USB:根据制造商id及产品id获取产品名
相信很多人都有一个疑问,就是:电脑是怎么知道插入电脑的usb设备的产品名的?其中一种方法就是,根据usb设备的 …
在DragonOS中,使蜂鸣器发声
很简单,代码如下: 转载请注明来源:https://longjin666.cn/?p=1537
关于进程的Sleep,你所不知道的事情
关于进程sleep的两种实现方式,我称之为:中断型sleep和spin/rdtsc型sleep。 本视频介绍了 …
DragonOS的MMIO地址空间自动分配
代码 本文涉及到的代码,可查看对应的版本的链接:https://github.com/fslongjin/Dr …