EasyManua.ls Logo

Oracle StorageTek T10000

Oracle StorageTek T10000
310 pages
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
262 T10000: Interface Reference Manual August 2016
crc = crc32c_table[(crc ^ *blk_adr++) & 0xFF] ^
(crc >> 8);
}
#if defined(__sparc)
crc = (crc & 0xff000000) >> 24 |
(crc & 0xff0000) >> 8 |
(crc & 0xff00) << 8 |
(crc & 0xff) << 24;
#endif
return (crc ^ CRC32C_XOR);
}
Hardware Assist
Intel Nehalem
#if defined(__i386) || defined(__amd64) || defined(__x86_64)
/* Common Solaris and Linux code */
uint32_t
calc_crc32c_intel(char *buf, int len, uint32_t crc)
{
uint8_t *addr = (uint8_t *)buf;
int i;
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;
for (i = 0; i < align; i++) {
__asm__ __volatile__(
/* "crc32 r32, r/m8" */
".byte 0xF2, 0x0F, 0x38, 0xF0, 0xF1"
: "=S"(crc)
: "0"(crc), "c"(*addr));
addr++;
}
len -= align;
}
/* calc crc for word aligned memory addresses */

Table of Contents

Other manuals for Oracle StorageTek T10000

Related product manuals