Linux kernel zsmalloc中压缩页面的链接

Linux kernel zsmalloc中压缩页面的链接,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,我试图理解zram和zswap中使用的zsmalloc分配器,但我被困在zsmalloc.c中init_zspage的代码中 link = (struct link_free *)kmap_atomic(page) + off / sizeof(*link); 此处链接未初始化。问题是如果sizeof(*link)未初始化,它的值将是多少。据我所知,sizeof(*link)必须在赋值之前计算。此大小将在编译时计算 struct link_fre

我试图理解zram和zswap中使用的zsmalloc分配器,但我被困在zsmalloc.c中init_zspage的代码中

    link = (struct link_free *)kmap_atomic(page) +
                    off / sizeof(*link);

此处链接未初始化。问题是如果sizeof(*link)未初始化,它的值将是多少。据我所知,sizeof(*link)必须在赋值之前计算。

此大小将在编译时计算

struct link_free *link;

235 struct link_free {
236         /* Handle of next free chunk (encodes <PFN, obj_idx>) */
237         void *next;
238 };
struct-link\u-free*链接;
235无结构链接{
236/*下一个空闲块的句柄(编码)*/
237无效*下一个;
238 };
i、 e.此结构的大小=指针的大小。这就是你要问的问题吗?

调查一下