Print this page
first pass


  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  */
  26 
  27 #include <sys/types.h>
  28 
  29 #pragma ident   "%Z%%M% %I%     %E% SMI"
  30 
  31 /* EXPORT DELETE START */
  32 
  33 static uint64_t pc1_table[2][128]=
  34 {
  35 /* BEGIN CSTYLED */
  36 {
  37 0x0000000000000000ULL, 0x0000000000100000ULL, 0x0000000000001000ULL, 0x0000000000101000ULL,
  38 0x0000000000000010ULL, 0x0000000000100010ULL, 0x0000000000001010ULL, 0x0000000000101010ULL,
  39 0x0000000000000001ULL, 0x0000000000100001ULL, 0x0000000000001001ULL, 0x0000000000101001ULL,
  40 0x0000000000000011ULL, 0x0000000000100011ULL, 0x0000000000001011ULL, 0x0000000000101011ULL,
  41 0x0000000100000000ULL, 0x0000000100100000ULL, 0x0000000100001000ULL, 0x0000000100101000ULL,
  42 0x0000000100000010ULL, 0x0000000100100010ULL, 0x0000000100001010ULL, 0x0000000100101010ULL,
  43 0x0000000100000001ULL, 0x0000000100100001ULL, 0x0000000100001001ULL, 0x0000000100101001ULL,
  44 0x0000000100000011ULL, 0x0000000100100011ULL, 0x0000000100001011ULL, 0x0000000100101011ULL,
  45 0x0000010000000000ULL, 0x0000010000100000ULL, 0x0000010000001000ULL, 0x0000010000101000ULL,
  46 0x0000010000000010ULL, 0x0000010000100010ULL, 0x0000010000001010ULL, 0x0000010000101010ULL,
  47 0x0000010000000001ULL, 0x0000010000100001ULL, 0x0000010000001001ULL, 0x0000010000101001ULL,
  48 0x0000010000000011ULL, 0x0000010000100011ULL, 0x0000010000001011ULL, 0x0000010000101011ULL,
  49 0x0000010100000000ULL, 0x0000010100100000ULL, 0x0000010100001000ULL, 0x0000010100101000ULL,
  50 0x0000010100000010ULL, 0x0000010100100010ULL, 0x0000010100001010ULL, 0x0000010100101010ULL,
  51 0x0000010100000001ULL, 0x0000010100100001ULL, 0x0000010100001001ULL, 0x0000010100101001ULL,
  52 0x0000010100000011ULL, 0x0000010100100011ULL, 0x0000010100001011ULL, 0x0000010100101011ULL,


 273 
 274         for (i = 0; i < 16; i++) {
 275                 c = c << ss[i];
 276                 d = d << ss[i];
 277 
 278                 upper = pc2_1_table[0][(c >> 50) & 63] |
 279                         pc2_1_table[1][(c >> 44) & 63] |
 280                         pc2_1_table[2][(c >> 38) & 63] |
 281                         pc2_1_table[3][(c >> 32) & 63] |
 282                         pc2_1_tail_table[(c >> 28) & 7];
 283 
 284                 lower = pc2_2_table[0][(d >> 51) & 31] |
 285                         pc2_2_table[1][(d >> 46) & 31] |
 286                         pc2_2_table[2][(d >> 41) & 31] |
 287                         pc2_2_table[3][(d >> 36) & 31] |
 288                         pc2_2_table[4][(d >> 31) & 31] |
 289                         pc2_2_tail_table[(d >> 28) & 3];
 290                 ks[i] = ((uint64_t)upper)<<32 | ((uint64_t)lower);
 291         }
 292 }
 293 
 294 /* EXPORT DELETE END */


  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  */
  26 
  27 #include <sys/types.h>
  28 
  29 #pragma ident   "%Z%%M% %I%     %E% SMI"
  30 


  31 static uint64_t pc1_table[2][128]=
  32 {
  33 /* BEGIN CSTYLED */
  34 {
  35 0x0000000000000000ULL, 0x0000000000100000ULL, 0x0000000000001000ULL, 0x0000000000101000ULL,
  36 0x0000000000000010ULL, 0x0000000000100010ULL, 0x0000000000001010ULL, 0x0000000000101010ULL,
  37 0x0000000000000001ULL, 0x0000000000100001ULL, 0x0000000000001001ULL, 0x0000000000101001ULL,
  38 0x0000000000000011ULL, 0x0000000000100011ULL, 0x0000000000001011ULL, 0x0000000000101011ULL,
  39 0x0000000100000000ULL, 0x0000000100100000ULL, 0x0000000100001000ULL, 0x0000000100101000ULL,
  40 0x0000000100000010ULL, 0x0000000100100010ULL, 0x0000000100001010ULL, 0x0000000100101010ULL,
  41 0x0000000100000001ULL, 0x0000000100100001ULL, 0x0000000100001001ULL, 0x0000000100101001ULL,
  42 0x0000000100000011ULL, 0x0000000100100011ULL, 0x0000000100001011ULL, 0x0000000100101011ULL,
  43 0x0000010000000000ULL, 0x0000010000100000ULL, 0x0000010000001000ULL, 0x0000010000101000ULL,
  44 0x0000010000000010ULL, 0x0000010000100010ULL, 0x0000010000001010ULL, 0x0000010000101010ULL,
  45 0x0000010000000001ULL, 0x0000010000100001ULL, 0x0000010000001001ULL, 0x0000010000101001ULL,
  46 0x0000010000000011ULL, 0x0000010000100011ULL, 0x0000010000001011ULL, 0x0000010000101011ULL,
  47 0x0000010100000000ULL, 0x0000010100100000ULL, 0x0000010100001000ULL, 0x0000010100101000ULL,
  48 0x0000010100000010ULL, 0x0000010100100010ULL, 0x0000010100001010ULL, 0x0000010100101010ULL,
  49 0x0000010100000001ULL, 0x0000010100100001ULL, 0x0000010100001001ULL, 0x0000010100101001ULL,
  50 0x0000010100000011ULL, 0x0000010100100011ULL, 0x0000010100001011ULL, 0x0000010100101011ULL,


 271 
 272         for (i = 0; i < 16; i++) {
 273                 c = c << ss[i];
 274                 d = d << ss[i];
 275 
 276                 upper = pc2_1_table[0][(c >> 50) & 63] |
 277                         pc2_1_table[1][(c >> 44) & 63] |
 278                         pc2_1_table[2][(c >> 38) & 63] |
 279                         pc2_1_table[3][(c >> 32) & 63] |
 280                         pc2_1_tail_table[(c >> 28) & 7];
 281 
 282                 lower = pc2_2_table[0][(d >> 51) & 31] |
 283                         pc2_2_table[1][(d >> 46) & 31] |
 284                         pc2_2_table[2][(d >> 41) & 31] |
 285                         pc2_2_table[3][(d >> 36) & 31] |
 286                         pc2_2_table[4][(d >> 31) & 31] |
 287                         pc2_2_tail_table[(d >> 28) & 3];
 288                 ks[i] = ((uint64_t)upper)<<32 | ((uint64_t)lower);
 289         }
 290 }