/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* $Source: src/usr/hwpf/hwp/pstates/pstates/gpstCheckByte.c $ */ /* */ /* IBM CONFIDENTIAL */ /* */ /* COPYRIGHT International Business Machines Corp. 2013 */ /* */ /* p1 */ /* */ /* Object Code Only (OCO) source materials */ /* Licensed Internal Code Source Materials */ /* IBM HostBoot Licensed Internal Code */ /* */ /* The source code for this program is not published or otherwise */ /* divested of its trade secrets, irrespective of what has been */ /* deposited with the U.S. Copyright Office. */ /* */ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ // $Id: gpstCheckByte.c,v 1.1 2012/10/16 16:30:15 jimyac Exp $ /// \file gpamCheckByte.c /// \brief Generate Pstate table check byte - Generated by genGpstCheckByte.tcl #include #define BIT(x, n) (((x) >> (63 - (n))) & 1) uint8_t gpstCheckByte(uint64_t gpstEntry) { int cb[8] = {0, 0, 0, 0, 0, 0, 0, 0}; cb[0] ^= BIT(gpstEntry, 0); cb[0] ^= BIT(gpstEntry, 1); cb[0] ^= BIT(gpstEntry, 2); cb[0] ^= BIT(gpstEntry, 3); cb[0] ^= BIT(gpstEntry, 4); cb[0] ^= BIT(gpstEntry, 5); cb[0] ^= BIT(gpstEntry, 6); cb[0] ^= BIT(gpstEntry, 7); cb[0] ^= BIT(gpstEntry, 24); cb[0] ^= BIT(gpstEntry, 25); cb[0] ^= BIT(gpstEntry, 26); cb[0] ^= BIT(gpstEntry, 28); cb[0] ^= BIT(gpstEntry, 33); cb[0] ^= BIT(gpstEntry, 38); cb[0] ^= BIT(gpstEntry, 42); cb[0] ^= BIT(gpstEntry, 43); cb[0] ^= BIT(gpstEntry, 44); cb[0] ^= BIT(gpstEntry, 45); cb[0] ^= BIT(gpstEntry, 52); cb[0] ^= BIT(gpstEntry, 53); cb[0] ^= BIT(gpstEntry, 54); cb[0] ^= BIT(gpstEntry, 55); cb[1] ^= BIT(gpstEntry, 0); cb[1] ^= BIT(gpstEntry, 3); cb[1] ^= BIT(gpstEntry, 4); cb[1] ^= BIT(gpstEntry, 7); cb[1] ^= BIT(gpstEntry, 8); cb[1] ^= BIT(gpstEntry, 9); cb[1] ^= BIT(gpstEntry, 10); cb[1] ^= BIT(gpstEntry, 11); cb[1] ^= BIT(gpstEntry, 12); cb[1] ^= BIT(gpstEntry, 13); cb[1] ^= BIT(gpstEntry, 14); cb[1] ^= BIT(gpstEntry, 15); cb[1] ^= BIT(gpstEntry, 32); cb[1] ^= BIT(gpstEntry, 33); cb[1] ^= BIT(gpstEntry, 34); cb[1] ^= BIT(gpstEntry, 36); cb[1] ^= BIT(gpstEntry, 41); cb[1] ^= BIT(gpstEntry, 46); cb[1] ^= BIT(gpstEntry, 50); cb[1] ^= BIT(gpstEntry, 51); cb[1] ^= BIT(gpstEntry, 52); cb[1] ^= BIT(gpstEntry, 53); cb[2] ^= BIT(gpstEntry, 4); cb[2] ^= BIT(gpstEntry, 5); cb[2] ^= BIT(gpstEntry, 6); cb[2] ^= BIT(gpstEntry, 7); cb[2] ^= BIT(gpstEntry, 8); cb[2] ^= BIT(gpstEntry, 11); cb[2] ^= BIT(gpstEntry, 12); cb[2] ^= BIT(gpstEntry, 15); cb[2] ^= BIT(gpstEntry, 16); cb[2] ^= BIT(gpstEntry, 17); cb[2] ^= BIT(gpstEntry, 18); cb[2] ^= BIT(gpstEntry, 19); cb[2] ^= BIT(gpstEntry, 20); cb[2] ^= BIT(gpstEntry, 21); cb[2] ^= BIT(gpstEntry, 22); cb[2] ^= BIT(gpstEntry, 23); cb[2] ^= BIT(gpstEntry, 40); cb[2] ^= BIT(gpstEntry, 41); cb[2] ^= BIT(gpstEntry, 42); cb[2] ^= BIT(gpstEntry, 44); cb[2] ^= BIT(gpstEntry, 49); cb[2] ^= BIT(gpstEntry, 54); cb[3] ^= BIT(gpstEntry, 2); cb[3] ^= BIT(gpstEntry, 3); cb[3] ^= BIT(gpstEntry, 4); cb[3] ^= BIT(gpstEntry, 5); cb[3] ^= BIT(gpstEntry, 12); cb[3] ^= BIT(gpstEntry, 13); cb[3] ^= BIT(gpstEntry, 14); cb[3] ^= BIT(gpstEntry, 15); cb[3] ^= BIT(gpstEntry, 16); cb[3] ^= BIT(gpstEntry, 19); cb[3] ^= BIT(gpstEntry, 20); cb[3] ^= BIT(gpstEntry, 23); cb[3] ^= BIT(gpstEntry, 24); cb[3] ^= BIT(gpstEntry, 25); cb[3] ^= BIT(gpstEntry, 26); cb[3] ^= BIT(gpstEntry, 27); cb[3] ^= BIT(gpstEntry, 28); cb[3] ^= BIT(gpstEntry, 29); cb[3] ^= BIT(gpstEntry, 30); cb[3] ^= BIT(gpstEntry, 31); cb[3] ^= BIT(gpstEntry, 48); cb[3] ^= BIT(gpstEntry, 49); cb[3] ^= BIT(gpstEntry, 50); cb[3] ^= BIT(gpstEntry, 52); cb[4] ^= BIT(gpstEntry, 1); cb[4] ^= BIT(gpstEntry, 6); cb[4] ^= BIT(gpstEntry, 10); cb[4] ^= BIT(gpstEntry, 11); cb[4] ^= BIT(gpstEntry, 12); cb[4] ^= BIT(gpstEntry, 13); cb[4] ^= BIT(gpstEntry, 20); cb[4] ^= BIT(gpstEntry, 21); cb[4] ^= BIT(gpstEntry, 22); cb[4] ^= BIT(gpstEntry, 23); cb[4] ^= BIT(gpstEntry, 24); cb[4] ^= BIT(gpstEntry, 27); cb[4] ^= BIT(gpstEntry, 28); cb[4] ^= BIT(gpstEntry, 31); cb[4] ^= BIT(gpstEntry, 32); cb[4] ^= BIT(gpstEntry, 33); cb[4] ^= BIT(gpstEntry, 34); cb[4] ^= BIT(gpstEntry, 35); cb[4] ^= BIT(gpstEntry, 36); cb[4] ^= BIT(gpstEntry, 37); cb[4] ^= BIT(gpstEntry, 38); cb[4] ^= BIT(gpstEntry, 39); cb[5] ^= BIT(gpstEntry, 0); cb[5] ^= BIT(gpstEntry, 1); cb[5] ^= BIT(gpstEntry, 2); cb[5] ^= BIT(gpstEntry, 4); cb[5] ^= BIT(gpstEntry, 9); cb[5] ^= BIT(gpstEntry, 14); cb[5] ^= BIT(gpstEntry, 18); cb[5] ^= BIT(gpstEntry, 19); cb[5] ^= BIT(gpstEntry, 20); cb[5] ^= BIT(gpstEntry, 21); cb[5] ^= BIT(gpstEntry, 28); cb[5] ^= BIT(gpstEntry, 29); cb[5] ^= BIT(gpstEntry, 30); cb[5] ^= BIT(gpstEntry, 31); cb[5] ^= BIT(gpstEntry, 32); cb[5] ^= BIT(gpstEntry, 35); cb[5] ^= BIT(gpstEntry, 36); cb[5] ^= BIT(gpstEntry, 39); cb[5] ^= BIT(gpstEntry, 40); cb[5] ^= BIT(gpstEntry, 41); cb[5] ^= BIT(gpstEntry, 42); cb[5] ^= BIT(gpstEntry, 43); cb[5] ^= BIT(gpstEntry, 44); cb[5] ^= BIT(gpstEntry, 45); cb[5] ^= BIT(gpstEntry, 46); cb[5] ^= BIT(gpstEntry, 47); cb[6] ^= BIT(gpstEntry, 8); cb[6] ^= BIT(gpstEntry, 9); cb[6] ^= BIT(gpstEntry, 10); cb[6] ^= BIT(gpstEntry, 12); cb[6] ^= BIT(gpstEntry, 17); cb[6] ^= BIT(gpstEntry, 22); cb[6] ^= BIT(gpstEntry, 26); cb[6] ^= BIT(gpstEntry, 27); cb[6] ^= BIT(gpstEntry, 28); cb[6] ^= BIT(gpstEntry, 29); cb[6] ^= BIT(gpstEntry, 36); cb[6] ^= BIT(gpstEntry, 37); cb[6] ^= BIT(gpstEntry, 38); cb[6] ^= BIT(gpstEntry, 39); cb[6] ^= BIT(gpstEntry, 40); cb[6] ^= BIT(gpstEntry, 43); cb[6] ^= BIT(gpstEntry, 44); cb[6] ^= BIT(gpstEntry, 47); cb[6] ^= BIT(gpstEntry, 48); cb[6] ^= BIT(gpstEntry, 49); cb[6] ^= BIT(gpstEntry, 50); cb[6] ^= BIT(gpstEntry, 51); cb[6] ^= BIT(gpstEntry, 52); cb[6] ^= BIT(gpstEntry, 53); cb[6] ^= BIT(gpstEntry, 54); cb[6] ^= BIT(gpstEntry, 55); cb[7] ^= BIT(gpstEntry, 16); cb[7] ^= BIT(gpstEntry, 17); cb[7] ^= BIT(gpstEntry, 18); cb[7] ^= BIT(gpstEntry, 20); cb[7] ^= BIT(gpstEntry, 25); cb[7] ^= BIT(gpstEntry, 30); cb[7] ^= BIT(gpstEntry, 34); cb[7] ^= BIT(gpstEntry, 35); cb[7] ^= BIT(gpstEntry, 36); cb[7] ^= BIT(gpstEntry, 37); cb[7] ^= BIT(gpstEntry, 44); cb[7] ^= BIT(gpstEntry, 45); cb[7] ^= BIT(gpstEntry, 46); cb[7] ^= BIT(gpstEntry, 47); cb[7] ^= BIT(gpstEntry, 48); cb[7] ^= BIT(gpstEntry, 51); cb[7] ^= BIT(gpstEntry, 52); cb[7] ^= BIT(gpstEntry, 55); return (cb[0] << 7) | (cb[1] << 6) | (cb[2] << 5) | (cb[3] << 4) | (cb[4] << 3) | (cb[5] << 2) | (cb[6] << 1) | (cb[7] << 0); }