Messages in this thread | | | Date | Fri, 11 Feb 2000 13:05:24 -0600 (CST) | From | pramodh mallipatna <> | Subject | kiovec |
| |
Hello:
I looked at the implementation of kiovec (map_user_kiobuf() routine). I understood how to get the 'struct page *' for the user buffer.
What I want to know is,
If I want to print the contents of the user buffer (in the kernel) using this 'struct page *' how do I do it ('struct page *' points to the physical page right)?
I want to use kiovec for my driver, but I do not want to use the same interface, but something similar to it.
Thanks, Pramodh
I have the relevant code here. Please comment on this.
This is what I have done in the code similar to map_user_kiobuf(). I have cut n pasted the relevant code only.
my_user_buf_map_routine(unsigned long addr) /* user addr */ { int offset; unsigned long ptr; struct vm_area_struct *vma; struct page *map; unsigned long buf; char *page_buffer; offset = addr & PAGE_MASK; ptr = addr & PAGE_MASK;
vma = find_vma(current->mm, ptr); handle_mm_fault(current, vma, ptr, (rw==READ)); map = follow_page(ptr); buf = page_address(map); page_buffer = (char *) (buf + offset); /* If i try to print the page_buffer it seg_faults but I get a valid pointer to the map (struct page *) */ }
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |