mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
compiler: add a sizeof_field() macro
Determining the size of a field is useful when you don't have a struct variable handy. Open-coding this is ugly. This patch adds the sizeof_field() macro, which is similar to typeof_field(). Existing instances are updated to use the macro. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 20180614164431.29305-1-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
00928a421d
commit
f18793b096
9 changed files with 24 additions and 22 deletions
|
@ -525,8 +525,8 @@ static int xenfb_configure_fb(struct XenFB *xenfb, size_t fb_len_lim,
|
|||
int width, int height, int depth,
|
||||
size_t fb_len, int offset, int row_stride)
|
||||
{
|
||||
size_t mfn_sz = sizeof(*((struct xenfb_page *)0)->pd);
|
||||
size_t pd_len = sizeof(((struct xenfb_page *)0)->pd) / mfn_sz;
|
||||
size_t mfn_sz = sizeof_field(struct xenfb_page, pd[0]);
|
||||
size_t pd_len = sizeof_field(struct xenfb_page, pd) / mfn_sz;
|
||||
size_t fb_pages = pd_len * XC_PAGE_SIZE / mfn_sz;
|
||||
size_t fb_len_max = fb_pages * XC_PAGE_SIZE;
|
||||
int max_width, max_height;
|
||||
|
|
|
@ -104,7 +104,7 @@ typedef struct of_dpa_flow_key {
|
|||
|
||||
/* Width of key which includes field 'f' in u64s, rounded up */
|
||||
#define FLOW_KEY_WIDTH(f) \
|
||||
DIV_ROUND_UP(offsetof(OfDpaFlowKey, f) + sizeof(((OfDpaFlowKey *)0)->f), \
|
||||
DIV_ROUND_UP(offsetof(OfDpaFlowKey, f) + sizeof_field(OfDpaFlowKey, f), \
|
||||
sizeof(uint64_t))
|
||||
|
||||
typedef struct of_dpa_flow_action {
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
* 'container'.
|
||||
*/
|
||||
#define endof(container, field) \
|
||||
(offsetof(container, field) + sizeof(((container *)0)->field))
|
||||
(offsetof(container, field) + sizeof_field(container, field))
|
||||
|
||||
typedef struct VirtIOFeature {
|
||||
uint64_t flags;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue