Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/mty-makai/mty.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 198 by notanpe, Tue Jun 24 04:17:10 2008 UTC revision 199 by notanpe, Thu Jun 26 12:56:55 2008 UTC
# Line 59  Line 59 
59  #define MIN_THREAD  1  #define MIN_THREAD  1
60  #define MAX_THREAD 32  #define MAX_THREAD 32
61  int     nThread = 0;  int     nThread = 0;
62    uint64_t        pmask = 0;
63    
64  #define MIN_UME 3  #define MIN_UME 3
65  #define MAX_UME 6  #define MAX_UME 6
# Line 1360  char   *path; Line 1361  char   *path;
1361      break;      break;
1362     }     }
1363    }    }
1364    printf( "%s [-t num] [\"str\"]\n", myName );    printf( "%s [-t num|-m mask] [\"str\"]\n", myName );
1365    printf( " -t num : 検索スレッド数 ( %d ≦ num ≦ %d )\n",    printf( " -t num : 検索スレッド数 ( %d ≦ num ≦ %d )\n",
1366             MIN_THREAD, MAX_THREAD );             MIN_THREAD, MAX_THREAD );
1367      printf( " -m mask : 実行する CPU を指定するマスク ( 1 ビット ≦ mask のビット数 ≦ %d ビット )\n",
1368              MAX_THREAD );
1369      printf( " 【 -t と -m は排他】\n" );
1370    printf( " str : 先頭に埋め込む文字列 ( %d ≦ str のバイト数 ≦ %d )\n",    printf( " str : 先頭に埋め込む文字列 ( %d ≦ str のバイト数 ≦ %d )\n",
1371             MIN_UME, MAX_UME );             MIN_UME, MAX_UME );
1372  }  }
# Line 1459  main(int argc, char *argv[]) Line 1463  main(int argc, char *argv[])
1463    int   optChar;    int   optChar;
1464    extern char   *optarg;    extern char   *optarg;
1465    extern int    optind;    extern int    optind;
1466      char  *chPtr;
1467    
1468    nThread = 0;    nThread = 0;
1469    while ( (optChar = getopt(argc, argv, "t:h")) != EOF ) {    pmask = 0;
1470      while ( (optChar = getopt(argc, argv, "t:m:h")) != EOF ) {
1471     switch ( optChar ) {     switch ( optChar ) {
1472      case 't':      case 't':
1473         pmask = 0;
1474       nThread = atoi( optarg );       nThread = atoi( optarg );
1475       if ( nThread < MIN_THREAD || nThread > MAX_THREAD ) {       if ( nThread < MIN_THREAD || nThread > MAX_THREAD ) {
1476        usage( argv[0] );        usage( argv[0] );
1477        exit( 1 );        exit( 1 );
1478       }       }
1479       break;       break;
1480        case 'm':
1481         nThread = 0;
1482         if ( strlen( optarg ) > MAX_THREAD ) {
1483          usage( argv[0] );
1484          exit( 1 );
1485         }
1486         for ( chPtr = optarg; *chPtr != '\0'; chPtr++ ) {
1487          pmask <<= 1;
1488          switch ( *chPtr ) {
1489           case '0':
1490            /* なにもしない */
1491            break;
1492           case '1':
1493            pmask |= 1;
1494            break;
1495           default:
1496            usage( argv[0] );
1497            exit( 1 );
1498            break;
1499          }
1500         }
1501         break;
1502      case 'h':      case 'h':
1503       usage( argv[0] );       usage( argv[0] );
1504       exit( 0 );       exit( 0 );
# Line 1516  main(int argc, char *argv[]) Line 1545  main(int argc, char *argv[])
1545    
1546  /* MAKAI start */  /* MAKAI start */
1547    if ( nThread == 0 ) {    if ( nThread == 0 ) {
1548     proc_mask = thread_avail();     if ( pmask == 0 ) {
1549        proc_mask = thread_avail();
1550       } else {
1551        proc_mask = pmask;
1552        printf( "%d 個の検索スレッドを生成\n", popcnt64( proc_mask ) );
1553       }
1554    } else {    } else {
1555     int  i;     int  i;
1556     proc_mask = 0U;     proc_mask = 0U;
1557     for ( i = 0; i < nThread; i++ ) {     for ( i = 0; i < nThread; i++ ) {
     proc_mask |= 1U;  
1558      proc_mask <<= 1;      proc_mask <<= 1;
1559        proc_mask |= 1U;
1560     }     }
1561       printf( "%d 個の検索スレッドを生成\n", nThread );
1562    }    }
1563  /* MAKAI end */  /* MAKAI end */
1564    
# Line 1557  main(int argc, char *argv[]) Line 1592  main(int argc, char *argv[])
1592    code = scoreboard_map(sfp);    code = scoreboard_map(sfp);
1593    
1594    /* キーの初期化 */    /* キーの初期化 */
1595    /* MAKAI start */
1596    srand(time(NULL));    srand(time(NULL));
1597    /* MAKAI end */
1598    key_init(key);    key_init(key);
1599    set_salt(code, crypt64_descs[0], key);    set_salt(code, crypt64_descs[0], key);
1600    

Legend:
Removed from v.198  
changed lines
  Added in v.199

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26