EasyManua.ls Logo

Oracle StorageTek T10000 - Page 264

Oracle StorageTek T10000
310 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Vendor Unique iSCSI CRC32C
264 T10000: Interface Reference Manual August 2016
int align;
int length;
/* calc crc for unaligned memory addresses */
if ((align = ((intptr_t)addr & CRC32C_ALIGN)) > 0) {
align = CRC32C_SIZE - align;
align = (align > len) ? len : align;
crc = calc_crc32c_sw((char *)addr, align, crc);
crc ^= CRC32C_XOR;
addr = &addr[align];
len -= align;
}
/* calc crc for word aligned memory addresses */
if ((length = len / CRC32C_SIZE) > 0) {
uint64_t lcrc = crc;
uint64_t *data = (uint64_t *)addr;
_t4_crc32c(&lcrc, data, length);
crc = (uint32_t)lcrc;
addr = (uint8_t *)&data[length];
len -= length * CRC32C_SIZE;
}
/* calculate crc for remaining data */
if (len > 0) {
crc = calc_crc32c_sw((char *)addr, len, crc);
return (crc);
}
return (crc ^ CRC32C_XOR);
}
#endif

Table of Contents

Other manuals for Oracle StorageTek T10000

Related product manuals