'\" t .\" Title: nvme-mangoboost-id-ctrl .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 02/16/2026 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: Persian .\" .TH "NVME\-MANGOBOOST\-ID" "1" "02/16/2026" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" nvme-mangoboost-id-ctrl \- ارسال دستور شناسایی کنترلر NVMe و بازگرداندن نتیجه و ساختار .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fInvme mangoboost id\-ctrl\fR [\-\-vendor\-specific | \-V] [\-\-raw\-binary | \-b] [\-\-output\-format= | \-o ] [\-\-verbose | \-v] .fi .SH "توضیحات (DESCRIPTION)" .sp برای دستگاه NVMe داده‌شده، یک دستور شناسایی کنترلر (identify controller) ارسال کرده و نتیجه و ساختار بازگردانده‌شده را ارائه می‌دهد\&. .sp پارامتر اجباری است و می‌تواند یک دستگاه کاراکتری NVMe (مانند: /dev/nvme0) یا یک دستگاه بلوکی فضای نام (مانند: /dev/nvme0n1) باشد\&. .sp در صورت موفقیت، بسته به فلگ‌های گزینه، ساختار ممکن است به یکی از چند روش بازگردانده شود؛ ساختار می‌تواند توسط برنامه تجزیه شود یا بافر خام در خروجی استاندارد (stdout) چاپ گردد\&. .sp در صورتی که برنامه خروجی را جهت خوانایی رمزگشایی کند، این نسخه بخش‌های اختصاصی و منحصربه‌فرد سازنده منگوبوست (MangoBoost) از ساختار را رمزگشایی خواهد کرد\&. .SH "گزینه‌ها (OPTIONS)" .PP \-b, \-\-raw\-binary .RS 4 چاپ بافر خام در خروجی استاندارد (stdout)\&. ساختار توسط برنامه تجزیه نمی‌شود\&. این گزینه بر گزینه‌های vendor specific و human readable تقدم داشته و آن‌ها را لغو می‌کند\&. .RE .PP \-V, \-\-vendor\-specific .RS 4 علاوه بر تجزیه فیلدهای شناخته‌شده، این گزینه بخش اختصاصی سازنده (vendor specific) در ساختار را به صورت هگزادسیمال همراه با تفسیر اسکی دامپ می‌کند\&. .RE .PP \-H, \-\-human\-readable .RS 4 این گزینه بسیاری از فیلدهای بیتی را تجزیه کرده و در قالب‌های خوانا برای انسان قالب‌بندی می‌کند\&. .RE .PP \-o , \-\-output\-format= .RS 4 تنظیم قالب گزارش‌دهی روی \fInormal\fR، \fIjson\fR یا \fIbinary\fR\&. در هر زمان تنها یک قالب خروجی می‌تواند استفاده شود\&. .RE .PP \-v, \-\-verbose .RS 4 افزایش میزان جزئیات اطلاعات در خروجی\&. .RE .SH "مثال‌ها (EXAMPLES)" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تفسیر بافر بازگردانده‌شده توسط برنامه و نمایش فیلدهای شناخته‌شده در قالبی خوانا برای انسان: .sp .if n \{\ .RS 4 .\} .nf # nvme mangoboost id\-ctrl /dev/nvme0 .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} علاوه بر نمایش فیلدهای شناخته‌شده، برنامه فیلد منحصربه‌فرد سازنده را نیز نمایش دهد: .sp .if n \{\ .RS 4 .\} .nf # nvme mangoboost id\-ctrl /dev/nvme0 \-\-vendor\-specific # nvme mangoboost id\-ctrl /dev/nvme0 \-V .fi .if n \{\ .RE .\} .sp دستور فوق بافر \fIvs\fR را به صورت هگزادسیمال دامپ می‌کند، زیرا نحوه تفسیر آن را نمی‌داند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} بازگرداندن ساختار خام به صورت دودویی (binary) توسط برنامه: .sp .if n \{\ .RS 4 .\} .nf # nvme mangoboost id\-ctrl /dev/nvme0 \-\-raw\-binary > id_ctrl\&.raw # nvme mangoboost id\-ctrl /dev/nvme0 \-b > id_ctrl\&.raw .fi .if n \{\ .RE .\} .sp عدم هدایت خروجی استاندارد (stdout) هنگام استفاده از این حالت احتمالاً ایده خوبی نیست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} همچنین ممکن است بخواهید داده‌ها را به برنامه دیگری ارسال کنید که بتواند بافر خام را تجزیه کند\&. .sp .if n \{\ .RS 4 .\} .nf # nvme mangoboost id\-ctrl /dev/nvme0 \-\-raw\-binary | nvme_parse_id_ctrl .fi .if n \{\ .RE .\} .sp برنامه تجزیه‌کننده در مثال بالا می‌تواند برنامه‌ای باشد که ساختار را به شیوه دلخواه شما نشان دهد\&. برنامه زیر نمونه‌ای از این دست است که آن را تجزیه می‌کند و می‌تواند خروجی را از طریق یک لوله (pipe)، \*(Aq|\*(Aq، همان‌طور که در مثال بالا نشان داده شده دریافت کند، یا می‌توانید با \*(Aqcat\*(Aq یک بافر خروجی ذخیره‌شده را به آن هدایت کنید\&. .RE .sp .if n \{\ .RS 4 .\} .nf /* File: nvme_parse_id_ctrl\&.c */ #include #include #include int main(int argc, char **argv) { unsigned char buf[sizeof(struct nvme_id_ctrl)]; struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf; if (read(STDIN_FILENO, buf, sizeof(buf))) return 1; printf("vid : %#x\en", ctrl\->vid); printf("ssvid : %#x\en", ctrl\->ssvid); return 0; } .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .sp \fBnvme\fR(1)، \fBnvme\-id\-ctrl\fR(1) .SH "NVME" .sp بخشی از مجموعهٔ nvme\-user