0

我正在研究一个内核模块,我想在其中通过 skb 传输一个结构。我可以通过将 struct 的每个数据元素放入 skb 来做到这一点;但是我的问题是:我可以一次性将完整的结构放入 skb 并将其发送出去吗?

4

1 回答 1

1

您可以简单地获取指向整个结构的指针,然后将内容 memcpy 到您的缓冲区。

/* skb_put returns a pointer to the beginning of the data area in the skb*/
unsigned char *skb_data = skb_put(skb, size_of_data);
unsigned char *your_data = (unsigned char *) your_struct;
memcpy(skb_data, your_data, size_of_data);

当然,确保 skb 有足够的数据空间,你可以使用该skb_tailroom函数来做到这一点。

于 2013-07-10T08:15:52.847 回答