1#define PERL_constant_NOTFOUND 1 2#define PERL_constant_NOTDEF 2 3#define PERL_constant_ISIV 3 4#define PERL_constant_ISNO 4 5#define PERL_constant_ISNV 5 6#define PERL_constant_ISPV 6 7#define PERL_constant_ISPVN 7 8#define PERL_constant_ISSV 8 9#define PERL_constant_ISUNDEF 9 10#define PERL_constant_ISUV 10 11#define PERL_constant_ISYES 11 12 13#ifndef NVTYPE 14typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */ 15#endif 16#ifndef aTHX_ 17#define aTHX_ /* 5.6 or later define this for threading support. */ 18#endif 19#ifndef pTHX_ 20#define pTHX_ /* 5.6 or later define this for threading support. */ 21#endif 22 23static int 24constant_9 (pTHX_ const char *name, IV *iv_return) { 25 /* When generated this function returned values for the list of names given 26 here. However, subsequent manual editing may have added or removed some. 27 EVFILT_FS EV_DELETE EV_ENABLE NOTE_EXEC NOTE_EXIT NOTE_FORK NOTE_LINK */ 28 /* Offset 7 gives the best switch position. */ 29 switch (name[7]) { 30 case 'E': 31 if (memEQ(name, "NOTE_EXEC", 9)) { 32 /* ^ */ 33#ifdef NOTE_EXEC 34 *iv_return = NOTE_EXEC; 35 return PERL_constant_ISIV; 36#else 37 return PERL_constant_NOTDEF; 38#endif 39 } 40 break; 41 case 'F': 42 if (memEQ(name, "EVFILT_FS", 9)) { 43 /* ^ */ 44#ifdef EVFILT_FS 45 *iv_return = EVFILT_FS; 46 return PERL_constant_ISIV; 47#else 48 return PERL_constant_NOTDEF; 49#endif 50 } 51 break; 52 case 'I': 53 if (memEQ(name, "NOTE_EXIT", 9)) { 54 /* ^ */ 55#ifdef NOTE_EXIT 56 *iv_return = NOTE_EXIT; 57 return PERL_constant_ISIV; 58#else 59 return PERL_constant_NOTDEF; 60#endif 61 } 62 break; 63 case 'L': 64 if (memEQ(name, "EV_ENABLE", 9)) { 65 /* ^ */ 66#ifdef EV_ENABLE 67 *iv_return = EV_ENABLE; 68 return PERL_constant_ISIV; 69#else 70 return PERL_constant_NOTDEF; 71#endif 72 } 73 break; 74 case 'N': 75 if (memEQ(name, "NOTE_LINK", 9)) { 76 /* ^ */ 77#ifdef NOTE_LINK 78 *iv_return = NOTE_LINK; 79 return PERL_constant_ISIV; 80#else 81 return PERL_constant_NOTDEF; 82#endif 83 } 84 break; 85 case 'R': 86 if (memEQ(name, "NOTE_FORK", 9)) { 87 /* ^ */ 88#ifdef NOTE_FORK 89 *iv_return = NOTE_FORK; 90 return PERL_constant_ISIV; 91#else 92 return PERL_constant_NOTDEF; 93#endif 94 } 95 break; 96 case 'T': 97 if (memEQ(name, "EV_DELETE", 9)) { 98 /* ^ */ 99#ifdef EV_DELETE 100 *iv_return = EV_DELETE; 101 return PERL_constant_ISIV; 102#else 103 return PERL_constant_NOTDEF; 104#endif 105 } 106 break; 107 } 108 return PERL_constant_NOTFOUND; 109} 110 111static int 112constant_10 (pTHX_ const char *name, IV *iv_return) { 113 /* When generated this function returned values for the list of names given 114 here. However, subsequent manual editing may have added or removed some. 115 EV_DISABLE EV_ONESHOT NOTE_CHILD NOTE_LOWAT NOTE_TRACK NOTE_WRITE */ 116 /* Offset 5 gives the best switch position. */ 117 switch (name[5]) { 118 case 'C': 119 if (memEQ(name, "NOTE_CHILD", 10)) { 120 /* ^ */ 121#ifdef NOTE_CHILD 122 *iv_return = NOTE_CHILD; 123 return PERL_constant_ISIV; 124#else 125 return PERL_constant_NOTDEF; 126#endif 127 } 128 break; 129 case 'E': 130 if (memEQ(name, "EV_ONESHOT", 10)) { 131 /* ^ */ 132#ifdef EV_ONESHOT 133 *iv_return = EV_ONESHOT; 134 return PERL_constant_ISIV; 135#else 136 return PERL_constant_NOTDEF; 137#endif 138 } 139 break; 140 case 'L': 141 if (memEQ(name, "NOTE_LOWAT", 10)) { 142 /* ^ */ 143#ifdef NOTE_LOWAT 144 *iv_return = NOTE_LOWAT; 145 return PERL_constant_ISIV; 146#else 147 return PERL_constant_NOTDEF; 148#endif 149 } 150 break; 151 case 'S': 152 if (memEQ(name, "EV_DISABLE", 10)) { 153 /* ^ */ 154#ifdef EV_DISABLE 155 *iv_return = EV_DISABLE; 156 return PERL_constant_ISIV; 157#else 158 return PERL_constant_NOTDEF; 159#endif 160 } 161 break; 162 case 'T': 163 if (memEQ(name, "NOTE_TRACK", 10)) { 164 /* ^ */ 165#ifdef NOTE_TRACK 166 *iv_return = NOTE_TRACK; 167 return PERL_constant_ISIV; 168#else 169 return PERL_constant_NOTDEF; 170#endif 171 } 172 break; 173 case 'W': 174 if (memEQ(name, "NOTE_WRITE", 10)) { 175 /* ^ */ 176#ifdef NOTE_WRITE 177 *iv_return = NOTE_WRITE; 178 return PERL_constant_ISIV; 179#else 180 return PERL_constant_NOTDEF; 181#endif 182 } 183 break; 184 } 185 return PERL_constant_NOTFOUND; 186} 187 188static int 189constant_11 (pTHX_ const char *name, IV *iv_return) { 190 /* When generated this function returned values for the list of names given 191 here. However, subsequent manual editing may have added or removed some. 192 EVFILT_PROC EVFILT_READ NOTE_ATTRIB NOTE_DELETE NOTE_EXTEND NOTE_RENAME 193 NOTE_REVOKE */ 194 /* Offset 9 gives the best switch position. */ 195 switch (name[9]) { 196 case 'A': 197 if (memEQ(name, "EVFILT_READ", 11)) { 198 /* ^ */ 199#ifdef EVFILT_READ 200 *iv_return = EVFILT_READ; 201 return PERL_constant_ISIV; 202#else 203 return PERL_constant_NOTDEF; 204#endif 205 } 206 break; 207 case 'I': 208 if (memEQ(name, "NOTE_ATTRIB", 11)) { 209 /* ^ */ 210#ifdef NOTE_ATTRIB 211 *iv_return = NOTE_ATTRIB; 212 return PERL_constant_ISIV; 213#else 214 return PERL_constant_NOTDEF; 215#endif 216 } 217 break; 218 case 'K': 219 if (memEQ(name, "NOTE_REVOKE", 11)) { 220 /* ^ */ 221#ifdef NOTE_REVOKE 222 *iv_return = NOTE_REVOKE; 223 return PERL_constant_ISIV; 224#else 225 return PERL_constant_NOTDEF; 226#endif 227 } 228 break; 229 case 'M': 230 if (memEQ(name, "NOTE_RENAME", 11)) { 231 /* ^ */ 232#ifdef NOTE_RENAME 233 *iv_return = NOTE_RENAME; 234 return PERL_constant_ISIV; 235#else 236 return PERL_constant_NOTDEF; 237#endif 238 } 239 break; 240 case 'N': 241 if (memEQ(name, "NOTE_EXTEND", 11)) { 242 /* ^ */ 243#ifdef NOTE_EXTEND 244 *iv_return = NOTE_EXTEND; 245 return PERL_constant_ISIV; 246#else 247 return PERL_constant_NOTDEF; 248#endif 249 } 250 break; 251 case 'O': 252 if (memEQ(name, "EVFILT_PROC", 11)) { 253 /* ^ */ 254#ifdef EVFILT_PROC 255 *iv_return = EVFILT_PROC; 256 return PERL_constant_ISIV; 257#else 258 return PERL_constant_NOTDEF; 259#endif 260 } 261 break; 262 case 'T': 263 if (memEQ(name, "NOTE_DELETE", 11)) { 264 /* ^ */ 265#ifdef NOTE_DELETE 266 *iv_return = NOTE_DELETE; 267 return PERL_constant_ISIV; 268#else 269 return PERL_constant_NOTDEF; 270#endif 271 } 272 break; 273 } 274 return PERL_constant_NOTFOUND; 275} 276 277static int 278constant_12 (pTHX_ const char *name, IV *iv_return) { 279 /* When generated this function returned values for the list of names given 280 here. However, subsequent manual editing may have added or removed some. 281 EVFILT_TIMER EVFILT_VNODE EVFILT_WRITE */ 282 /* Offset 7 gives the best switch position. */ 283 switch (name[7]) { 284 case 'T': 285 if (memEQ(name, "EVFILT_TIMER", 12)) { 286 /* ^ */ 287#ifdef EVFILT_TIMER 288 *iv_return = EVFILT_TIMER; 289 return PERL_constant_ISIV; 290#else 291 return PERL_constant_NOTDEF; 292#endif 293 } 294 break; 295 case 'V': 296 if (memEQ(name, "EVFILT_VNODE", 12)) { 297 /* ^ */ 298#ifdef EVFILT_VNODE 299 *iv_return = EVFILT_VNODE; 300 return PERL_constant_ISIV; 301#else 302 return PERL_constant_NOTDEF; 303#endif 304 } 305 break; 306 case 'W': 307 if (memEQ(name, "EVFILT_WRITE", 12)) { 308 /* ^ */ 309#ifdef EVFILT_WRITE 310 *iv_return = EVFILT_WRITE; 311 return PERL_constant_ISIV; 312#else 313 return PERL_constant_NOTDEF; 314#endif 315 } 316 break; 317 } 318 return PERL_constant_NOTFOUND; 319} 320 321static int 322constant (pTHX_ const char *name, STRLEN len, IV *iv_return) { 323 /* Initially switch on the length of the name. */ 324 /* When generated this function returned values for the list of names given 325 in this section of perl code. Rather than manually editing these functions 326 to add or remove constants, which would result in this comment and section 327 of code becoming inaccurate, we recommend that you edit this section of 328 code, and use it to regenerate a new set of constant functions which you 329 then use to replace the originals. 330 331 Regenerate these constant functions by feeding this entire source file to 332 perl -x 333 334#!perl -w 335use ExtUtils::Constant qw (constant_types C_constant XS_constant); 336 337my $types = {map {($_, 1)} qw(IV)}; 338my @names = (qw(EVFILT_FS EVFILT_PROC EVFILT_READ EVFILT_SIGNAL EVFILT_TIMER 339 EVFILT_VNODE EVFILT_WRITE EV_ADD EV_CLEAR EV_DELETE EV_DISABLE 340 EV_ENABLE EV_EOF EV_ERROR EV_ONESHOT NOTE_ATTRIB NOTE_CHILD 341 NOTE_DELETE NOTE_EXEC NOTE_EXIT NOTE_EXTEND NOTE_FORK NOTE_LINK 342 NOTE_LOWAT NOTE_PCTRLMASK NOTE_PDATAMASK NOTE_RENAME NOTE_REVOKE 343 NOTE_TRACK NOTE_TRACKERR NOTE_WRITE)); 344 345print constant_types(), "\n"; # macro defs 346foreach (C_constant ("IO::KQueue", 'constant', 'IV', $types, undef, 3, @names) ) { 347 print $_, "\n"; # C constant subs 348} 349print "\n#### XS Section:\n"; 350print XS_constant ("IO::KQueue", $types); 351__END__ 352 */ 353 354 switch (len) { 355 case 6: 356 /* Names all of length 6. */ 357 /* EV_ADD EV_EOF */ 358 /* Offset 5 gives the best switch position. */ 359 switch (name[5]) { 360 case 'D': 361 if (memEQ(name, "EV_AD", 5)) { 362 /* D */ 363#ifdef EV_ADD 364 *iv_return = EV_ADD; 365 return PERL_constant_ISIV; 366#else 367 return PERL_constant_NOTDEF; 368#endif 369 } 370 break; 371 case 'F': 372 if (memEQ(name, "EV_EO", 5)) { 373 /* F */ 374#ifdef EV_EOF 375 *iv_return = EV_EOF; 376 return PERL_constant_ISIV; 377#else 378 return PERL_constant_NOTDEF; 379#endif 380 } 381 break; 382 } 383 break; 384 case 8: 385 /* Names all of length 8. */ 386 /* EV_CLEAR EV_ERROR */ 387 /* Offset 3 gives the best switch position. */ 388 switch (name[3]) { 389 case 'C': 390 if (memEQ(name, "EV_CLEAR", 8)) { 391 /* ^ */ 392#ifdef EV_CLEAR 393 *iv_return = EV_CLEAR; 394 return PERL_constant_ISIV; 395#else 396 return PERL_constant_NOTDEF; 397#endif 398 } 399 break; 400 case 'E': 401 if (memEQ(name, "EV_ERROR", 8)) { 402 /* ^ */ 403#ifdef EV_ERROR 404 *iv_return = EV_ERROR; 405 return PERL_constant_ISIV; 406#else 407 return PERL_constant_NOTDEF; 408#endif 409 } 410 break; 411 } 412 break; 413 case 9: 414 return constant_9 (aTHX_ name, iv_return); 415 break; 416 case 10: 417 return constant_10 (aTHX_ name, iv_return); 418 break; 419 case 11: 420 return constant_11 (aTHX_ name, iv_return); 421 break; 422 case 12: 423 return constant_12 (aTHX_ name, iv_return); 424 break; 425 case 13: 426 /* Names all of length 13. */ 427 /* EVFILT_SIGNAL NOTE_TRACKERR */ 428 /* Offset 3 gives the best switch position. */ 429 switch (name[3]) { 430 case 'E': 431 if (memEQ(name, "NOTE_TRACKERR", 13)) { 432 /* ^ */ 433#ifdef NOTE_TRACKERR 434 *iv_return = NOTE_TRACKERR; 435 return PERL_constant_ISIV; 436#else 437 return PERL_constant_NOTDEF; 438#endif 439 } 440 break; 441 case 'I': 442 if (memEQ(name, "EVFILT_SIGNAL", 13)) { 443 /* ^ */ 444#ifdef EVFILT_SIGNAL 445 *iv_return = EVFILT_SIGNAL; 446 return PERL_constant_ISIV; 447#else 448 return PERL_constant_NOTDEF; 449#endif 450 } 451 break; 452 } 453 break; 454 case 14: 455 /* Names all of length 14. */ 456 /* NOTE_PCTRLMASK NOTE_PDATAMASK */ 457 /* Offset 6 gives the best switch position. */ 458 switch (name[6]) { 459 case 'C': 460 if (memEQ(name, "NOTE_PCTRLMASK", 14)) { 461 /* ^ */ 462#ifdef NOTE_PCTRLMASK 463 *iv_return = NOTE_PCTRLMASK; 464 return PERL_constant_ISIV; 465#else 466 return PERL_constant_NOTDEF; 467#endif 468 } 469 break; 470 case 'D': 471 if (memEQ(name, "NOTE_PDATAMASK", 14)) { 472 /* ^ */ 473#ifdef NOTE_PDATAMASK 474 *iv_return = NOTE_PDATAMASK; 475 return PERL_constant_ISIV; 476#else 477 return PERL_constant_NOTDEF; 478#endif 479 } 480 break; 481 } 482 break; 483 } 484 return PERL_constant_NOTFOUND; 485} 486 487