
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
linux 内核的入口函数是每个体系结构自己定义的,假设当前架构的内核入口函数是:kernel_entry(),则下面梳理了从核的初始化过程(内核版本:4.19):在从核线程中:smpboot_thread_fn() 会循环(while(1))调用 cpuhp_thread_fun(),后者在每次被调用时都会更新当前 cpu 的 state (在 cpuhp_cpu_state 结构体中),当 s
在 linux 内核中可以通过 DECLARE_BITMAP 宏来声明一个位图变量,其中 name 是位图变量的名称,bits 是申请的位的数量,在置位和读取的过程中,应该判断是否超出了这个数量。以下是内核中的实现代码:#define DECLARE_BITMAP(name,bits) unsigned long name[BITS_TO_LONGS(bits)]#define BITS_PER_
Linux 4.19 内核 spinlock 相关文件梳理
gcc 里提供了内置 CAS 函数:__atomic_compare_exchange_n(),它的基本用法如下:Built-in Function:bool__atomic_compare_exchange_n(type*ptr,type*expected,typedesired, bool weak, int success_memorder, int failure_memorder)Thi
有很多场景,你可能会用到git commit --amend,比如:提交之后才发现自己忘了添加某些文件,提交之后才发现写错了提交信息,提交之后才发现代码中有处不规范的格式问题,可以快速改一下,然后再次提交,此时你如果像我一样有点洁癖的话,你可能会使用它。然而,需要意识到的是,git commit --amend 最终只是产生了一个提交,因为第二个提交命令修正了第一个提交的结果。如果你...
遇到该问题时,需要确认模块中引用的符号是否被 export 出来了。
使用乘法和位运算求整数除以 3 的结果。
经测试发现,在执行完 git rebase 之后,1)会生成的新的 commit id2)新commit 与旧commit 的父节点不相同3)旧 commit 的父节点保持不变查看某个 commit 的父节点的方法:$ git log --pretty=%P -n 1 commit-id...
1、#ifdef 和 #if defined 异同:相同点:都可以用来检查某个宏是否定义不同点:#ifdef 仅使用一个条件, #if defined 可以使用多个条件#ifdef 后面的条件不加括号,#if defined 后面的条件可以加括号,也可以不加括号#if defined (__vax__) || defined (__ns16000__)#if defined BUFSIZE &am
在linux C中,unlink() 可以删除一个文件,该函数的定义在 unistd.h 头文件里,下面看一下使用方法:// main.c#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(void) {int fd;char *fname= "a.txt";if ((fd = cre







