这篇教程C++ ClearPageReserved函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ClearPageReserved函数的典型用法代码示例。如果您正苦于以下问题:C++ ClearPageReserved函数的具体用法?C++ ClearPageReserved怎么用?C++ ClearPageReserved使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ClearPageReserved函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: vperfctr_freestatic void vperfctr_free(struct vperfctr *perfctr){ debug_free(perfctr); ClearPageReserved(virt_to_page(perfctr)); free_page((unsigned long)perfctr); dec_nrctrs();}
开发者ID:DanieleDeSensi,项目名称:mammut,代码行数:7,
示例2: rtR0MemObjLinuxFreePages/** * Frees the physical pages allocated by the rtR0MemObjLinuxAllocPages() call. * * This method does NOT free the object. * * @param pMemLnx The object which physical pages should be freed. */static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx){ size_t iPage = pMemLnx->cPages; if (iPage > 0) { /* * Restore the page flags. */ while (iPage-- > 0) { ClearPageReserved(pMemLnx->apPages[iPage]);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 22)#else MY_SET_PAGES_NOEXEC(pMemLnx->apPages[iPage], 1);#endif } /* * Free the pages. */#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 22) if (!pMemLnx->fContiguous) { iPage = pMemLnx->cPages; while (iPage-- > 0) __free_page(pMemLnx->apPages[iPage]); } else#endif __free_pages(pMemLnx->apPages[0], rtR0MemObjLinuxOrder(pMemLnx->cPages)); pMemLnx->cPages = 0; }}
开发者ID:lskakaxi,项目名称:virtualbox-drv,代码行数:41,
示例3: uninorth_free_gatt_tablestatic int uninorth_free_gatt_table(void){ int page_order; char *table, *table_end; void *temp; struct page *page; temp = agp_bridge->current_size; page_order = A_SIZE_32(temp)->page_order; /* Do not worry about freeing memory, because if this is * called, then all agp memory is deallocated and removed * from the table. */ table = (char *) agp_bridge->gatt_table_real; table_end = table + ((PAGE_SIZE * (1 << page_order)) - 1); for (page = virt_to_page(table); page <= virt_to_page(table_end); page++) ClearPageReserved(page); free_pages((unsigned long) agp_bridge->gatt_table_real, page_order); return 0;}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:25,
示例4: set_highmem_pages_initvoid __init set_highmem_pages_init(void){ struct zone *zone; int nid; for_each_zone(zone) { unsigned long zone_start_pfn, zone_end_pfn; if (!is_highmem(zone)) continue; zone_start_pfn = zone->zone_start_pfn; zone_end_pfn = zone_start_pfn + zone->spanned_pages; nid = zone_to_nid(zone); printk(KERN_INFO "Initializing %s for node %d (%08lx:%08lx)/n", zone->name, nid, zone_start_pfn, zone_end_pfn); add_highpages_with_active_regions(nid, zone_start_pfn, zone_end_pfn); /* XEN: init high-mem pages outside initial allocation. */ if (zone_start_pfn < xen_start_info->nr_pages) zone_start_pfn = xen_start_info->nr_pages; for (; zone_start_pfn < zone_end_pfn; zone_start_pfn++) { ClearPageReserved(pfn_to_page(zone_start_pfn)); init_page_count(pfn_to_page(zone_start_pfn)); } } totalram_pages += totalhigh_pages;}
开发者ID:AsadRaza,项目名称:OCTEON-Linux,代码行数:31,
示例5: prom_free_prom_memoryvoid __init prom_free_prom_memory (void){ unsigned long addr, end; /* * Free everything below the kernel itself but leave * the first page reserved for the exception handlers. */#if defined(CONFIG_DECLANCE) || defined(CONFIG_DECLANCE_MODULE) /* * Leave 128 KB reserved for Lance memory for * IOASIC DECstations. * * XXX: save this address for use in dec_lance.c? */ if (IOASIC) end = __pa(&_text) - 0x00020000; else#endif end = __pa(&_text); addr = PAGE_SIZE; while (addr < end) { ClearPageReserved(virt_to_page(__va(addr))); set_page_count(virt_to_page(__va(addr)), 1); free_page((unsigned long)__va(addr)); addr += PAGE_SIZE; } printk("Freeing unused PROM memory: %ldk freed/n", (end - PAGE_SIZE) >> 10);}
开发者ID:sarnobat,项目名称:knoppix,代码行数:33,
示例6: exemple_initstatic int __init exemple_init (void){ int err; struct page * pg = NULL; exemple_buffer = kmalloc(PAGE_SIZE, GFP_KERNEL); if (exemple_buffer == NULL) return -ENOMEM; exemple_buffer[0] = '/0'; pg = virt_to_page(exemple_buffer); SetPageReserved(pg); err = misc_register(& exemple_misc_driver); if (err != 0) { ClearPageReserved(pg); kfree(exemple_buffer); exemple_buffer = NULL; return err; }#if LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0) init_timer (& exemple_timer); exemple_timer.function = exemple_timer_function;#else timer_setup (& exemple_timer, exemple_timer_function, 0);#endif exemple_timer.expires = jiffies + HZ; add_timer(& exemple_timer); return 0;}
开发者ID:Logilin,项目名称:ild,代码行数:33,
示例7: device_releasestatic int device_release(struct inode *inode, struct file *filp){ struct mmap_info *info=NULL; struct page *page=NULL; unsigned i=0; unsigned num_pages=0; pr_info("device_release: %d.%d/n", MAJOR (inode->i_rdev), MINOR (inode->i_rdev)); IS_DONE_FLAG = 1; // Free RX buffer pointer queues info = filp->private_data; if (info->data ) { printk("[GNoM_km] on release: (%d) <%p>/n", info->reference_cnt, info->data); num_pages = (1<<K_PAGE_ORDER); for(i=0; i<num_pages; ++i){ // Unpin all of the the allocated pages page = virt_to_page((size_t)info->data + (i*CPU_PAGE_SIZE)); if(PageReserved(page)){ ClearPageReserved(page); } } free_pages((unsigned long)info->data, K_PAGE_ORDER); // Free 2^K_PAGE_ORDER pages kfree(info); filp->private_data = NULL; } printk("[GNoM_km]: %u mmaped Pages succesfully released/n", i); return 0;}
开发者ID:liucheng98,项目名称:MemcachedGPU,代码行数:33,
示例8: spu_free_lscsavoid spu_free_lscsa(struct spu_state *csa){ unsigned char *p; int i; if (!csa->use_big_pages) { spu_free_lscsa_std(csa); return; } csa->use_big_pages = 0; if (csa->lscsa == NULL) goto free_pages; for (p = csa->lscsa->ls; p < csa->lscsa->ls + LS_SIZE; p += PAGE_SIZE) ClearPageReserved(vmalloc_to_page(p)); vunmap(csa->lscsa); csa->lscsa = NULL; free_pages: for (i = 0; i < SPU_LSCSA_NUM_BIG_PAGES; i++) if (csa->lscsa_pages[i]) __free_pages(csa->lscsa_pages[i], SPU_64K_PAGE_ORDER);}
开发者ID:12019,项目名称:linux-2.6.34-ts471x,代码行数:26,
示例9: ati_free_page_mapstatic void ati_free_page_map(ati_page_map *page_map){ unmap_page_from_agp(virt_to_page(page_map->real)); iounmap(page_map->remapped); ClearPageReserved(virt_to_page(page_map->real)); free_page((unsigned long) page_map->real);}
开发者ID:OpenHMR,项目名称:Open-HMR600,代码行数:7,
示例10: omap24xxcam_vbq_free_mmap_buffer/* * Free the memory-mapped buffer memory allocated for a * videobuf_buffer and the associated scatterlist. */static void omap24xxcam_vbq_free_mmap_buffer(struct videobuf_buffer *vb){ struct videobuf_dmabuf *dma = videobuf_to_dma(vb); size_t alloc_size; struct page *page; int i; if (dma->sglist == NULL) return; i = dma->sglen; while (i) { i--; alloc_size = sg_dma_len(&dma->sglist[i]); page = sg_page(&dma->sglist[i]); do { ClearPageReserved(page++); } while (alloc_size -= PAGE_SIZE); __free_pages(sg_page(&dma->sglist[i]), get_order(sg_dma_len(&dma->sglist[i]))); } kfree(dma->sglist); dma->sglist = NULL;}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:29,
示例11: dev_nvram_exitstatic voiddev_nvram_exit(void){ int order = 0; struct page *page, *end; if (nvram_class) { class_device_destroy(nvram_class, MKDEV(nvram_major, 0)); class_destroy(nvram_class); } if (nvram_major >= 0) unregister_chrdev(nvram_major, "nvram"); if (nvram_mtd) put_mtd_device(nvram_mtd); while ((PAGE_SIZE << order) < nvram_space) order++; end = virt_to_page(nvram_buf + (PAGE_SIZE << order) - 1); for (page = virt_to_page(nvram_buf); page <= end; page++) ClearPageReserved(page); _nvram_exit();}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:25,
示例12: RTR0DECL/** * Frees memory allocated using RTMemContAlloc(). * * @param pv Pointer to return from RTMemContAlloc(). * @param cb The cb parameter passed to RTMemContAlloc(). */RTR0DECL(void) RTMemContFree(void *pv, size_t cb){ if (pv) { int cOrder; unsigned cPages; unsigned iPage; struct page *paPages; /* validate */ AssertMsg(!((uintptr_t)pv & PAGE_OFFSET_MASK), ("pv=%p/n", pv)); Assert(cb > 0); /* calc order and get pages */ cb = RT_ALIGN_Z(cb, PAGE_SIZE); cPages = cb >> PAGE_SHIFT; cOrder = CalcPowerOf2Order(cPages); paPages = virt_to_page(pv); /* * Restore page attributes freeing the pages. */ for (iPage = 0; iPage < cPages; iPage++) { ClearPageReserved(&paPages[iPage]);#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 4, 20) /** @todo find the exact kernel where change_page_attr was introduced. */ MY_SET_PAGES_NOEXEC(&paPages[iPage], 1);#endif } __free_pages(paPages, cOrder); }}
开发者ID:stefano-garzarella,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:38,
示例13: amd_create_page_mapstatic int amd_create_page_map(struct amd_page_map *page_map){ int i; page_map->real = (unsigned long *) __get_free_page(GFP_KERNEL); if (page_map->real == NULL) return -ENOMEM;#ifndef CONFIG_X86 SetPageReserved(virt_to_page(page_map->real)); global_cache_flush(); page_map->remapped = ioremap_nocache(virt_to_gart(page_map->real), PAGE_SIZE); if (page_map->remapped == NULL) { ClearPageReserved(virt_to_page(page_map->real)); free_page((unsigned long) page_map->real); page_map->real = NULL; return -ENOMEM; } global_cache_flush();#else set_memory_uc((unsigned long)page_map->real, 1); page_map->remapped = page_map->real;#endif for (i = 0; i < PAGE_SIZE / sizeof(unsigned long); i++) { writel(agp_bridge->scratch_page, page_map->remapped+i); readl(page_map->remapped+i); /* PCI Posting. */ } return 0;}
开发者ID:LouZiffer,项目名称:m900_kernel_cupcake-SDX,代码行数:32,
示例14: Device1Exitstatic void Device1Exit(void){ int i; UWORD *pTemp = (UWORD*)pUsbSpeed; dUsbExit(); pUsbSpeed = &UsbSpeedDefault; for (i = 0; i < NPAGES * PAGE_SIZE; i+= PAGE_SIZE) { ClearPageReserved(virt_to_page(((unsigned long)pTemp) + i)); //#define DEBUG #undef DEBUG #ifdef DEBUG printk(" %s memory page %d unmapped/n",DEVICE1_NAME,i); #endif } kfree(kmalloc_ptr); misc_deregister(&Device1); //#define DEBUG #undef DEBUG #ifdef DEBUG printk(" %s device unregistered/n",DEVICE1_NAME); #endif}
开发者ID:Oxel40,项目名称:ev3sources,代码行数:30,
示例15: dev_nvram_exitstatic voiddev_nvram_exit(void){ int order = 0; struct page *page, *end; if (nvram_class) {#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) class_device_destroy(nvram_class, MKDEV(nvram_major, 0));#else /* 2.6.36 and up */ device_destroy(nvram_class, MKDEV(nvram_major, 0));#endif class_destroy(nvram_class); } if (nvram_major >= 0) unregister_chrdev(nvram_major, "nvram"); if (nvram_mtd) put_mtd_device(nvram_mtd); while ((PAGE_SIZE << order) < MAX_NVRAM_SPACE) order++; end = virt_to_page(nvram_buf + (PAGE_SIZE << order) - 1); for (page = virt_to_page(nvram_buf); page <= end; page++) ClearPageReserved(page); _nvram_exit();}
开发者ID:jhu-chang,项目名称:r6300v2,代码行数:29,
示例16: ati_create_page_mapstatic int ati_create_page_map(ati_page_map *page_map){ int i, err = 0; page_map->real = (unsigned long *) __get_free_page(GFP_KERNEL); if (page_map->real == NULL) return -ENOMEM; SetPageReserved(virt_to_page(page_map->real)); err = map_page_into_agp(virt_to_page(page_map->real)); page_map->remapped = ioremap_nocache(virt_to_gart(page_map->real), PAGE_SIZE); if (page_map->remapped == NULL || err) { ClearPageReserved(virt_to_page(page_map->real)); free_page((unsigned long) page_map->real); page_map->real = NULL; return -ENOMEM; } /*CACHE_FLUSH();*/ global_cache_flush(); for(i = 0; i < PAGE_SIZE / sizeof(unsigned long); i++) { writel(agp_bridge->scratch_page, page_map->remapped+i); readl(page_map->remapped+i); /* PCI Posting. */ } return 0;}
开发者ID:OpenHMR,项目名称:Open-HMR600,代码行数:28,
示例17: unreserve_memoryvoid unreserve_memory(unsigned long base, unsigned long len) { struct page *page, *page_end; page_end = virt_to_page(base + len - 1); for(page = virt_to_page(base); page <= page_end; page++) ClearPageReserved(page);}
开发者ID:a5216652166,项目名称:ss,代码行数:7,
示例18: mmap_closevoid mmap_close(struct vm_area_struct *vma){ struct mmap_info *info = (struct mmap_info *)vma->vm_private_data; struct page *page; int i; printk("[GNoM_km]: Mmap_closed called.../n");#ifdef DO_GNOM_TX for(i=0; i<1024; ++i){ // Unpin all the pages#else for(i=0; i<512; ++i){ // Unpin all the pages#endif page = virt_to_page((size_t)info->data + (i*CPU_PAGE_SIZE)); if(PageReserved(page)){ ClearPageReserved(page); } } info->reference_cnt--;}static int device_mmap(struct file *filp, struct vm_area_struct *vma){ printk("[GNoM_km]: device_mmap called.../n"); vma->vm_ops = &mmap_vm_ops; vma->vm_flags |= VM_RESERVED; vma->vm_private_data = filp->private_data; mmap_open(vma); return 0;}
开发者ID:liucheng98,项目名称:MemcachedGPU,代码行数:30,
示例19: add_one_highpage_initvoid __init add_one_highpage_init(struct page *page, int pfn, int bad_ppro){ if (page_is_ram(pfn) && !(bad_ppro && page_kills_ppro(pfn))) { ClearPageReserved(page); free_new_highpage(page); } else SetPageReserved(page);}
开发者ID:Broadcom,项目名称:stblinux-2.6.18,代码行数:8,
示例20: online_pagevoid online_page(struct page *page){ ClearPageReserved(page); set_page_count(page, 0); free_cold_page(page); totalram_pages++; num_physpages++;}
开发者ID:1x23,项目名称:unifi-gpl,代码行数:8,
示例21: online_page/* * Memory hotplug specific functions */void online_page(struct page *page){ ClearPageReserved(page); init_page_count(page); __free_page(page); totalram_pages++; num_physpages++;}
开发者ID:PennPanda,项目名称:linux-repo,代码行数:11,
示例22: gnttab_page_freestatic void gnttab_page_free(struct page *page, unsigned int order){ BUG_ON(order); ClearPageForeign(page); gnttab_reset_grant_page(page); ClearPageReserved(page); put_page(page);}
开发者ID:Jinjian0609,项目名称:UVP-Tools,代码行数:8,
示例23: unmark_pagesstatic void unmark_pages(void *res, int order){ struct page *page = virt_to_page(res); struct page *last_page = page + (1 << order); while (page < last_page) ClearPageReserved(page++); snd_allocated_pages -= 1 << order;}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:8,
示例24: dev_exitstatic void __exit dev_exit(void){ //注销设备 misc_deregister(&misc); //清除保留 ClearPageReserved(virt_to_page(buffer)); //释放内存 kfree(buffer);}
开发者ID:wangxinghu,项目名称:script,代码行数:9,
示例25: demo_exitstatic void __init demo_exit(void){ struct page *page; misc_deregister(&misc); for(page=virt_to_page(buffer);page<virt_to_page(buffer+BUFFER_SIZE);page++) ClearPageReserved(page); kfree(buffer); printk(DEVICE_NAME"/texit./n");}
开发者ID:bysun2013,项目名称:Android-Driver,代码行数:10,
示例26: amd_free_page_mapstatic void amd_free_page_map(struct amd_page_map *page_map){#ifndef CONFIG_X86 iounmap(page_map->remapped); ClearPageReserved(virt_to_page(page_map->real));#else set_memory_wb((unsigned long)page_map->real, 1);#endif free_page((unsigned long) page_map->real);}
开发者ID:maraz,项目名称:linux-2.6,代码行数:10,
示例27: kimage_free_pagesstatic void kimage_free_pages(struct page *page){ unsigned int order, count, i; order = page_private(page); count = 1 << order; for (i = 0; i < count; i++) ClearPageReserved(page + i); __free_pages(page, order);}
开发者ID:mdamt,项目名称:linux,代码行数:10,
注:本文中的ClearPageReserved函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ClearPageSwapCache函数代码示例 C++ ClearNameValueList函数代码示例 |