Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/documentation/booksarch-handbookscsi_index/fr_FR/units/?format=api&page=6
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 358,
    "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/units/?format=api&page=7",
    "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/units/?format=api&page=5",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "If there is one `devq` structure per SCSI bus (i.e., we consider a card with multiple buses as multiple cards with one bus each) then the bus number will always be 0, otherwise each bus on the SCSI card should be get a distinct number.  Each bus needs its own separate structure cam_sim."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5256120301222407254,
            "content_hash": -5256120301222407254,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:191",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 45,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 53,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246696/?format=api",
            "priority": 100,
            "id": 1247182,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=370e826f24eb53aa",
            "url": "https://translate-dev.freebsd.org/api/units/1247182/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:48.663054Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "After that our controller is completely hooked to the CAM system.  The value of `devq` can be discarded now: sim will be passed as an argument in all further calls from CAM and devq can be derived from it."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7051672355190217581,
            "content_hash": 7051672355190217581,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:194",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 46,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 39,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246698/?format=api",
            "priority": 100,
            "id": 1247183,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=e1dc92a54b8e1b6d",
            "url": "https://translate-dev.freebsd.org/api/units/1247183/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:48.674304Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "CAM provides the framework for such asynchronous events.  Some events originate from the lower levels (the SIM drivers), some events originate from the peripheral drivers, some events originate from the CAM subsystem itself.  Any driver can register callbacks for some types of the asynchronous events, so that it would be notified if these events occur."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3279908869960315017,
            "content_hash": -3279908869960315017,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:198",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 47,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 55,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246700/?format=api",
            "priority": 100,
            "id": 1247184,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=527b6c42ae5ccf77",
            "url": "https://translate-dev.freebsd.org/api/units/1247184/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:48.758784Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "A typical example of such an event is a device reset.  Each transaction and event identifies the devices to which it applies by the means of \"path\".  The target-specific events normally occur during a transaction with this device.  So the path from that transaction may be re-used to report this event (this is safe because the event path is copied in the event reporting routine but not deallocated nor passed anywhere further).  Also it is safe to allocate paths dynamically at any time including the interrupt routines, although that incurs certain overhead, and a possible problem with this approach is that there may be no free memory at that time.  For a bus reset event we need to define a wildcard path including all devices on the bus.  So we can create the path for the future bus reset events in advance and avoid problems with the future memory shortage:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4421764066057981133,
            "content_hash": 4421764066057981133,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:206",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 48,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 150,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246702/?format=api",
            "priority": 100,
            "id": 1247185,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=bd5d42fd95f90ccd",
            "url": "https://translate-dev.freebsd.org/api/units/1247185/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:48.849496Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "    if (xpt_create_path(&path, /*periph*/NULL,\n                cam_sim_path(sim), CAM_TARGET_WILDCARD,\n                CAM_LUN_WILDCARD) != CAM_REQ_CMP) {\n        xpt_bus_deregister(cam_sim_path(sim));\n        cam_sim_free(sim, /*free_devq*/TRUE);\n        error; /* some code to handle the error */\n    }\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8120247170540621494,
            "content_hash": 8120247170540621494,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:218",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 50,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 22,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246704/?format=api",
            "priority": 100,
            "id": 1247186,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=f0b0e9c75871ceb6",
            "url": "https://translate-dev.freebsd.org/api/units/1247186/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:48.868985Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "And we save the path pointer in the `softc` structure for future use.  After that we save the value of sim (or we can also discard it on the exit from `xxx_probe()` if we wish)."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5674894958761890025,
            "content_hash": -5674894958761890025,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:234",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 58,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 35,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246706/?format=api",
            "priority": 100,
            "id": 1247187,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=313eb91a1557af17",
            "url": "https://translate-dev.freebsd.org/api/units/1247187/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.053237Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "That is all for a minimalistic initialization.  To do things right there is one more issue left."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1959615340448312588,
            "content_hash": -1959615340448312588,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:237",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 59,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 17,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246708/?format=api",
            "priority": 100,
            "id": 1247188,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=64ce0c3af82c12f4",
            "url": "https://translate-dev.freebsd.org/api/units/1247188/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.062539Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "For a SIM driver there is one particularly interesting event: when a target device is considered lost.  In this case resetting the SCSI negotiations with this device may be a good idea.  So we register a callback for this event with CAM.  The request is passed to CAM by requesting CAM action on a CAM control block for this type of request:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -900562332781670907,
            "content_hash": -900562332781670907,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:242",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 60,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 62,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246710/?format=api",
            "priority": 100,
            "id": 1247189,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=73808f5468738e05",
            "url": "https://translate-dev.freebsd.org/api/units/1247189/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.070237Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "Processing CAM messages: xxx_action"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8200516192834606699,
            "content_hash": -8200516192834606699,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:255",
            "context": "",
            "note": "type: Title ==",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 63,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246712/?format=api",
            "priority": 100,
            "id": 1247190,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=0e31e9f887412995",
            "url": "https://translate-dev.freebsd.org/api/units/1247190/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.162641Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "static void xxx_action(struct cam_sim *sim, union ccb *ccb);\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8997476943309201981,
            "content_hash": -8997476943309201981,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:260",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 64,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 8,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246714/?format=api",
            "priority": 100,
            "id": 1247191,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=03228a6407499dc3",
            "url": "https://translate-dev.freebsd.org/api/units/1247191/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.172227Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "Do some action on request of the CAM subsystem.  Sim describes the SIM for the request, CCB is the request itself.  CCB stands for \"CAM Control Block\".  It is a union of many specific instances, each describing arguments for some type of transactions.  All of these instances share the CCB header where the common part of arguments is stored."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8829376982093734394,
            "content_hash": 8829376982093734394,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:267",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 65,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 59,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246716/?format=api",
            "priority": 100,
            "id": 1247192,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=fa883f95cdb521fa",
            "url": "https://translate-dev.freebsd.org/api/units/1247192/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.254848Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "CAM supports the SCSI controllers working in both initiator (\"normal\") mode and target (simulating a SCSI device) mode.  Here we only consider the part relevant to the initiator mode."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2867320964433817801,
            "content_hash": -2867320964433817801,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:270",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 66,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 29,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246718/?format=api",
            "priority": 100,
            "id": 1247193,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=58353ac649e44f37",
            "url": "https://translate-dev.freebsd.org/api/units/1247193/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.262767Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "The type of request is stored in `ccb->ccb_h.func_code`.  So generally `xxx_action()` consists of a big switch:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -6554079550146461104,
            "content_hash": -6554079550146461104,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:283",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 74,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246720/?format=api",
            "priority": 100,
            "id": 1247194,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=250b3b5fc7de4250",
            "url": "https://translate-dev.freebsd.org/api/units/1247194/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.557614Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "    switch (ccb_h->func_code) {\n    case ...:\n        ...\n    default:\n        ccb_h->status = CAM_REQ_INVALID;\n        xpt_done(ccb);\n        break;\n    }\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 562401959763382317,
            "content_hash": 562401959763382317,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:299",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 76,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 13,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246722/?format=api",
            "priority": 100,
            "id": 1247195,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=87ce0d9a48ae102d",
            "url": "https://translate-dev.freebsd.org/api/units/1247195/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.649384Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "`xpt_done()` does not have to be called from `xxx_action()`: For example an I/O request may be enqueued inside the SIM driver and/or its SCSI controller.  Then when the device would post an interrupt signaling that the processing of this request is complete `xpt_done()` may be called from the interrupt handling routine."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1327615792903196190,
            "content_hash": 1327615792903196190,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:305",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 78,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 51,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246724/?format=api",
            "priority": 100,
            "id": 1247196,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=926ca38796318e1e",
            "url": "https://translate-dev.freebsd.org/api/units/1247196/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.751367Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "Actually, the CCB status is not only assigned as a return code but a CCB has some status all the time.  Before CCB is passed to the `xxx_action()` routine it gets the status CCB_REQ_INPROG meaning that it is in progress.  There are a surprising number of status values defined in [.filename]#/sys/cam/cam.h# which should be able to represent the status of a request in great detail.  More interesting yet, the status is in fact a \"bitwise or\" of an enumerated status value (the lower 6 bits) and possible additional flag-like bits (the upper bits).  The enumerated values will be discussed later in more detail.  The summary of them can be found in the Errors Summary section.  The possible status flags are:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6809833937561899888,
            "content_hash": 6809833937561899888,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:313",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 79,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 120,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246726/?format=api",
            "priority": 100,
            "id": 1247197,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=de8163e2dbc6d370",
            "url": "https://translate-dev.freebsd.org/api/units/1247197/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.764273Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "_CAM_DEV_QFRZN_ - if the SIM driver gets a serious error (for example, the device does not respond to the selection or breaks the SCSI protocol) when processing a CCB it should freeze the request queue by calling `xpt_freeze_simq()`, return the other enqueued but not processed yet CCBs for this device back to the CAM queue, then set this flag for the troublesome CCB and call `xpt_done()`.  This flag causes the CAM subsystem to unfreeze the queue after it handles the error."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5254485996819227099,
            "content_hash": 5254485996819227099,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:316",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 80,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 81,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246728/?format=api",
            "priority": 100,
            "id": 1247198,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=c8ebaf2cb5aca1db",
            "url": "https://translate-dev.freebsd.org/api/units/1247198/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.862185Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "_CAM_AUTOSNS_VALID_ - if the device returned an error condition and the flag CAM_DIS_AUTOSENSE is not set in CCB the SIM driver must execute the REQUEST SENSE command automatically to extract the sense (extended error information) data from the device.  If this attempt was successful the sense data should be saved in the CCB and this flag set."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2906235658097606791,
            "content_hash": -2906235658097606791,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:318",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 81,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 57,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246730/?format=api",
            "priority": 100,
            "id": 1247199,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=57aafa111d84bf79",
            "url": "https://translate-dev.freebsd.org/api/units/1247199/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.871680Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "_CAM_RELEASE_SIMQ_ - like CAM_DEV_QFRZN but used in case there is some problem (or resource shortage) with the SCSI controller itself.  Then all the future requests to the controller should be stopped by `xpt_freeze_simq()`.  The controller queue will be restarted after the SIM driver overcomes the shortage and informs CAM by returning some CCB with this flag set."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3383200504342087278,
            "content_hash": -3383200504342087278,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:321",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 82,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 57,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246732/?format=api",
            "priority": 100,
            "id": 1247200,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=510c7510f6c47992",
            "url": "https://translate-dev.freebsd.org/api/units/1247200/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.954864Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "_CAM_SIM_QUEUED_ - when SIM puts a CCB into its request queue this flag should be set (and removed when this CCB gets dequeued before being returned back to CAM).  This flag is not used anywhere in the CAM code now, so its purpose is purely diagnostic."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2286867552648918811,
            "content_hash": 2286867552648918811,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:323",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 83,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 46,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246734/?format=api",
            "priority": 100,
            "id": 1247201,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=9fbc95ec3c01771b",
            "url": "https://translate-dev.freebsd.org/api/units/1247201/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:49.963940Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "The function `xxx_action()` is not allowed to sleep, so all the synchronization for resource access must be done using SIM or device queue freezing.  Besides the aforementioned flags the CAM subsystem provides functions `xpt_release_simq()` and `xpt_release_devq()` to unfreeze the queues directly, without passing a CCB to CAM."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5245151216480295390,
            "content_hash": -5245151216480295390,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:327",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 85,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 47,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246736/?format=api",
            "priority": 100,
            "id": 1247202,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=37357ac2347be622",
            "url": "https://translate-dev.freebsd.org/api/units/1247202/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:50.062803Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "The instance \"struct ccb_scsiio csio\" of the union ccb is used to transfer the arguments.  They are:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4598110792889389491,
            "content_hash": -4598110792889389491,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:351",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 97,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 17,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246738/?format=api",
            "priority": 100,
            "id": 1247203,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=40303a987ff02e4d",
            "url": "https://translate-dev.freebsd.org/api/units/1247203/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:50.556220Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247204,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=a10943e91f20857e",
            "url": "https://translate-dev.freebsd.org/api/units/1247204/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:50.764860Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247205,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=edf1490bd4b2ecd9",
            "url": "https://translate-dev.freebsd.org/api/units/1247205/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:50.849968Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247206,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=051724835d78035b",
            "url": "https://translate-dev.freebsd.org/api/units/1247206/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.048796Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247207,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=b261f45413ea8d84",
            "url": "https://translate-dev.freebsd.org/api/units/1247207/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.060555Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247208,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=dbf4c2e3773e2b93",
            "url": "https://translate-dev.freebsd.org/api/units/1247208/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.248289Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247209,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=3f214e83a77b18c2",
            "url": "https://translate-dev.freebsd.org/api/units/1247209/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.271613Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247210,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=367da8df281867d4",
            "url": "https://translate-dev.freebsd.org/api/units/1247210/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.451558Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247211,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=64dfe75478fa6ca5",
            "url": "https://translate-dev.freebsd.org/api/units/1247211/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.560627Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247212,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=e27b8333d02c80ea",
            "url": "https://translate-dev.freebsd.org/api/units/1247212/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.574094Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247213,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=3639ec6852d03f1b",
            "url": "https://translate-dev.freebsd.org/api/units/1247213/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.653742Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247214,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=d2f28efe2639ecbf",
            "url": "https://translate-dev.freebsd.org/api/units/1247214/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.660808Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247215,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=cd8b2b432fb8e2c7",
            "url": "https://translate-dev.freebsd.org/api/units/1247215/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.753494Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247216,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=c26e7d9c52d6c0f0",
            "url": "https://translate-dev.freebsd.org/api/units/1247216/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.861480Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247217,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=70a3de479aea32b7",
            "url": "https://translate-dev.freebsd.org/api/units/1247217/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:51.872246Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247218,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=943c8becd1d20cea",
            "url": "https://translate-dev.freebsd.org/api/units/1247218/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.049142Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247219,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=7e6e25d04fbb70b6",
            "url": "https://translate-dev.freebsd.org/api/units/1247219/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.164186Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247220,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=96c1fd073011eab2",
            "url": "https://translate-dev.freebsd.org/api/units/1247220/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.269351Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247221,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=01e8763aeee4733e",
            "url": "https://translate-dev.freebsd.org/api/units/1247221/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.350386Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247222,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=f65df2c95d670ad1",
            "url": "https://translate-dev.freebsd.org/api/units/1247222/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.459642Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 1247223,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=b59ee1ebe20e2416",
            "url": "https://translate-dev.freebsd.org/api/units/1247223/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.561975Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": 84246132073336958,
            "content_hash": 84246132073336958,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:624",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 152,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246780/?format=api",
            "priority": 100,
            "id": 1247224,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=812b4d6927ee907e",
            "url": "https://translate-dev.freebsd.org/api/units/1247224/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.649632Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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": -2070398338347294298,
            "content_hash": -2070398338347294298,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:632",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 153,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 21,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246782/?format=api",
            "priority": 100,
            "id": 1247225,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=634477ae434021a6",
            "url": "https://translate-dev.freebsd.org/api/units/1247225/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.668702Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?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                free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);\n            }\n    }\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4482695575550097849,
            "content_hash": -4482695575550097849,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:639",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 154,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246784/?format=api",
            "priority": 100,
            "id": 1247226,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=41ca441fd71f0647",
            "url": "https://translate-dev.freebsd.org/api/units/1247226/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.757614Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "The arguments are transferred in the instance \"struct ccb_abort cab\" of the union ccb.  The only argument field in it is:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 850409128025357247,
            "content_hash": 850409128025357247,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:654",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 159,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 21,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246786/?format=api",
            "priority": 100,
            "id": 1247227,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=8bcd4298a5b37bbf",
            "url": "https://translate-dev.freebsd.org/api/units/1247227/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:52.957394Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "If the abort is not supported just return the status CAM_UA_ABORT.  This is also the easy way to minimally implement this call, return CAM_UA_ABORT in any case."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 3022314783035684806,
            "content_hash": 3022314783035684806,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:659",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 161,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 27,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246788/?format=api",
            "priority": 100,
            "id": 1247228,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=a9f16b484240f7c6",
            "url": "https://translate-dev.freebsd.org/api/units/1247228/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:53.049359Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "The hard way is to implement this request honestly.  First check that abort applies to a SCSI transaction:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1222902410414346976,
            "content_hash": 1222902410414346976,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:662",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 162,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246790/?format=api",
            "priority": 100,
            "id": 1247229,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=90f89f4357b752e0",
            "url": "https://translate-dev.freebsd.org/api/units/1247229/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:53.154830Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "    if (abort_ccb->ccb_h.func_code != XPT_SCSI_IO) {\n        ccb->ccb_h.status = CAM_UA_ABORT;\n        xpt_done(ccb);\n        return;\n    }\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1928160779053499733,
            "content_hash": 1928160779053499733,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:673",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 164,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 11,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246792/?format=api",
            "priority": 100,
            "id": 1247230,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=9ac2340341530555",
            "url": "https://translate-dev.freebsd.org/api/units/1247230/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:53.257526Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookscsi_index/fr_FR/?format=api",
            "source": [
                "Then it is necessary to find this CCB in our queue.  This can be done by walking the list of all our hardware control blocks in search for one associated with this CCB:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4127105576780536716,
            "content_hash": -4127105576780536716,
            "location": "documentation/content/en/books/arch-handbook/scsi/_index.adoc:677",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 165,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 33,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1246794/?format=api",
            "priority": 100,
            "id": 1247231,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookscsi_index/fr_FR/?checksum=46b9935821766474",
            "url": "https://translate-dev.freebsd.org/api/units/1247231/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-07-24T14:56:53.275833Z"
        }
    ]
}