1unsigned f(unsigned flags, unsigned capabilities)
2{
3  unsigned gfp_mask;
4  unsigned gfp_notmask = 0;
5  gfp_mask = flags & ((1 << 25) - 1);
6  if (!(capabilities & 0x00000001))
7    gfp_mask |= 0x1000000u;
8  return (gfp_mask & ~gfp_notmask);
9}
10