1#!/usr/bin/perl 2 3use ExtUtils::Constant qw(WriteConstants); 4 5use constant DEFINE => 'define' ; 6use constant STRING => 'string' ; 7use constant IGNORE => 'ignore' ; 8 9%constants = ( 10 11 12 ######### 13 # 2.0.3 14 ######### 15 16 DBM_INSERT => IGNORE, 17 DBM_REPLACE => IGNORE, 18 DBM_SUFFIX => IGNORE, 19 DB_AFTER => DEFINE, 20 DB_AM_DUP => IGNORE, 21 DB_AM_INMEM => IGNORE, 22 DB_AM_LOCKING => IGNORE, 23 DB_AM_LOGGING => IGNORE, 24 DB_AM_MLOCAL => IGNORE, 25 DB_AM_PGDEF => IGNORE, 26 DB_AM_RDONLY => IGNORE, 27 DB_AM_RECOVER => IGNORE, 28 DB_AM_SWAP => IGNORE, 29 DB_AM_TXN => IGNORE, 30 DB_APP_INIT => DEFINE, 31 DB_BEFORE => DEFINE, 32 DB_BTREEMAGIC => DEFINE, 33 DB_BTREEVERSION => DEFINE, 34 DB_BT_DELIMITER => IGNORE, 35 DB_BT_EOF => IGNORE, 36 DB_BT_FIXEDLEN => IGNORE, 37 DB_BT_PAD => IGNORE, 38 DB_BT_SNAPSHOT => IGNORE, 39 DB_CHECKPOINT => DEFINE, 40 DB_CREATE => DEFINE, 41 DB_CURRENT => DEFINE, 42 DB_DBT_INTERNAL => IGNORE, 43 DB_DBT_MALLOC => IGNORE, 44 DB_DBT_PARTIAL => IGNORE, 45 DB_DBT_USERMEM => IGNORE, 46 DB_DELETED => DEFINE, 47 DB_DELIMITER => DEFINE, 48 DB_DUP => DEFINE, 49 DB_EXCL => DEFINE, 50 DB_FIRST => DEFINE, 51 DB_FIXEDLEN => DEFINE, 52 DB_FLUSH => DEFINE, 53 DB_HASHMAGIC => DEFINE, 54 DB_HASHVERSION => DEFINE, 55 DB_HS_DIRTYMETA => IGNORE, 56 DB_INCOMPLETE => DEFINE, 57 DB_INIT_LOCK => DEFINE, 58 DB_INIT_LOG => DEFINE, 59 DB_INIT_MPOOL => DEFINE, 60 DB_INIT_TXN => DEFINE, 61 DB_KEYEXIST => DEFINE, 62 DB_KEYFIRST => DEFINE, 63 DB_KEYLAST => DEFINE, 64 DB_LAST => DEFINE, 65 DB_LOCKMAGIC => DEFINE, 66 DB_LOCKVERSION => DEFINE, 67 DB_LOCK_DEADLOCK => DEFINE, 68 DB_LOCK_NOTGRANTED => DEFINE, 69 DB_LOCK_NOTHELD => DEFINE, 70 DB_LOCK_NOWAIT => DEFINE, 71 DB_LOCK_RIW_N => DEFINE, 72 DB_LOCK_RW_N => DEFINE, 73 DB_LOGMAGIC => DEFINE, 74 DB_LOGVERSION => DEFINE, 75 DB_MAX_PAGES => DEFINE, 76 DB_MAX_RECORDS => DEFINE, 77 DB_MPOOL_CLEAN => DEFINE, 78 DB_MPOOL_CREATE => DEFINE, 79 DB_MPOOL_DIRTY => DEFINE, 80 DB_MPOOL_DISCARD => DEFINE, 81 DB_MPOOL_LAST => DEFINE, 82 DB_MPOOL_NEW => DEFINE, 83 DB_MPOOL_PRIVATE => DEFINE, 84 DB_MUTEXDEBUG => DEFINE, 85 DB_NEEDSPLIT => DEFINE, 86 DB_NEXT => DEFINE, 87 DB_NOOVERWRITE => DEFINE, 88 DB_NORECURSE => DEFINE, 89 DB_NOSYNC => DEFINE, 90 DB_NOTFOUND => DEFINE, 91 DB_PAD => DEFINE, 92 DB_PREV => DEFINE, 93 DB_RDONLY => DEFINE, 94 DB_REGISTERED => DEFINE, 95 DB_RE_MODIFIED => IGNORE, 96 DB_SEQUENTIAL => DEFINE, 97 DB_SET => DEFINE, 98 DB_SET_RANGE => DEFINE, 99 DB_SNAPSHOT => DEFINE, 100 DB_SWAPBYTES => DEFINE, 101 DB_TEMPORARY => DEFINE, 102 DB_TRUNCATE => DEFINE, 103 DB_TXNMAGIC => DEFINE, 104 DB_TXNVERSION => DEFINE, 105 DB_TXN_BACKWARD_ROLL => DEFINE, 106 DB_TXN_FORWARD_ROLL => DEFINE, 107 DB_TXN_LOCK_2PL => DEFINE, 108 DB_TXN_LOCK_MASK => DEFINE, 109 DB_TXN_LOCK_OPTIMISTIC => DEFINE, 110 DB_TXN_LOG_MASK => DEFINE, 111 DB_TXN_LOG_REDO => DEFINE, 112 DB_TXN_LOG_UNDO => DEFINE, 113 DB_TXN_LOG_UNDOREDO => DEFINE, 114 DB_TXN_OPENFILES => DEFINE, 115 DB_TXN_REDO => DEFINE, 116 DB_TXN_UNDO => DEFINE, 117 DB_USE_ENVIRON => DEFINE, 118 DB_USE_ENVIRON_ROOT => DEFINE, 119 DB_VERSION_MAJOR => DEFINE, 120 DB_VERSION_MINOR => DEFINE, 121 DB_VERSION_PATCH => DEFINE, 122 DB_VERSION_STRING => STRING, 123 _DB_H_ => IGNORE, 124 __BIT_TYPES_DEFINED__ => IGNORE, 125 const => IGNORE, 126 127 # enum DBTYPE 128 DB_BTREE => '2.0.3', 129 DB_HASH => '2.0.3', 130 DB_RECNO => '2.0.3', 131 DB_UNKNOWN => '2.0.3', 132 133 # enum db_lockop_t 134 DB_LOCK_DUMP => '2.0.3', 135 DB_LOCK_GET => '2.0.3', 136 DB_LOCK_PUT => '2.0.3', 137 DB_LOCK_PUT_ALL => '2.0.3', 138 DB_LOCK_PUT_OBJ => '2.0.3', 139 140 # enum db_lockmode_t 141 DB_LOCK_NG => IGNORE, # 2.0.3 142 DB_LOCK_READ => IGNORE, # 2.0.3 143 DB_LOCK_WRITE => IGNORE, # 2.0.3 144 DB_LOCK_IREAD => IGNORE, # 2.0.3 145 DB_LOCK_IWRITE => IGNORE, # 2.0.3 146 DB_LOCK_IWR => IGNORE, # 2.0.3 147 148 # enum ACTION 149 FIND => IGNORE, # 2.0.3 150 ENTER => IGNORE, # 2.0.3 151 152 ######### 153 # 2.1.0 154 ######### 155 156 DB_NOMMAP => DEFINE, 157 158 ######### 159 # 2.2.6 160 ######### 161 162 DB_AM_THREAD => IGNORE, 163 DB_ARCH_ABS => DEFINE, 164 DB_ARCH_DATA => DEFINE, 165 DB_ARCH_LOG => DEFINE, 166 DB_LOCK_CONFLICT => DEFINE, 167 DB_LOCK_DEFAULT => DEFINE, 168 DB_LOCK_NORUN => DEFINE, 169 DB_LOCK_OLDEST => DEFINE, 170 DB_LOCK_RANDOM => DEFINE, 171 DB_LOCK_YOUNGEST => DEFINE, 172 DB_RECOVER => DEFINE, 173 DB_RECOVER_FATAL => DEFINE, 174 DB_THREAD => DEFINE, 175 DB_TXN_NOSYNC => DEFINE, 176 177 ######### 178 # 2.3.0 179 ######### 180 181 DB_BTREEOLDVER => DEFINE, 182 DB_BT_RECNUM => IGNORE, 183 DB_FILE_ID_LEN => DEFINE, 184 DB_GETREC => DEFINE, 185 DB_HASHOLDVER => DEFINE, 186 DB_KEYEMPTY => DEFINE, 187 DB_LOGOLDVER => DEFINE, 188 DB_RECNUM => DEFINE, 189 DB_RECORDCOUNT => DEFINE, 190 DB_RENUMBER => DEFINE, 191 DB_RE_DELIMITER => IGNORE, 192 DB_RE_FIXEDLEN => IGNORE, 193 DB_RE_PAD => IGNORE, 194 DB_RE_RENUMBER => IGNORE, 195 DB_RE_SNAPSHOT => IGNORE, 196 197 ######### 198 # 2.3.10 199 ######### 200 201 DB_APPEND => DEFINE, 202 DB_GET_RECNO => DEFINE, 203 DB_SET_RECNO => DEFINE, 204 DB_TXN_CKP => DEFINE, 205 206 ######### 207 # 2.3.11 208 ######### 209 210 DB_ENV_APPINIT => DEFINE, 211 DB_ENV_STANDALONE => DEFINE, 212 DB_ENV_THREAD => DEFINE, 213 214 ######### 215 # 2.3.12 216 ######### 217 218 DB_FUNC_CALLOC => IGNORE, 219 DB_FUNC_CLOSE => IGNORE, 220 DB_FUNC_DIRFREE => IGNORE, 221 DB_FUNC_DIRLIST => IGNORE, 222 DB_FUNC_EXISTS => IGNORE, 223 DB_FUNC_FREE => IGNORE, 224 DB_FUNC_FSYNC => IGNORE, 225 DB_FUNC_IOINFO => IGNORE, 226 DB_FUNC_MALLOC => IGNORE, 227 DB_FUNC_MAP => IGNORE, 228 DB_FUNC_OPEN => IGNORE, 229 DB_FUNC_READ => IGNORE, 230 DB_FUNC_REALLOC => IGNORE, 231 DB_FUNC_SEEK => IGNORE, 232 DB_FUNC_SLEEP => IGNORE, 233 DB_FUNC_STRDUP => IGNORE, 234 DB_FUNC_UNLINK => IGNORE, 235 DB_FUNC_UNMAP => IGNORE, 236 DB_FUNC_WRITE => IGNORE, 237 DB_FUNC_YIELD => IGNORE, 238 239 ######### 240 # 2.3.14 241 ######### 242 243 DB_TSL_SPINS => IGNORE, 244 245 ######### 246 # 2.3.16 247 ######### 248 249 DB_DBM_HSEARCH => IGNORE, 250 firstkey => IGNORE, 251 hdestroy => IGNORE, 252 253 ######### 254 # 2.4.10 255 ######### 256 257 DB_CURLSN => DEFINE, 258 DB_FUNC_RUNLINK => IGNORE, 259 DB_REGION_ANON => DEFINE, 260 DB_REGION_INIT => DEFINE, 261 DB_REGION_NAME => DEFINE, 262 DB_TXN_LOCK_OPTIMIST => DEFINE, 263 __CURRENTLY_UNUSED => IGNORE, 264 265 # enum db_status_t 266 DB_LSTAT_ABORTED => IGNORE, # 2.4.10 267 DB_LSTAT_ERR => IGNORE, # 2.4.10 268 DB_LSTAT_FREE => IGNORE, # 2.4.10 269 DB_LSTAT_HELD => IGNORE, # 2.4.10 270 DB_LSTAT_NOGRANT => IGNORE, # 2.4.10 271 DB_LSTAT_PENDING => IGNORE, # 2.4.10 272 DB_LSTAT_WAITING => IGNORE, # 2.4.10 273 274 ######### 275 # 2.4.14 276 ######### 277 278 DB_MUTEXLOCKS => DEFINE, 279 DB_PAGEYIELD => DEFINE, 280 __UNUSED_100 => IGNORE, 281 __UNUSED_4000 => IGNORE, 282 283 ######### 284 # 2.5.9 285 ######### 286 287 DBC_CONTINUE => IGNORE, 288 DBC_KEYSET => IGNORE, 289 DBC_RECOVER => IGNORE, 290 DBC_RMW => IGNORE, 291 DB_DBM_ERROR => IGNORE, 292 DB_DUPSORT => DEFINE, 293 DB_GET_BOTH => DEFINE, 294 DB_JOIN_ITEM => DEFINE, 295 DB_NEXT_DUP => DEFINE, 296 DB_OPFLAGS_MASK => DEFINE, 297 DB_RMW => DEFINE, 298 DB_RUNRECOVERY => DEFINE, 299 dbmclose => IGNORE, 300 301 ######### 302 # 2.6.4 303 ######### 304 305 DBC_WRITER => IGNORE, 306 DB_AM_CDB => IGNORE, 307 DB_ENV_CDB => DEFINE, 308 DB_INIT_CDB => DEFINE, 309 DB_LOCK_UPGRADE => DEFINE, 310 DB_WRITELOCK => DEFINE, 311 312 ######### 313 # 2.7.1 314 ######### 315 316 317 # enum db_lockop_t 318 DB_LOCK_INHERIT => '2.7.1', 319 320 ######### 321 # 2.7.7 322 ######### 323 324 DB_FCNTL_LOCKING => DEFINE, 325 326 ######### 327 # 3.0.55 328 ######### 329 330 DBC_WRITECURSOR => IGNORE, 331 DB_AM_DISCARD => IGNORE, 332 DB_AM_SUBDB => IGNORE, 333 DB_BT_REVSPLIT => IGNORE, 334 DB_CONSUME => DEFINE, 335 DB_CXX_NO_EXCEPTIONS => DEFINE, 336 DB_DBT_REALLOC => IGNORE, 337 DB_DUPCURSOR => DEFINE, 338 DB_ENV_CREATE => DEFINE, 339 DB_ENV_DBLOCAL => DEFINE, 340 DB_ENV_LOCKDOWN => DEFINE, 341 DB_ENV_LOCKING => DEFINE, 342 DB_ENV_LOGGING => DEFINE, 343 DB_ENV_NOMMAP => DEFINE, 344 DB_ENV_OPEN_CALLED => DEFINE, 345 DB_ENV_PRIVATE => DEFINE, 346 DB_ENV_SYSTEM_MEM => DEFINE, 347 DB_ENV_TXN => DEFINE, 348 DB_ENV_TXN_NOSYNC => DEFINE, 349 DB_ENV_USER_ALLOC => DEFINE, 350 DB_FORCE => DEFINE, 351 DB_LOCKDOWN => DEFINE, 352 DB_LOCK_RECORD => DEFINE, 353 DB_LOGFILEID_INVALID => DEFINE, 354 DB_MPOOL_NEW_GROUP => DEFINE, 355 DB_NEXT_NODUP => DEFINE, 356 DB_OK_BTREE => DEFINE, 357 DB_OK_HASH => DEFINE, 358 DB_OK_QUEUE => DEFINE, 359 DB_OK_RECNO => DEFINE, 360 DB_OLD_VERSION => DEFINE, 361 DB_OPEN_CALLED => DEFINE, 362 DB_PAGE_LOCK => DEFINE, 363 DB_POSITION => DEFINE, 364 DB_POSITIONI => DEFINE, 365 DB_PRIVATE => DEFINE, 366 DB_QAMMAGIC => DEFINE, 367 DB_QAMOLDVER => DEFINE, 368 DB_QAMVERSION => DEFINE, 369 DB_RECORD_LOCK => DEFINE, 370 DB_REVSPLITOFF => DEFINE, 371 DB_SYSTEM_MEM => DEFINE, 372 DB_TEST_POSTLOG => DEFINE, 373 DB_TEST_POSTLOGMETA => DEFINE, 374 DB_TEST_POSTOPEN => DEFINE, 375 DB_TEST_POSTRENAME => DEFINE, 376 DB_TEST_POSTSYNC => DEFINE, 377 DB_TEST_PREOPEN => DEFINE, 378 DB_TEST_PRERENAME => DEFINE, 379 DB_TXN_NOWAIT => DEFINE, 380 DB_TXN_SYNC => DEFINE, 381 DB_UPGRADE => DEFINE, 382 DB_VERB_CHKPOINT => DEFINE, 383 DB_VERB_DEADLOCK => DEFINE, 384 DB_VERB_RECOVERY => DEFINE, 385 DB_VERB_WAITSFOR => DEFINE, 386 DB_WRITECURSOR => DEFINE, 387 DB_XA_CREATE => DEFINE, 388 389 # enum DBTYPE 390 DB_QUEUE => '3.0.55', 391 392 ######### 393 # 3.1.14 394 ######### 395 396 DBC_ACTIVE => IGNORE, 397 DBC_OPD => IGNORE, 398 DBC_TRANSIENT => IGNORE, 399 DBC_WRITEDUP => IGNORE, 400 DB_AGGRESSIVE => DEFINE, 401 DB_AM_DUPSORT => IGNORE, 402 DB_CACHED_COUNTS => DEFINE, 403 DB_CLIENT => DEFINE, 404 DB_DBT_DUPOK => IGNORE, 405 DB_DBT_ISSET => IGNORE, 406 DB_ENV_RPCCLIENT => DEFINE, 407 DB_GET_BOTHC => DEFINE, 408 DB_JOIN_NOSORT => DEFINE, 409 DB_NODUPDATA => DEFINE, 410 DB_NOORDERCHK => DEFINE, 411 DB_NOSERVER => DEFINE, 412 DB_NOSERVER_HOME => DEFINE, 413 DB_NOSERVER_ID => DEFINE, 414 DB_ODDFILESIZE => DEFINE, 415 DB_ORDERCHKONLY => DEFINE, 416 DB_PREV_NODUP => DEFINE, 417 DB_PR_HEADERS => DEFINE, 418 DB_PR_PAGE => DEFINE, 419 DB_PR_RECOVERYTEST => DEFINE, 420 DB_RDWRMASTER => DEFINE, 421 DB_SALVAGE => DEFINE, 422 DB_VERIFY_BAD => DEFINE, 423 DB_VERIFY_FATAL => DEFINE, 424 DB_VRFY_FLAGMASK => DEFINE, 425 426 # enum db_recops 427 DB_TXN_ABORT => '3.1.14', 428 DB_TXN_BACKWARD_ROLL => '3.1.14', 429 DB_TXN_FORWARD_ROLL => '3.1.14', 430 DB_TXN_OPENFILES => '3.1.14', 431 432 ######### 433 # 3.2.9 434 ######### 435 436 DBC_COMPENSATE => IGNORE, 437 DB_ALREADY_ABORTED => DEFINE, 438 DB_AM_VERIFYING => IGNORE, 439 DB_CDB_ALLDB => DEFINE, 440 DB_CONSUME_WAIT => DEFINE, 441 DB_ENV_CDB_ALLDB => DEFINE, 442 DB_EXTENT => DEFINE, 443 DB_JAVA_CALLBACK => DEFINE, 444 DB_JOINENV => DEFINE, 445 DB_LOCK_SWITCH => DEFINE, 446 DB_MPOOL_EXTENT => DEFINE, 447 DB_REGION_MAGIC => DEFINE, 448 DB_VERIFY => DEFINE, 449 450 # enum db_lockmode_t 451 DB_LOCK_WAIT => IGNORE, # 3.2.9 452 453 ######### 454 # 3.3.11 455 ######### 456 457 DBC_DIRTY_READ => IGNORE, 458 DBC_MULTIPLE => IGNORE, 459 DBC_MULTIPLE_KEY => IGNORE, 460 DB_AM_DIRTY => IGNORE, 461 DB_AM_SECONDARY => IGNORE, 462 DB_COMMIT => DEFINE, 463 DB_DBT_APPMALLOC => IGNORE, 464 DB_DIRTY_READ => DEFINE, 465 DB_DONOTINDEX => DEFINE, 466 DB_ENV_PANIC_OK => DEFINE, 467 DB_ENV_RPCCLIENT_GIVEN => DEFINE, 468 DB_FAST_STAT => DEFINE, 469 DB_LOCK_MAXLOCKS => DEFINE, 470 DB_LOCK_MINLOCKS => DEFINE, 471 DB_LOCK_MINWRITE => DEFINE, 472 DB_MULTIPLE => DEFINE, 473 DB_MULTIPLE_KEY => DEFINE, 474 DB_PAGE_NOTFOUND => DEFINE, 475 DB_RPC_SERVERPROG => DEFINE, 476 DB_RPC_SERVERVERS => DEFINE, 477 DB_SECONDARY_BAD => DEFINE, 478 DB_SURPRISE_KID => DEFINE, 479 DB_TEST_POSTDESTROY => DEFINE, 480 DB_TEST_PREDESTROY => DEFINE, 481 DB_UPDATE_SECONDARY => DEFINE, 482 DB_XIDDATASIZE => DEFINE, 483 484 # enum db_recops 485 DB_TXN_POPENFILES => '3.3.11', 486 487 # enum db_lockop_t 488 DB_LOCK_UPGRADE_WRITE => '3.3.11', 489 490 # enum db_lockmode_t 491 DB_LOCK_DIRTY => IGNORE, # 3.3.11 492 DB_LOCK_WWRITE => IGNORE, # 3.3.11 493 494 ######### 495 # 4.0.14 496 ######### 497 498 DB_APPLY_LOGREG => DEFINE, 499 DB_CL_WRITER => DEFINE, 500 DB_EID_BROADCAST => DEFINE, 501 DB_EID_INVALID => DEFINE, 502 DB_ENV_NOLOCKING => DEFINE, 503 DB_ENV_NOPANIC => DEFINE, 504 DB_ENV_REGION_INIT => DEFINE, 505 DB_ENV_REP_CLIENT => DEFINE, 506 DB_ENV_REP_LOGSONLY => DEFINE, 507 DB_ENV_REP_MASTER => DEFINE, 508 DB_ENV_YIELDCPU => DEFINE, 509 DB_GET_BOTH_RANGE => DEFINE, 510 DB_LOCK_EXPIRE => DEFINE, 511 DB_LOCK_FREE_LOCKER => DEFINE, 512 DB_LOCK_SET_TIMEOUT => DEFINE, 513 DB_LOGC_BUF_SIZE => DEFINE, 514 DB_LOG_DISK => DEFINE, 515 DB_LOG_LOCKED => DEFINE, 516 DB_LOG_SILENT_ERR => DEFINE, 517 DB_NOLOCKING => DEFINE, 518 DB_NOPANIC => DEFINE, 519 DB_PANIC_ENVIRONMENT => DEFINE, 520 DB_REP_CLIENT => DEFINE, 521 DB_REP_DUPMASTER => DEFINE, 522 DB_REP_HOLDELECTION => DEFINE, 523 DB_REP_LOGSONLY => DEFINE, 524 DB_REP_MASTER => DEFINE, 525 DB_REP_NEWMASTER => DEFINE, 526 DB_REP_NEWSITE => DEFINE, 527 DB_REP_OUTDATED => DEFINE, 528 DB_REP_PERMANENT => DEFINE, 529 DB_REP_UNAVAIL => DEFINE, 530 DB_SET_LOCK_TIMEOUT => DEFINE, 531 DB_SET_TXN_NOW => DEFINE, 532 DB_SET_TXN_TIMEOUT => DEFINE, 533 DB_STAT_CLEAR => DEFINE, 534 DB_TIMEOUT => DEFINE, 535 DB_VERB_REPLICATION => DEFINE, 536 DB_YIELDCPU => DEFINE, 537 MP_FLUSH => IGNORE, 538 MP_OPEN_CALLED => IGNORE, 539 MP_READONLY => IGNORE, 540 MP_UPGRADE => IGNORE, 541 MP_UPGRADE_FAIL => IGNORE, 542 TXN_CHILDCOMMIT => IGNORE, 543 TXN_COMPENSATE => IGNORE, 544 TXN_DIRTY_READ => IGNORE, 545 TXN_LOCKTIMEOUT => IGNORE, 546 TXN_MALLOC => IGNORE, 547 TXN_NOSYNC => IGNORE, 548 TXN_NOWAIT => IGNORE, 549 TXN_SYNC => IGNORE, 550 551 # enum db_recops 552 DB_TXN_APPLY => '4.0.14', 553 554 # enum db_lockop_t 555 DB_LOCK_GET_TIMEOUT => '4.0.14', 556 DB_LOCK_PUT_READ => '4.0.14', 557 DB_LOCK_TIMEOUT => '4.0.14', 558 559 # enum db_status_t 560 DB_LSTAT_EXPIRED => IGNORE, # 4.0.14 561 562 ######### 563 # 4.1.24 564 ######### 565 566 DBC_OWN_LID => IGNORE, 567 DB_AM_CHKSUM => IGNORE, 568 DB_AM_CL_WRITER => IGNORE, 569 DB_AM_COMPENSATE => IGNORE, 570 DB_AM_CREATED => IGNORE, 571 DB_AM_CREATED_MSTR => IGNORE, 572 DB_AM_DBM_ERROR => IGNORE, 573 DB_AM_DELIMITER => IGNORE, 574 DB_AM_ENCRYPT => IGNORE, 575 DB_AM_FIXEDLEN => IGNORE, 576 DB_AM_IN_RENAME => IGNORE, 577 DB_AM_OPEN_CALLED => IGNORE, 578 DB_AM_PAD => IGNORE, 579 DB_AM_RECNUM => IGNORE, 580 DB_AM_RENUMBER => IGNORE, 581 DB_AM_REVSPLITOFF => IGNORE, 582 DB_AM_SNAPSHOT => IGNORE, 583 DB_AUTO_COMMIT => DEFINE, 584 DB_CHKSUM_SHA1 => DEFINE, 585 DB_DIRECT => DEFINE, 586 DB_DIRECT_DB => DEFINE, 587 DB_DIRECT_LOG => DEFINE, 588 DB_ENCRYPT => DEFINE, 589 DB_ENCRYPT_AES => DEFINE, 590 DB_ENV_AUTO_COMMIT => DEFINE, 591 DB_ENV_DIRECT_DB => DEFINE, 592 DB_ENV_DIRECT_LOG => DEFINE, 593 DB_ENV_FATAL => DEFINE, 594 DB_ENV_OVERWRITE => DEFINE, 595 DB_ENV_TXN_WRITE_NOSYNC => DEFINE, 596 DB_HANDLE_LOCK => DEFINE, 597 DB_LOCK_NOTEXIST => DEFINE, 598 DB_LOCK_REMOVE => DEFINE, 599 DB_NOCOPY => DEFINE, 600 DB_OVERWRITE => DEFINE, 601 DB_PERMANENT => DEFINE, 602 DB_PRINTABLE => DEFINE, 603 DB_RENAMEMAGIC => DEFINE, 604 DB_TEST_ELECTINIT => DEFINE, 605 DB_TEST_ELECTSEND => DEFINE, 606 DB_TEST_ELECTVOTE1 => DEFINE, 607 DB_TEST_ELECTVOTE2 => DEFINE, 608 DB_TEST_ELECTWAIT1 => DEFINE, 609 DB_TEST_ELECTWAIT2 => DEFINE, 610 DB_TEST_SUBDB_LOCKS => DEFINE, 611 DB_TXN_LOCK => DEFINE, 612 DB_TXN_WRITE_NOSYNC => DEFINE, 613 DB_WRITEOPEN => DEFINE, 614 DB_WRNOSYNC => DEFINE, 615 _DB_EXT_PROT_IN_ => IGNORE, 616 617 # enum db_lockop_t 618 DB_LOCK_TRADE => '4.1.24', 619 620 # enum db_status_t 621 DB_LSTAT_NOTEXIST => IGNORE, # 4.1.24 622 623 # enum DB_CACHE_PRIORITY 624 DB_PRIORITY_VERY_LOW => '4.1.24', 625 DB_PRIORITY_LOW => '4.1.24', 626 DB_PRIORITY_DEFAULT => '4.1.24', 627 DB_PRIORITY_HIGH => '4.1.24', 628 DB_PRIORITY_VERY_HIGH => '4.1.24', 629 630 # enum db_recops 631 #DB_TXN_BACKWARD_ALLOC => '4.1.24', 632 DB_TXN_PRINT => '4.1.24', 633 634 ######### 635 # 4.2.50 636 ######### 637 638 DB_AM_NOT_DURABLE => IGNORE, 639 DB_AM_REPLICATION => IGNORE, 640 DB_ARCH_REMOVE => DEFINE, 641 DB_CHKSUM => DEFINE, 642 DB_ENV_LOG_AUTOREMOVE => DEFINE, 643 DB_ENV_TIME_NOTGRANTED => DEFINE, 644 DB_ENV_TXN_NOT_DURABLE => DEFINE, 645 DB_FILEOPEN => DEFINE, 646 DB_INIT_REP => DEFINE, 647 DB_LOG_AUTOREMOVE => DEFINE, 648 DB_LOG_CHKPNT => DEFINE, 649 DB_LOG_COMMIT => DEFINE, 650 DB_LOG_NOCOPY => DEFINE, 651 DB_LOG_NOT_DURABLE => DEFINE, 652 DB_LOG_PERM => DEFINE, 653 DB_LOG_WRNOSYNC => DEFINE, 654 DB_MPOOL_NOFILE => DEFINE, 655 DB_MPOOL_UNLINK => DEFINE, 656 DB_NO_AUTO_COMMIT => DEFINE, 657 DB_REP_CREATE => DEFINE, 658 DB_REP_HANDLE_DEAD => DEFINE, 659 DB_REP_ISPERM => DEFINE, 660 DB_REP_NOBUFFER => DEFINE, 661 DB_REP_NOTPERM => DEFINE, 662 DB_RPCCLIENT => DEFINE, 663 DB_TIME_NOTGRANTED => DEFINE, 664 DB_TXN_NOT_DURABLE => DEFINE, 665 DB_debug_FLAG => DEFINE, 666 DB_user_BEGIN => DEFINE, 667 MP_FILEID_SET => IGNORE, 668 TXN_RESTORED => IGNORE, 669 670 ######### 671 # 4.3.21 672 ######### 673 674 DBC_DEGREE_2 => IGNORE, 675 DB_AM_INORDER => IGNORE, 676 DB_BUFFER_SMALL => DEFINE, 677 DB_DEGREE_2 => DEFINE, 678 DB_DSYNC_LOG => DEFINE, 679 DB_DURABLE_UNKNOWN => DEFINE, 680 DB_ENV_DSYNC_LOG => DEFINE, 681 DB_ENV_LOG_INMEMORY => DEFINE, 682 DB_INORDER => DEFINE, 683 DB_LOCK_ABORT => DEFINE, 684 DB_LOCK_MAXWRITE => DEFINE, 685 DB_LOG_BUFFER_FULL => DEFINE, 686 DB_LOG_INMEMORY => DEFINE, 687 DB_LOG_RESEND => DEFINE, 688 DB_MPOOL_FREE => DEFINE, 689 DB_REP_EGENCHG => DEFINE, 690 DB_REP_LOGREADY => DEFINE, 691 DB_REP_PAGEDONE => DEFINE, 692 DB_REP_STARTUPDONE => DEFINE, 693 DB_SEQUENCE_VERSION => DEFINE, 694 DB_SEQ_DEC => DEFINE, 695 DB_SEQ_INC => DEFINE, 696 DB_SEQ_RANGE_SET => DEFINE, 697 DB_SEQ_WRAP => DEFINE, 698 DB_STAT_ALL => DEFINE, 699 DB_STAT_LOCK_CONF => DEFINE, 700 DB_STAT_LOCK_LOCKERS => DEFINE, 701 DB_STAT_LOCK_OBJECTS => DEFINE, 702 DB_STAT_LOCK_PARAMS => DEFINE, 703 DB_STAT_MEMP_HASH => DEFINE, 704 DB_STAT_SUBSYSTEM => DEFINE, 705 DB_UNREF => DEFINE, 706 DB_VERSION_MISMATCH => DEFINE, 707 TXN_DEADLOCK => IGNORE, 708 TXN_DEGREE_2 => IGNORE, 709 710 ######### 711 # 4.3.28 712 ######### 713 714 DB_SEQUENCE_OLDVER => DEFINE, 715 716 ######### 717 # 4.4.16 718 ######### 719 720 DBC_READ_COMMITTED => IGNORE, 721 DBC_READ_UNCOMMITTED => IGNORE, 722 DB_AM_READ_UNCOMMITTED => IGNORE, 723 DB_ASSOC_IMMUTABLE_KEY => DEFINE, 724 DB_COMPACT_FLAGS => DEFINE, 725 DB_DSYNC_DB => DEFINE, 726 DB_ENV_DSYNC_DB => DEFINE, 727 DB_FREELIST_ONLY => DEFINE, 728 DB_FREE_SPACE => DEFINE, 729 DB_IMMUTABLE_KEY => DEFINE, 730 DB_MUTEX_ALLOCATED => DEFINE, 731 DB_MUTEX_LOCKED => DEFINE, 732 DB_MUTEX_LOGICAL_LOCK => DEFINE, 733 DB_MUTEX_SELF_BLOCK => DEFINE, 734 DB_MUTEX_THREAD => DEFINE, 735 DB_READ_COMMITTED => DEFINE, 736 DB_READ_UNCOMMITTED => DEFINE, 737 DB_REGISTER => DEFINE, 738 DB_REP_ANYWHERE => DEFINE, 739 DB_REP_BULKOVF => DEFINE, 740 DB_REP_CONF_BULK => DEFINE, 741 DB_REP_CONF_DELAYCLIENT => DEFINE, 742 DB_REP_CONF_NOAUTOINIT => DEFINE, 743 DB_REP_CONF_NOWAIT => DEFINE, 744 DB_REP_IGNORE => DEFINE, 745 DB_REP_JOIN_FAILURE => DEFINE, 746 DB_REP_LOCKOUT => DEFINE, 747 DB_REP_REREQUEST => DEFINE, 748 DB_SEQ_WRAPPED => DEFINE, 749 DB_THREADID_STRLEN => DEFINE, 750 DB_VERB_REGISTER => DEFINE, 751 TXN_READ_COMMITTED => IGNORE, 752 TXN_READ_UNCOMMITTED => IGNORE, 753 TXN_SYNC_FLAGS => IGNORE, 754 TXN_WRITE_NOSYNC => IGNORE, 755 756 # enum db_lockmode_t 757 DB_LOCK_READ_UNCOMMITTED => IGNORE, # 4.4.16 758 759 ######### 760 # 4.5.20 761 ######### 762 763 DBC_DONTLOCK => IGNORE, 764 DB_DBT_USERCOPY => IGNORE, 765 DB_ENV_MULTIVERSION => DEFINE, 766 DB_ENV_TXN_SNAPSHOT => DEFINE, 767 DB_EVENT_NO_SUCH_EVENT => DEFINE, 768 DB_EVENT_PANIC => DEFINE, 769 DB_EVENT_REP_CLIENT => DEFINE, 770 DB_EVENT_REP_MASTER => DEFINE, 771 DB_EVENT_REP_NEWMASTER => DEFINE, 772 DB_EVENT_REP_STARTUPDONE => DEFINE, 773 DB_EVENT_WRITE_FAILED => DEFINE, 774 DB_MPOOL_EDIT => DEFINE, 775 DB_MULTIVERSION => DEFINE, 776 DB_MUTEX_PROCESS_ONLY => DEFINE, 777 DB_REPMGR_ACKS_ALL => DEFINE, 778 DB_REPMGR_ACKS_ALL_PEERS => DEFINE, 779 DB_REPMGR_ACKS_NONE => DEFINE, 780 DB_REPMGR_ACKS_ONE => DEFINE, 781 DB_REPMGR_ACKS_ONE_PEER => DEFINE, 782 DB_REPMGR_ACKS_QUORUM => DEFINE, 783 DB_REPMGR_CONNECTED => DEFINE, 784 DB_REPMGR_DISCONNECTED => DEFINE, 785 DB_REPMGR_PEER => DEFINE, 786 DB_REP_ACK_TIMEOUT => DEFINE, 787 DB_REP_CONNECTION_RETRY => DEFINE, 788 DB_REP_ELECTION => DEFINE, 789 DB_REP_ELECTION_RETRY => DEFINE, 790 DB_REP_ELECTION_TIMEOUT => DEFINE, 791 DB_REP_FULL_ELECTION => DEFINE, 792 DB_STAT_NOERROR => DEFINE, 793 DB_TEST_RECYCLE => DEFINE, 794 DB_TXN_SNAPSHOT => DEFINE, 795 DB_USERCOPY_GETDATA => DEFINE, 796 DB_USERCOPY_SETDATA => DEFINE, 797 MP_MULTIVERSION => IGNORE, 798 TXN_ABORTED => IGNORE, 799 TXN_CDSGROUP => IGNORE, 800 TXN_COMMITTED => IGNORE, 801 TXN_PREPARED => IGNORE, 802 TXN_PRIVATE => IGNORE, 803 TXN_RUNNING => IGNORE, 804 TXN_SNAPSHOT => IGNORE, 805 TXN_XA_ABORTED => IGNORE, 806 TXN_XA_DEADLOCKED => IGNORE, 807 TXN_XA_ENDED => IGNORE, 808 TXN_XA_PREPARED => IGNORE, 809 TXN_XA_STARTED => IGNORE, 810 TXN_XA_SUSPENDED => IGNORE, 811 812 ######### 813 # 4.6.11 814 ######### 815 816 DB_CKP_INTERNAL => DEFINE, 817 DB_DBT_MULTIPLE => IGNORE, 818 DB_ENV_NO_OUTPUT_SET => DEFINE, 819 DB_ENV_RECOVER_FATAL => DEFINE, 820 DB_ENV_REF_COUNTED => DEFINE, 821 DB_ENV_TXN_NOWAIT => DEFINE, 822 DB_EVENT_NOT_HANDLED => DEFINE, 823 DB_EVENT_REP_ELECTED => DEFINE, 824 DB_EVENT_REP_PERM_FAILED => DEFINE, 825 DB_IGNORE_LEASE => DEFINE, 826 DB_PREV_DUP => DEFINE, 827 DB_REPFLAGS_MASK => DEFINE, 828 DB_REP_CHECKPOINT_DELAY => DEFINE, 829 DB_REP_DEFAULT_PRIORITY => DEFINE, 830 DB_REP_FULL_ELECTION_TIMEOUT => DEFINE, 831 DB_REP_LEASE_EXPIRED => DEFINE, 832 DB_REP_LEASE_TIMEOUT => DEFINE, 833 DB_SPARE_FLAG => DEFINE, 834 DB_TXN_WAIT => DEFINE, 835 DB_VERB_FILEOPS => DEFINE, 836 DB_VERB_FILEOPS_ALL => DEFINE, 837 838 # enum DB_CACHE_PRIORITY 839 DB_PRIORITY_UNCHANGED => '4.6.11', 840 841 ######### 842 # 4.7.16 843 ######### 844 845 DBC_DUPLICATE => IGNORE, 846 DB_FOREIGN_ABORT => DEFINE, 847 DB_FOREIGN_CASCADE => DEFINE, 848 DB_FOREIGN_CONFLICT => DEFINE, 849 DB_FOREIGN_NULLIFY => DEFINE, 850 DB_LOG_AUTO_REMOVE => DEFINE, 851 DB_LOG_DIRECT => DEFINE, 852 DB_LOG_DSYNC => DEFINE, 853 DB_LOG_IN_MEMORY => DEFINE, 854 DB_LOG_ZERO => DEFINE, 855 DB_MPOOL_NOLOCK => DEFINE, 856 DB_REPMGR_CONF_2SITE_STRICT => DEFINE, 857 DB_REP_CONF_LEASE => DEFINE, 858 DB_REP_HEARTBEAT_MONITOR => DEFINE, 859 DB_REP_HEARTBEAT_SEND => DEFINE, 860 DB_SA_SKIPFIRSTKEY => DEFINE, 861 DB_STAT_MEMP_NOERROR => DEFINE, 862 DB_ST_DUPOK => DEFINE, 863 DB_ST_DUPSET => DEFINE, 864 DB_ST_DUPSORT => DEFINE, 865 DB_ST_IS_RECNO => DEFINE, 866 DB_ST_OVFL_LEAF => DEFINE, 867 DB_ST_RECNUM => DEFINE, 868 DB_ST_RELEN => DEFINE, 869 DB_ST_TOPLEVEL => DEFINE, 870 DB_VERB_REPMGR_CONNFAIL => DEFINE, 871 DB_VERB_REPMGR_MISC => DEFINE, 872 DB_VERB_REP_ELECT => DEFINE, 873 DB_VERB_REP_LEASE => DEFINE, 874 DB_VERB_REP_MISC => DEFINE, 875 DB_VERB_REP_MSGS => DEFINE, 876 DB_VERB_REP_SYNC => DEFINE, 877 MP_DUMMY => IGNORE, 878 879 880 ) ; 881 882sub enum_Macro 883{ 884 my $str = shift ; 885 my ($major, $minor, $patch) = split /\./, $str ; 886 887 my $macro = 888 "#if (DB_VERSION_MAJOR > $major) || \\\n" . 889 " (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR > $minor) || \\\n" . 890 " (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR == $minor && \\\n" . 891 " DB_VERSION_PATCH >= $patch)\n" ; 892 893 return $macro; 894 895} 896 897sub OutputXS 898{ 899 900 my @names = () ; 901 902 foreach my $key (sort keys %constants) 903 { 904 my $val = $constants{$key} ; 905 next if $val eq IGNORE; 906 907 if ($val eq STRING) 908 { push @names, { name => $key, type => "PV" } } 909 elsif ($val eq DEFINE) 910 { push @names, $key } 911 else 912 { push @names, { name => $key, macro => [enum_Macro($val), "#endif\n"] } } 913 } 914 915 warn "Updating constants.xs & constants.h...\n"; 916 WriteConstants( 917 NAME => BerkeleyDB, 918 NAMES => \@names, 919 C_FILE => 'constants.h', 920 XS_FILE => 'constants.xs', 921 ) ; 922} 923 924sub OutputPM 925{ 926 my $filename = 'BerkeleyDB.pm'; 927 warn "Updating $filename...\n"; 928 open IN, "<$filename" || die "Cannot open $filename: $!\n"; 929 open OUT, ">$filename.tmp" || die "Cannot open $filename.tmp: $!\n"; 930 931 my $START = '@EXPORT = qw(' ; 932 my $START_re = quotemeta $START ; 933 my $END = ');'; 934 my $END_re = quotemeta $END ; 935 936 # skip to the @EXPORT declaration 937 OUTER: while (<IN>) 938 { 939 if ( /^\s*$START_re/ ) 940 { 941 # skip to the end marker. 942 while (<IN>) 943 { last OUTER if /^\s*$END_re/ } 944 } 945 print OUT ; 946 } 947 948 print OUT "$START\n"; 949 foreach my $key (sort keys %constants) 950 { 951 next if $constants{$key} eq IGNORE; 952 print OUT "\t$key\n"; 953 } 954 print OUT "\t$END\n"; 955 956 while (<IN>) 957 { 958 print OUT ; 959 } 960 961 close IN; 962 close OUT; 963 964 rename $filename, "$filename.bak" || die "Cannot rename $filename: $!\n" ; 965 rename "$filename.tmp", $filename || die "Cannot rename $filename.tmp: $!\n" ; 966} 967 968OutputXS() ; 969OutputPM() ; 970