2025-09-30 11:56:06 +08:00
<!DOCTYPE html> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "zh-cn" lang = "zh-cn" data-whc_version = "26.0" >
< head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" / > < meta name = "description" content = "在 Host 侧的 usbtest.ko 是一个标准的 usb interface driver 。它根据 Vendor ID = 0x0525 、 Product ID = 0xa4a0 适配上一节 Composite Device 中的 SourceSink Interface 或者 Loopback Interface 。 static const struct usb_device_id ..." / > < meta name = "DC.rights.owner" content = "(C) 版权 2025" / > < meta name = "copyright" content = "(C) 版权 2025" / > < meta name = "generator" content = "DITA-OT" / > < meta name = "DC.type" content = "concept" / > < meta name = "DC.contributor" content = "yan.wang" / > < meta name = "DC.date.modified" content = "2024-01-31" / > < meta name = "DC.format" content = "HTML5" / > < meta name = "DC.identifier" content = "usb_host_usbtest_ko" / > < meta name = "DC.language" content = "zh-CN" / > < title > Host 侧 usbtest.ko< / title > <!-- Build number 2023110923. --> < meta name = "wh-path2root" content = "../../../" / > < meta name = "wh-toc-id" content = "" / > < meta name = "wh-source-relpath" content = "topics/sdk/usb/usb-host_usbtest_ko.dita" / > < meta name = "wh-out-relpath" content = "topics/sdk/usb/usb-host_usbtest_ko.html" / >
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/app/commons.css?buildId=2023110923" / >
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/app/topic.css?buildId=2023110923" / >
< script src = "../../../webhelp/app/options/properties.js?buildId=20250121171154" > < / script >
< script src = "../../../webhelp/app/localization/strings.js?buildId=2023110923" > < / script >
< script src = "../../../webhelp/app/search/index/keywords.js?buildId=20250121171154" > < / script >
< script defer = "defer" src = "../../../webhelp/app/commons.js?buildId=2023110923" > < / script >
< script defer = "defer" src = "../../../webhelp/app/topic.js?buildId=2023110923" > < / script >
< link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/aic-styles-web.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/notes.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/aic-common.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/aic-images.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/footnote.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/aic-web-watermark.css?buildId=2023110923" / > < link rel = "stylesheet" type = "text/css" href = "../../../webhelp/template/topic-body-list.css?buildId=2023110923" / > < / head >
< body id = "usb_host_usbtest_ko" class = "wh_topic_page frmBody" >
< a href = "#wh_topic_body" class = "sr-only sr-only-focusable" >
跳转到主要内容
< / a >
< header class = "navbar navbar-default wh_header" >
< div class = "container-fluid" >
< div class = "wh_header_flex_container navbar-nav navbar-expand-md navbar-dark" >
< div class = "wh_logo_and_publication_title_container" >
< div class = "wh_logo_and_publication_title" >
< a href = "http://www.artinchip.com" class = " wh_logo d-none d-sm-block " > < img src = "../../../company-logo-white.png" alt = "RTOS SDK 使用指南SDK 指南文件" / > < / a >
< div class = " wh_publication_title " > < a href = "../../../index.html" > < span class = "booktitle" > < span class = "ph mainbooktitle" > RTOS SDK 使用指南< / span > < span class = "ph booktitlealt" > SDK 指南文件< / span > < / span > < / a > < / div >
< / div >
< / div >
< div class = "wh_top_menu_and_indexterms_link collapse navbar-collapse" id = "wh_top_menu_and_indexterms_link" >
< / div >
< / div >
< / div >
< / header >
< div class = " wh_search_input navbar-form wh_topic_page_search search " role = "form" >
< form id = "searchForm" method = "get" role = "search" action = "../../../search.html" > < div > < input type = "search" placeholder = "搜索 " class = "wh_search_textfield" id = "textToSearch" name = "searchQuery" aria-label = "搜索查询" required = "required" / > < button type = "submit" class = "wh_search_button" aria-label = "搜索" > < span class = "search_input_text" > 搜索< / span > < / button > < / div > < / form >
< / div >
< div class = "container-fluid" id = "wh_topic_container" >
< div class = "row" >
< nav class = "wh_tools d-print-none navbar-expand-md" aria-label = "Tools" >
< div data-tooltip-position = "bottom" class = " wh_breadcrumb " > < / div >
< div class = "wh_right_tools" >
< button class = "wh_hide_highlight" aria-label = "切换搜索突出显示" title = "切换搜索突出显示" > < / button >
< button class = "webhelp_expand_collapse_sections" data-next-state = "collapsed" aria-label = "折叠截面" title = "折叠截面" > < / button >
< div class = " wh_print_link print d-none d-md-inline-block " > < button onClick = "window.print()" title = "打印此页" aria-label = "打印此页" > < / button > < / div >
< / div >
< / nav >
< / div >
< div class = "wh_content_area" >
< div class = "row" >
< div class = "col-lg-10 col-md-10 col-sm-10 col-xs-12" id = "wh_topic_body" >
< button id = "wh_close_topic_toc_button" class = "close-toc-button d-none" aria-label = "Toggle topic table of content" aria-controls = "wh_topic_toc" aria-expanded = "true" >
< span class = "close-toc-icon-container" >
< span class = "close-toc-icon" > < / span >
< / span >
< / button >
< div class = " wh_topic_content body " > < main role = "main" > < article class = "- topic/topic concept/concept topic concept" role = "article" aria-labelledby = "ariaid-title1" > < span class = "edit-link" style = "font-size:12px; opacity:0.6; text-align:right; vertical-align:middle" > < a target = "_blank" href = "http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/usb/usb-host_usbtest_ko.dita" > Edit online< / a > < / span > < h1 class = "- topic/title title topictitle1" id = "ariaid-title1" > Host 侧 usbtest.ko< / h1 > < div class = "date inPage" > 31 Jan 2024< / div > < div style = "color: gray;" >
Read time: 6 minute(s)
< / div > < div class = "- topic/body concept/conbody body conbody" > < div class = "- topic/p p" data-ofbid = "d237606e22__20250121171656" > 在 Host 侧的 < code class = "+ topic/ph pr-d/codeph ph codeph" > usbtest.ko< / code > 是一个标准的 < code class = "+ topic/ph pr-d/codeph ph codeph" > usb interface driver< / code > 。它根据
< code class = "+ topic/ph pr-d/codeph ph codeph" > Vendor ID = 0x0525< / code > 、 < code class = "+ topic/ph pr-d/codeph ph codeph" > Product ID = 0xa4a0< / code > 适配上一节
< code class = "+ topic/ph pr-d/codeph ph codeph" > Composite Device< / code > 中的 < code class = "+ topic/ph pr-d/codeph ph codeph" > SourceSink Interface< / code > 或者
< code class = "+ topic/ph pr-d/codeph ph codeph" > Loopback
Interface< / code > 。< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "usb_host_usbtest_ko__codeblock_vfp_gkz_21c" data-ofbid = "usb_host_usbtest_ko__codeblock_vfp_gkz_21c" > < strong class = "hl-keyword" > static< / strong > < strong class = "hl-keyword" > const< / strong > < strong class = "hl-keyword" > struct< / strong > usb_device_id id_table[] = {
< em class = "hl-comment" > /* "Gadget Zero" firmware runs under Linux */< / em >
{ USB_DEVICE(< span class = "hl-number" > 0x0525< / span > , < span class = "hl-number" > 0xa4a0< / span > ),
.driver_info = (< strong class = "hl-keyword" > unsigned< / strong > < strong class = "hl-keyword" > long< / strong > ) & gz_info,
},
}
MODULE_DEVICE_TABLE(usb, id_table);
< strong class = "hl-keyword" > static< / strong > < strong class = "hl-keyword" > struct< / strong > usb_driver usbtest_driver = {
.name = < span class = "hl-string" > "usbtest"< / span > ,
.id_table = id_table,
.probe = usbtest_probe,
.unlocked_ioctl = usbtest_ioctl,
.disconnect = usbtest_disconnect,
.suspend = usbtest_suspend,
.resume = usbtest_resume,
};< / pre > < / div > < section class = "- topic/section section" id = "usb_host_usbtest_ko__section_wk2_dkz_21c" data-ofbid = "usb_host_usbtest_ko__section_wk2_dkz_21c" > < h2 class = "- topic/title title sectiontitle" > TestCase< / h2 >
< div class = "- topic/p p" data-ofbid = "d237606e53__20250121171656" > 其在 < code class = "+ topic/ph pr-d/codeph ph codeph" > SourceSink Interface< / code > 提供的 4 个测试 endpoint、或者 < code class = "+ topic/ph pr-d/codeph ph codeph" > Loopback
Interface< / code > 提供的 2 个测试 endpoint + < code class = "+ topic/ph pr-d/codeph ph codeph" > Composite Device< / code > 本身的
ep0 control endpoint 基础之上,提供了 30 个
testcase: < pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "usb_host_usbtest_ko__codeblock_v3t_3kz_21c" data-ofbid = "usb_host_usbtest_ko__codeblock_v3t_3kz_21c" > drivers\usb\misc\usbtest.c:
usbtest_do_ioctl()< / pre > < / div >
< div class = "table-container" > < table class = "- topic/table table frame-all" id = "usb_host_usbtest_ko__table_p53_kkz_21c" data-ofbid = "usb_host_usbtest_ko__table_p53_kkz_21c" data-cols = "8" > < caption > < / caption > < colgroup > < col style = "width:6.939625260235947%" / > < col style = "width:10.270645385149201%" / > < col style = "width:8.743927827897293%" / > < col style = "width:6.939625260235947%" / > < col style = "width:6.939625260235947%" / > < col style = "width:8.743927827897293%" / > < col style = "width:28.938237335183896%" / > < col style = "width:22.48438584316447%" / > < / colgroup > < thead class = "- topic/thead thead" > < tr class = "- topic/row" > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > index< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > type< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > iterations< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > vary< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > sglen< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > unaligned< / th > < th class = "- topic/entry entry colsep-1 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" > testcase< / th > < th class = "- topic/entry entry colsep-0 rowsep-1" id = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / th > < / tr > < / thead > < tbody class = "- topic/tbody tbody" > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 0< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > nop< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" > “TEST 0: NOPn”< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 1< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e128__20250121171656" > “TEST 1: write %d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e131__20250121171656" > param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > Simple non-queued bulk I/O tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 2< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e151__20250121171656" > “TEST 2: read %d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e154__20250121171656" > param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 3< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e174__20250121171656" > “TEST 3: write/%d 0..%d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e177__20250121171656" > param-> vary, param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 4< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e197__20250121171656" > “TEST 4: read/%d 0..%d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e200__20250121171656" > param-> vary, param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 5< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e220__20250121171656" > “TEST 5: write %d sglists %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e223__20250121171656" > param-> iterations,param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 6< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e243__20250121171656" > “TEST 6: read %d sglists %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e246__20250121171656" > param-> iterations,param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 7< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e266__20250121171656" > “TEST 7: write/%d %d sglists %d entries 0..%d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e269__20250121171656" > param-> vary, param-> iterations,param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 8< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e289__20250121171656" > “TEST 8: read/%d %d sglists %d entries 0..%d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e292__20250121171656" > param-> vary, param-> iterations,param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 9< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > control< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e312__20250121171656" > “TEST 9: ch9 (subset) control tests, %d timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e315__20250121171656" > param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > non-queued sanity tests for control (chapter 9 subset)< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 10< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > control< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e335__20250121171656" > “TEST 10: queue %d control calls, %d timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e338__20250121171656" > param-> sglen, param-> iterations)< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > queued control messaging< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 11< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e359__20250121171656" > “TEST 11: unlink %d reads of %dn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e362__20250121171656" > param-> iterations, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > simple non-queued unlinks (ring with one urb)< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 12< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e382__20250121171656" > “TEST 12: unlink %d writes of %dn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e385__20250121171656" > param-> iterations, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 13< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > control< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e405__20250121171656" > “TEST 13: set/clear %d haltsn”< / p >
< p class = "- topic/p p" data-ofbid = "d237606e408__20250121171656" > param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > ep halt tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 14< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > control< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e428__20250121171656" > “TEST 14: %d ep0out, %d..%d vary %dn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e431__20250121171656" > param-> iterations,realworld ? 1 : 0,
param-> length,param-> vary< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > control write tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 15< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > iso< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e451__20250121171656" > “TEST 15: write %d iso, %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e454__20250121171656" > param-> iterations, param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > iso write tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 16< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > iso< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e474__20250121171656" > “TEST 16: read %d iso, %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e477__20250121171656" > param-> iterations, param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > iso read tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 17< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e497__20250121171656" > “TEST 17: write odd addr %d bytes %u times core mapn”< / p >
< p class = "- topic/p p" data-ofbid = "d237606e500__20250121171656" > param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > Tests for bulk I/O using DMA mapping by core and odd
address< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 18< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e520__20250121171656" > “TEST 18: read odd addr %d bytes %u times core mapn”,
param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 19< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e540__20250121171656" > “TEST 19: write odd addr %d bytes %u times premappedn”,
param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > Tests for bulk I/O using premapped coherent buffer and odd
address< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 20< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e560__20250121171656" > “TEST 20: read odd addr %d bytes %u times premappedn”,
param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 21< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > control< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e580__20250121171656" > “TEST 21: %d ep0out odd addr, %d..%d vary
%dn”,param-> iterations,realworld ? 1 : 0, param-> length,
param-> vary< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > control write tests with unaligned buffer< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 22< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > iso< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e601__20250121171656" > “TEST 22: write %d iso odd, %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e604__20250121171656" > param-> iterations, param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > unaligned iso tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 23< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > iso< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e624__20250121171656" > “TEST 23: read %d iso odd, %d entries of %d bytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e627__20250121171656" > param-> iterations, param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 24< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e647__20250121171656" > “TEST 24: unlink from %d queues of %d %d-byte writesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e650__20250121171656" > param-> iterations, param-> sglen, param-> length< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > unlink URBs from a bulk-OUT queue< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 25< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > int< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e670__20250121171656" > “TEST 25: write %d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e673__20250121171656" > param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > Simple non-queued interrupt I/O tests< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 26< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > int< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e693__20250121171656" > “TEST 26: read %d bytes %u timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e696__20250121171656" > param-> length, param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 27< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e716__20250121171656" > “TEST 27: bulk write %dMbytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e719__20250121171656" > (param-> iterations * param-> sglen * param-> length) / (1024 *
1024))< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > Performance test< / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 28< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e739__20250121171656" > “TEST 28: bulk read %dMbytesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e742__20250121171656" > (param-> iterations * param-> sglen * param-> length) / (1024 *
1024))< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-1" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < tr class = "- topic/row" > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__1" > 29< / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__2" > bulk< / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__3" > Y< / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__4" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__5" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__6" > < / td > < td class = "- topic/entry entry colsep-1 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__7" >
< p class = "- topic/p p" data-ofbid = "d237606e762__20250121171656" > “TEST 29: Clear toggle between bulk writes %d timesn”,< / p >
< p class = "- topic/p p" data-ofbid = "d237606e765__20250121171656" > param-> iterations< / p >
< / td > < td class = "- topic/entry entry colsep-0 rowsep-0" headers = "usb_host_usbtest_ko__table_p53_kkz_21c__entry__8" > < / td > < / tr > < / tbody > < / table > < / div >
< / section > < section class = "- topic/section section" id = "usb_host_usbtest_ko__section_a42_dkz_21c" data-ofbid = "usb_host_usbtest_ko__section_a42_dkz_21c" > < h2 class = "- topic/title title sectiontitle" > Ioctl< / h2 >
< p class = "- topic/p p" data-ofbid = "d237606e776__20250121171656" > < em class = "+ topic/ph hi-d/i ph i" > usbtest.ko< / em > 以 ioctl 的形式向用户态提供对 testcase 的调用:< / p >
< pre class = "+ topic/pre pr-d/codeblock pre codeblock language-c" id = "usb_host_usbtest_ko__pre_b42_dkz_21c" data-ofbid = "usb_host_usbtest_ko__pre_b42_dkz_21c" > usbdev_file_operations → usbdev_ioctl() → usbdev_do_ioctl() → proc_ioctl_default() → proc_ioctl():
< strong class = "hl-keyword" > static< / strong > < strong class = "hl-keyword" > int< / strong > proc_ioctl(< strong class = "hl-keyword" > struct< / strong > usb_dev_state *ps, < strong class = "hl-keyword" > struct< / strong > usbdevfs_ioctl *ctl)
{
< em class = "hl-comment" > /* (1) 找到对应的 usb interface device */< / em >
< strong class = "hl-keyword" > else< / strong > < strong class = "hl-keyword" > if< / strong > (!(intf = usb_ifnum_to_if(ps-> dev, ctl-> ifno)))
retval = -EINVAL;
< em class = "hl-comment" > /* talk directly to the interface's driver */< / em >
< strong class = "hl-keyword" > default< / strong > :
< strong class = "hl-keyword" > if< / strong > (intf-> dev.driver)
< em class = "hl-comment" > /* (2) 找到 usb interface device 对应的 driver */< / em >
driver = to_usb_driver(intf-> dev.driver);
< strong class = "hl-keyword" > if< / strong > (driver == NULL || driver-> unlocked_ioctl == NULL) {
retval = -ENOTTY;
} < strong class = "hl-keyword" > else< / strong > {
< em class = "hl-comment" > /* (3) 调用 driver 的 ioctl 函数 */< / em >
retval = driver-> unlocked_ioctl(intf, ctl-> ioctl_code, buf);
< strong class = "hl-keyword" > if< / strong > (retval == -ENOIOCTLCMD)
retval = -ENOTTY;
}
}
↓
usbtest_ioctl() → usbtest_do_ioctl()< / pre >
< / section > < / div > < / article > < / main > < / div >
< / div >
< nav role = "navigation" id = "wh_topic_toc" aria-label = "On this page" class = "col-lg-2 d-none d-lg-block navbar d-print-none" >
< div id = "wh_topic_toc_content" >
< div class = " wh_topic_toc " > < div class = "wh_topic_label" > 在本页上< / div > < ul > < li class = "section-item" > < div class = "section-title" > < a href = "#usb_host_usbtest_ko__section_wk2_dkz_21c" data-tocid = "usb_host_usbtest_ko__section_wk2_dkz_21c" > TestCase< / a > < / div > < / li > < li class = "section-item" > < div class = "section-title" > < a href = "#usb_host_usbtest_ko__section_a42_dkz_21c" data-tocid = "usb_host_usbtest_ko__section_a42_dkz_21c" > Ioctl< / a > < / div > < / li > < / ul > < / div >
< / div >
< / nav >
< / div >
< / div >
< / div >
< footer class = "navbar navbar-default wh_footer" >
< div class = " footer-container mx-auto " >
< title > footer def< / title >
< style > < ! - -
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
-->< / style >
< div class = "webhelp.fragment.footer" >
< p class = "p1" > Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.< / p >
< / div > < div >
< div class = "generation_time" >
Update Time: 2025-01-21
< / div >
< / div >
< / div >
< / footer >
< div id = "go2top" class = "d-print-none" >
< span class = "oxy-icon oxy-icon-up" > < / span >
< / div >
< div id = "modal_img_large" class = "modal" >
< span class = "close oxy-icon oxy-icon-remove" > < / span >
< div id = "modal_img_container" > < / div >
< div id = "caption" > < / div >
< / div >
< script src = "${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer = "defer" > < / script >
< / body >
2025-01-23 16:37:00 +08:00
< / html >