src/dpdk/drivers/common/octeontx2/otx2_mbox.h
static inline volatile void *
otx2_mbox_memcpy(volatile void *d, const volatile void *s, size_t l)
{
	const volatile uint8_t *sb;
	volatile uint8_t *db;
	size_t i;

	if (!d || !s)
		return NULL;
	db = (volatile uint8_t *)d;
	sb = (const volatile uint8_t *)s;
	for (i = 0; i < l; i++)
		db[i] = sb[i];
	return d;
}
/* This is required for copy operations from device memory which do not work on
 * addresses which are unaligned to 16B. This is because of specific
 * optimizations to libc memcpy.
 */
This is required for copy operations from device memory which do not work on
addresses which are unaligned to 16B. This is because of specific
optimizations to libc memcpy.
This is required for copy operations from device memory which do not work on addresses which are unaligned to 16B . This is because of specific optimizations to libc memcpy .
static inline volatile void *
otx2_mbox_memcpy(volatile void *d, const volatile void *s, size_t l)
{
	const volatile uint8_t *sb;
	volatile uint8_t *db;
	size_t i;
	if (!d || !s)
		return NULL;
	db = (volatile uint8_t *)d;
	sb = (const volatile uint8_t *)s;
	for (i = 0; i < l; i++)
		db[i] = sb[i];
	return d;
}
static inline volatile void * otx2_mbox_memcpy ( volatile void * d , const volatile void * s , size_t l ) { const volatile uint8_t * sb ; volatile uint8_t * db ; size_t i ; if ( ! d || ! s ) return NULL ; db = ( volatile uint8_t * ) d ; sb = ( const volatile uint8_t * ) s ; for ( i = 0 ; i < l ; i ++ ) db [ i ] = sb [ i ] ; return d ; }
This is required for copy operations from device memory which do not work on
 addresses which are unaligned to 16B.
This is required for copy operations from device memory which do not work on addresses which are unaligned to 16B .