LinuxKPI: implement memset_after()

memset_after() is needed by iwlwifi d3.c.

Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D43644

(cherry picked from commit 2d9d35837d8ea3ee7d7447d63a8755d45ec2fd96)
This commit is contained in:
Bjoern A. Zeeb 2024-01-29 14:19:59 +00:00
parent 55baa8265a
commit 7117d4b22f

View file

@ -265,4 +265,12 @@ memcpy_and_pad(void *dst, size_t dstlen, const void *src, size_t len, int ch)
memset(_ptr + _o, _c, sizeof(*(ptr)) - _o); \
})
#define memset_after(ptr, bytepat, smember) \
({ \
uint8_t *_ptr = (uint8_t *)(ptr); \
int _c = (int)(bytepat); \
size_t _o = offsetofend(typeof(*(ptr)), smember); \
memset(_ptr + _o, _c, sizeof(*(ptr)) - _o); \
})
#endif /* _LINUXKPI_LINUX_STRING_H_ */