装叼专用网站,装成牛叉程序猿。坑女神专用。
struct group_info init_groups = { .usage = ATOMIC_INIT(2) };struct group_info *groups_alloc(int gidsetsize){
struct group_info *group_info;
int nblocks;
int i;
nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;
group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER);
if (!group_info)
return NULL;
group_info->ngroups = gidsetsize;
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);
if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks = group_info->small_block;
else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
if (!b)
goto out_undo_partial_alloc;
group_info->blocks = b;
}
}
return group_info;
out_undo_partial_alloc:
while (--i >= 0) {
free_page((unsigned long)group_info->blocks);
}
kfree(group_info);
return NULL;
}
EXPORT_SYMBOL(groups_alloc);
void groups_free(struct group_info *group_info)
{
if (group_info->blocks != group_info->small_block) {
int i;
for (i = 0; i < group_info->nblocks; i++)
free_page((unsigned long)group_info->blocks);
}
kfree(group_info);
}
EXPORT_SYMBOL(groups_free);
/* export the group_info to a user-space array */
static int groups_to_user(gid_t __user *grouplist,
const struct group_info *group_info)
这代码你看得懂吗?
(其实我也看不懂,也许老大看得懂)
这是个奇葩的网站,只要你在键盘上随便敲,就会打出真的C代码。
传送门:http://hackertyper.net/
装程序猿坑妹纸此路不通,鄙人就是最好例子。 沙发我的。 真的好好玩哦~~~ 不懂啊,好想要源码..:lol 不懂啊?对这些一点都不懂 老大 太深奥了 看不懂 拍摄影视剧专用;P 哎呀妈呀 我也成大神了 没意思。。:L 装13专用 嘎嘎 别发了,老早就有人发过了 还真不知道是什么东西 如果我编译一下会怎么样。。。 为什么。。。。。开头就错了 好屌 只能看懂一点
页:
[1]
2