指南¶
本文件描述了適用於 nova-core 和 nova-drm 的通用專案指南。
語言¶
Nova 專案使用 Rust 程式語言。 在這種情況下,適用於 Linux 專案的所有 Rust 規則,如 通用資訊 中記錄的那些規則,均適用。 此外,還適用以下規則。
除非技術上另有必要(例如,uAPI),否則任何驅動程式程式碼都用 Rust 編寫。
除非技術上必要,否則必須避免不安全的 Rust 程式碼。 如果技術上必要,則應將不安全的程式碼隔離在單獨的元件中,為其他驅動程式程式碼提供安全的 API 以供使用。
樣式¶
適用於 Linux 專案的所有 Rust 規則,如 編碼指南 中記錄的那些規則,均適用。
有關提交清單,另請參見 Linux 提交清單附錄的 Rust。
文件¶
就可擴充套件性、新貢獻者的可訪問性以及專案的可維護性而言,適當文件的可用性至關重要,特別是對於像 Nova 這樣針對複雜硬體執行的驅動程式。
因此,專案非常鼓勵新增任何型別的文件。
除此之外,還有一些最低要求。
每個非私有結構至少需要一個簡短的文件註釋,以解釋該結構的語義意義,以及潛在的鎖定和生命週期要求。 鼓勵對非平凡的私有結構使用相同的最低文件。
uAPI 必須使用 kernel-doc 註釋完全記錄;此外,必須解釋語義行為,包括潛在的特殊或極端情況。
連線一級驅動程式 (nova-core) 與二級驅動程式的 API 必須完全記錄。 這包括文件註釋、潛在的鎖定和生命週期要求,以及適用的示例程式碼。
縮寫必須在引入時進行解釋;術語必須唯一地定義。
暫存器地址、佈局、移位值和掩碼必須正確定義;除非顯而易見,否則必須記錄語義意義。 這僅適用於作者能夠獲得相應資訊的情況。
驗收標準¶
補丁必須僅在經過郵件列表上的至少另一人審查後才能應用;這也適用於維護者。