2012-06-27 11 views

cevap

13

GFP = Ücretsiz Sayfalar Al = __get_free_pages.

Bu bayraklar tahsis ederken ve yapılamaz ne söylüyorum böyle __get_free_pages ve kmalloc olarak bellek ayrılamadı işlevler geçirilen bayraklar vardır. Örneğin, GFP_ATOMIC, GFP_ATOMIC Örneğin, ayırma sırasında bağlam-anahtarının gerçekleşmesi gerekmediği anlamına gelir (başka bir deyişle, sayfalama mümkün değildir).

1

Ayrıntılar için include/linux/gfp.h dosyasına bakın.

100 /* This equals 0, but use constants in case they ever change */ 
101 #define GFP_NOWAIT  (GFP_ATOMIC & ~__GFP_HIGH) 
102 /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ 
103 #define GFP_ATOMIC  (__GFP_HIGH) 
104 #define GFP_NOIO  (__GFP_WAIT) 
105 #define GFP_NOFS  (__GFP_WAIT | __GFP_IO) 
106 #define GFP_KERNEL  (__GFP_WAIT | __GFP_IO | __GFP_FS) 
107 #define GFP_TEMPORARY (__GFP_WAIT | __GFP_IO | __GFP_FS | \ 
108       __GFP_RECLAIMABLE) 
109 #define GFP_USER  (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL) 
110 #define GFP_HIGHUSER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL | \ 
111       __GFP_HIGHMEM) 
112 #define GFP_HIGHUSER_MOVABLE (__GFP_WAIT | __GFP_IO | __GFP_FS | \ 
113         __GFP_HARDWALL | __GFP_HIGHMEM | \ 
114         __GFP_MOVABLE) 
115 #define GFP_IOFS  (__GFP_IO | __GFP_FS) 
116 #define GFP_TRANSHUGE (GFP_HIGHUSER_MOVABLE | __GFP_COMP | \ 
117       __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | \ 
118       __GFP_NO_KSWAPD)