1 /*------------------------------------------------------------\ 2 | | 3 | Tool : RDS | 4 | | 5 | File : rds210.h | 6 | | 7 | Authors : Jacomme Ludovic | 8 | | 9 | Date : 27.06.95 | 10 | | 11 \------------------------------------------------------------*/ 12 13 # ifndef RDS_210_H 14 # define RDS_210_H 15 16 # include <libgen.h> 17 18 #ifndef __P 19 # if defined(__STDC__) || defined(__GNUC__) 20 # define __P(x) x 21 # else 22 # define __P(x) () 23 # endif 24 #endif 25 26 /*------------------------------------------------------------\ 27 | | 28 | Constants | 29 | | 30 \------------------------------------------------------------*/ 31 /*------------------------------------------------------------\ 32 | | 33 | Alloc | 34 | | 35 \------------------------------------------------------------*/ 36 37 # define RDS_ALLOC_BLOCK 0 38 # define RDS_ALLOC_HEAP 1 39 40 /*------------------------------------------------------------\ 41 | | 42 | Allocation Macros | 43 | | 44 \------------------------------------------------------------*/ 45 46 # define rdsallocblock( SizeOf ) \ 47 \ 48 ( rdsalloc( ( SizeOf ), RDS_ALLOC_BLOCK ) ) 49 50 # define rdsallocheap( SizeOf ) \ 51 \ 52 ( rdsalloc( ( SizeOf ), RDS_ALLOC_HEAP ) ) 53 54 # define rdsfreeblock( Pointer ) \ 55 \ 56 ( rdsfree( (char *)( Pointer ), (unsigned long)0 ) ) 57 58 # define rdsfreeheap( Pointer, SizeOf ) \ 59 \ 60 ( rdsfree( (char *)( Pointer ), (unsigned long)( SizeOf ) ) ) 61 62 /*------------------------------------------------------------\ 63 | | 64 | Instance Symmetry | 65 | | 66 \------------------------------------------------------------*/ 67 68 # define RDS_NOSYM 0 69 # define RDS_ROT_P 1 70 # define RDS_SYMXY 2 71 # define RDS_ROT_M 3 72 # define RDS_SYM_X 4 73 # define RDS_SY_RM 5 74 # define RDS_SYM_Y 6 75 # define RDS_SY_RP 7 76 77 # define RDS_MAX_TRANSF ( RDS_SY_RP + 1 ) 78 79 /*------------------------------------------------------------\ 80 | | 81 | Rds Layers | 82 | | 83 \------------------------------------------------------------*/ 84 85 # define RDS_LAYER_NWELL 0 86 # define RDS_LAYER_PWELL 1 87 # define RDS_LAYER_NIMP 2 88 # define RDS_LAYER_PIMP 3 89 # define RDS_LAYER_ACTIV 4 90 # define RDS_LAYER_NDIF 5 91 # define RDS_LAYER_PDIF 6 92 # define RDS_LAYER_NTIE 7 93 # define RDS_LAYER_PTIE 8 94 # define RDS_LAYER_POLY 9 95 # define RDS_LAYER_GATE 10 96 # define RDS_LAYER_VPOLY 11 97 # define RDS_LAYER_TPOLY 12 98 # define RDS_LAYER_POLY2 13 99 # define RDS_LAYER_CONT 14 100 # define RDS_LAYER_TPOLY2 15 101 # define RDS_LAYER_TCONT 16 102 # define RDS_LAYER_CONT2 17 103 # define RDS_LAYER_ALU1 18 104 # define RDS_LAYER_VALU1 19 105 # define RDS_LAYER_TALU1 20 106 # define RDS_LAYER_VIA1 21 107 # define RDS_LAYER_TVIA1 22 108 # define RDS_LAYER_ALU2 23 109 # define RDS_LAYER_VALU2 24 110 # define RDS_LAYER_TALU2 25 111 # define RDS_LAYER_VIA2 26 112 # define RDS_LAYER_TVIA2 27 113 # define RDS_LAYER_ALU3 28 114 # define RDS_LAYER_VALU3 29 115 # define RDS_LAYER_TALU3 30 116 # define RDS_LAYER_VIA3 31 117 # define RDS_LAYER_TVIA3 32 118 # define RDS_LAYER_ALU4 33 119 # define RDS_LAYER_VALU4 34 120 # define RDS_LAYER_TALU4 35 121 # define RDS_LAYER_VIA4 36 122 # define RDS_LAYER_TVIA4 37 123 # define RDS_LAYER_ALU5 38 124 # define RDS_LAYER_VALU5 39 125 # define RDS_LAYER_TALU5 40 126 # define RDS_LAYER_VIA5 41 127 # define RDS_LAYER_TVIA5 42 128 # define RDS_LAYER_ALU6 43 129 # define RDS_LAYER_VALU6 44 130 # define RDS_LAYER_TALU6 45 131 # define RDS_LAYER_VIA6 46 132 # define RDS_LAYER_TVIA6 47 133 # define RDS_LAYER_ALU7 48 134 # define RDS_LAYER_VALU7 49 135 # define RDS_LAYER_TALU7 50 136 # define RDS_LAYER_VIA7 51 137 # define RDS_LAYER_TVIA7 52 138 # define RDS_LAYER_ALU8 53 139 # define RDS_LAYER_VALU8 54 140 # define RDS_LAYER_TALU8 55 141 # define RDS_LAYER_VIA8 56 142 # define RDS_LAYER_TVIA8 57 143 # define RDS_LAYER_ALU9 58 144 # define RDS_LAYER_CPAS 59 145 # define RDS_LAYER_REF 60 146 # define RDS_LAYER_USER0 61 147 # define RDS_LAYER_USER1 62 148 # define RDS_LAYER_USER2 63 149 # define RDS_LAYER_USER3 64 150 # define RDS_LAYER_USER4 65 151 # define RDS_LAYER_USER5 66 152 # define RDS_LAYER_USER6 67 153 # define RDS_LAYER_USER7 68 154 # define RDS_LAYER_USER8 69 155 # define RDS_LAYER_USER9 70 156 # define RDS_LAYER_ABOX 71 157 158 # define RDS_ALL_LAYER ( RDS_LAYER_ABOX + 1 ) 159 160 # define RDS_LAYER_UNUSED (unsigned char)255 161 162 /*------------------------------------------------------------\ 163 | | 164 | Dynamic Layers | 165 | | 166 \------------------------------------------------------------*/ 167 168 # define RDS_NWELL RDS_DYNAMIC_LAYER[ RDS_LAYER_NWELL ] 169 # define RDS_PWELL RDS_DYNAMIC_LAYER[ RDS_LAYER_PWELL ] 170 # define RDS_NIMP RDS_DYNAMIC_LAYER[ RDS_LAYER_NIMP ] 171 # define RDS_PIMP RDS_DYNAMIC_LAYER[ RDS_LAYER_PIMP ] 172 # define RDS_ACTIV RDS_DYNAMIC_LAYER[ RDS_LAYER_ACTIV ] 173 # define RDS_NDIF RDS_DYNAMIC_LAYER[ RDS_LAYER_NDIF ] 174 # define RDS_PDIF RDS_DYNAMIC_LAYER[ RDS_LAYER_PDIF ] 175 # define RDS_NTIE RDS_DYNAMIC_LAYER[ RDS_LAYER_NTIE ] 176 # define RDS_PTIE RDS_DYNAMIC_LAYER[ RDS_LAYER_PTIE ] 177 # define RDS_POLY RDS_DYNAMIC_LAYER[ RDS_LAYER_POLY ] 178 # define RDS_GATE RDS_DYNAMIC_LAYER[ RDS_LAYER_GATE ] 179 # define RDS_VPOLY RDS_DYNAMIC_LAYER[ RDS_LAYER_VPOLY ] 180 # define RDS_TPOLY RDS_DYNAMIC_LAYER[ RDS_LAYER_TPOLY ] 181 # define RDS_POLY2 RDS_DYNAMIC_LAYER[ RDS_LAYER_POLY2 ] 182 # define RDS_TPOLY2 RDS_DYNAMIC_LAYER[ RDS_LAYER_TPOLY2 ] 183 # define RDS_CONT RDS_DYNAMIC_LAYER[ RDS_LAYER_CONT ] 184 # define RDS_TCONT RDS_DYNAMIC_LAYER[ RDS_LAYER_TCONT ] 185 # define RDS_CONT2 RDS_DYNAMIC_LAYER[ RDS_LAYER_CONT2 ] 186 187 # define RDS_ALU1 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU1 ] 188 # define RDS_VALU1 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU1 ] 189 # define RDS_TALU1 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU1 ] 190 # define RDS_VIA1 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA1 ] 191 # define RDS_TVIA1 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA1 ] 192 193 # define RDS_ALU2 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU2 ] 194 # define RDS_VALU2 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU2 ] 195 # define RDS_TALU2 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU2 ] 196 # define RDS_VIA2 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA2 ] 197 # define RDS_TVIA2 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA2 ] 198 199 # define RDS_ALU3 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU3 ] 200 # define RDS_VALU3 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU3 ] 201 # define RDS_TALU3 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU3 ] 202 # define RDS_VIA3 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA3 ] 203 # define RDS_TVIA3 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA3 ] 204 205 # define RDS_ALU4 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU4 ] 206 # define RDS_VALU4 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU4 ] 207 # define RDS_TALU4 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU4 ] 208 # define RDS_VIA4 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA4 ] 209 # define RDS_TVIA4 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA4 ] 210 211 # define RDS_ALU5 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU5 ] 212 # define RDS_VALU5 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU5 ] 213 # define RDS_TALU5 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU5 ] 214 # define RDS_VIA5 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA5 ] 215 # define RDS_TVIA5 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA5 ] 216 217 # define RDS_ALU6 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU6 ] 218 # define RDS_VALU6 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU6 ] 219 # define RDS_TALU6 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU6 ] 220 # define RDS_VIA6 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA6 ] 221 # define RDS_TVIA6 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA6 ] 222 223 # define RDS_ALU7 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU7 ] 224 # define RDS_VALU7 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU7 ] 225 # define RDS_TALU7 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU7 ] 226 # define RDS_VIA7 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA7 ] 227 # define RDS_TVIA7 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA7 ] 228 229 # define RDS_ALU8 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU8 ] 230 # define RDS_VALU8 RDS_DYNAMIC_LAYER[ RDS_LAYER_VALU8 ] 231 # define RDS_TALU8 RDS_DYNAMIC_LAYER[ RDS_LAYER_TALU8 ] 232 # define RDS_VIA8 RDS_DYNAMIC_LAYER[ RDS_LAYER_VIA8 ] 233 # define RDS_TVIA8 RDS_DYNAMIC_LAYER[ RDS_LAYER_TVIA8 ] 234 235 # define RDS_ALU9 RDS_DYNAMIC_LAYER[ RDS_LAYER_ALU9 ] 236 # define RDS_CPAS RDS_DYNAMIC_LAYER[ RDS_LAYER_CPAS ] 237 # define RDS_REF RDS_DYNAMIC_LAYER[ RDS_LAYER_REF ] 238 # define RDS_USER0 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER0 ] 239 # define RDS_USER1 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER1 ] 240 # define RDS_USER2 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER2 ] 241 # define RDS_USER3 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER3 ] 242 # define RDS_USER4 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER4 ] 243 # define RDS_USER5 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER5 ] 244 # define RDS_USER6 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER6 ] 245 # define RDS_USER7 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER7 ] 246 # define RDS_USER8 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER8 ] 247 # define RDS_USER9 RDS_DYNAMIC_LAYER[ RDS_LAYER_USER9 ] 248 # define RDS_ABOX RDS_DYNAMIC_LAYER[ RDS_LAYER_ABOX ] 249 250 /*------------------------------------------------------------\ 251 | | 252 | Layer | 253 | | 254 \------------------------------------------------------------*/ 255 256 # define RDS_LAYER_MASK (long)(0x000000FF) 257 258 /*------------------------------------------------------------\ 259 | | 260 | Layer Macros | 261 | | 262 \------------------------------------------------------------*/ 263 264 # define GetRdsLayer( R ) \ 265 \ 266 ((unsigned int)( ((R)->FLAGS) & RDS_LAYER_MASK ) ) 267 268 # define SetRdsLayer( R, L ) \ 269 \ 270 ((R)->FLAGS = ((R)->FLAGS & ~RDS_LAYER_MASK) | (L) ) 271 272 /*------------------------------------------------------------\ 273 | | 274 | Mbk Type | 275 | | 276 \------------------------------------------------------------*/ 277 278 # define MBK_CONNECTOR_MASK (long)(0x00000100) 279 # define MBK_SEGMENT_MASK (long)(0x00000200) 280 # define MBK_REFERENCE_MASK (long)(0x00000300) 281 # define MBK_VIA_MASK (long)(0x00000400) 282 # define MBK_INSTANCE_MASK (long)(0x00000500) 283 # define MBK_FIGURE_MASK (long)(0x00000600) 284 285 # define RDS_MBK_TYPE_MASK (long)(0x00000F00) 286 287 /*------------------------------------------------------------\ 288 | | 289 | Mbk Type Macro | 290 | | 291 \------------------------------------------------------------*/ 292 293 # define GetRdsMbkType( R ) \ 294 \ 295 ((R)->FLAGS & RDS_MBK_TYPE_MASK ) 296 297 # define SetRdsMbkType( R, T ) \ 298 \ 299 ((R)->FLAGS = ( (R)->FLAGS & ~RDS_MBK_TYPE_MASK) | (T) ) 300 301 /*------------------------------------------------------------\ 302 | | 303 | Is Mbk Type | 304 | | 305 \------------------------------------------------------------*/ 306 307 # define IsRdsConnector( R ) \ 308 \ 309 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_CONNECTOR_MASK ) 310 311 # define IsRdsSegment( R ) \ 312 \ 313 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_SEGMENT_MASK ) 314 315 # define IsRdsReference( R ) \ 316 \ 317 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_REFERENCE_MASK ) 318 319 # define IsRdsVia( R ) \ 320 \ 321 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_VIA_MASK ) 322 323 # define IsRdsInstance( R ) \ 324 \ 325 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_INSTANCE_MASK ) 326 327 # define IsRdsFigure( R ) \ 328 \ 329 (((R)->FLAGS & RDS_MBK_TYPE_MASK) == MBK_FIGURE_MASK ) 330 331 /*------------------------------------------------------------\ 332 | | 333 | Set Mbk Type | 334 | | 335 \------------------------------------------------------------*/ 336 337 # define SetRdsConnector( R ) \ 338 \ 339 ( (R)->FLAGS = ((R)->FLAGS \ 340 \ 341 & ~RDS_MBK_TYPE_MASK ) | MBK_CONNECTOR_MASK ) 342 343 # define SetRdsSegment( R ) \ 344 \ 345 ( (R)->FLAGS = ((R)->FLAGS \ 346 \ 347 & ~RDS_MBK_TYPE_MASK ) | MBK_SEGMENT_MASK ) 348 349 # define SetRdsReference( R ) \ 350 \ 351 ( (R)->FLAGS = ((R)->FLAGS \ 352 \ 353 & ~RDS_MBK_TYPE_MASK ) | MBK_REFERENCE_MASK ) 354 355 # define SetRdsVia( R ) \ 356 \ 357 ( (R)->FLAGS = ((R)->FLAGS \ 358 \ 359 & ~RDS_MBK_TYPE_MASK ) | MBK_VIA_MASK ) 360 361 # define SetRdsInstance( R ) \ 362 \ 363 ( (R)->FLAGS = ((R)->FLAGS \ 364 \ 365 & ~RDS_MBK_TYPE_MASK ) | MBK_INSTANCE_MASK ) 366 367 # define SetRdsFigure( R ) \ 368 \ 369 ( (R)->FLAGS = ((R)->FLAGS \ 370 \ 371 & ~RDS_MBK_TYPE_MASK ) | MBK_FIGURE_MASK ) 372 373 /*------------------------------------------------------------\ 374 | | 375 | Extract Type | 376 | | 377 \------------------------------------------------------------*/ 378 379 # define RDS_FIG_REC_MASK (long)(0x00008000) 380 381 # define RDS_CON_EXTER_MASK (long)(0x00001000) 382 # define RDS_CON_INTER_MASK (long)(0x00002000) 383 # define RDS_REF_REF_MASK (long)(0x00003000) 384 # define RDS_REF_CON_MASK (long)(0x00004000) 385 # define RDS_TRANS_GATE_MASK (long)(0x00005000) 386 387 # define RDS_EXTRACT_TYPE_MASK (long)(0x00007000) 388 389 /*------------------------------------------------------------\ 390 | | 391 | Extract Type Macros | 392 | | 393 \------------------------------------------------------------*/ 394 395 # define GetRdsExtractType( R ) \ 396 \ 397 ( (R)->FLAGS & RDS_EXTRACT_TYPE_MASK ) 398 399 # define SetRdsExtractType( R, E ) \ 400 \ 401 ( (R)->FLAGS = ((R)->FLAGS \ 402 \ 403 & ~RDS_EXTRACT_TYPE_MASK ) | (E) ) 404 405 /*------------------------------------------------------------\ 406 | | 407 | Is Extract Type | 408 | | 409 \------------------------------------------------------------*/ 410 411 # define IsRdsTransGate( R ) \ 412 \ 413 (((R)->FLAGS & RDS_EXTRACT_TYPE_MASK) == RDS_TRANS_GATE_MASK) 414 415 # define IsRdsConExter( R ) \ 416 \ 417 (((R)->FLAGS & RDS_EXTRACT_TYPE_MASK) == RDS_CON_EXTER_MASK ) 418 419 # define IsRdsConInter( R ) \ 420 \ 421 (((R)->FLAGS & RDS_EXTRACT_TYPE_MASK) == RDS_CON_INTER_MASK ) 422 423 # define IsRdsRefRef( R ) \ 424 \ 425 (((R)->FLAGS & RDS_EXTRACT_TYPE_MASK) == RDS_REF_REF_MASK ) 426 427 # define IsRdsRefCon( R ) \ 428 \ 429 (((R)->FLAGS & RDS_EXTRACT_TYPE_MASK) == RDS_REF_CON_MASK ) 430 431 # define IsRdsFigRec( R ) \ 432 \ 433 ((R)->FLAGS & RDS_FIG_REC_MASK ) 434 435 /*------------------------------------------------------------\ 436 | | 437 | Set Extract Type | 438 | | 439 \------------------------------------------------------------*/ 440 441 # define SetRdsTransGate( R ) \ 442 \ 443 ( (R)->FLAGS = ((R)->FLAGS \ 444 \ 445 & ~RDS_EXTRACT_TYPE_MASK ) | RDS_TRANS_GATE_MASK ) 446 447 # define SetRdsConExter( R ) \ 448 \ 449 ( (R)->FLAGS = ((R)->FLAGS \ 450 \ 451 & ~RDS_EXTRACT_TYPE_MASK ) | RDS_CON_EXTER_MASK ) 452 453 # define SetRdsConInter( R ) \ 454 \ 455 ( (R)->FLAGS = ((R)->FLAGS \ 456 \ 457 & ~RDS_EXTRACT_TYPE_MASK ) | RDS_CON_INTER_MASK ) 458 459 # define SetRdsRefRef( R ) \ 460 \ 461 ( (R)->FLAGS = ((R)->FLAGS \ 462 \ 463 & ~RDS_EXTRACT_TYPE_MASK ) | RDS_REF_REF_MASK ) 464 465 # define SetRdsRefCon( R ) \ 466 \ 467 ( (R)->FLAGS = ((R)->FLAGS \ 468 \ 469 & ~RDS_EXTRACT_TYPE_MASK ) | RDS_REF_CON_MASK ) 470 471 # define SetRdsFigRec( R ) \ 472 \ 473 ( (R)->FLAGS |= RDS_FIG_REC_MASK ) 474 475 # define ClearRdsFigRec( R ) \ 476 \ 477 ( (R)->FLAGS &= ~RDS_FIG_REC_MASK ) 478 479 /*------------------------------------------------------------\ 480 | | 481 | Debug Macros | 482 | | 483 \------------------------------------------------------------*/ 484 485 # define rdsbegin() \ 486 \ 487 do \ 488 { \ 489 if ( RDS_DEBUG_ON ) addrdsdebug(__LINE__, basename(__FILE__)); \ 490 } \ 491 while ( 0 ) 492 493 # define rdsend() \ 494 \ 495 do \ 496 { \ 497 if ( RDS_DEBUG_ON ) delrdsdebug(); \ 498 } \ 499 while ( 0 ) 500 501 /*------------------------------------------------------------\ 502 | | 503 | Types | 504 | | 505 \------------------------------------------------------------*/ 506 /*------------------------------------------------------------\ 507 | | 508 | Rds Rectangle | 509 | | 510 \------------------------------------------------------------*/ 511 512 typedef struct rdsrec_list 513 514 { 515 struct rdsrec_list *NEXT; 516 long X; 517 long Y; 518 long DX; 519 long DY; 520 long FLAGS; 521 char *NAME; 522 void *USER; 523 524 } rdsrec_list; 525 526 /*------------------------------------------------------------\ 527 | | 528 | Rds Instance | 529 | | 530 \------------------------------------------------------------*/ 531 532 typedef struct rdsins_list 533 534 { 535 struct rdsins_list *NEXT; 536 char *FIGNAME; 537 char *INSNAME; 538 long X; 539 long Y; 540 char TRANSF; 541 unsigned short SIZE; 542 char FLAGS; 543 struct rdsrec_list **LAYERTAB; 544 struct rdsrec_list **COURONNE; 545 void *USER; 546 547 } rdsins_list; 548 549 /*------------------------------------------------------------\ 550 | | 551 | Rds Figure | 552 | | 553 \------------------------------------------------------------*/ 554 555 typedef struct rdsfig_list 556 557 { 558 struct rdsfig_list *NEXT; 559 char *NAME; 560 struct rdsrec_list **LAYERTAB; 561 struct rdsins_list *INSTANCE; 562 char MODE; 563 unsigned short SIZE; 564 char FLAGS; 565 char *FLAGTAB; 566 struct rdsrec_list **BBOXTAB; 567 void *USER; 568 569 } rdsfig_list; 570 571 /*------------------------------------------------------------\ 572 | | 573 | Rds Debug | 574 | | 575 \------------------------------------------------------------*/ 576 577 typedef struct rdsdebug_list 578 { 579 struct rdsdebug_list *NEXT; 580 int LINE; 581 char *NAME; 582 583 } rdsdebug_list; 584 585 /*------------------------------------------------------------\ 586 | | 587 | Global Variables | 588 | | 589 \------------------------------------------------------------*/ 590 /*------------------------------------------------------------\ 591 | | 592 | Head List | 593 | | 594 \------------------------------------------------------------*/ 595 596 extern rdsfig_list *HEAD_RDSFIG; 597 extern rdsdebug_list *HEAD_RDSDEBUG; 598 599 /*------------------------------------------------------------\ 600 | | 601 | Debug Mode | 602 | | 603 \------------------------------------------------------------*/ 604 605 extern char RDS_DEBUG_ON; 606 607 /*------------------------------------------------------------\ 608 | | 609 | Name | 610 | | 611 \------------------------------------------------------------*/ 612 613 extern char **RDS_LAYER_NAME; 614 extern char *RDS_ALL_LAYER_NAME[ RDS_ALL_LAYER ]; 615 extern char *RDS_TRANSF_NAME [ RDS_MAX_TRANSF ]; 616 617 /*------------------------------------------------------------\ 618 | | 619 | Dynamic Layers | 620 | | 621 \------------------------------------------------------------*/ 622 623 extern unsigned char RDS_DYNAMIC_LAYER[ RDS_ALL_LAYER ]; 624 extern unsigned char *RDS_STATIC_LAYER; 625 extern unsigned char RDS_MAX_LAYER; 626 627 /*------------------------------------------------------------\ 628 | | 629 | Functions | 630 | | 631 \------------------------------------------------------------*/ 632 /*------------------------------------------------------------\ 633 | | 634 | Alloc Functions | 635 | | 636 \------------------------------------------------------------*/ 637 638 extern char * rdsalloc __P((unsigned long Size, char Heap)); 639 extern rdsfig_list * allocrdsfig __P(()); 640 extern rdsins_list * allocrdsins __P(()); 641 extern rdsrec_list * allocrdsrec __P((unsigned long Size)); 642 extern rdsdebug_list * allocrdsdebug __P(()); 643 644 /*------------------------------------------------------------\ 645 | | 646 | Free Functions | 647 | | 648 \------------------------------------------------------------*/ 649 650 extern void rdsfree __P((char *Pointer, unsigned int Size)); 651 extern void freerdsfig __P((rdsfig_list *Figure)); 652 extern void freerdsins __P((rdsins_list *Instance)); 653 extern void freerdsrec __P((rdsrec_list *Rectangle, unsigned int Size)); 654 extern void freerdsdebug __P((rdsdebug_list *Debug)); 655 656 /*------------------------------------------------------------\ 657 | | 658 | Add Functions | 659 | | 660 \------------------------------------------------------------*/ 661 662 extern rdsrec_list * addrdsfigrec __P((rdsfig_list *Figure, char *Name, char Layer, long X, long Y, long Dx, long Dy)); 663 extern rdsrec_list * addrdsinsrec __P((rdsins_list *Instance, char *Name, char Layer, long X, long Y, long Dx, long Dy)); 664 extern rdsins_list * addrdsins __P((rdsfig_list *Figure, char *Model, char *Name, char Sym, long X, long Y)); 665 extern rdsfig_list * addrdsfig __P((char *Name, unsigned short Size)); 666 extern void addrdsdebug __P((int Line, char *File)); 667 668 /*------------------------------------------------------------\ 669 | | 670 | Del Functions | 671 | | 672 \------------------------------------------------------------*/ 673 674 extern int delrdsfigrec __P((rdsfig_list *Figure, rdsrec_list *Rectangle)); 675 extern int delrdsinsrec __P((rdsins_list *Instance, rdsrec_list *Rectangle)); 676 extern int delrdsins __P((rdsfig_list *Figure, char *Name)); 677 extern int delrdsfig __P((char *Name)); 678 extern void delrdsdebug __P(()); 679 680 /*------------------------------------------------------------\ 681 | | 682 | View Functions | 683 | | 684 \------------------------------------------------------------*/ 685 686 extern void viewrdsrec __P((rdsrec_list *Rectangle)); 687 extern void viewrdsins __P((rdsins_list *Instance)); 688 extern void viewrdsfig __P((rdsfig_list *Figure)); 689 690 /*------------------------------------------------------------\ 691 | | 692 | Debug Functions | 693 | | 694 \------------------------------------------------------------*/ 695 696 extern void rdsdebug __P(()); 697 698 # endif 699