
{"id":6427,"date":"2011-12-11T19:11:38","date_gmt":"2011-12-11T19:11:38","guid":{"rendered":"http:\/\/www.beautifulwork.org\/?p=6427"},"modified":"2011-12-11T19:11:38","modified_gmt":"2011-12-11T19:11:38","slug":"vm_insert_page-insert-single-page-into-user-vma","status":"publish","type":"post","link":"https:\/\/www.trueangle.org\/index.php\/2011\/12\/11\/vm_insert_page-insert-single-page-into-user-vma\/","title":{"rendered":"vm_insert_page &#8211; insert single page into user vma"},"content":{"rendered":"<pre>\n1. vm_insert_page - insert single page into user vma\n\n\nint vm_insert_page(struct vm_area_struct * vma, unsigned long addr, struct page * page);\n\nvma  user vma to map to\n\naddr  target user address of this page\n\npage  source kernel page\n\n\n2. Classroom\n\n\nThe  virtual  memory  area   (VMA)  is  the  kernel  data\nstructure used to manage  distinct regions of a process's\naddress space.  A VMA represents a  homogeneous region in\nthe virtual  memory of a  process: a contiguous  range of\nvirtual addresses that have the same permission flags and\nare backed  up by the same  object (a file,  say, or swap\nspace).  It  corresponds  loosely  to the  concept  of  a\n\"segment,\" although  it is better described  as \"a memory\nobject  with its  own properties.\"  The memory  map  of a\nprocess is made up of (at least) the following areas:\n\nAn area for the program's executable code (often called text)\n\nMultiple areas for data, including initialized data (that\nwhich has  an explicitly assigned value  at the beginning\nof  execution),  uninitialized  data  (BSS),[3]  and  the\nprogram stack\n\n[3]  The name  BSS  is  a historical  relic  from an  old\nassembly operator meaning  \"block started by symbol.\" The\nBSS segment of executable files isn't stored on disk, and\nthe kernel maps the zero page to the BSS address range.\n\nOne area for each active memory mapping\n\nrelated source: http:\/\/www.makelinux.net\/ldd3\/chp-15-sect-1\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. vm_insert_page &#8211; insert single page into user vma int vm_insert_page(struct vm_area_struct * vma, unsigned long addr, struct page * page); vma user vma to map to addr target user address of this page page source kernel page 2. Classroom The virtual memory area (VMA) is the kernel data structure used to manage distinct regions &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.trueangle.org\/index.php\/2011\/12\/11\/vm_insert_page-insert-single-page-into-user-vma\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;vm_insert_page &#8211; insert single page into user vma&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[83],"tags":[1653,1654],"_links":{"self":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/6427"}],"collection":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/comments?post=6427"}],"version-history":[{"count":0,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/6427\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/media?parent=6427"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/categories?post=6427"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/tags?post=6427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}