{"id":15940,"date":"2022-10-13T15:36:52","date_gmt":"2022-10-13T10:06:52","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/"},"modified":"2022-10-13T15:36:52","modified_gmt":"2022-10-13T10:06:52","slug":"solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/","title":{"rendered":"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-67045352\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"67045352\" data-parentid=\"67042985\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<blockquote>\n<p>What&#8217;s the point of all of this for example if I am looking at NIC card, then whatever I suppose to get with the mmap call in Userspace application and Kernel implementation of MMAP in proxy driver will have kernel data structure.<\/p>\n<\/blockquote>\n<p>What do kernel data structures have to do with it?  If you are using DMA to get data from a NIC then surely you are getting raw data (ethernet frames, for example).  The layout of such data is defined by the applicable network protocol and whatever higher-level protocols apply to the payload.<\/p>\n<p>The kernel sources do define C structure types whose layouts map the fields of ethernet headers, IP headers, TCP headers, <em>etc<\/em>, but these follow the externally-defined layout of the data, not the other way around.<\/p>\n<blockquote>\n<p>in case of NIC card the RX\/TX will be the device specific data structures representation in kernel memory space<\/p>\n<\/blockquote>\n<p>The formats of network transmissions are not device-specific (generally speaking).<\/p>\n<blockquote>\n<p>since geting struct ethhdr \/ struct iphdr \/ struct tcphdr \/ etc. from return of mmap is not possible since the above paragraph from thesis says conversion of virtual addresses to Userspace addresses is probably not possible (basically it says physical address. I am assuming this from the text read)<\/p>\n<\/blockquote>\n<p>Irrelevant (see above).  Nevertheless, the quoted thesis excerpt says nothing at all like what you describe.  It&#8217;s not talking about user space versus kernel space at all, but rather about hardware programming interfaces vs kernel code.  It is expressing some of the complications involved in writing (kernel-space) drivers.<\/p>\n<blockquote>\n<p>how can the return of mmap calls be used in applications<\/p>\n<\/blockquote>\n<p>The driver provides an interface to userspace in the form of a character device.  Mmapping an appropriate range of bytes from that device into a program&#8217;s memory space provides access to whatever data the driver exposes that way.  In the case of an interface for DMA, that would presumably be the contents of the (physical) memory involved in the DMA transfer.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">4<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] What&#8217;s the point of all of this for example if I am looking at NIC card, then whatever I suppose to get with the mmap call in Userspace application and Kernel implementation of MMAP in proxy driver will have kernel data structure. What do kernel data structures have to do with it? If you &#8230; <a title=\"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\" aria-label=\"More on [Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[4096,4095,2864,1551],"class_list":["post-15940","post","type-post","status-publish","format-standard","hentry","category-solved","tag-dma","tag-embedded-linux","tag-linux-device-driver","tag-linux-kernel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] what&#039;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] what&#039;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] What&#8217;s the point of all of this for example if I am looking at NIC card, then whatever I suppose to get with the mmap call in Userspace application and Kernel implementation of MMAP in proxy driver will have kernel data structure. What do kernel data structures have to do with it? If you ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-13T10:06:52+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense\",\"datePublished\":\"2022-10-13T10:06:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\"},\"wordCount\":373,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"dma\",\"embedded-linux\",\"linux-device-driver\",\"linux-kernel\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\",\"name\":\"[Solved] what's the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-13T10:06:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] what's the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] what's the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb","og_description":"[ad_1] What&#8217;s the point of all of this for example if I am looking at NIC card, then whatever I suppose to get with the mmap call in Userspace application and Kernel implementation of MMAP in proxy driver will have kernel data structure. What do kernel data structures have to do with it? If you ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/","og_site_name":"JassWeb","article_published_time":"2022-10-13T10:06:52+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense","datePublished":"2022-10-13T10:06:52+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/"},"wordCount":373,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["dma","embedded-linux","linux-device-driver","linux-kernel"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/","url":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/","name":"[Solved] what's the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-13T10:06:52+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-point-of-dma-proxy-or-can-we-use-kernel-data-structures-in-userspace-which-makes-no-sense\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] what&#8217;s the point of DMA proxy. Or can we use kernel data structures in userspace which makes no sense"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/15940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=15940"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/15940\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=15940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=15940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=15940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}