Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksarch-handbookscsi_index/id/units/?format=api&page=6
https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/units/?format=api&page=7", "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/units/?format=api&page=5", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "max_lun - maximal supported LUN ID (7 for older SCSI controllers, 63 for newer ones)" ], "previous_source": "", "target": [ "" ], "id_hash": 5674561270338190458, "content_hash": 5674561270338190458, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:994", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 251, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1055464/?format=api", "priority": 100, "id": 1384584, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=cec0176906b27c7a", "url": "https://translate-dev.freebsd.org/api/units/1384584/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.794433Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "async_flags - bitmask of installed Async handler, unused now" ], "previous_source": "", "target": [ "" ], "id_hash": -974030817075629705, "content_hash": -974030817075629705, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:995", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 252, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/1055466/?format=api", "priority": 100, "id": 1384585, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=727b8c21ebec7177", "url": "https://translate-dev.freebsd.org/api/units/1384585/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.797880Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "hpath_id - highest Path ID in the subsystem, unused now" ], "previous_source": "", "target": [ "" ], "id_hash": -5686059653143745050, "content_hash": -5686059653143745050, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:996", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 253, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055468/?format=api", "priority": 100, "id": 1384586, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=31170edf1aafade6", "url": "https://translate-dev.freebsd.org/api/units/1384586/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.801296Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "unit_number - the controller unit number, cam_sim_unit(sim)" ], "previous_source": "", "target": [ "" ], "id_hash": 5086470285646886929, "content_hash": 5086470285646886929, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:997", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 254, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1055470/?format=api", "priority": 100, "id": 1384587, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=c696c5c6888ff811", "url": "https://translate-dev.freebsd.org/api/units/1384587/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.809267Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "bus_id - the bus number, cam_sim_bus(sim)" ], "previous_source": "", "target": [ "" ], "id_hash": -4051879324005319638, "content_hash": -4051879324005319638, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:998", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 255, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1055472/?format=api", "priority": 100, "id": 1384588, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=47c4d538fbe9bc2a", "url": "https://translate-dev.freebsd.org/api/units/1384588/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.813075Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "initiator_id - the SCSI ID of the controller itself" ], "previous_source": "", "target": [ "" ], "id_hash": -8215536043845459814, "content_hash": -8215536043845459814, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:999", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 256, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/1055474/?format=api", "priority": 100, "id": 1384589, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=0dfc8d7ef32c609a", "url": "https://translate-dev.freebsd.org/api/units/1384589/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.818761Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "base_transfer_speed - nominal transfer speed in KB/s for asynchronous narrow transfers, equals to 3300 for SCSI" ], "previous_source": "", "target": [ "" ], "id_hash": 4310488142544019903, "content_hash": 4310488142544019903, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1000", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 257, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1055476/?format=api", "priority": 100, "id": 1384590, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=bbd1ee20b0dea1bf", "url": "https://translate-dev.freebsd.org/api/units/1384590/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.822880Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "sim_vid - SIM driver's vendor id, a zero-terminated string of maximal length SIM_IDLEN including the terminating zero" ], "previous_source": "", "target": [ "" ], "id_hash": -8368681746082947922, "content_hash": -8368681746082947922, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1001", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 258, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1055478/?format=api", "priority": 100, "id": 1384591, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=0bdc784a866e1cae", "url": "https://translate-dev.freebsd.org/api/units/1384591/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.839460Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "hba_vid - SCSI controller's vendor id, a zero-terminated string of maximal length HBA_IDLEN including the terminating zero" ], "previous_source": "", "target": [ "" ], "id_hash": -3805800697243700685, "content_hash": -3805800697243700685, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1002", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 259, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1055480/?format=api", "priority": 100, "id": 1384592, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=4b2f146e0adaf233", "url": "https://translate-dev.freebsd.org/api/units/1384592/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.850155Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "dev_name - device driver name, a zero-terminated string of maximal length DEV_IDLEN including the terminating zero, equal to cam_sim_name(sim)" ], "previous_source": "", "target": [ "" ], "id_hash": 8928623096803125004, "content_hash": 8928623096803125004, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1003", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 260, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/1055482/?format=api", "priority": 100, "id": 1384593, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=fbe8d766924c670c", "url": "https://translate-dev.freebsd.org/api/units/1384593/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.853660Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "The recommended way of setting the string fields is using strncpy, like:" ], "previous_source": "", "target": [ "" ], "id_hash": -8130613088879649193, "content_hash": -8130613088879649193, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1005", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 261, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1186700/?format=api", "priority": 100, "id": 1384594, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=0f2a4279372fde57", "url": "https://translate-dev.freebsd.org/api/units/1384594/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.856763Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -6460245716538461139, "content_hash": -6460245716538461139, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1009", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 262, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1055486/?format=api", "priority": 100, "id": 1384595, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=265898bfa7fc742d", "url": "https://translate-dev.freebsd.org/api/units/1384595/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.860303Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "After setting the values set the status to CAM_REQ_CMP and mark the CCB as done." ], "previous_source": "", "target": [ "" ], "id_hash": -8533079596546990115, "content_hash": -8533079596546990115, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1012", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 263, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1186702/?format=api", "priority": 100, "id": 1384596, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=099469512faedfdd", "url": "https://translate-dev.freebsd.org/api/units/1384596/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.864376Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "Polling xxx_poll" ], "previous_source": "", "target": [ "" ], "id_hash": 5899192636297966934, "content_hash": 5899192636297966934, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1014", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 264, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1246840/?format=api", "priority": 100, "id": 1384597, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=d1de24728c23f556", "url": "https://translate-dev.freebsd.org/api/units/1384597/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.867965Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "The poll function is used to simulate the interrupts when the interrupt subsystem is not functioning (for example, when the system has crashed and is creating the system dump). The CAM subsystem sets the proper interrupt level before calling the poll routine. So all it needs to do is to call the interrupt routine (or the other way around, the poll routine may be doing the real action and the interrupt routine would just call the poll routine). Why bother about a separate function then? This has to do with different calling conventions. The `xxx_poll` routine gets the struct cam_sim pointer as its argument while the PCI interrupt routine by common convention gets pointer to the struct `xxx_softc` and the ISA interrupt routine gets just the device unit number. So the poll routine would normally look as:" ], "previous_source": "", "target": [ "" ], "id_hash": -4297586069154401367, "content_hash": -4297586069154401367, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1028", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 265, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 137, "source_unit": "https://translate-dev.freebsd.org/api/units/1246842/?format=api", "priority": 100, "id": 1384598, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=445be83d5c6273a9", "url": "https://translate-dev.freebsd.org/api/units/1384598/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.872857Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "static void\nxxx_poll(struct cam_sim *sim)\n{\n xxx_intr((struct xxx_softc *)cam_sim_softc(sim)); /* for PCI device */\n}\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1171777472559030331, "content_hash": 1171777472559030331, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1036", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 266, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1055496/?format=api", "priority": 100, "id": 1384599, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=9042fd6727afa03b", "url": "https://translate-dev.freebsd.org/api/units/1384599/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.877927Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "or" ], "previous_source": "", "target": [ "" ], "id_hash": -3075037617238792377, "content_hash": -3075037617238792377, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1039", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 267, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1055498/?format=api", "priority": 100, "id": 1384600, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=555345945184a747", "url": "https://translate-dev.freebsd.org/api/units/1384600/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.885509Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "static void\nxxx_poll(struct cam_sim *sim)\n{\n xxx_intr(cam_sim_unit(sim)); /* for ISA device */\n}\n" ], "previous_source": "", "target": [ "" ], "id_hash": -7519747278417874152, "content_hash": -7519747278417874152, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1047", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 268, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1055500/?format=api", "priority": 100, "id": 1384601, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=17a47db10d313318", "url": "https://translate-dev.freebsd.org/api/units/1384601/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.889729Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "Asynchronous Events" ], "previous_source": "", "target": [ "" ], "id_hash": -1381927042589849126, "content_hash": -1381927042589849126, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1050", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 269, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1055502/?format=api", "priority": 100, "id": 1384602, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=6cd268ad30ed09da", "url": "https://translate-dev.freebsd.org/api/units/1384602/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.895897Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "If an asynchronous event callback has been set up then the callback function should be defined." ], "previous_source": "", "target": [ "" ], "id_hash": -4730421808936431356, "content_hash": -4730421808936431356, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1053", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 270, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1055504/?format=api", "priority": 100, "id": 1384603, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=3e5a2a6d78955104", "url": "https://translate-dev.freebsd.org/api/units/1384603/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.899690Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "static void\nahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)\n" ], "previous_source": "", "target": [ "" ], "id_hash": -787667446460801238, "content_hash": -787667446460801238, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1058", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 271, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1055506/?format=api", "priority": 100, "id": 1384604, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=7511a4a174909f2a", "url": "https://translate-dev.freebsd.org/api/units/1384604/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.903548Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "callback_arg - the value supplied when registering the callback" ], "previous_source": "", "target": [ "" ], "id_hash": 96227770743918067, "content_hash": 96227770743918067, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1061", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 272, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/1055508/?format=api", "priority": 100, "id": 1384605, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=8155dea5ccb80df3", "url": "https://translate-dev.freebsd.org/api/units/1384605/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.907330Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "code - identifies the type of event" ], "previous_source": "", "target": [ "" ], "id_hash": 19568041473801744, "content_hash": 19568041473801744, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1062", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 273, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1055510/?format=api", "priority": 100, "id": 1384606, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=80458507b0fefe10", "url": "https://translate-dev.freebsd.org/api/units/1384606/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.912016Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "path - identifies the devices to which the event applies" ], "previous_source": "", "target": [ "" ], "id_hash": -7415752607894375413, "content_hash": -7415752607894375413, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1063", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 274, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055512/?format=api", "priority": 100, "id": 1384607, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=1915f44b2047740b", "url": "https://translate-dev.freebsd.org/api/units/1384607/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.916685Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "arg - event-specific argument" ], "previous_source": "", "target": [ "" ], "id_hash": -4703128754696039931, "content_hash": -4703128754696039931, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1064", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 275, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1055514/?format=api", "priority": 100, "id": 1384608, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=3ebb2150db6ad205", "url": "https://translate-dev.freebsd.org/api/units/1384608/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.921366Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "Implementation for a single type of event, AC_LOST_DEVICE, looks like:" ], "previous_source": "", "target": [ "" ], "id_hash": -213070512658827724, "content_hash": -213070512658827724, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1066", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 276, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055516/?format=api", "priority": 100, "id": 1384609, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=7d0b057f64dc3634", "url": "https://translate-dev.freebsd.org/api/units/1384609/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.925202Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " struct xxx_softc *softc;\n struct cam_sim *sim;\n int targ;\n struct ccb_trans_settings neg;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -223406226528694937, "content_hash": -223406226528694937, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1073", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 277, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1055518/?format=api", "priority": 100, "id": 1384610, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=7ce64d387b258d67", "url": "https://translate-dev.freebsd.org/api/units/1384610/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.929931Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " sim = (struct cam_sim *)callback_arg;\n softc = (struct xxx_softc *)cam_sim_softc(sim);\n switch (code) {\n case AC_LOST_DEVICE:\n targ = xpt_path_target_id(path);\n if (targ <= OUR_MAX_SUPPORTED_TARGET) {\n clean_negotiations(softc, targ);\n /* send indication to CAM */\n neg.bus_width = 8;\n neg.sync_period = neg.sync_offset = 0;\n neg.valid = (CCB_TRANS_BUS_WIDTH_VALID\n | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);\n xpt_async(AC_TRANSFER_NEG, path, &neg);\n }\n break;\n default:\n break;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 7329122152687138979, "content_hash": 7329122152687138979, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1092", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 278, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 54, "source_unit": "https://translate-dev.freebsd.org/api/units/1246844/?format=api", "priority": 100, "id": 1384611, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=e5b645c43a5cf8a3", "url": "https://translate-dev.freebsd.org/api/units/1384611/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.934058Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "Interrupts" ], "previous_source": "", "target": [ "" ], "id_hash": 4548500038881723789, "content_hash": 4548500038881723789, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1095", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 279, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1055522/?format=api", "priority": 100, "id": 1384612, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=bf1f84afb665458d", "url": "https://translate-dev.freebsd.org/api/units/1384612/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.941988Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "The exact type of the interrupt routine depends on the type of the peripheral bus (PCI, ISA and so on) to which the SCSI controller is connected." ], "previous_source": "", "target": [ "" ], "id_hash": 3054868140371135820, "content_hash": 3054868140371135820, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1098", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 280, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/1055524/?format=api", "priority": 100, "id": 1384613, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=aa651263667acd4c", "url": "https://translate-dev.freebsd.org/api/units/1384613/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.945937Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "The interrupt routines of the SIM drivers run at the interrupt level splcam. So `splcam()` should be used in the driver to synchronize activity between the interrupt routine and the rest of the driver (for a multiprocessor-aware driver things get yet more interesting but we ignore this case here). The pseudo-code in this document happily ignores the problems of synchronization. The real code must not ignore them. A simple-minded approach is to set `splcam()` on the entry to the other routines and reset it on return thus protecting them by one big critical section. To make sure that the interrupt level will be always restored a wrapper function can be defined, like:" ], "previous_source": "", "target": [ "" ], "id_hash": -1332937660901483160, "content_hash": -1332937660901483160, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1105", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 281, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 112, "source_unit": "https://translate-dev.freebsd.org/api/units/1246846/?format=api", "priority": 100, "id": 1384614, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=6d807442763a1d68", "url": "https://translate-dev.freebsd.org/api/units/1384614/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.950368Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " static void\n xxx_action(struct cam_sim *sim, union ccb *ccb)\n {\n int s;\n s = splcam();\n xxx_action1(sim, ccb);\n splx(s);\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -1516940884825487758, "content_hash": -1516940884825487758, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1116", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 282, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1055528/?format=api", "priority": 100, "id": 1384615, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=6af2be4d66b5c672", "url": "https://translate-dev.freebsd.org/api/units/1384615/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.954730Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " static void\n xxx_action1(struct cam_sim *sim, union ccb *ccb)\n {\n ... process the request ...\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 4214644148043311368, "content_hash": 4214644148043311368, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1122", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 283, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1055530/?format=api", "priority": 100, "id": 1384616, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=ba7d6c85c2cce908", "url": "https://translate-dev.freebsd.org/api/units/1384616/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.959683Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "This approach is simple and robust but the problem with it is that interrupts may get blocked for a relatively long time and this would negatively affect the system's performance. On the other hand the functions of the `spl()` family have rather high overhead, so vast amount of tiny critical sections may not be good either." ], "previous_source": "", "target": [ "" ], "id_hash": -4034635444908441429, "content_hash": -4034635444908441429, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1126", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 284, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 56, "source_unit": "https://translate-dev.freebsd.org/api/units/1246848/?format=api", "priority": 100, "id": 1384617, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=48021870740840ab", "url": "https://translate-dev.freebsd.org/api/units/1384617/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.963507Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "The conditions handled by the interrupt routine and the details depend very much on the hardware. We consider the set of \"typical\" conditions." ], "previous_source": "", "target": [ "" ], "id_hash": 7007835834336487087, "content_hash": 7007835834336487087, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1129", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 285, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1246850/?format=api", "priority": 100, "id": 1384618, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=e140d58fede126af", "url": "https://translate-dev.freebsd.org/api/units/1384618/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.967303Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "First, we check if a SCSI reset was encountered on the bus (probably caused by another SCSI controller on the same SCSI bus). If so we drop all the enqueued and disconnected requests, report the events and re-initialize our SCSI controller. It is important that during this initialization the controller will not issue another reset or else two controllers on the same SCSI bus could ping-pong resets forever. The case of fatal controller error/hang could be handled in the same place, but it will probably need also sending RESET signal to the SCSI bus to reset the status of the connections with the SCSI devices." ], "previous_source": "", "target": [ "" ], "id_hash": 6640155775957863537, "content_hash": 6640155775957863537, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1134", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 286, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 105, "source_unit": "https://translate-dev.freebsd.org/api/units/1246852/?format=api", "priority": 100, "id": 1384619, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=dc26927f473a0c71", "url": "https://translate-dev.freebsd.org/api/units/1384619/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.971285Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " int fatal=0;\n struct ccb_trans_settings neg;\n struct cam_path *path;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -8155720428902682765, "content_hash": -8155720428902682765, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1140", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 287, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055538/?format=api", "priority": 100, "id": 1384620, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=0ed10f7b13dbef73", "url": "https://translate-dev.freebsd.org/api/units/1384620/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.979896Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " if (detected_scsi_reset(softc)\n || (fatal = detected_fatal_controller_error(softc))) {\n int targ, lun;\n struct xxx_hcb *h, *hh;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 7499271402865651307, "content_hash": 7499271402865651307, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1145", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 288, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1246854/?format=api", "priority": 100, "id": 1384621, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=e812c39baa0d6e6b", "url": "https://translate-dev.freebsd.org/api/units/1384621/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:58.984297Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* drop all enqueued CCBs */\n for(h = softc->first_queued_hcb; h != NULL; h = hh) {\n hh = h->next;\n free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1515162493100665397, "content_hash": 1515162493100665397, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1151", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 289, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1055542/?format=api", "priority": 100, "id": 1384622, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=9506f0428242aa35", "url": "https://translate-dev.freebsd.org/api/units/1384622/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.009415Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* the clean values of negotiations to report */\n neg.bus_width = 8;\n neg.sync_period = neg.sync_offset = 0;\n neg.valid = (CCB_TRANS_BUS_WIDTH_VALID\n | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8754027301063262605, "content_hash": 8754027301063262605, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1157", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 290, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/1055544/?format=api", "priority": 100, "id": 1384623, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=f97c8d7311f2818d", "url": "https://translate-dev.freebsd.org/api/units/1384623/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.022668Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* drop all disconnected CCBs and clean negotiations */\n for (targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) {\n clean_negotiations(softc, targ);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3226662108104455373, "content_hash": -3226662108104455373, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1161", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 291, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1246856/?format=api", "priority": 100, "id": 1384624, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=533897e884388b33", "url": "https://translate-dev.freebsd.org/api/units/1384624/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.028960Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* report the event if possible */\n if (xpt_create_path(&path, /*periph*/NULL,\n cam_sim_path(sim), targ,\n CAM_LUN_WILDCARD) == CAM_REQ_CMP) {\n xpt_async(AC_TRANSFER_NEG, path, &neg);\n xpt_free_path(path);\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 222756865062497370, "content_hash": 222756865062497370, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1169", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 292, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/1246858/?format=api", "priority": 100, "id": 1384625, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=8317643045546c5a", "url": "https://translate-dev.freebsd.org/api/units/1384625/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.033919Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " for (lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)\n for (h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) {\n hh=h->next;\n if (fatal)\n free_hcb_and_ccb_done(h, h->ccb, CAM_UNREC_HBA_ERROR);\n else\n free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);\n }\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -1035162036925061612, "content_hash": -1035162036925061612, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1179", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 293, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/1246860/?format=api", "priority": 100, "id": 1384626, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=71a25d9ca81ca614", "url": "https://translate-dev.freebsd.org/api/units/1384626/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.049631Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* report the event */\n xpt_async(AC_BUS_RESET, softc->wpath, NULL);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -2387530035699369066, "content_hash": -2387530035699369066, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1182", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 294, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055552/?format=api", "priority": 100, "id": 1384627, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=5eddca150b903b96", "url": "https://translate-dev.freebsd.org/api/units/1384627/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.053673Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " /* re-initialization may take a lot of time, in such case\n * its completion should be signaled by another interrupt or\n * checked on timeout - but for simplicity we assume here that\n * it is really fast\n */\n if (!fatal) {\n reinitialize_controller_without_scsi_reset(softc);\n } else {\n reinitialize_controller_with_scsi_reset(softc);\n }\n schedule_next_hcb(softc);\n return;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -4759196265224763731, "content_hash": -4759196265224763731, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1196", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 295, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 51, "source_unit": "https://translate-dev.freebsd.org/api/units/1246862/?format=api", "priority": 100, "id": 1384628, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=3df3f0364ae986ad", "url": "https://translate-dev.freebsd.org/api/units/1384628/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.058322Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "If interrupt is not caused by a controller-wide condition then probably something has happened to the current hardware control block. Depending on the hardware there may be other non-HCB-related events, we just do not consider them here. Then we analyze what happened to this HCB:" ], "previous_source": "", "target": [ "" ], "id_hash": 2118384225132859264, "content_hash": 2118384225132859264, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1201", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 296, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 45, "source_unit": "https://translate-dev.freebsd.org/api/units/1246864/?format=api", "priority": 100, "id": 1384629, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=9d66033aa4d5cf80", "url": "https://translate-dev.freebsd.org/api/units/1384629/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.062605Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " struct xxx_hcb *hcb, *h, *hh;\n int hcb_status, scsi_status;\n int ccb_status;\n int targ;\n int lun_to_freeze;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3780984534611262308, "content_hash": -3780984534611262308, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1209", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 297, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1055558/?format=api", "priority": 100, "id": 1384630, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=4b873e992940049c", "url": "https://translate-dev.freebsd.org/api/units/1384630/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.066350Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " hcb = get_current_hcb(softc);\n if (hcb == NULL) {\n /* either stray interrupt or something went very wrong\n * or this is something hardware-dependent\n */\n handle as necessary;\n return;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -1645090998072408747, "content_hash": -1645090998072408747, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1218", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 298, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/1246866/?format=api", "priority": 100, "id": 1384631, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=692b76740cb38555", "url": "https://translate-dev.freebsd.org/api/units/1384631/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.069918Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ " targ = hcb->target;\n hcb_status = get_status_of_current_hcb(softc);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -859832416933004137, "content_hash": -859832416933004137, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1221", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 299, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1055562/?format=api", "priority": 100, "id": 1384632, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=741142f8ee57bc97", "url": "https://translate-dev.freebsd.org/api/units/1384632/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.073508Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/id/?format=api", "source": [ "First we check if the HCB has completed and if so we check the returned SCSI status." ], "previous_source": "", "target": [ "" ], "id_hash": 3920319932629189779, "content_hash": 3920319932629189779, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:1224", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 300, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1055564/?format=api", "priority": 100, "id": 1384633, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/id/?checksum=b667c6353e3f0493", "url": "https://translate-dev.freebsd.org/api/units/1384633/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2022-03-09T16:13:59.086373Z" } ] }{ "count": 358, "next": "