Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksarch-handbookscsi_index/pt/units/?format=api&page=3
https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/units/?format=api&page=4", "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/units/?format=api&page=2", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_dxfer_len_ - length of the data to transfer" ], "previous_source": "", "target": [ "" ], "id_hash": 5690746484408782370, "content_hash": 5690746484408782370, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:356", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 101, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055166/?format=api", "priority": 100, "id": 1560023, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=cef997c6d5fd0e22", "url": "https://translate-dev.freebsd.org/api/units/1560023/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.890606Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_sglist_cnt_ - counter of the scatter/gather segments" ], "previous_source": "", "target": [ "" ], "id_hash": 6386756857404387005, "content_hash": 6386756857404387005, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:357", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 102, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1055168/?format=api", "priority": 100, "id": 1560024, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=d8a25185f860eebd", "url": "https://translate-dev.freebsd.org/api/units/1560024/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.895465Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_scsi_status_ - place to return the SCSI status" ], "previous_source": "", "target": [ "" ], "id_hash": 172911068764344057, "content_hash": 172911068764344057, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:358", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 103, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055170/?format=api", "priority": 100, "id": 1560025, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=82664db36f6e8ef9", "url": "https://translate-dev.freebsd.org/api/units/1560025/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.983917Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_sense_data_ - buffer for the SCSI sense information if the command returns an error (the SIM driver is supposed to run the REQUEST SENSE command automatically in this case if the CCB flag CAM_DIS_AUTOSENSE is not set)" ], "previous_source": "", "target": [ "" ], "id_hash": 5444032694823806910, "content_hash": 5444032694823806910, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:359", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 104, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 37, "source_unit": "https://translate-dev.freebsd.org/api/units/1055172/?format=api", "priority": 100, "id": 1560026, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=cb8d16e46895e7be", "url": "https://translate-dev.freebsd.org/api/units/1560026/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.988732Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_sense_len_ - the length of that buffer (if it happens to be higher than size of sense_data the SIM driver must silently assume the smaller value)" ], "previous_source": "", "target": [ "" ], "id_hash": 2380508546570683774, "content_hash": 2380508546570683774, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:360", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 105, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1246740/?format=api", "priority": 100, "id": 1560027, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=a10943e91f20857e", "url": "https://translate-dev.freebsd.org/api/units/1560027/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.993707Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_resid_, _sense_resid_ - if the transfer of data or SCSI sense returned an error these are the returned counters of the residual (not transferred) data. They do not seem to be especially meaningful, so in a case when they are difficult to compute (say, counting bytes in the SCSI controller's FIFO buffer) an approximate value will do as well. For a successfully completed transfer they must be set to zero." ], "previous_source": "", "target": [ "" ], "id_hash": 7922193534683376857, "content_hash": 7922193534683376857, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:363", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 106, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 70, "source_unit": "https://translate-dev.freebsd.org/api/units/1246742/?format=api", "priority": 100, "id": 1560028, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=edf1490bd4b2ecd9", "url": "https://translate-dev.freebsd.org/api/units/1560028/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:47:59.999278Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_tag_action_ - the kind of tag to use:" ], "previous_source": "", "target": [ "" ], "id_hash": -2231603517081813089, "content_hash": -2231603517081813089, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:364", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 107, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1055176/?format=api", "priority": 100, "id": 1560029, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=6107c06cbcd37f9f", "url": "https://translate-dev.freebsd.org/api/units/1560029/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.094258Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "CAM_TAG_ACTION_NONE - do not use tags for this transaction" ], "previous_source": "", "target": [ "" ], "id_hash": 8147000844812914171, "content_hash": 8147000844812914171, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:365", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 108, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/1055178/?format=api", "priority": 100, "id": 1560030, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=f10ff61a8be18dfb", "url": "https://translate-dev.freebsd.org/api/units/1560030/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.099324Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "MSG_SIMPLE_Q_TAG, MSG_HEAD_OF_Q_TAG, MSG_ORDERED_Q_TAG - value equal to the appropriate tag message (see /sys/cam/scsi/scsi_message.h); this gives only the tag type, the SIM driver must assign the tag value itself" ], "previous_source": "", "target": [ "" ], "id_hash": 2910774261070248892, "content_hash": 2910774261070248892, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:366", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 109, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 28, "source_unit": "https://translate-dev.freebsd.org/api/units/1055180/?format=api", "priority": 100, "id": 1560031, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=a86525c4bc713bbc", "url": "https://translate-dev.freebsd.org/api/units/1560031/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.102087Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "The general logic of handling this request is the following:" ], "previous_source": "", "target": [ "" ], "id_hash": -3728519611557002820, "content_hash": -3728519611557002820, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:368", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 110, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1186610/?format=api", "priority": 100, "id": 1560032, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=4c41a32af71141bc", "url": "https://translate-dev.freebsd.org/api/units/1560032/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.186748Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "The first thing to do is to check for possible races, to make sure that the command did not get aborted when it was sitting in the queue:" ], "previous_source": "", "target": [ "" ], "id_hash": -1569364709889449692, "content_hash": -1569364709889449692, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:370", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 111, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 28, "source_unit": "https://translate-dev.freebsd.org/api/units/1186612/?format=api", "priority": 100, "id": 1560033, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=6a387f1c78016124", "url": "https://translate-dev.freebsd.org/api/units/1560033/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.192260Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " struct ccb_scsiio *csio = &ccb->csio;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 122574670568478383, "content_hash": 122574670568478383, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:374", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 112, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1055186/?format=api", "priority": 100, "id": 1560034, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=81b3790371b1d6af", "url": "https://translate-dev.freebsd.org/api/units/1560034/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.197611Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if ((ccb_h->status & CAM_STATUS_MASK) != CAM_REQ_INPROG) {\n xpt_done(ccb);\n return;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 2156622001741607585, "content_hash": 2156622001741607585, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:379", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 113, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055188/?format=api", "priority": 100, "id": 1560035, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=9deddc48c899b2a1", "url": "https://translate-dev.freebsd.org/api/units/1560035/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.282223Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Also we check that the device is supported at all by our controller:" ], "previous_source": "", "target": [ "" ], "id_hash": 2280930717763830199, "content_hash": 2280930717763830199, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:382", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 114, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1186614/?format=api", "priority": 100, "id": 1560036, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=9fa77e67259701b7", "url": "https://translate-dev.freebsd.org/api/units/1560036/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.294878Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if (ccb_h->target_id > OUR_MAX_SUPPORTED_TARGET_ID\n || cch_h->target_id == OUR_SCSI_CONTROLLERS_OWN_ID) {\n ccb_h->status = CAM_TID_INVALID;\n xpt_done(ccb);\n return;\n }\n if (ccb_h->target_lun > OUR_MAX_SUPPORTED_LUN) {\n ccb_h->status = CAM_LUN_INVALID;\n xpt_done(ccb);\n return;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -8856569995573329061, "content_hash": -8856569995573329061, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:396", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 115, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1246744/?format=api", "priority": 100, "id": 1560037, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=051724835d78035b", "url": "https://translate-dev.freebsd.org/api/units/1560037/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.300339Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Then allocate whatever data structures (such as card-dependent hardware control block) we need to process this request. If we can not then freeze the SIM queue and remember that we have a pending operation, return the CCB back and ask CAM to re-queue it. Later when the resources become available the SIM queue must be unfrozen by returning a ccb with the `CAM_SIMQ_RELEASE` bit set in its status. Otherwise, if all went well, link the CCB with the hardware control block (HCB) and mark it as queued." ], "previous_source": "", "target": [ "" ], "id_hash": 3630451416585899396, "content_hash": 3630451416585899396, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:402", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 116, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 87, "source_unit": "https://translate-dev.freebsd.org/api/units/1246746/?format=api", "priority": 100, "id": 1560038, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=b261f45413ea8d84", "url": "https://translate-dev.freebsd.org/api/units/1560038/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.303987Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " struct xxx_hcb *hcb = allocate_hcb(softc, unit, bus);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3483573802881283243, "content_hash": -3483573802881283243, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:406", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 117, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1055196/?format=api", "priority": 100, "id": 1560039, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=4fa7dc1542678b55", "url": "https://translate-dev.freebsd.org/api/units/1560039/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.381772Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if (hcb == NULL) {\n softc->flags |= RESOURCE_SHORTAGE;\n xpt_freeze_simq(sim, /*count*/1);\n ccb_h->status = CAM_REQUEUE_REQ;\n xpt_done(ccb);\n return;\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": 6626135233982770067, "content_hash": 6626135233982770067, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:414", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 118, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1246748/?format=api", "priority": 100, "id": 1560040, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=dbf4c2e3773e2b93", "url": "https://translate-dev.freebsd.org/api/units/1560040/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.388705Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " hcb->ccb = ccb; ccb_h->ccb_hcb = (void *)hcb;\n ccb_h->status |= CAM_SIM_QUEUED;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 2886597334057147437, "content_hash": 2886597334057147437, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:417", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 119, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055200/?format=api", "priority": 100, "id": 1560041, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=a80f40fb4210dc2d", "url": "https://translate-dev.freebsd.org/api/units/1560041/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.392454Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Extract the target data from CCB into the hardware control block. Check if we are asked to assign a tag and if yes then generate an unique tag and build the SCSI tag messages. The SIM driver is also responsible for negotiations with the devices to set the maximal mutually supported bus width, synchronous rate and offset." ], "previous_source": "", "target": [ "" ], "id_hash": -4674368610876319550, "content_hash": -4674368610876319550, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:422", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 120, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/1246750/?format=api", "priority": 100, "id": 1560042, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=3f214e83a77b18c2", "url": "https://translate-dev.freebsd.org/api/units/1560042/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.396122Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " hcb->target = ccb_h->target_id; hcb->lun = ccb_h->target_lun;\n generate_identify_message(hcb);\n if (ccb_h->tag_action != CAM_TAG_ACTION_NONE)\n generate_unique_tag_message(hcb, ccb_h->tag_action);\n if (!target_negotiated(hcb))\n generate_negotiation_messages(hcb);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -5296891910313973804, "content_hash": -5296891910313973804, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:431", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 121, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1246752/?format=api", "priority": 100, "id": 1560043, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=367da8df281867d4", "url": "https://translate-dev.freebsd.org/api/units/1560043/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.400048Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Then set up the SCSI command. The command storage may be specified in the CCB in many interesting ways, specified by the CCB flags. The command buffer can be contained in CCB or pointed to, in the latter case the pointer may be physical or virtual. Since the hardware commonly needs physical address we always convert the address to the physical one, typically using the busdma API." ], "previous_source": "", "target": [ "" ], "id_hash": -1954589363262559067, "content_hash": -1954589363262559067, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:437", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 122, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 67, "source_unit": "https://translate-dev.freebsd.org/api/units/1246754/?format=api", "priority": 100, "id": 1560044, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=64dfe75478fa6ca5", "url": "https://translate-dev.freebsd.org/api/units/1560044/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.404220Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "In case if a physical address is requested it is OK to return the CCB with the status `CAM_REQ_INVALID`, the current drivers do that. If necessary a physical address can be also converted or mapped back to a virtual address but with big pain, so we do not do that." ], "previous_source": "", "target": [ "" ], "id_hash": 7096409896411496682, "content_hash": 7096409896411496682, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:440", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 123, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 50, "source_unit": "https://translate-dev.freebsd.org/api/units/1246756/?format=api", "priority": 100, "id": 1560045, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=e27b8333d02c80ea", "url": "https://translate-dev.freebsd.org/api/units/1560045/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.482694Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if (ccb_h->flags & CAM_CDB_POINTER) {\n /* CDB is a pointer */\n if (!(ccb_h->flags & CAM_CDB_PHYS)) {\n /* CDB pointer is virtual */\n hcb->cmd = vtobus(csio->cdb_io.cdb_ptr);\n } else {\n /* CDB pointer is physical */\n hcb->cmd = csio->cdb_io.cdb_ptr ;\n }\n } else {\n /* CDB is in the ccb (buffer) */\n hcb->cmd = vtobus(csio->cdb_io.cdb_bytes);\n }\n hcb->cmdlen = csio->cdb_len;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -5315957952324026597, "content_hash": -5315957952324026597, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:457", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 124, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/1246758/?format=api", "priority": 100, "id": 1560046, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=3639ec6852d03f1b", "url": "https://translate-dev.freebsd.org/api/units/1560046/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.496950Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Now it is time to set up the data. Again, the data storage may be specified in the CCB in many interesting ways, specified by the CCB flags. First we get the direction of the data transfer. The simplest case is if there is no data to transfer:" ], "previous_source": "", "target": [ "" ], "id_hash": 5976996877688237247, "content_hash": 5976996877688237247, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:463", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 125, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/1246760/?format=api", "priority": 100, "id": 1560047, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=d2f28efe2639ecbf", "url": "https://translate-dev.freebsd.org/api/units/1560047/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.500705Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " int dir = (ccb_h->flags & CAM_DIR_MASK);\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1097975962552830880, "content_hash": 1097975962552830880, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:467", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 126, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1055214/?format=api", "priority": 100, "id": 1560048, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=8f3ccb5213e10ba0", "url": "https://translate-dev.freebsd.org/api/units/1560048/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.582842Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if (dir == CAM_DIR_NONE)\n goto end_data;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 5921752949743915795, "content_hash": 5921752949743915795, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:470", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 127, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1055216/?format=api", "priority": 100, "id": 1560049, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=d22e4aeed91b9313", "url": "https://translate-dev.freebsd.org/api/units/1560049/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.586627Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Then we check if the data is in one chunk or in a scatter-gather list, and the addresses are physical or virtual. The SCSI controller may be able to handle only a limited number of chunks of limited length. If the request hits this limitation we return an error. We use a special function to return the CCB to handle in one place the HCB resource shortages. The functions to add chunks are driver-dependent, and here we leave them without detailed implementation. See description of the SCSI command (CDB) handling for the details on the address-translation issues. If some variation is too difficult or impossible to implement with a particular card it is OK to return the status `CAM_REQ_INVALID`. Actually, it seems like the scatter-gather ability is not used anywhere in the CAM code now. But at least the case for a single non-scattered virtual buffer must be implemented, it is actively used by CAM." ], "previous_source": "", "target": [ "" ], "id_hash": 5587607330246681287, "content_hash": 5587607330246681287, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:481", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 128, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 155, "source_unit": "https://translate-dev.freebsd.org/api/units/1246762/?format=api", "priority": 100, "id": 1560050, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=cd8b2b432fb8e2c7", "url": "https://translate-dev.freebsd.org/api/units/1560050/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.590381Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " int rv;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -5852425935704720785, "content_hash": -5852425935704720785, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:485", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 129, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1055220/?format=api", "priority": 100, "id": 1560051, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=2ec8019e74097a6f", "url": "https://translate-dev.freebsd.org/api/units/1560051/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.687773Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " initialize_hcb_for_data(hcb);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -4448843079717488454, "content_hash": -4448843079717488454, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:487", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 130, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1055222/?format=api", "priority": 100, "id": 1560052, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=424288ca3bfbf8ba", "url": "https://translate-dev.freebsd.org/api/units/1560052/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.691805Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if ((!(ccb_h->flags & CAM_SCATTER_VALID)) {\n /* single buffer */\n if (!(ccb_h->flags & CAM_DATA_PHYS)) {\n rv = add_virtual_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);\n }\n } else {\n rv = add_physical_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);\n }\n } else {\n int i;\n struct bus_dma_segment *segs;\n segs = (struct bus_dma_segment *)csio->data_ptr;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 4786901564299591920, "content_hash": 4786901564299591920, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:500", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 131, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 44, "source_unit": "https://translate-dev.freebsd.org/api/units/1246764/?format=api", "priority": 100, "id": 1560053, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=c26e7d9c52d6c0f0", "url": "https://translate-dev.freebsd.org/api/units/1560053/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.695016Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if ((ccb_h->flags & CAM_SG_LIST_PHYS) != 0) {\n /* The SG list pointer is physical */\n rv = setup_hcb_for_physical_sg_list(hcb, segs, csio->sglist_cnt);\n } else if (!(ccb_h->flags & CAM_DATA_PHYS)) {\n /* SG buffer pointers are virtual */\n for (i = 0; i < csio->sglist_cnt; i++) {\n rv = add_virtual_chunk(hcb, segs[i].ds_addr,\n segs[i].ds_len, dir);\n if (rv != CAM_REQ_CMP)\n break;\n }\n } else {\n /* SG buffer pointers are physical */\n for (i = 0; i < csio->sglist_cnt; i++) {\n rv = add_physical_chunk(hcb, segs[i].ds_addr,\n segs[i].ds_len, dir);\n if (rv != CAM_REQ_CMP)\n break;\n }\n }\n }\n if (rv != CAM_REQ_CMP) {\n /* we expect that add_*_chunk() functions return CAM_REQ_CMP\n * if they added a chunk successfully, CAM_REQ_TOO_BIG if\n * the request is too big (too many bytes or too many chunks),\n * CAM_REQ_INVALID in case of other troubles\n */\n free_hcb_and_ccb_done(hcb, ccb, rv);\n return;\n }\n end_data:\n" ], "previous_source": "", "target": [ "" ], "id_hash": -1106796684279926089, "content_hash": -1106796684279926089, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:532", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 132, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 137, "source_unit": "https://translate-dev.freebsd.org/api/units/1246766/?format=api", "priority": 100, "id": 1560054, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=70a3de479aea32b7", "url": "https://translate-dev.freebsd.org/api/units/1560054/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.698951Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "If disconnection is disabled for this CCB we pass this information to the hcb:" ], "previous_source": "", "target": [ "" ], "id_hash": -1951069465128859757, "content_hash": -1951069465128859757, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:535", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 133, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1186628/?format=api", "priority": 100, "id": 1560055, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=64ec68a89ee20793", "url": "https://translate-dev.freebsd.org/api/units/1560055/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.783129Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " if (ccb_h->flags & CAM_DIS_DISCONNECT)\n hcb_disable_disconnect(hcb);\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1458194228609944810, "content_hash": 1458194228609944810, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:540", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 134, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1246768/?format=api", "priority": 100, "id": 1560056, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=943c8becd1d20cea", "url": "https://translate-dev.freebsd.org/api/units/1560056/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.787044Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "If the controller is able to run REQUEST SENSE command all by itself then the value of the flag CAM_DIS_AUTOSENSE should also be passed to it, to prevent automatic REQUEST SENSE if the CAM subsystem does not want it." ], "previous_source": "", "target": [ "" ], "id_hash": -7289311664322631344, "content_hash": -7289311664322631344, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:543", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 135, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 39, "source_unit": "https://translate-dev.freebsd.org/api/units/1186630/?format=api", "priority": 100, "id": 1560057, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=1ad729a966f02950", "url": "https://translate-dev.freebsd.org/api/units/1560057/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.792208Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "The only thing left is to set up the timeout, pass our hcb to the hardware and return, the rest will be done by the interrupt handler (or timeout handler)." ], "previous_source": "", "target": [ "" ], "id_hash": 4828230282898163408, "content_hash": 4828230282898163408, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:545", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 136, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://translate-dev.freebsd.org/api/units/1186632/?format=api", "priority": 100, "id": 1560058, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=c30151dc79edc6d0", "url": "https://translate-dev.freebsd.org/api/units/1560058/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.795866Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " ccb_h->timeout_ch = timeout(xxx_timeout, (caddr_t) hcb,\n (ccb_h->timeout * hz) / 1000); /* convert milliseconds to ticks */\n put_hcb_into_hardware_queue(hcb);\n return;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 5309909609372829020, "content_hash": 5309909609372829020, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:552", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 137, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1055236/?format=api", "priority": 100, "id": 1560059, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=c9b096a81819c55c", "url": "https://translate-dev.freebsd.org/api/units/1560059/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.799809Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "And here is a possible implementation of the function returning CCB:" ], "previous_source": "", "target": [ "" ], "id_hash": 3640753210711826181, "content_hash": 3640753210711826181, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:555", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 138, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1186634/?format=api", "priority": 100, "id": 1560060, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=b2868dc16f575f05", "url": "https://translate-dev.freebsd.org/api/units/1560060/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.887279Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " static void\n free_hcb_and_ccb_done(struct xxx_hcb *hcb, union ccb *ccb, u_int32_t status)\n {\n struct xxx_softc *softc = hcb->softc;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 5377298526830418003, "content_hash": 5377298526830418003, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:562", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 139, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/1055240/?format=api", "priority": 100, "id": 1560061, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=caa000851ef55853", "url": "https://translate-dev.freebsd.org/api/units/1560061/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.894683Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " ccb->ccb_h.ccb_hcb = 0;\n if (hcb != NULL) {\n untimeout(xxx_timeout, (caddr_t) hcb, ccb->ccb_h.timeout_ch);\n /* we're about to free a hcb, so the shortage has ended */\n if (softc->flags & RESOURCE_SHORTAGE) {\n softc->flags &= ~RESOURCE_SHORTAGE;\n status |= CAM_RELEASE_SIMQ;\n }\n free_hcb(hcb); /* also removes hcb from any internal lists */\n }\n ccb->ccb_h.status = status |\n (ccb->ccb_h.status & ~(CAM_STATUS_MASK|CAM_SIM_QUEUED));\n xpt_done(ccb);\n }\n" ], "previous_source": "", "target": [ "" ], "id_hash": -113111364016574282, "content_hash": -113111364016574282, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:577", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 140, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/1246770/?format=api", "priority": 100, "id": 1560062, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=7e6e25d04fbb70b6", "url": "https://translate-dev.freebsd.org/api/units/1560062/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.897917Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_XPT_RESET_DEV_ - send the SCSI \"BUS DEVICE RESET\" message to a device" ], "previous_source": "", "target": [ "" ], "id_hash": -6490354896768232767, "content_hash": -6490354896768232767, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:579", "context": "", "note": "type: Title ===", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 141, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1055244/?format=api", "priority": 100, "id": 1560063, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=25eda09bd7e992c1", "url": "https://translate-dev.freebsd.org/api/units/1560063/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.901007Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "There is no data transferred in CCB except the header and the most interesting argument of it is target_id. Depending on the controller hardware a hardware control block just like for the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO request description) and sent to the controller or the SCSI controller may be immediately programmed to send this RESET message to the device or this request may be just not supported (and return the status `CAM_REQ_INVALID`). Also on completion of the request all the disconnected transactions for this target must be aborted (probably in the interrupt routine)." ], "previous_source": "", "target": [ "" ], "id_hash": 1639869946652650162, "content_hash": 1639869946652650162, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:584", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 142, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 96, "source_unit": "https://translate-dev.freebsd.org/api/units/1246772/?format=api", "priority": 100, "id": 1560064, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=96c1fd073011eab2", "url": "https://translate-dev.freebsd.org/api/units/1560064/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.982114Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "Also all the current negotiations for the target are lost on reset, so they might be cleaned too. Or they clearing may be deferred, because anyway the target would request re-negotiation on the next transaction." ], "previous_source": "", "target": [ "" ], "id_hash": -9085882252731845826, "content_hash": -9085882252731845826, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:587", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 143, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 35, "source_unit": "https://translate-dev.freebsd.org/api/units/1246774/?format=api", "priority": 100, "id": 1560065, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=01e8763aeee4733e", "url": "https://translate-dev.freebsd.org/api/units/1560065/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.986549Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "_XPT_RESET_BUS_ - send the RESET signal to the SCSI bus" ], "previous_source": "", "target": [ "" ], "id_hash": -2270485357775715591, "content_hash": -2270485357775715591, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:588", "context": "", "note": "type: Title ===", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 144, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1055250/?format=api", "priority": 100, "id": 1560066, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=607d9d98be0d82f9", "url": "https://translate-dev.freebsd.org/api/units/1560066/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.990519Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "No arguments are passed in the CCB, the only interesting argument is the SCSI bus indicated by the struct sim pointer." ], "previous_source": "", "target": [ "" ], "id_hash": -2765976484931753395, "content_hash": -2765976484931753395, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:591", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 145, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/1186640/?format=api", "priority": 100, "id": 1560067, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=599d470aae8f2a4d", "url": "https://translate-dev.freebsd.org/api/units/1560067/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.994208Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "A minimalistic implementation would forget the SCSI negotiations for all the devices on the bus and return the status CAM_REQ_CMP." ], "previous_source": "", "target": [ "" ], "id_hash": 4235429331760324541, "content_hash": 4235429331760324541, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:593", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 146, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1186642/?format=api", "priority": 100, "id": 1560068, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=bac7448976d81fbd", "url": "https://translate-dev.freebsd.org/api/units/1560068/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:00.997647Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ "The proper implementation would in addition actually reset the SCSI bus (possible also reset the SCSI controller) and mark all the CCBs being processed, both those in the hardware queue and those being disconnected, as done with the status CAM_SCSI_BUS_RESET. Like:" ], "previous_source": "", "target": [ "" ], "id_hash": 8529240215978969809, "content_hash": 8529240215978969809, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:596", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 147, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 41, "source_unit": "https://translate-dev.freebsd.org/api/units/1246776/?format=api", "priority": 100, "id": 1560069, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=f65df2c95d670ad1", "url": "https://translate-dev.freebsd.org/api/units/1560069/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:01.082377Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " int targ, lun;\n struct xxx_hcb *h, *hh;\n struct ccb_trans_settings neg;\n struct cam_path *path;\n" ], "previous_source": "", "target": [ "" ], "id_hash": -2861290091999418694, "content_hash": -2861290091999418694, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:602", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 148, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1055258/?format=api", "priority": 100, "id": 1560070, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=584aa7d23307a6ba", "url": "https://translate-dev.freebsd.org/api/units/1560070/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:01.086233Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?format=api", "source": [ " /* The SCSI bus reset may take a long time, in this case its completion\n * should be checked by interrupt or timeout. But for simplicity\n * we assume here that it is really fast.\n */\n reset_scsi_bus(softc);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -6556559884532053909, "content_hash": -6556559884532053909, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:608", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 149, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 37, "source_unit": "https://translate-dev.freebsd.org/api/units/1055260/?format=api", "priority": 100, "id": 1560071, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=25026b85ede4086b", "url": "https://translate-dev.freebsd.org/api/units/1560071/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:01.089641Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/pt/?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": 3863773933556605974, "content_hash": 3863773933556605974, "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:614", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 150, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/1246778/?format=api", "priority": 100, "id": 1560072, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/pt/?checksum=b59ee1ebe20e2416", "url": "https://translate-dev.freebsd.org/api/units/1560072/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-21T16:48:01.093533Z" } ] }{ "count": 358, "next": "