You've already forked comprehensive-rust
							
							
				mirror of
				https://github.com/google/comprehensive-rust.git
				synced 2025-10-31 00:27:50 +02:00 
			
		
		
		
	fa: bare-metal part 3/3 (#2330)
fa: bare-metal part 3/3 --------- Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com> Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										172
									
								
								po/fa.po
									
									
									
									
									
								
							
							
						
						
									
										172
									
								
								po/fa.po
									
									
									
									
									
								
							| @@ -17975,6 +17975,10 @@ msgid "" | |||||||
| "with a linker script to produce the binary itself, and then a `raw_binary` " | "with a linker script to produce the binary itself, and then a `raw_binary` " | ||||||
| "to convert the ELF to a raw binary ready to be run." | "to convert the ELF to a raw binary ready to be run." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "برای ساختن یک bare-metal Rust binary در AOSP، باید از یک `rust_ffi_static` " | ||||||
|  | "Soong برای ساخت کد Rust خود استفاده کنید، سپس از یک `cc_binary` با یک linker " | ||||||
|  | "script برای تولید binary استفاده کرده و سپس از یک `raw_binary` برای تبدیل " | ||||||
|  | "ELF به یک raw binary آماده اجرا استفاده کنید." | ||||||
|  |  | ||||||
| #: src/bare-metal/android/vmbase.md:1 | #: src/bare-metal/android/vmbase.md:1 | ||||||
| msgid "vmbase" | msgid "vmbase" | ||||||
| @@ -17987,22 +17991,31 @@ msgid "" | |||||||
| "master/vmbase/) library provides a linker script and useful defaults for the " | "master/vmbase/) library provides a linker script and useful defaults for the " | ||||||
| "build rules, along with an entry point, UART console logging and more." | "build rules, along with an entry point, UART console logging and more." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "برای ماشینهای مجازی که تحت crosvm در aarch64 اجرا میشوند، کتابخانه [vmbase]" | ||||||
|  | "(https://android.googlesource.com/platform/packages/modules/Virtualization/+/" | ||||||
|  | "refs/heads/master/vmbase/) یک اسکریپت linker و پیشفرضهای مفیدی را ارائه " | ||||||
|  | "میکند. برای این قوانین ساخت، همراه با یک نقطه ورودی، UART console logging و " | ||||||
|  | "موارد دیگر." | ||||||
|  |  | ||||||
| #: src/bare-metal/android/vmbase.md:24 | #: src/bare-metal/android/vmbase.md:24 | ||||||
| msgid "" | msgid "" | ||||||
| "The `main!` macro marks your main function, to be called from the `vmbase` " | "The `main!` macro marks your main function, to be called from the `vmbase` " | ||||||
| "entry point." | "entry point." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "این ماکرو `main!`عملکرد اصلی شما را مشخص میکند تا از نقطه ورودی `vmbase` " | ||||||
|  | "فراخوانی شود." | ||||||
|  |  | ||||||
| #: src/bare-metal/android/vmbase.md:26 | #: src/bare-metal/android/vmbase.md:26 | ||||||
| msgid "" | msgid "" | ||||||
| "The `vmbase` entry point handles console initialisation, and issues a " | "The `vmbase` entry point handles console initialisation, and issues a " | ||||||
| "PSCI_SYSTEM_OFF to shutdown the VM if your main function returns." | "PSCI_SYSTEM_OFF to shutdown the VM if your main function returns." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "نقطه ورودی `vmbase` مقدار دهی اولیه کنسول را کنترل میکند و در صورت بازگشت " | ||||||
|  | "main function، یک PSCI_SYSTEM_OFF برای خاموش کردن VM صادر میکند." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/afternoon.md | #: src/exercises/bare-metal/afternoon.md | ||||||
| msgid "We will write a driver for the PL031 real-time clock device." | msgid "We will write a driver for the PL031 real-time clock device." | ||||||
| msgstr "" | msgstr "ما یک درایور برای دستگاه PL031 real-time clock  خواهیم نوشت." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/afternoon.md | #: src/exercises/bare-metal/afternoon.md | ||||||
| msgid "" | msgid "" | ||||||
| @@ -18015,27 +18028,38 @@ msgstr "" | |||||||
| #: src/exercises/bare-metal/rtc.md:1 | #: src/exercises/bare-metal/rtc.md:1 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:3 | #: src/exercises/bare-metal/solutions-afternoon.md:3 | ||||||
| msgid "RTC driver" | msgid "RTC driver" | ||||||
| msgstr "" | msgstr "RTC driver" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:3 | #: src/exercises/bare-metal/rtc.md:3 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "The QEMU aarch64 virt machine has a [PL031](https://developer.arm.com/" | "The QEMU aarch64 virt machine has a [PL031](https://developer.arm.com/" | ||||||
| "documentation/ddi0224/c) real-time clock at 0x9010000. For this exercise, " | "documentation/ddi0224/c) real-time clock at 0x9010000. For this exercise, " | ||||||
| "you should write a driver for it." | "you should write a driver for it." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "ماشین QEMU aarch64 virt دارای یک ساعت بلادرنگ [PL031](https://developer.arm." | ||||||
|  | "com/documentation/ddi0224/c) در 0x9010000 است. برای این تمرین باید یک درایور " | ||||||
|  | "برای آن بنویسید." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:6 | #: src/exercises/bare-metal/rtc.md:6 | ||||||
| msgid "" | msgid "" | ||||||
| "Use it to print the current time to the serial console. You can use the " | "Use it to print the current time to the serial console. You can use the " | ||||||
| "[`chrono`](https://crates.io/crates/chrono) crate for date/time formatting." | "[`chrono`](https://crates.io/crates/chrono) crate for date/time formatting." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "از آن برای چاپ زمان جاری در کنسول سریال استفاده کنید. میتوانید از crate " | ||||||
|  | "[`chrono`](https://crates.io/crates/chrono) برای قالببندی date/time استفاده " | ||||||
|  | "کنید." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:8 | #: src/exercises/bare-metal/rtc.md:8 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "Use the match register and raw interrupt status to busy-wait until a given " | "Use the match register and raw interrupt status to busy-wait until a given " | ||||||
| "time, e.g. 3 seconds in the future. (Call [`core::hint::spin_loop`](https://" | "time, e.g. 3 seconds in the future. (Call [`core::hint::spin_loop`](https://" | ||||||
| "doc.rust-lang.org/core/hint/fn.spin_loop.html) inside the loop.)" | "doc.rust-lang.org/core/hint/fn.spin_loop.html) inside the loop.)" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "از match register و raw interrupt status استفاده کنید تا تا زمان معینی منتظر " | ||||||
|  | "بمانید، به عنوان مثال. ۳ ثانیه در آینده نزدیک (Call [`core::hint::spin_loop`]" | ||||||
|  | "(https://doc.rust-lang.org/core/hint/fn.spin_loop.html) inside the loop.)" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:11 | #: src/exercises/bare-metal/rtc.md:11 | ||||||
| msgid "" | msgid "" | ||||||
| @@ -18043,176 +18067,214 @@ msgid "" | |||||||
| "the RTC match. You can use the driver provided in the [`arm-gic`](https://" | "the RTC match. You can use the driver provided in the [`arm-gic`](https://" | ||||||
| "docs.rs/arm-gic/) crate to configure the Arm Generic Interrupt Controller." | "docs.rs/arm-gic/) crate to configure the Arm Generic Interrupt Controller." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "ء _افزونهها اگر زمان دارید:_ وقفه ایجاد شده توسط تطبیق RTC را فعال کرده و آن " | ||||||
|  | "را مدیریت کنید. میتوانید از درایور ارائه شده در crate [`arm-gic`](https://" | ||||||
|  | "docs.rs/arm-gic/) برای پیکربندی Arm Generic Interrupt Controller استفاده " | ||||||
|  | "کنید." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:14 | #: src/exercises/bare-metal/rtc.md:14 | ||||||
| msgid "Use the RTC interrupt, which is wired to the GIC as `IntId::spi(2)`." | msgid "Use the RTC interrupt, which is wired to the GIC as `IntId::spi(2)`." | ||||||
| msgstr "" | msgstr "از وقفه RTC استفاده کنید که به عنوان `IntId::spi(2)` به GIC متصل است." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:15 | #: src/exercises/bare-metal/rtc.md:15 | ||||||
| msgid "" | msgid "" | ||||||
| "Once the interrupt is enabled, you can put the core to sleep via `arm_gic::" | "Once the interrupt is enabled, you can put the core to sleep via `arm_gic::" | ||||||
| "wfi()`, which will cause the core to sleep until it receives an interrupt." | "wfi()`, which will cause the core to sleep until it receives an interrupt." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "هنگامی که وقفه (interrupt) فعال شد، میتوانید هسته را از طریق `arm_gic::" | ||||||
|  | "wfi()` به حالت Sleep درآورید، که باعث میشود هسته تا زمانی که وقفه دریافت کند " | ||||||
|  | "به خواب برود." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:19 | #: src/exercises/bare-metal/rtc.md:19 | ||||||
| msgid "" | msgid "" | ||||||
| "Download the [exercise template](../../comprehensive-rust-exercises.zip) and " | "Download the [exercise template](../../comprehensive-rust-exercises.zip) and " | ||||||
| "look in the `rtc` directory for the following files." | "look in the `rtc` directory for the following files." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "دانلود از [exercise template](../../comprehensive-rust-exercises.zip) و " | ||||||
|  | "فایلهای زیر را در دایرکتوری `rtc` جستجو کنید." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:79 | #: src/exercises/bare-metal/rtc.md:79 | ||||||
| msgid "" | msgid "" | ||||||
| "_src/exceptions.rs_ (you should only need to change this for the 3rd part of " | "_src/exceptions.rs_ (you should only need to change this for the 3rd part of " | ||||||
| "the exercise):" | "the exercise):" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "ء _src/exceptions.rs_ (شما فقط باید این را برای بخش سوم تمرین تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:156 | #: src/exercises/bare-metal/rtc.md:156 | ||||||
| msgid "_src/logger.rs_ (you shouldn't need to change this):" | msgid "_src/logger.rs_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "ء _src/logger.rs_ (نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:216 | #: src/exercises/bare-metal/rtc.md:216 | ||||||
| msgid "_src/pl011.rs_ (you shouldn't need to change this):" | msgid "_src/pl011.rs_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_src/pl011.rs_ (نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:419 | #: src/exercises/bare-metal/rtc.md:419 | ||||||
| msgid "_build.rs_ (you shouldn't need to change this):" | msgid "_build.rs_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_build.rs_ (نیازی نیست این مورد رو تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:456 | #: src/exercises/bare-metal/rtc.md:456 | ||||||
| msgid "_entry.S_ (you shouldn't need to change this):" | msgid "_entry.S_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_entry.S_ ( نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:606 | #: src/exercises/bare-metal/rtc.md:606 | ||||||
| msgid "_exceptions.S_ (you shouldn't need to change this):" | msgid "_exceptions.S_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_exceptions.S_ ( نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:792 | #: src/exercises/bare-metal/rtc.md:792 | ||||||
| msgid "_idmap.S_ (you shouldn't need to change this):" | msgid "_idmap.S_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_idmap.S_ (نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:842 | #: src/exercises/bare-metal/rtc.md:842 | ||||||
| msgid "_image.ld_ (you shouldn't need to change this):" | msgid "_image.ld_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_image.ld_ (نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:954 | #: src/exercises/bare-metal/rtc.md:954 | ||||||
| msgid "_Makefile_ (you shouldn't need to change this):" | msgid "_Makefile_ (you shouldn't need to change this):" | ||||||
| msgstr "" | msgstr "_Makefile_ (نیازی نیست این مورد را تغییر دهید):" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/rtc.md:1011 | #: src/exercises/bare-metal/rtc.md:1011 | ||||||
| msgid "Run the code in QEMU with `make qemu`." | msgid "Run the code in QEMU with `make qemu`." | ||||||
| msgstr "" | msgstr "کد را در QEMU با  `make qemu` اجرا کنید." | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:1 | #: src/exercises/bare-metal/solutions-afternoon.md:1 | ||||||
| msgid "Bare Metal Rust Afternoon" | msgid "Bare Metal Rust Afternoon" | ||||||
| msgstr "عصرانه با  Bare Metal Rust" | msgstr "بعدازظهربا Bare Metal Rust" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:5 | #: src/exercises/bare-metal/solutions-afternoon.md:5 | ||||||
|  | #, fuzzy | ||||||
| msgid "([back to exercise](rtc.md))" | msgid "([back to exercise](rtc.md))" | ||||||
| msgstr "" | msgstr "([back to exercise](rtc.md))" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:7 | #: src/exercises/bare-metal/solutions-afternoon.md:7 | ||||||
| msgid "_main.rs_:" | msgid "_main.rs_:" | ||||||
| msgstr "" | msgstr "_main.rs_:" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:29 | #: src/exercises/bare-metal/solutions-afternoon.md:29 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Base addresses of the GICv3.\n" | msgid "/// Base addresses of the GICv3.\n" | ||||||
| msgstr "" | msgstr "/// Base addresses of the GICv3.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:36 | #: src/exercises/bare-metal/solutions-afternoon.md:36 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Base address of the PL031 RTC.\n" | msgid "/// Base address of the PL031 RTC.\n" | ||||||
| msgstr "" | msgstr "/// Base address of the PL031 RTC.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:38 | #: src/exercises/bare-metal/solutions-afternoon.md:38 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// The IRQ used by the PL031 RTC.\n" | msgid "/// The IRQ used by the PL031 RTC.\n" | ||||||
| msgstr "" | msgstr "/// The IRQ used by the PL031 RTC.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:49 | #: src/exercises/bare-metal/solutions-afternoon.md:49 | ||||||
|  | #, fuzzy | ||||||
| msgid "\"main({:#x}, {:#x}, {:#x}, {:#x})\"" | msgid "\"main({:#x}, {:#x}, {:#x}, {:#x})\"" | ||||||
| msgstr "" | msgstr "\"main({:#x}, {:#x}, {:#x}, {:#x})\"" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:51 | #: src/exercises/bare-metal/solutions-afternoon.md:51 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "// SAFETY: `GICD_BASE_ADDRESS` and `GICR_BASE_ADDRESS` are the base\n" | "// SAFETY: `GICD_BASE_ADDRESS` and `GICR_BASE_ADDRESS` are the base\n" | ||||||
| "    // addresses of a GICv3 distributor and redistributor respectively, and\n" | "    // addresses of a GICv3 distributor and redistributor respectively, and\n" | ||||||
| "    // nothing else accesses those address ranges.\n" | "    // nothing else accesses those address ranges.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "// SAFETY: `GICD_BASE_ADDRESS` and `GICR_BASE_ADDRESS` are the base\n" | ||||||
|  | "    // addresses of a GICv3 distributor and redistributor respectively, and\n" | ||||||
|  | "    // nothing else accesses those address ranges.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:57 | #: src/exercises/bare-metal/solutions-afternoon.md:57 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "// SAFETY: `PL031_BASE_ADDRESS` is the base address of a PL031 device, and\n" | "// SAFETY: `PL031_BASE_ADDRESS` is the base address of a PL031 device, and\n" | ||||||
| "    // nothing else accesses that address range.\n" | "    // nothing else accesses that address range.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "// SAFETY: `PL031_BASE_ADDRESS` is the base address of a PL031 device, and\n" | ||||||
|  | "    // nothing else accesses that address range.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:62 | #: src/exercises/bare-metal/solutions-afternoon.md:62 | ||||||
|  | #, fuzzy | ||||||
| msgid "\"RTC: {time}\"" | msgid "\"RTC: {time}\"" | ||||||
| msgstr "" | msgstr "\"RTC: {time}\"" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:70 | #: src/exercises/bare-metal/solutions-afternoon.md:70 | ||||||
|  | #, fuzzy | ||||||
| msgid "// Wait for 3 seconds, without interrupts.\n" | msgid "// Wait for 3 seconds, without interrupts.\n" | ||||||
| msgstr "" | msgstr "// Wait for 3 seconds, without interrupts.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:73 | #: src/exercises/bare-metal/solutions-afternoon.md:73 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:91 | #: src/exercises/bare-metal/solutions-afternoon.md:91 | ||||||
|  | #, fuzzy | ||||||
| msgid "\"Waiting for {}\"" | msgid "\"Waiting for {}\"" | ||||||
| msgstr "" | msgstr "\"Waiting for {}\"" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:75 | #: src/exercises/bare-metal/solutions-afternoon.md:75 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:83 | #: src/exercises/bare-metal/solutions-afternoon.md:83 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:96 | #: src/exercises/bare-metal/solutions-afternoon.md:96 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:104 | #: src/exercises/bare-metal/solutions-afternoon.md:104 | ||||||
|  | #, fuzzy | ||||||
| msgid "\"matched={}, interrupt_pending={}\"" | msgid "\"matched={}, interrupt_pending={}\"" | ||||||
| msgstr "" | msgstr "\"matched={}, interrupt_pending={}\"" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:87 | #: src/exercises/bare-metal/solutions-afternoon.md:87 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:108 | #: src/exercises/bare-metal/solutions-afternoon.md:108 | ||||||
|  | #, fuzzy | ||||||
| msgid "\"Finished waiting\"" | msgid "\"Finished waiting\"" | ||||||
| msgstr "" | msgstr "\"Finished waiting\"" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:89 | #: src/exercises/bare-metal/solutions-afternoon.md:89 | ||||||
|  | #, fuzzy | ||||||
| msgid "// Wait another 3 seconds for an interrupt.\n" | msgid "// Wait another 3 seconds for an interrupt.\n" | ||||||
| msgstr "" | msgstr "// Wait another 3 seconds for an interrupt.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:121 | #: src/exercises/bare-metal/solutions-afternoon.md:121 | ||||||
| msgid "_pl031.rs_:" | msgid "_pl031.rs_:" | ||||||
| msgstr "" | msgstr "_pl031.rs_:" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:128 | #: src/exercises/bare-metal/solutions-afternoon.md:128 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Data register\n" | msgid "/// Data register\n" | ||||||
| msgstr "" | msgstr "/// Data register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:130 | #: src/exercises/bare-metal/solutions-afternoon.md:130 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Match register\n" | msgid "/// Match register\n" | ||||||
| msgstr "" | msgstr "/// Match register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:132 | #: src/exercises/bare-metal/solutions-afternoon.md:132 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Load register\n" | msgid "/// Load register\n" | ||||||
| msgstr "" | msgstr "/// Load register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:134 | #: src/exercises/bare-metal/solutions-afternoon.md:134 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Control register\n" | msgid "/// Control register\n" | ||||||
| msgstr "" | msgstr "/// Control register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:137 | #: src/exercises/bare-metal/solutions-afternoon.md:137 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Interrupt Mask Set or Clear register\n" | msgid "/// Interrupt Mask Set or Clear register\n" | ||||||
| msgstr "" | msgstr "/// Interrupt Mask Set or Clear register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:140 | #: src/exercises/bare-metal/solutions-afternoon.md:140 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Raw Interrupt Status\n" | msgid "/// Raw Interrupt Status\n" | ||||||
| msgstr "" | msgstr "/// Raw Interrupt Status\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:143 | #: src/exercises/bare-metal/solutions-afternoon.md:143 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Masked Interrupt Status\n" | msgid "/// Masked Interrupt Status\n" | ||||||
| msgstr "" | msgstr "/// Masked Interrupt Status\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:146 | #: src/exercises/bare-metal/solutions-afternoon.md:146 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Interrupt Clear Register\n" | msgid "/// Interrupt Clear Register\n" | ||||||
| msgstr "" | msgstr "/// Interrupt Clear Register\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:150 | #: src/exercises/bare-metal/solutions-afternoon.md:150 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Driver for a PL031 real-time clock.\n" | msgid "/// Driver for a PL031 real-time clock.\n" | ||||||
| msgstr "" | msgstr "/// Driver for a PL031 real-time clock.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:158 | #: src/exercises/bare-metal/solutions-afternoon.md:158 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "/// Constructs a new instance of the RTC driver for a PL031 device at the\n" | "/// Constructs a new instance of the RTC driver for a PL031 device at the\n" | ||||||
| "    /// given base address.\n" | "    /// given base address.\n" | ||||||
| @@ -18225,10 +18287,21 @@ msgid "" | |||||||
| "process\n" | "process\n" | ||||||
| "    /// as device memory and not have any other aliases.\n" | "    /// as device memory and not have any other aliases.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "/// Constructs a new instance of the RTC driver for a PL031 device at the\n" | ||||||
|  | "    /// given base address.\n" | ||||||
|  | "    ///\n" | ||||||
|  | "    /// # Safety\n" | ||||||
|  | "    ///\n" | ||||||
|  | "    /// The given base address must point to the MMIO control registers of " | ||||||
|  | "a\n" | ||||||
|  | "    /// PL031 device, which must be mapped into the address space of the " | ||||||
|  | "process\n" | ||||||
|  | "    /// as device memory and not have any other aliases.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:170 | #: src/exercises/bare-metal/solutions-afternoon.md:170 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Reads the current RTC value.\n" | msgid "/// Reads the current RTC value.\n" | ||||||
| msgstr "" | msgstr "/// Reads the current RTC value.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:172 | #: src/exercises/bare-metal/solutions-afternoon.md:172 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:180 | #: src/exercises/bare-metal/solutions-afternoon.md:180 | ||||||
| @@ -18236,33 +18309,49 @@ msgstr "" | |||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:199 | #: src/exercises/bare-metal/solutions-afternoon.md:199 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:211 | #: src/exercises/bare-metal/solutions-afternoon.md:211 | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:218 | #: src/exercises/bare-metal/solutions-afternoon.md:218 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "// SAFETY: We know that self.registers points to the control registers\n" | "// SAFETY: We know that self.registers points to the control registers\n" | ||||||
| "        // of a PL031 device which is appropriately mapped.\n" | "        // of a PL031 device which is appropriately mapped.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "// SAFETY: We know that self.registers points to the control registers\n" | ||||||
|  | "        // of a PL031 device which is appropriately mapped.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:177 | #: src/exercises/bare-metal/solutions-afternoon.md:177 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "/// Writes a match value. When the RTC value matches this then an interrupt\n" | "/// Writes a match value. When the RTC value matches this then an interrupt\n" | ||||||
| "    /// will be generated (if it is enabled).\n" | "    /// will be generated (if it is enabled).\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "/// Writes a match value. When the RTC value matches this then an interrupt\n" | ||||||
|  | "    /// will be generated (if it is enabled).\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:185 | #: src/exercises/bare-metal/solutions-afternoon.md:185 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "/// Returns whether the match register matches the RTC value, whether or " | "/// Returns whether the match register matches the RTC value, whether or " | ||||||
| "not\n" | "not\n" | ||||||
| "    /// the interrupt is enabled.\n" | "    /// the interrupt is enabled.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "/// Returns whether the match register matches the RTC value, whether or " | ||||||
|  | "not\n" | ||||||
|  | "    /// the interrupt is enabled.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:194 | #: src/exercises/bare-metal/solutions-afternoon.md:194 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "/// Returns whether there is currently an interrupt pending.\n" | "/// Returns whether there is currently an interrupt pending.\n" | ||||||
| "    ///\n" | "    ///\n" | ||||||
| "    /// This should be true if and only if `matched` returns true and the\n" | "    /// This should be true if and only if `matched` returns true and the\n" | ||||||
| "    /// interrupt is masked.\n" | "    /// interrupt is masked.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "/// Returns whether there is currently an interrupt pending.\n" | ||||||
|  | "    ///\n" | ||||||
|  | "    /// This should be true if and only if `matched` returns true and the\n" | ||||||
|  | "    /// interrupt is masked.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:205 | #: src/exercises/bare-metal/solutions-afternoon.md:205 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "/// Sets or clears the interrupt mask.\n" | "/// Sets or clears the interrupt mask.\n" | ||||||
| "    ///\n" | "    ///\n" | ||||||
| @@ -18270,16 +18359,25 @@ msgid "" | |||||||
| "the\n" | "the\n" | ||||||
| "    /// interrupt is disabled.\n" | "    /// interrupt is disabled.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "/// Sets or clears the interrupt mask.\n" | ||||||
|  | "    ///\n" | ||||||
|  | "    /// When the mask is true the interrupt is enabled; when it is false " | ||||||
|  | "the\n" | ||||||
|  | "    /// interrupt is disabled.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:216 | #: src/exercises/bare-metal/solutions-afternoon.md:216 | ||||||
|  | #, fuzzy | ||||||
| msgid "/// Clears a pending interrupt, if any.\n" | msgid "/// Clears a pending interrupt, if any.\n" | ||||||
| msgstr "" | msgstr "/// Clears a pending interrupt, if any.\n" | ||||||
|  |  | ||||||
| #: src/exercises/bare-metal/solutions-afternoon.md:223 | #: src/exercises/bare-metal/solutions-afternoon.md:223 | ||||||
|  | #, fuzzy | ||||||
| msgid "" | msgid "" | ||||||
| "// SAFETY: `Rtc` just contains a pointer to device memory, which can be\n" | "// SAFETY: `Rtc` just contains a pointer to device memory, which can be\n" | ||||||
| "// accessed from any context.\n" | "// accessed from any context.\n" | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "// SAFETY: `Rtc` just contains a pointer to device memory, which can be\n" | ||||||
|  | "// accessed from any context.\n" | ||||||
|  |  | ||||||
| #: src/concurrency/welcome.md | #: src/concurrency/welcome.md | ||||||
| msgid "Welcome to Concurrency in Rust" | msgid "Welcome to Concurrency in Rust" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user