[C 语言笔记--Day29] 6.S081 Lab syscall: Sysinfo ( III )

接续昨天的题目

原本今天打算写完这题的,但一直卡在一个地方,

就先贴出我写到一半的成果吧

// kernel/sysproc.c
uint64
sys_sysinfo(void)
{
  uint64 info;
  struct sysinfo kinfo;
  struct proc *p = myproc();

  if(argaddr(0, &info) < 0)
    return -1;

  kinfo.freemem = freemem();
  kinfo.nproc = nproc();

  if(copyout(p->pagetable, info, (char *)&kinfo, sizeof(info)) < 0)
    return -1;
  
  return 0;
}
// kernel/kalloc.c
uint64
freemem(void)
{
  uint64 npage = 0;
  struct run *r;
  r = kmem.freelist;

  while (r) {
    npage++;
    r = r->next;
  }
  
  return npage * PGSIZE;
}

<<:  自动化 End-End 测试 nightwatch-html-reporter

>>:  Day 25. VR菜单3

【Day 26】Go 与 Redis

这篇之後要来补 QQ 事情是不是越积越多ㄌ Redis redis 是一个 in-memory 的...

Day 28 KubeEdge小专题: NodeMCU设定

今天要说硬体设定的部分,在室内亮度侦测的部分我使用光敏电阻。 NodeMCU的部分我使用NodeMC...

用 cv 2 、tkinter 实现选择路径打开照片并显示照片、照片直方图 histogram

实现思维: 一、用 tkinker file ask 方法配合按钮,执行按钮就开始选择路径照片, 并...

Day7 配对条件范例 (角色,人数上限)

今天我们要自己假订一个配对情境,来做一个比官方稍微复杂一点点的 Demo,并且透过这个模拟情境的实践...

Day 30 | 结语 & 心得

来到铁人赛的第30天,也就是最後一天了,今天我想要和深度学习的初学者们,以及愿意阅读我文章的读者,分...