• 線上工具
  • - 計算器
    • 字元計數
  • - 下載
    • TikTok 下載
    • 抖音下載
  • - 網路工具
    • BASE64
    • Base64 轉圖片
    • 圖片轉 Base64
    • URL 編碼
    • JavaScript
    • 時間戳
    • Unicode 轉換器
    • JSON 格式化
    • 修改副檔名
    • 製作列表
    • CSS 優化器
  • - 加密工具
    • MD5 加密
    • 隨機生成器
  • - 圖像工具
    • 圖像壓縮
    • QR 碼生成器
    • QR 碼識別器
    • 壁紙預覽
    • 圖片 EXIF
  • - 資訊表
    • 血型遺傳
    • 服裝尺寸
    • app.tool_clock
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Linux pollメカニズムの詳細な説明
2022-01-29

すべてのシステム呼び出しは、その名前の前に「sys_」を付けることができることに基づいています。接頭辞。これがカーネルに対応する関数です。例えばopen、read、write、pollをシステムが呼び出し、それに対応するカーネル関数はsys_open、sys_read、sys_write、sys_poll。

一、カーネルフレームワーク:

システム呼び出しpollまたはselectの場合、対応するカーネル関数はsys_です。poll。解析sys_pollは、pollメカニズムを理解することができます。

1.

sys_Poll関数はfs/selectにある.cファイルでは、コードは以下の通りです。

< 0) or no (0) timeout */ timeout_jiffies = timeout_msecs; } return do_sys_poll(ufds, nfds, &timeout_jiffies); }タイムアウトパラメータを少し処理した後、do_を直接呼び出します。sys_poll。

2.

do_sys_Poll関数もfs/selectに位置する.cファイルでは、他のコードは無視されます。

poll_initwait関数は非常に簡単で、pollを初期化します。wqueues変数table:

int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout)
{
……
poll_initwait(&table);
……

fdcount = do_poll(nfds, head, &table, timeout);
……
}

poll_initwait > init_poll_funcptr(&pwq->pt, __pollwait); > pt->qproc = qproc;

すなわちtable->pt->qproc=pollwait,__pollwaitは駆動するpoll関数に使用されます。

3.

do_sys_Poll関数はfs/selectにある.cファイルでは、コードは以下の通りです。

= (s64)MAX_SCHEDULE_TIMEOUT-1)) {

< 0) { 16 /* Wait indefinitely */ 17 __timeout = MAX_SCHEDULE_TIMEOUT; 18 } else if (unlikely(*timeout >19

/*

20

* Wait for longer than MAX_SCHEDULE_TIMEOUT. Do it in

21

* a loop

22

*/

23

__timeout = MAX_SCHEDULE_TIMEOUT - 1;

static inline unsigned int do_pollfd(struct pollfd *pollfd, poll_table *pwait)

{

……

if (file->f_op && file->f_op->poll)

mask = file->f_op->poll(file, pwait);

……

}

24

*timeout -= __timeout;

25

static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)

{

if (p && wait_address)

p->qproc(filp, wait_address, p);

}

} else {

static void __pollwait(struct file *filp, wait_queue_head_t *wait_address,

poll_table *p)

{

struct poll_table_entry *entry = poll_get_entry(p);

if (!entry)

return;

get_file(filp);

entry->filp = filp;

entry->wait_address = wait_address;

init_waitqueue_entry(&entry->wait, current);

add_wait_queue(wait_address, &entry->wait);

}

26

__timeout = *timeout;

27

*timeout = 0;

28

}

29

30

__timeout = schedule_timeout(__timeout);

31


ソース元URL:https://dopubox.com/article/p/08ccc3846a4e07d7

其他工具
  • 字元計數 TikTok 下載 抖音下載 BASE64 Base64 轉圖片 圖片轉 Base64 URL 編碼 JavaScript 時間戳 Unicode 轉換器 JSON 格式化 修改副檔名 製作列表 CSS 優化器 MD5 加密 隨機生成器 圖像壓縮 QR 碼生成器 QR 碼識別器 壁紙預覽 圖片 EXIF 血型遺傳 服裝尺寸 app.tool_clock
  • 美術館の裏側を伝える展覧会「鎌倉別館40周年記念 てあて・まもり・のこす 神奈川県立近代美術館の保存修復」レポート
    2024-05-29

    「現実をみんなに伝えたい」能登高校書道部が新作の書道パフォーマンスを披露…部員それぞれが抱える大地震の被害
    2024-05-30

    一力が本因坊初防衛
    2024-05-30

    囲碁、一力遼本因坊が初防衛 余正麒破り三冠堅持
    2024-05-30

    ブームなぜ起きた? 東京国立近代美術館で「ハニワと土偶の近代」展
    2024-05-30

    「韓国版純烈」K4の「アダルトKポップ」 日本デビュー曲USEN1位も獲得 コアな追っかけも
    2024-05-30

    意思疎通うまくいかず信頼関係失われた
    2024-05-31

    鳥取・大山でたいまつ行列 夏山開き前夜祭
    2024-06-01

    あらゆる知識に精通した「天才」が教えてくれた、頭を良くするための新書の読み方と「究極のインプット・アウトプット」の方法
    2024-06-02

    芸術レベルのグッズも登場! パリ・東京・大阪の名コレクションが集まる「TRIO展」
    2024-06-01

    森鷗外の教師像に迫る 研究の「盲点」、記念館で特別展 学生の評判も紹介
    2024-06-01

    ポール・オースターの名言「けれどオニオンパイの味は…」【本と名言365】
    2024-06-02

    「警察密着24時」担当者ら懲戒 テレビ東京、石川社長は3割返上
    2024-06-03

    GROUP「島をつくる | Planning Another Island」(マイナビアートスクエア)開幕レポート。高層ビルのなかで建築をコンポストする
    2024-06-05

    「ゲバルト」展が東京日仏学院などで開催。反暴力的反応とその美的様式を探る
    2024-06-05

    【1971年の今日 : 6月5日】京王プラザホテル全面開業―今からは想像もできない着工前の巨大な貯水池だった頃の写真も
    2024-06-05

    週末見たい展覧会5選。今週はTRIO展、吉田克朗展、建築の構造デザインに焦点を当てた展覧会など。【2024年6月第2週】
    2024-06-05

    「安全だと誰も言わない万博」爆発事故で教職員組合 大阪府に子供無料招待中止申し入れ
    2024-06-04

    子供と行きたいおすすめ美術館【東京編】。子連れ、親子でアートを楽しもう!
    2024-06-06

    書評:「普通にラッセンが好き」と言えない現代美術界へ。原田裕規『評伝クリスチャン・ラッセン 日本に愛された画家』
    2024-06-06

    ©  Dopu Box
    💛