指南

本文件描述了適用於 nova-core 和 nova-drm 的通用專案指南。

語言

Nova 專案使用 Rust 程式語言。 在這種情況下,適用於 Linux 專案的所有 Rust 規則,如 通用資訊 中記錄的那些規則,均適用。 此外,還適用以下規則。

  • 除非技術上另有必要(例如,uAPI),否則任何驅動程式程式碼都用 Rust 編寫。

  • 除非技術上必要,否則必須避免不安全的 Rust 程式碼。 如果技術上必要,則應將不安全的程式碼隔離在單獨的元件中,為其他驅動程式程式碼提供安全的 API 以供使用。

樣式

適用於 Linux 專案的所有 Rust 規則,如 編碼指南 中記錄的那些規則,均適用。

有關提交清單,另請參見 Linux 提交清單附錄的 Rust

文件

就可擴充套件性、新貢獻者的可訪問性以及專案的可維護性而言,適當文件的可用性至關重要,特別是對於像 Nova 這樣針對複雜硬體執行的驅動程式。

因此,專案非常鼓勵新增任何型別的文件。

除此之外,還有一些最低要求。

  • 每個非私有結構至少需要一個簡短的文件註釋,以解釋該結構的語義意義,以及潛在的鎖定和生命週期要求。 鼓勵對非平凡的私有結構使用相同的最低文件。

  • uAPI 必須使用 kernel-doc 註釋完全記錄;此外,必須解釋語義行為,包括潛在的特殊或極端情況。

  • 連線一級驅動程式 (nova-core) 與二級驅動程式的 API 必須完全記錄。 這包括文件註釋、潛在的鎖定和生命週期要求,以及適用的示例程式碼。

  • 縮寫必須在引入時進行解釋;術語必須唯一地定義。

  • 暫存器地址、佈局、移位值和掩碼必須正確定義;除非顯而易見,否則必須記錄語義意義。 這僅適用於作者能夠獲得相應資訊的情況。

驗收標準

  • 補丁必須僅在經過郵件列表上的至少另一人審查後才能應用;這也適用於維護者。