Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksarch-handbookscsi_index/ru/units/?format=api
{ "count": 358, "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/units/?format=api&page=2", "previous": null, "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Common Access Method SCSI Controllers" ], "previous_source": "", "target": [ "Контроллеры SCSI с общим методом доступа (CAM)" ], "id_hash": 8328813848045911965, "content_hash": 8328813848045911965, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1, documentation/content/en/books/arch-handbook/scsi/_index.adoc:14", "context": "", "note": "type: Title =", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 1, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1054972/?format=api", "priority": 100, "id": 1774498, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=f395e4111d217f9d", "url": "https://translate-dev.freebsd.org/api/units/1774498/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.941665Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Chapter 12. Common Access Method SCSI Controllers" ], "previous_source": "", "target": [ "Глава 12. Контроллеры SCSI с общим методом доступа (CAM)" ], "id_hash": 5834030138818218077, "content_hash": 5834030138818218077, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1", "context": "", "note": "type: YAML Front Matter: title", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 2, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1054970/?format=api", "priority": 100, "id": 1774499, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=d0f6a380512ec85d", "url": "https://translate-dev.freebsd.org/api/units/1774499/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.943328Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Synopsis" ], "previous_source": "", "target": [ "Обзор" ], "id_hash": -6651481047257516920, "content_hash": -6651481047257516920, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:52", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 3, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1054974/?format=api", "priority": 100, "id": 1774500, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=23b1313a83f8f488", "url": "https://translate-dev.freebsd.org/api/units/1774500/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.944144Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "This document assumes that the reader has a general understanding of device drivers in FreeBSD and of the SCSI protocol. Much of the information in this document was extracted from the drivers:" ], "previous_source": "", "target": [ "Этот документ предполагает, что читатель имеет общее представление о драйверах устройств в FreeBSD и о протоколе SCSI. Большая часть информации в этом документе была извлечена из драйверов:" ], "id_hash": 6186763494594337789, "content_hash": 6186763494594337789, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:56", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 4, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 32, "source_unit": "https://translate-dev.freebsd.org/api/units/1246660/?format=api", "priority": 100, "id": 1774501, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=d5dbcc9e94a65bfd", "url": "https://translate-dev.freebsd.org/api/units/1774501/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.944890Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "ncr ([.filename]#/sys/pci/ncr.c#) by Wolfgang Stanglmeier and Stefan Esser" ], "previous_source": "", "target": [ "ncr ([.filename]#/sys/pci/ncr.c#) от Wolfgang Stanglmeier и Stefan Esser" ], "id_hash": -741435975642844336, "content_hash": -741435975642844336, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:58", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 5, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1054978/?format=api", "priority": 100, "id": 1774502, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=75b5e3e8901cf350", "url": "https://translate-dev.freebsd.org/api/units/1774502/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.945644Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "sym ([.filename]#/sys/dev/sym/sym_hipd.c#) by Gerard Roudier" ], "previous_source": "", "target": [ "sym ([.filename]#/sys/dev/sym/sym_hipd.c#) от Gerard Roudier" ], "id_hash": 6342343011680034546, "content_hash": 6342343011680034546, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:59", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 6, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1054980/?format=api", "priority": 100, "id": 1774503, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=d804875daede9ef2", "url": "https://translate-dev.freebsd.org/api/units/1774503/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.946329Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "aic7xxx ([.filename]#/sys/dev/aic7xxx/aic7xxx.c#) by Justin T. Gibbs" ], "previous_source": "", "target": [ "aic7xxx ([.filename]#/sys/dev/aic7xxx/aic7xxx.c#) от Justin T. Gibbs" ], "id_hash": -3406522990347287303, "content_hash": -3406522990347287303, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:60", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 7, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1054982/?format=api", "priority": 100, "id": 1774504, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=50b99963892604f9", "url": "https://translate-dev.freebsd.org/api/units/1774504/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.947040Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "and from the CAM code itself (by Justin T. Gibbs, see [.filename]#/sys/cam/*#). When some solution looked the most logical and was essentially verbatim extracted from the code by Justin T. Gibbs, I marked it as \"recommended\"." ], "previous_source": "", "target": [ "и из самого кода CAM (автор Justin T. Gibbs, см. [.filename]#/sys/cam/*#). Когда какое-то решение выглядело наиболее логичным и было практически дословно взято из кода Justin T. Gibbs, я отмечал его как \"рекомендуемое\"." ], "id_hash": -4603393450907480144, "content_hash": -4603393450907480144, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:63", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 8, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/1246662/?format=api", "priority": 100, "id": 1774505, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=401d760bd54ccfb0", "url": "https://translate-dev.freebsd.org/api/units/1774505/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.947743Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "The document is illustrated with examples in pseudo-code. Although sometimes the examples have many details and look like real code, it is still pseudo-code. It was written to demonstrate the concepts in an understandable way. For a real driver other approaches may be more modular and efficient. It also abstracts from the hardware details, as well as issues that would cloud the demonstrated concepts or that are supposed to be described in the other chapters of the developers handbook. Such details are commonly shown as calls to functions with descriptive names, comments or pseudo-statements. Fortunately real life full-size examples with all the details can be found in the real drivers." ], "previous_source": "", "target": [ "Документ иллюстрирован примерами на псевдокоде. Хотя иногда примеры содержат много деталей и выглядят как настоящий код, это всё ещё псевдокод. Он был написан, чтобы продемонстрировать концепции в понятной форме. Для реального драйвера могут быть более модульные и эффективные подходы. Также он абстрагируется от деталей оборудования, а также от вопросов, которые могли бы затмить демонстрируемые концепции или которые предполагается описать в других главах руководства разработчика. Такие детали обычно показаны в виде вызовов функций с описательными именами, комментариев или псевдооператоров. К счастью, полные примеры из реальной жизни со всеми деталями можно найти в реальных драйверах." ], "id_hash": -5497182188582998948, "content_hash": -5497182188582998948, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:71", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 9, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 110, "source_unit": "https://translate-dev.freebsd.org/api/units/1246664/?format=api", "priority": 100, "id": 1774506, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=33b615ecbfe7ec5c", "url": "https://translate-dev.freebsd.org/api/units/1774506/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.948467Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "General Architecture" ], "previous_source": "", "target": [ "Общая архитектура" ], "id_hash": 6639668385623595631, "content_hash": 6639668385623595631, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:73", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 10, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1054988/?format=api", "priority": 100, "id": 1774507, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=dc24d737df7c5a6f", "url": "https://translate-dev.freebsd.org/api/units/1774507/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.949280Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "CAM stands for Common Access Method. It is a generic way to address the I/O buses in a SCSI-like way. This allows a separation of the generic device drivers from the drivers controlling the I/O bus: for example the disk driver becomes able to control disks on both SCSI, IDE, and/or any other bus so the disk driver portion does not have to be rewritten (or copied and modified) for every new I/O bus. Thus the two most important active entities are:" ], "previous_source": "", "target": [ "CAM означает Common Access Method (Общий Метод Доступа). Это универсальный способ адресации шин ввода-вывода в стиле SCSI. Это позволяет отделить общие драйверы устройств от драйверов, управляющих шиной ввода-вывода: например, драйвер диска получает возможность управлять дисками как на SCSI, IDE, так и на любой другой шине, так что часть драйвера диска не нужно переписывать (или копировать и изменять) для каждой новой шины ввода-вывода. Таким образом, двумя наиболее важными активными сущностями являются:" ], "id_hash": 6325617368282121523, "content_hash": 6325617368282121523, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:79", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 11, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 82, "source_unit": "https://translate-dev.freebsd.org/api/units/1246666/?format=api", "priority": 100, "id": 1774508, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=d7c91b7b5d7f4533", "url": "https://translate-dev.freebsd.org/api/units/1774508/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.949943Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "_Peripheral Modules_ - a driver for peripheral devices (disk, tape, CD-ROM, etc.)" ], "previous_source": "", "target": [ "_Модули периферийных устройств_ - драйвер для периферийных устройств (диски, ленты, CD-ROM и т.д.)" ], "id_hash": 2112168451274266198, "content_hash": 2112168451274266198, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:81", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 12, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1054992/?format=api", "priority": 100, "id": 1774509, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=9d4fee0403fd5656", "url": "https://translate-dev.freebsd.org/api/units/1774509/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.950676Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "_SCSI Interface Modules_ (SIM) - a Host Bus Adapter drivers for connecting to an I/O bus such as SCSI or IDE." ], "previous_source": "", "target": [ "_Модули интерфейса SCSI_ (SIM) - драйверы адаптеров шины для подключения к шине ввода-вывода, такой как SCSI или IDE." ], "id_hash": 1433063888360366001, "content_hash": 1433063888360366001, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:82", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 13, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/1054994/?format=api", "priority": 100, "id": 1774510, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=93e344038628dfb1", "url": "https://translate-dev.freebsd.org/api/units/1774510/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.951324Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "A peripheral driver receives requests from the OS, converts them to a sequence of SCSI commands and passes these SCSI commands to a SCSI Interface Module. The SCSI Interface Module is responsible for passing these commands to the actual hardware (or if the actual hardware is not SCSI but, for example, IDE then also converting the SCSI commands to the native commands of the hardware)." ], "previous_source": "", "target": [ "Периферийный драйвер получает запросы от ОС, преобразует их в последовательность команд SCSI и передаёт эти команды SCSI модулю интерфейса SCSI. Модуль интерфейса SCSI отвечает за передачу этих команд реальному оборудованию (или, если оборудование не поддерживает SCSI, а использует, например, IDE, также преобразует команды SCSI в собственные команды оборудования)." ], "id_hash": -3132542548396725109, "content_hash": -3132542548396725109, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:85", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 14, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 65, "source_unit": "https://translate-dev.freebsd.org/api/units/1246668/?format=api", "priority": 100, "id": 1774511, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=5486f9262f042c8b", "url": "https://translate-dev.freebsd.org/api/units/1774511/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.951991Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "As we are interested in writing a SCSI adapter driver here, from this point on we will consider everything from the SIM standpoint." ], "previous_source": "", "target": [ "Так как мы заинтересованы в написании драйвера адаптера SCSI, с этого момента мы будем рассматривать всё с точки зрения модуля SCSI-интерфейса (SIM)." ], "id_hash": -3885103319677610175, "content_hash": -3885103319677610175, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:87", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 15, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1054998/?format=api", "priority": 100, "id": 1774512, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=4a15571d6aecd741", "url": "https://translate-dev.freebsd.org/api/units/1774512/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.952852Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Globals and Boilerplate" ], "previous_source": "", "target": [ "Глобальные переменные и Шаблонный код" ], "id_hash": -5376125378704328050, "content_hash": -5376125378704328050, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:88", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 16, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1246670/?format=api", "priority": 100, "id": 1774513, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=35642a73b65dba8e", "url": "https://translate-dev.freebsd.org/api/units/1774513/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.953600Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "A typical SIM driver needs to include the following CAM-related header files:" ], "previous_source": "", "target": [ "Типичный драйвер SIM должен включать следующие заголовочные файлы, связанные с CAM:" ], "id_hash": -5988407711187294737, "content_hash": -5988407711187294737, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:91", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 17, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1055000/?format=api", "priority": 100, "id": 1774514, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=2ce4e6ea2478a5ef", "url": "https://translate-dev.freebsd.org/api/units/1774514/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.954264Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "#include <cam/cam.h>\n#include <cam/cam_ccb.h>\n#include <cam/cam_sim.h>\n#include <cam/cam_xpt_sim.h>\n#include <cam/cam_debug.h>\n#include <cam/scsi/scsi_all.h>\n" ], "previous_source": "", "target": [ "#include <cam/cam.h>\n#include <cam/cam_ccb.h>\n#include <cam/cam_sim.h>\n#include <cam/cam_xpt_sim.h>\n#include <cam/cam_debug.h>\n#include <cam/scsi/scsi_all.h>\n" ], "id_hash": 2176475240477633139, "content_hash": 2176475240477633139, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:100", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 18, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1055002/?format=api", "priority": 100, "id": 1774515, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=9e3464b3231a2a73", "url": "https://translate-dev.freebsd.org/api/units/1774515/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.954944Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Device configuration: xxx_attach" ], "previous_source": "", "target": [ "Конфигурация устройства: xxx_attach" ], "id_hash": -2175672456217329404, "content_hash": -2175672456217329404, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:102", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 19, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1246672/?format=api", "priority": 100, "id": 1774516, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=61ce756da3908104", "url": "https://translate-dev.freebsd.org/api/units/1774516/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.955664Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "The first thing each SIM driver must do is register itself with the CAM subsystem. This is done during the driver's `xxx_attach()` function (here and further xxx_ is used to denote the unique driver name prefix). The `xxx_attach()` function itself is called by the system bus auto-configuration code which we do not describe here." ], "previous_source": "", "target": [ "Первое, что должен сделать каждый драйвер SIM, — это зарегистрироваться в подсистеме CAM. Это выполняется в функции `xxx_attach()` драйвера (здесь и далее xxx_ используется для обозначения уникального префикса имени драйвера). Сама функция `xxx_attach()` вызывается кодом автонастройки системной шины, который мы здесь не описываем." ], "id_hash": -7174253350212843196, "content_hash": -7174253350212843196, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:107", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 20, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 54, "source_unit": "https://translate-dev.freebsd.org/api/units/1246674/?format=api", "priority": 100, "id": 1774517, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=1c6fee96bbe84944", "url": "https://translate-dev.freebsd.org/api/units/1774517/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.956327Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "This is achieved in multiple steps: first it is necessary to allocate the queue of requests associated with this SIM:" ], "previous_source": "", "target": [ "Это достигается в несколько этапов: сначала необходимо выделить очередь запросов, связанных с этой SIM:" ], "id_hash": -5374821500710253263, "content_hash": -5374821500710253263, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:109", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 21, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1055006/?format=api", "priority": 100, "id": 1774518, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=3568cc5277088d31", "url": "https://translate-dev.freebsd.org/api/units/1774518/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.957042Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " struct cam_devq *devq;\n" ], "previous_source": "", "target": [ " struct cam_devq *devq;\n" ], "id_hash": 3621051938585058875, "content_hash": 3621051938585058875, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:113", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 22, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1055008/?format=api", "priority": 100, "id": 1774519, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=b2408f8d909a1e3b", "url": "https://translate-dev.freebsd.org/api/units/1774519/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.957715Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " if ((devq = cam_simq_alloc(SIZE)) == NULL) {\n error; /* some code to handle the error */\n }\n" ], "previous_source": "", "target": [ " if ((devq = cam_simq_alloc(SIZE)) == NULL) {\n error; /* some code to handle the error */\n }\n" ], "id_hash": 4178564148592049827, "content_hash": 4178564148592049827, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:117", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 23, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1246676/?format=api", "priority": 100, "id": 1774520, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=b9fd3df44402fea3", "url": "https://translate-dev.freebsd.org/api/units/1774520/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.958367Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Here `SIZE` is the size of the queue to be allocated, maximal number of requests it could contain. It is the number of requests that the SIM driver can handle in parallel on one SCSI card. Commonly it can be calculated as:" ], "previous_source": "", "target": [ "Вот `SIZE` — это размер выделяемой очереди, максимальное количество запросов, которые она может содержать. Это количество запросов, которые драйвер SIM может обрабатывать параллельно на одной SCSI-карте. Обычно его можно вычислить как:" ], "id_hash": -3524106536662024503, "content_hash": -3524106536662024503, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:122", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 24, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 42, "source_unit": "https://translate-dev.freebsd.org/api/units/1246678/?format=api", "priority": 100, "id": 1774521, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=4f17dbc6c3a0bec9", "url": "https://translate-dev.freebsd.org/api/units/1774521/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.959053Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "SIZE = NUMBER_OF_SUPPORTED_TARGETS * MAX_SIMULTANEOUS_COMMANDS_PER_TARGET\n" ], "previous_source": "", "target": [ "SIZE = NUMBER_OF_SUPPORTED_TARGETS * MAX_SIMULTANEOUS_COMMANDS_PER_TARGET\n" ], "id_hash": -5073212593724618729, "content_hash": -5073212593724618729, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:126", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 25, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1055014/?format=api", "priority": 100, "id": 1774522, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=3998540669018817", "url": "https://translate-dev.freebsd.org/api/units/1774522/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.959746Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Next we create a descriptor of our SIM:" ], "previous_source": "", "target": [ "Далее мы создаем описание нашего SIM:" ], "id_hash": -1317691730971173216, "content_hash": -1317691730971173216, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:129", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 26, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055016/?format=api", "priority": 100, "id": 1774523, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=6db69e5a23fe5ea0", "url": "https://translate-dev.freebsd.org/api/units/1774523/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.960419Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " struct cam_sim *sim;\n" ], "previous_source": "", "target": [ " struct cam_sim *sim;\n" ], "id_hash": 1736655926482899390, "content_hash": 1736655926482899390, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:133", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 27, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1055018/?format=api", "priority": 100, "id": 1774524, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=9819d75d2b1711be", "url": "https://translate-dev.freebsd.org/api/units/1774524/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.961078Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " if ((sim = cam_sim_alloc(action_func, poll_func, driver_name,\n softc, unit, mtx, max_dev_transactions,\n max_tagged_dev_transactions, devq)) == NULL) {\n cam_simq_free(devq);\n error; /* some code to handle the error */\n }\n" ], "previous_source": "", "target": [ " if ((sim = cam_sim_alloc(action_func, poll_func, driver_name,\n softc, unit, mtx, max_dev_transactions,\n max_tagged_dev_transactions, devq)) == NULL) {\n cam_simq_free(devq);\n error; /* some code to handle the error */\n }\n" ], "id_hash": -6080347896032765440, "content_hash": -6080347896032765440, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:140", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 28, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1246680/?format=api", "priority": 100, "id": 1774525, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=2b9e43cdba2c5a00", "url": "https://translate-dev.freebsd.org/api/units/1774525/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.961723Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Note that if we are not able to create a SIM descriptor we free the `devq` also because we can do nothing else with it and we want to conserve memory." ], "previous_source": "", "target": [ "Обратите внимание, что если мы не сможем создать дескриптор SIM, мы также освобождаем `devq`, потому что больше ничего не можем с ним сделать и хотим сэкономить память." ], "id_hash": 7349053687992365917, "content_hash": 7349053687992365917, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:143", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 29, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/1055022/?format=api", "priority": 100, "id": 1774526, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=e5fd15646c0f335d", "url": "https://translate-dev.freebsd.org/api/units/1774526/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.962432Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "If a SCSI card has multiple SCSI buses on it then each bus requires its own `cam_sim` structure." ], "previous_source": "", "target": [ "Если SCSI-карта имеет несколько шин SCSI, то каждой шине требуется собственная структура `cam_sim`." ], "id_hash": -242558798399365626, "content_hash": -242558798399365626, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:145", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 30, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1055024/?format=api", "priority": 100, "id": 1774527, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=7ca2420ed8429e06", "url": "https://translate-dev.freebsd.org/api/units/1774527/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.963142Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "An interesting question is what to do if a SCSI card has more than one SCSI bus, do we need one `devq` structure per card or per SCSI bus? The answer given in the comments to the CAM code is: either way, as the driver's author prefers." ], "previous_source": "", "target": [ "Интересный вопрос: что делать, если SCSI-карта имеет более одной SCSI-шины, нужна ли одна структура `devq` на карту или на SCSI-шину? Ответ, приведённый в комментариях к коду CAM, таков: как угодно, на усмотрение автора драйвера." ], "id_hash": 8833473642270944471, "content_hash": 8833473642270944471, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:148", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 31, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 47, "source_unit": "https://translate-dev.freebsd.org/api/units/1055026/?format=api", "priority": 100, "id": 1774528, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=fa96cd79d455ecd7", "url": "https://translate-dev.freebsd.org/api/units/1774528/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.964070Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "The arguments are:" ], "previous_source": "", "target": [ "Аргументы:" ], "id_hash": 7151298155046041202, "content_hash": 7151298155046041202, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:150", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 32, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1055028/?format=api", "priority": 100, "id": 1774529, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=e33e83c8666cf672", "url": "https://translate-dev.freebsd.org/api/units/1774529/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.964859Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "`action_func` - pointer to the driver's `xxx_action` function." ], "previous_source": "", "target": [ "`action_func` - указатель на функцию `xxx_action` драйвера." ], "id_hash": 142609448434050335, "content_hash": 142609448434050335, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:152", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 33, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055030/?format=api", "priority": 100, "id": 1774530, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=81faa689ab86a51f", "url": "https://translate-dev.freebsd.org/api/units/1774530/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.965528Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "static void xxx_action(struct cam_sim *, union ccb *);\n" ], "previous_source": "", "target": [ "static void xxx_action(struct cam_sim *, union ccb *);\n" ], "id_hash": -2239690495965954048, "content_hash": -2239690495965954048, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:156", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 34, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1246682/?format=api", "priority": 100, "id": 1774531, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=60eb055c3d218000", "url": "https://translate-dev.freebsd.org/api/units/1774531/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.966193Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "`poll_func` - pointer to the driver's `xxx_poll()`" ], "previous_source": "", "target": [ "`poll_func` - указатель на функцию `xxx_poll()` драйвера" ], "id_hash": 5660136209167032964, "content_hash": 5660136209167032964, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:158", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 35, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1055034/?format=api", "priority": 100, "id": 1774532, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=ce8cd7e4bfba2284", "url": "https://translate-dev.freebsd.org/api/units/1774532/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.966878Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "static void xxx_poll(struct cam_sim *);\n" ], "previous_source": "", "target": [ "static void xxx_poll(struct cam_sim *);\n" ], "id_hash": -2661604365919785333, "content_hash": -2661604365919785333, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:162, documentation/content/en/books/arch-handbook/scsi/_index.adoc:1020", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 36, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1246684/?format=api", "priority": 100, "id": 1774533, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=5b1014ee54b8ee8b", "url": "https://translate-dev.freebsd.org/api/units/1774533/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.967551Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "driver_name - the name of the actual driver, such as \"ncr\" or \"wds\"." ], "previous_source": "", "target": [ "`driver_name` — имя фактического драйвера, например `ncr` или `wds`." ], "id_hash": -2217957962861502162, "content_hash": -2217957962861502162, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:164", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 37, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1055038/?format=api", "priority": 100, "id": 1774534, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=61383afbe8e4212e", "url": "https://translate-dev.freebsd.org/api/units/1774534/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.968224Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "`softc` - pointer to the driver's internal descriptor for this SCSI card. This pointer will be used by the driver in future to get private data." ], "previous_source": "", "target": [ "`softc` — указатель на внутренний дескриптор драйвера для данной SCSI-карты. Этот указатель будет использоваться драйвером в дальнейшем для получения приватных данных." ], "id_hash": 2986900457845983031, "content_hash": 2986900457845983031, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:166", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 38, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1246686/?format=api", "priority": 100, "id": 1774535, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=a9739a24215c8737", "url": "https://translate-dev.freebsd.org/api/units/1774535/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.968878Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "unit - the controller unit number, for example for controller \"mps0\" this number will be 0" ], "previous_source": "", "target": [ "unit - номер управляющего устройства, например, для контроллера \"mps0\" это число будет 0" ], "id_hash": 4375570016731588511, "content_hash": 4375570016731588511, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:167", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 39, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1055042/?format=api", "priority": 100, "id": 1774536, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=bcb925bf5922e79f", "url": "https://translate-dev.freebsd.org/api/units/1774536/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.969572Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "mtx - Lock associated with this SIM. For SIMs that don't know about locking, pass in Giant. For SIMs that do, pass in the lock used to guard this SIM's data structures. This lock will be held when xxx_action and xxx_poll are called." ], "previous_source": "", "target": [ "mtx - Блокировка, связанная с данной SIM. Для SIM, которые не поддерживают блокировку, передаётся Giant. Для SIM, которые поддерживают, передаётся блокировка, используемая для защиты структур данных этой SIM. Эта блокировка будет удерживаться при вызовах xxx_action и xxx_poll." ], "id_hash": -2797951269936021764, "content_hash": -2797951269936021764, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:171", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 40, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 43, "source_unit": "https://translate-dev.freebsd.org/api/units/1246688/?format=api", "priority": 100, "id": 1774537, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=592bae24e89c3efc", "url": "https://translate-dev.freebsd.org/api/units/1774537/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.970228Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "max_dev_transactions - maximal number of simultaneous transactions per SCSI target in the non-tagged mode. This value will be almost universally equal to 1, with possible exceptions only for the non-SCSI cards. Also the drivers that hope to take advantage by preparing one transaction while another one is executed may set it to 2 but this does not seem to be worth the complexity." ], "previous_source": "", "target": [ "max_dev_transactions - максимальное количество одновременных транзакций на целевом SCSI-устройстве в режиме без тегов. Это значение почти всегда равно 1, за исключением возможных исключений только для не-SCSI карт. Также драйверы, которые надеются получить преимущество, подготавливая одну транзакцию во время выполнения другой, могут установить его в 2, но это не кажется оправданным из-за сложности." ], "id_hash": -7521180111884533522, "content_hash": -7521180111884533522, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:174", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 41, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 63, "source_unit": "https://translate-dev.freebsd.org/api/units/1246690/?format=api", "priority": 100, "id": 1774538, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=179f66898363c0ee", "url": "https://translate-dev.freebsd.org/api/units/1774538/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.970929Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "max_tagged_dev_transactions - the same thing, but in the tagged mode. Tags are the SCSI way to initiate multiple transactions on a device: each transaction is assigned a unique tag and the transaction is sent to the device. When the device completes some transaction it sends back the result together with the tag so that the SCSI adapter (and the driver) can tell which transaction was completed. This argument is also known as the maximal tag depth. It depends on the abilities of the SCSI adapter." ], "previous_source": "", "target": [ "max_tagged_dev_transactions - то же самое, но в режиме с тегами. Теги — это способ в SCSI инициировать несколько транзакций на устройстве: каждая транзакция получает уникальный тег и отправляется на устройство. Когда устройство завершает транзакцию, оно возвращает результат вместе с тегом, чтобы SCSI-адаптер (и драйвер) могли определить, какая транзакция была завершена. Этот аргумент также известен как максимальная глубина тега. Он зависит от возможностей SCSI-адаптера." ], "id_hash": 4003811775832514380, "content_hash": 4003811775832514380, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:179", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 42, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 85, "source_unit": "https://translate-dev.freebsd.org/api/units/1246692/?format=api", "priority": 100, "id": 1774539, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=b7906598d605df4c", "url": "https://translate-dev.freebsd.org/api/units/1774539/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.971666Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "Finally we register the SCSI buses associated with our SCSI adapter:" ], "previous_source": "", "target": [ "Наконец, мы регистрируем шины SCSI, связанные с нашим SCSI-адаптером:" ], "id_hash": 3572362357389375963, "content_hash": 3572362357389375963, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:181", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 43, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1055050/?format=api", "priority": 100, "id": 1774540, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=b19394a3092bb9db", "url": "https://translate-dev.freebsd.org/api/units/1774540/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.972413Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " if (xpt_bus_register(sim, softc, bus_number) != CAM_SUCCESS) {\n cam_sim_free(sim, /*free_devq*/ TRUE);\n error; /* some code to handle the error */\n }\n" ], "previous_source": "", "target": [ " if (xpt_bus_register(sim, softc, bus_number) != CAM_SUCCESS) {\n cam_sim_free(sim, /*free_devq*/ TRUE);\n error; /* some code to handle the error */\n }\n" ], "id_hash": 1516279019458277242, "content_hash": 1516279019458277242, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:188", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 44, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1246694/?format=api", "priority": 100, "id": 1774541, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=950ae7bc0f302f7a", "url": "https://translate-dev.freebsd.org/api/units/1774541/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.973101Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "If there is one `devq` structure per SCSI bus (i.e., we consider a card with multiple buses as multiple cards with one bus each) then the bus number will always be 0, otherwise each bus on the SCSI card should be get a distinct number. Each bus needs its own separate structure cam_sim." ], "previous_source": "", "target": [ "Если существует одна структура `devq` на каждую шину SCSI (т.е. мы рассматриваем карту с несколькими шинами как несколько карт с одной шиной каждая), то номер шины всегда будет 0, в противном случае каждая шина на SCSI-карте должна получить уникальный номер. Каждой шине требуется своя отдельная структура `cam_sim`." ], "id_hash": -5256120301222407254, "content_hash": -5256120301222407254, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:192", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 45, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 53, "source_unit": "https://translate-dev.freebsd.org/api/units/1246696/?format=api", "priority": 100, "id": 1774542, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=370e826f24eb53aa", "url": "https://translate-dev.freebsd.org/api/units/1774542/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.973773Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "After that our controller is completely hooked to the CAM system. The value of `devq` can be discarded now: sim will be passed as an argument in all further calls from CAM and devq can be derived from it." ], "previous_source": "", "target": [ "После этого наш контроллер полностью подключён к системе CAM. Значение `devq` теперь можно отбросить: sim будет передаваться в качестве аргумента во всех последующих вызовах из CAM, а devq можно получить из него." ], "id_hash": 7051672355190217581, "content_hash": 7051672355190217581, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:195", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 46, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 39, "source_unit": "https://translate-dev.freebsd.org/api/units/1246698/?format=api", "priority": 100, "id": 1774543, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=e1dc92a54b8e1b6d", "url": "https://translate-dev.freebsd.org/api/units/1774543/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.974893Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "CAM provides the framework for such asynchronous events. Some events originate from the lower levels (the SIM drivers), some events originate from the peripheral drivers, some events originate from the CAM subsystem itself. Any driver can register callbacks for some types of the asynchronous events, so that it would be notified if these events occur." ], "previous_source": "", "target": [ "CAM предоставляет инфраструктуру для подобных асинхронных событий. Некоторые события возникают на нижних уровнях (драйверы SIM), некоторые — в драйверах периферийных устройств, а некоторые — в самой подсистеме CAM. Любой драйвер может зарегистрировать обработчики для определённых типов асинхронных событий, чтобы получать уведомления при их возникновении." ], "id_hash": -3279908869960315017, "content_hash": -3279908869960315017, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:199", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 47, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 55, "source_unit": "https://translate-dev.freebsd.org/api/units/1246700/?format=api", "priority": 100, "id": 1774544, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=527b6c42ae5ccf77", "url": "https://translate-dev.freebsd.org/api/units/1774544/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.976003Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ "A typical example of such an event is a device reset. Each transaction and event identifies the devices to which it applies by the means of \"path\". The target-specific events normally occur during a transaction with this device. So the path from that transaction may be re-used to report this event (this is safe because the event path is copied in the event reporting routine but not deallocated nor passed anywhere further). Also it is safe to allocate paths dynamically at any time including the interrupt routines, although that incurs certain overhead, and a possible problem with this approach is that there may be no free memory at that time. For a bus reset event we need to define a wildcard path including all devices on the bus. So we can create the path for the future bus reset events in advance and avoid problems with the future memory shortage:" ], "previous_source": "", "target": [ "Типичным примером такого события является сброс устройства. Каждая транзакция и событие идентифицируют устройства, к которым они применяются, с помощью \"пути\". Специфичные для целевого устройства события обычно происходят во время транзакции с этим устройством. Таким образом, путь из этой транзакции может быть повторно использован для сообщения о данном событии (это безопасно, потому что путь события копируется в процедуре сообщения о событии, но не освобождается и не передаётся дальше). Также безопасно динамически выделять пути в любое время, включая процедуры обработки прерываний, хотя это влечёт определённые накладные расходы, и возможная проблема такого подхода заключается в том, что в этот момент может не быть свободной памяти. Для события сброса шины нам необходимо определить путь-шаблон, включающий все устройства на шине. Поэтому мы можем заранее создать путь для будущих событий сброса шины и избежать проблем с возможной нехваткой памяти в будущем:" ], "id_hash": 4421764066057981133, "content_hash": 4421764066057981133, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:207", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 48, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 150, "source_unit": "https://translate-dev.freebsd.org/api/units/1246702/?format=api", "priority": 100, "id": 1774545, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=bd5d42fd95f90ccd", "url": "https://translate-dev.freebsd.org/api/units/1774545/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.977759Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " struct cam_path *path;\n" ], "previous_source": "", "target": [ " struct cam_path *path;\n" ], "id_hash": 1961576641846482225, "content_hash": 1961576641846482225, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:211", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 49, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1055062/?format=api", "priority": 100, "id": 1774546, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=9b38eb9018f69531", "url": "https://translate-dev.freebsd.org/api/units/1774546/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.979023Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/ru/?format=api", "source": [ " if (xpt_create_path(&path, /*periph*/NULL,\n cam_sim_path(sim), CAM_TARGET_WILDCARD,\n CAM_LUN_WILDCARD) != CAM_REQ_CMP) {\n xpt_bus_deregister(cam_sim_path(sim));\n cam_sim_free(sim, /*free_devq*/TRUE);\n error; /* some code to handle the error */\n }\n" ], "previous_source": "", "target": [ " if (xpt_create_path(&path, /*periph*/NULL,\n cam_sim_path(sim), CAM_TARGET_WILDCARD,\n CAM_LUN_WILDCARD) != CAM_REQ_CMP) {\n xpt_bus_deregister(cam_sim_path(sim));\n cam_sim_free(sim, /*free_devq*/TRUE);\n error; /* some code to handle the error */\n }\n" ], "id_hash": 8120247170540621494, "content_hash": 8120247170540621494, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:219", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 50, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 22, "source_unit": "https://translate-dev.freebsd.org/api/units/1246704/?format=api", "priority": 100, "id": 1774547, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/ru/?checksum=f0b0e9c75871ceb6", "url": "https://translate-dev.freebsd.org/api/units/1774547/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T07:53:36.980095Z" } ] }