Я хотел бы знать, как этот фрагмент кода выравнивает указатель на 64-битную границу?Я нашел этот код в uboot cpu / mpc85xx / ether_fcc.c.Здесь базовый контроллер Ethernet требует, чтобы указатель буфера был выровнен по 64-битной границе.
uint cbd_bufaddr;
volatile uchar *NetRxPackets[PKTBUFSRX];
cbd_bufaddr = (uint)NetRxPackets[i];
Я считаю, что приведенная ниже проверка обязательна, чтобы гарантировать, что указатель выровнен по 64-битной схеме, но я не вижуэто где-нибудь в коде Uboot.
if (cbd_bufaddr % 8 != 0)
cbd_bufaddr += 8 - cbd_bufaddr % 8;
Я был бы очень признателен, если кто-то может указать, если я упускаю что-то очевидное?