00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef export_IDL_DEF
00036 #define export_IDL_DEF
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042
00043
00044
00045 #ifndef msg_code_IDL_DEF
00046 #define msg_code_IDL_DEF
00047
00048
00049
00050 #define IDL_M_GENERIC -1
00051 #define IDL_M_NAMED_GENERIC -2
00052 #define IDL_M_SYSERR -4
00053 #define IDL_M_BADARRDIM -174
00054
00055 #endif
00056
00057
00058
00059
00060
00061
00062
00063 #ifdef sun
00064 #ifdef sparc
00065 #define SUN_SPARC
00066 #ifdef __sparcv9
00067 #define SUN_64
00068 #endif
00069 #else
00070 #define SUN_INTEL
00071 #ifdef __x86_64
00072 #define SUN_X86_64
00073 #else
00074 #define SUN_X86
00075 #endif
00076 #endif
00077 #endif
00078
00079 #if defined(__alpha) && defined(__osf__)
00080 #define ALPHA_OSF
00081 #endif
00082
00083 #if defined(_WIN32) || defined(MSWIN)
00084 #ifndef MSWIN
00085 #define MSWIN
00086 #endif
00087 #ifdef _WIN64
00088 #define MSWIN_64
00089 #else
00090 #define MSWIN_32
00091 #endif
00092
00093
00094
00095
00096 #ifndef WIN32
00097 #define WIN32
00098 #endif
00099 #endif
00100
00101 #if defined(__linux__) && !defined(linux)
00102 #define linux
00103 #endif
00104
00105 #ifdef linux
00106 #define LINUX_X86
00107 #ifdef __x86_64__
00108 #define LINUX_X86_64
00109 #else
00110 #define LINUX_X86_32
00111 #endif
00112 #endif
00113
00114 #if defined(sgi) && (_MIPS_SZPTR == 64)
00115 #define IRIX_64
00116 #endif
00117
00118 #if defined(_AIX) && defined(__64BIT__)
00119 #define AIX_64
00120 #endif
00121
00122
00123
00124
00125
00126 #if defined(__hpux) && !defined(hpux)
00127 #define hpux
00128 #endif
00129 #if defined(__hp9000s800) && !defined(hp9000s800)
00130 #define hp9000s800
00131 #endif
00132 #if defined(hpux) && defined(__LP64__)
00133 #define HPUX_64
00134 #endif
00135
00136
00137
00138 #ifdef __APPLE__
00139 #ifndef darwin
00140 #define darwin
00141 #endif
00142 #ifdef __ppc__
00143 #define darwin_ppc
00144 #endif
00145 #if defined(__i386__) || defined(__x86_64__)
00146 #ifdef __LP64__
00147 #define darwin_x86_64
00148 #else
00149 #define darwin_i386
00150 #endif
00151 #endif
00152 #endif
00153
00154
00155
00156 #if !defined(unix) && (defined(__unix__) || defined(__unix) || defined(_AIX) || defined(darwin))
00157 #define unix
00158 #endif
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193 #if defined(ALPHA_OSF) || defined(SUN_64) || defined(LINUX_X86_64) || defined(HPUX_64) || defined(IRIX_64) || defined(AIX_64) || defined(darwin_x86_64) || defined(SUN_X86_64)
00194 #define IDL_SIZEOF_C_LONG 8
00195 #else
00196 #define IDL_SIZEOF_C_LONG 4
00197 #endif
00198 #if (IDL_SIZEOF_C_LONG == 8) || defined(MSWIN_64)
00199 #define IDL_SIZEOF_C_PTR 8
00200 #else
00201 #define IDL_SIZEOF_C_PTR 4
00202 #endif
00203
00204
00205
00206
00207
00208
00209
00210
00211 #ifndef config_IDL_DEF
00212 #define config_IDL_DEF
00213
00214 #include <stdarg.h>
00215
00216
00217 #ifndef IDL_DEBUGGING
00218 #define IDL_DEBUGGING 1
00219 #endif
00220
00221
00222
00223 #ifdef FALSE
00224 #undef FALSE
00225 #endif
00226 #define FALSE (0)
00227
00228 #ifdef TRUE
00229 #undef TRUE
00230 #endif
00231 #define TRUE (1)
00232
00233
00234
00235
00236
00237
00238
00239
00240 #define cx_public
00241 #define cx_export
00242
00243
00244
00245
00246
00247
00248 #ifdef MSWIN
00249 #define IDL_STDCALL __stdcall
00250 #define IDL_CDECL __cdecl
00251 #else
00252 #define IDL_STDCALL
00253 #define IDL_CDECL
00254 #endif
00255
00256
00257
00258
00259
00260
00261
00262
00263 #ifdef unix
00264 #define IDL_OS_HAS_TTYS
00265 #endif
00266
00267
00268
00269 #if IDL_DEBUGGING < 2
00270 #define IDL_REGISTER register
00271 #else
00272 #define IDL_REGISTER
00273 #endif
00274
00275
00276
00277 #define IDL_MAX_ARRAY_DIM 8
00278
00279
00280 #define IDL_MAXPARAMS 65535
00281
00282
00283
00284
00285
00286
00287
00288 #if IDL_SIZEOF_C_PTR == 8
00289 #define IDL_TYP_PTRINT IDL_TYP_LONG64
00290 #if IDL_SIZEOF_C_LONG == 8
00291 typedef long IDL_PTRINT;
00292 #elif defined(MSWIN)
00293 typedef __int64 IDL_PTRINT;
00294 #else
00295 #error "IDL_PTRINT not defined --- unexpected value of IDL_SIZEOF_C_LONG"
00296 #endif
00297 #elif IDL_SIZEOF_C_PTR == 4
00298 typedef long IDL_PTRINT;
00299 #define IDL_TYP_PTRINT IDL_TYP_LONG
00300 #else
00301 #error "IDL_PTRINT not defined --- unexpected value of IDL_SIZEOF_C_PTR"
00302 #endif
00303
00304
00305 #define IDL_MAXIDLEN 1000
00306
00307
00308 #ifdef MSWIN
00309 #define IDL_MAXPATH 1024
00310 #else
00311 #define IDL_MAXPATH 1024
00312 #endif
00313
00314
00315
00316 #endif
00317
00318
00319
00320
00321
00322
00323 #ifndef defs_IDL_DEF
00324 #define defs_IDL_DEF
00325
00326
00327 #if !defined(MSWIN) || !defined(PLTYPES)
00328 typedef unsigned char UCHAR;
00329 #endif
00330
00331
00332 typedef enum {
00333 IDL_FALSE = 0,
00334 IDL_TRUE = 1
00335 } IDLBool_t;
00336
00337
00338
00339
00340
00341 typedef short IDL_INT;
00342 typedef unsigned short IDL_UINT;
00343 #if IDL_SIZEOF_C_LONG == 8
00344 typedef int IDL_LONG;
00345 typedef unsigned int IDL_ULONG;
00346 #elif IDL_SIZEOF_C_LONG == 4
00347 typedef long IDL_LONG;
00348 typedef unsigned long IDL_ULONG;
00349 #else
00350 #error "IDL_LONG not defined --- unexpected value of IDL_SIZEOF_C_LONG"
00351 #endif
00352
00353 #ifdef MSWIN
00354 typedef __int64 IDL_LONG64;
00355 typedef unsigned __int64 IDL_ULONG64;
00356 #else
00357 typedef long long IDL_LONG64;
00358 typedef unsigned long long IDL_ULONG64;
00359 #endif
00360
00361
00362 typedef IDL_ULONG IDL_HVID;
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372 #define IDL_TYP_UNDEF 0
00373 #define IDL_TYP_BYTE 1
00374 #define IDL_TYP_INT 2
00375 #define IDL_TYP_LONG 3
00376 #define IDL_TYP_FLOAT 4
00377 #define IDL_TYP_DOUBLE 5
00378 #define IDL_TYP_COMPLEX 6
00379 #define IDL_TYP_STRING 7
00380 #define IDL_TYP_STRUCT 8
00381 #define IDL_TYP_DCOMPLEX 9
00382 #define IDL_TYP_PTR 10
00383 #define IDL_TYP_OBJREF 11
00384 #define IDL_TYP_UINT 12
00385 #define IDL_TYP_ULONG 13
00386 #define IDL_TYP_LONG64 14
00387 #define IDL_TYP_ULONG64 15
00388
00389
00390 #define IDL_MAX_TYPE 15
00391 #define IDL_NUM_TYPES 16
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408 #if IDL_SIZEOF_C_PTR == 8
00409 #define IDL_MEMINT_64
00410 #define IDL_TYP_MEMINT IDL_TYP_LONG64
00411 #define IDL_TYP_UMEMINT IDL_TYP_ULONG64
00412 #define IDL_MEMINT IDL_LONG64
00413 #define IDL_UMEMINT IDL_ULONG64
00414 #elif IDL_SIZEOF_C_PTR == 4
00415 #define IDL_TYP_MEMINT IDL_TYP_LONG
00416 #define IDL_TYP_UMEMINT IDL_TYP_ULONG
00417 #define IDL_MEMINT IDL_LONG
00418 #define IDL_UMEMINT IDL_ULONG
00419 #else
00420 #error "IDL_MEMINT not defined --- unexpected value of IDL_SIZEOF_C_PTR "
00421 #endif
00422
00423 #if defined(sun) || defined(ALPHA_OSF) || defined(sgi) || defined(hpux) || defined(MSWIN) || defined(linux) || defined(_AIX) || defined(darwin)
00424
00425 #define IDL_FILEINT_64
00426 #define IDL_TYP_FILEINT IDL_TYP_LONG64
00427 #define IDL_FILEINT IDL_LONG64
00428 #else
00429 #define IDL_TYP_FILEINT IDL_TYP_LONG
00430 #define IDL_FILEINT IDL_LONG
00431 #endif
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444 #define IDL_TYP_B_SIMPLE 62207
00445 #define IDL_TYP_B_ALL 65535
00446
00447
00448
00449
00450
00451 #define IDL_TYP_MASK(type_code) (1 << type_code)
00452
00453
00454
00455
00456
00457 #define IDL_V_CONST 1
00458
00459
00460
00461
00462
00463
00464
00465
00466 #define IDL_V_TEMP 2
00467
00468
00469
00470 #define IDL_V_ARR 4
00471
00472
00473
00474
00475 #define IDL_V_FILE 8
00476
00477
00478 #define IDL_V_DYNAMIC 16
00479
00480
00481
00482
00483 #define IDL_V_STRUCT 32
00484
00485
00486 #define IDL_V_NULL 64
00487 #define IDL_V_NOT_SCALAR (IDL_V_ARR | IDL_V_FILE | IDL_V_STRUCT)
00488
00489
00490 #define IDL_A_FILE 1
00491 #define IDL_A_NO_GUARD 2
00492 #define IDL_A_FILE_PACKED 4
00493
00494
00495
00496
00497
00498 #define IDL_A_FILE_OFFSET 8
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512 #define IDL_A_SHM 16
00513
00514
00515
00516
00517
00518 typedef struct {
00519 float r,i;
00520 } IDL_COMPLEX;
00521
00522 typedef struct {
00523 double r,i;
00524 } IDL_DCOMPLEX;
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555 typedef int IDL_STRING_SLEN_T;
00556 #define IDL_STRING_MAX_SLEN 2147483647
00557
00558
00559 typedef struct {
00560 IDL_STRING_SLEN_T slen;
00561 short stype;
00562 char *s;
00563 } IDL_STRING;
00564
00565
00566
00567 typedef struct _idl_ident {
00568 struct _idl_ident *hash;
00569 char *name;
00570 int len;
00571
00572 } IDL_IDENT;
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583 typedef void (* IDL_ARRAY_FREE_CB)(UCHAR *data);
00584
00585
00586 typedef IDL_MEMINT IDL_ARRAY_DIM[IDL_MAX_ARRAY_DIM];
00587
00588 typedef struct {
00589
00590
00591
00592 IDL_MEMINT elt_len;
00593 IDL_MEMINT arr_len;
00594 IDL_MEMINT n_elts;
00595 UCHAR *data;
00596 UCHAR n_dim;
00597 UCHAR flags;
00598 short file_unit;
00599 IDL_ARRAY_DIM dim;
00600 IDL_ARRAY_FREE_CB free_cb;
00601 IDL_FILEINT offset;
00602 IDL_MEMINT data_guard;
00603 } IDL_ARRAY;
00604
00605 typedef struct {
00606 IDL_ARRAY *arr;
00607 struct _idl_structure *sdef;
00608 } IDL_SREF;
00609
00610
00611 typedef union {
00612 char sc;
00613
00614
00615
00616 UCHAR c;
00617 IDL_INT i;
00618 IDL_UINT ui;
00619 IDL_LONG l;
00620 IDL_ULONG ul;
00621 IDL_LONG64 l64;
00622 IDL_ULONG64 ul64;
00623 float f;
00624 double d;
00625 IDL_COMPLEX cmp;
00626 IDL_DCOMPLEX dcmp;
00627 IDL_STRING str;
00628 IDL_ARRAY *arr;
00629 IDL_SREF s;
00630 IDL_HVID hvid;
00631
00632
00633 IDL_MEMINT memint;
00634 IDL_FILEINT fileint;
00635 IDL_PTRINT ptrint;
00636 } IDL_ALLTYPES;
00637
00638 typedef struct {
00639 UCHAR type;
00640 UCHAR flags;
00641 UCHAR flags2;
00642 IDL_ALLTYPES value;
00643 } IDL_VARIABLE;
00644 typedef IDL_VARIABLE *IDL_VPTR;
00645
00646
00647 typedef void (* IDL_SYSRTN_PRO)(int argc, IDL_VPTR argv[], char *argk);
00648 typedef IDL_VPTR (* IDL_SYSRTN_FUN)(int argc, IDL_VPTR argv[], char *argk);
00649
00650
00651
00652
00653
00654
00655
00656 typedef IDL_VARIABLE *(* IDL_SYSRTN_GENERIC)();
00657
00658
00659 #define IDL_FUN_RET IDL_SYSRTN_GENERIC
00660
00661
00662
00663
00664
00665 typedef union {
00666 IDL_SYSRTN_GENERIC generic;
00667
00668
00669
00670
00671 IDL_SYSRTN_PRO pro;
00672 IDL_SYSRTN_FUN fun;
00673 } IDL_SYSRTN_UNION;
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683 typedef void (* IDL_PRO_PTR)();
00684
00685
00686 #define IDL_SYSFUN_DEF_F_OBSOLETE 1
00687 #define IDL_SYSFUN_DEF_F_KEYWORDS 2
00688 #define IDL_SYSFUN_DEF_F_METHOD 32
00689 #define IDL_SYSFUN_DEF_F_NOPROFILE 512
00690
00691
00692
00693
00694
00695 typedef struct {
00696 IDL_SYSRTN_UNION funct_addr;
00697 char *name;
00698 unsigned short arg_min;
00699 unsigned short arg_max;
00700 int flags;
00701 void *extra;
00702 } IDL_SYSFUN_DEF2;
00703
00704
00705
00706
00707
00708
00709 typedef struct _idl_structure *IDL_StructDefPtr;
00710 typedef struct _idl_tagdef {
00711
00712 IDL_IDENT *id;
00713 IDL_MEMINT offset;
00714 IDL_VARIABLE var;
00715 } IDL_TAGDEF;
00716
00717 typedef struct _idl_structure {
00718 IDL_IDENT *id;
00719
00720 UCHAR flags;
00721 UCHAR contains_string;
00722
00723 int ntags;
00724 IDL_MEMINT length;
00725
00726 IDL_MEMINT data_length;
00727
00728
00729 int rcount;
00730 void *object;
00731 IDL_ARRAY *tag_array_mem;
00732
00733
00734
00735
00736
00737
00738 IDL_TAGDEF tags[1];
00739 } IDL_STRUCTURE;
00740 #endif
00741
00742
00743
00744
00745
00746
00747 #ifndef message_IDL_DEF
00748 #define message_IDL_DEF
00749
00750
00751
00752
00753
00754 #define IDL_MSG_ACTION_CODE 0x0000ffff
00755 #define IDL_MSG_ACTION_ATTR 0xffff0000
00756
00757
00758 #define IDL_MSG_RET 0
00759 #define IDL_MSG_EXIT 1
00760 #define IDL_MSG_LONGJMP 2
00761
00762
00763 #define IDL_MSG_IO_LONGJMP 3
00764
00765
00766 #define IDL_MSG_INFO 4
00767
00768
00769 #define IDL_MSG_SUPPRESS 7
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781 #define IDL_MSG_ATTR_NOPRINT 0x00010000
00782
00783
00784
00785 #define IDL_MSG_ATTR_MORE 0x00020000
00786
00787
00788
00789
00790
00791
00792 #define IDL_MSG_ATTR_NOPREFIX 0x00040000
00793
00794
00795
00796 #define IDL_MSG_ATTR_QUIET 0x00080000
00797
00798
00799
00800
00801 #define IDL_MSG_ATTR_NOTRACE 0x00100000
00802 #define IDL_MSG_ATTR_BELL 0x00200000
00803 #define IDL_MSG_ATTR_SYS 0x00400000
00804
00805
00806
00807
00808
00809
00810
00811
00812
00813
00814
00815
00816
00817
00818
00819
00820
00821
00822
00823 typedef enum {
00824 IDL_MSG_SYSCODE_NONE=0,
00825 IDL_MSG_SYSCODE_ERRNO=1
00826 #ifdef MSWIN
00827 , IDL_MSG_SYSCODE_WIN=2
00828 , IDL_MSG_SYSCODE_WINSOCK=3
00829
00830 #endif
00831 } IDL_MSG_SYSCODE_T;
00832
00833
00834 typedef struct {
00835 char *name;
00836 char *format;
00837 } IDL_MSG_DEF;
00838
00839
00840 typedef void *IDL_MSG_BLOCK;
00841 #define IDL_MSG_ERR_BUF_LEN 2048
00842 #define IDL_MSG_SYSERR_BUF_LEN 512
00843
00844 typedef struct {
00845 int action;
00846 IDL_MSG_BLOCK msg_block;
00847 int code;
00848 int global_code;
00849
00850 IDL_MSG_SYSCODE_T syscode_type;
00851 int syscode;
00852 char msg[IDL_MSG_ERR_BUF_LEN];
00853 char sysmsg[IDL_MSG_SYSERR_BUF_LEN];
00854 } IDL_MSG_ERRSTATE;
00855
00856
00857
00858
00859
00860 typedef void *IDL_MSG_ERRSTATE_PTR;
00861
00862
00863
00864 #endif
00865
00866
00867
00868
00869
00870
00871 #ifndef macros_IDL_DEF
00872 #define macros_IDL_DEF
00873 #define IDL_VENDOR_NAME "Exelis Visual Information Solutions, Inc."
00874 #define IDL_VENDOR_CONTACT "info@exelisvis.com"
00875 #define IDL_PRODUCT_NAME "IDL"
00876 #define IDL_PRODUCT_NAME_LC "idl"
00877 #define IDL_VENDOR_NAME_CONTACT IDL_VENDOR_NAME " at " IDL_VENDOR_CONTACT
00878
00879
00880 #define IDL_MIN(x,y) (((x) < (y)) ? (x) : (y))
00881 #define IDL_MAX(x,y) (((x) > (y)) ? (x) : (y))
00882 #define IDL_ABS(x) (((x) >= 0) ? (x) : -(x))
00883 #define IDL_C_ABS(pZ) ((pZ)->r*(pZ)->r + (pZ)->i*(pZ)->i)
00884
00885
00886
00887 #define IDL_CLIP_TO_RANGE(x, min, max) \
00888 ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
00889
00890
00891 #define IDL_ROUND_UP(x,m) \
00892 (((x) + (m-1)) & (~(m-1)))
00893
00894
00895 #define IDL_CHAR(x) ((char *) x)
00896
00897
00898 #define IDL_CHARA(x) ((char *) &(x))
00899 #define IDL_UCHARA(x) ((UCHAR *) &(x))
00900 #define IDL_SHORTA(x) ((short *) &(x))
00901 #define IDL_INTA(x) ((int *) &(x))
00902 #define IDL_LONGA(x) ((IDL_LONG *) &(x))
00903
00904
00905 #define IDL_STRING_STR(desc) ((desc)->slen ? (desc)->s : "")
00906
00907
00908 #define IDL_STATIC_STRLEN(lexstr) (sizeof(lexstr) - 1)
00909
00910
00911 #define IDL_STATIC_STRING(lexstr) { IDL_STATIC_STRLEN(lexstr), 0, lexstr }
00912
00913 #define IDL_DELTMP(v) { if (((v)->flags) & IDL_V_TEMP) IDL_Deltmp(v); }
00914
00915
00916 #define IDL_CARRAY_ELTS(arr) (sizeof(arr)/sizeof(arr[0]))
00917
00918 #define IDL_EXCLUDE_UNDEF(v) { if (!(v)->type) \
00919 IDL_MessageVE_UNDEFVAR(v, IDL_MSG_LONGJMP); }
00920 #define IDL_EXCLUDE_CONST(v) { if ((v)->flags & IDL_V_CONST) \
00921 IDL_MessageVE_NOCONST(v, IDL_MSG_LONGJMP); }
00922 #define IDL_EXCLUDE_EXPR(v) { if ((v)->flags & (IDL_V_CONST | IDL_V_TEMP)) \
00923 IDL_MessageVE_NOEXPR(v, IDL_MSG_LONGJMP); }
00924 #define IDL_EXCLUDE_FILE(v) { if ((v)->flags & IDL_V_FILE) \
00925 IDL_MessageVE_NOFILE(v, IDL_MSG_LONGJMP); }
00926 #define IDL_EXCLUDE_STRUCT(v) { if ((v)->flags & IDL_V_STRUCT) \
00927 IDL_MessageVE_NOSTRUCT(v, IDL_MSG_LONGJMP); }
00928 #define IDL_EXCLUDE_FILE_OR_STRUCT(v) { \
00929 if((v)->flags & (IDL_V_FILE|IDL_V_STRUCT)) \
00930 IDL_VarExclude(v, IDL_TYP_MASK(TYP_STRUCT), FALSE, FALSE, TRUE);}
00931 #define IDL_EXCLUDE_COMPLEX(v) { if (((v)->type == IDL_TYP_COMPLEX) \
00932 || ((v)->type == IDL_TYP_DCOMPLEX)) \
00933 IDL_MessageVE_NOCOMPLEX(v, IDL_MSG_LONGJMP); }
00934 #define IDL_EXCLUDE_STRING(v) { if ((v)->type == IDL_TYP_STRING) \
00935 IDL_MessageVE_NOSTRING(v, IDL_MSG_LONGJMP); }
00936 #define IDL_EXCLUDE_SCALAR(v) { if (!((v)->flags & IDL_V_NOT_SCALAR)) \
00937 IDL_MessageVE_NOSCALAR(v, IDL_MSG_LONGJMP);}
00938
00939
00940
00941
00942
00943
00944 #ifdef IDL_MEMINT_64
00945 #define IDL_EXCLUDE_BIGVAR(v) \
00946 if ((v->flags & IDL_V_ARR) && IDL_MEMINT_BIG(v->value.arr->n_elts)) \
00947 IDL_MessageVE_NOMEMINT64(v, IDL_MSG_LONGJMP);
00948 #define IDL_BIGVAR(v) \
00949 ((v->flags & IDL_V_ARR) && IDL_MEMINT_BIG(v->value.arr->n_elts))
00950 #else
00951 #define IDL_EXCLUDE_BIGVAR(v)
00952 #define IDL_BIGVAR(v) IDL_FALSE
00953 #endif
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964 #define IDL_ENSURE_ARRAY(v) { if (!((v)->flags & IDL_V_ARR)) \
00965 IDL_MessageVE_NOTARRAY(v, IDL_MSG_LONGJMP); }
00966 #define IDL_ENSURE_SCALAR(v) { if ((v)->flags & IDL_V_NOT_SCALAR) \
00967 IDL_MessageVE_NOTSCALAR(v, IDL_MSG_LONGJMP);}
00968 #define IDL_ENSURE_STRING(v) { if ((v)->type != IDL_TYP_STRING) \
00969 IDL_MessageVE_REQSTR(v, IDL_MSG_LONGJMP);}
00970 #ifndef IDL_ENSURE_SIMPLE
00971 #define IDL_ENSURE_SIMPLE(v) IDL_VarEnsureSimple(v)
00972 #endif
00973 #define IDL_ENSURE_STRUCTURE(v) { if (!((v)->flags & IDL_V_STRUCT)) \
00974 IDL_MessageVE_STRUC_REQ(v, IDL_MSG_LONGJMP);}
00975 #define IDL_ENSURE_PTR(v) { if ((v)->type != IDL_TYP_PTR) \
00976 IDL_MessageVE_REQPTR(v, IDL_MSG_LONGJMP);}
00977 #define IDL_ENSURE_OBJREF(v) { if ((v)->type != IDL_TYP_OBJREF) \
00978 IDL_MessageVE_REQOBJREF(v, IDL_MSG_LONGJMP);}
00979
00980
00981
00982 #define IDL_DELVAR(v) { if (((v)->flags) & IDL_V_DYNAMIC) IDL_Delvar(v); }
00983
00984
00985
00986 #define IDL_NULL(v) \
00987 ((v)->flags & IDL_V_NULL)
00988
00989
00990 #if defined(HPUX_64) || (defined(__cplusplus) && defined(MSWIN)) || defined(darwin) || defined(linux) || defined(MSWIN_64)
00991 #define IDL_CAST_PTRINT(cast, orig_value) ((cast) ((IDL_PTRINT) (orig_value)))
00992 #else
00993 #define IDL_CAST_PTRINT(cast, orig_value) ((cast) (orig_value))
00994 #endif
00995
00996 #endif
00997
00998
00999
01000
01001
01002
01003 #ifndef idl_pds_IDL_DEF
01004 #define idl_pds_IDL_DEF
01005
01006
01007
01008
01009
01010 typedef struct {
01011 IDL_LONG hw_vector;
01012 IDL_LONG vector_enable;
01013 IDL_LONG hw_ncpu;
01014 IDL_LONG tpool_nthreads;
01015 IDL_MEMINT tpool_min_elts;
01016 IDL_MEMINT tpool_max_elts;
01017 } IDL_CPU_STRUCT;
01018
01019
01020
01021
01022 typedef struct {
01023 IDL_STRING name;
01024 IDL_STRING block;
01025 IDL_LONG code;
01026 IDL_LONG sys_code[2];
01027 IDL_STRING sys_code_type;
01028 IDL_STRING msg;
01029 IDL_STRING sys_msg;
01030 IDL_STRING msg_prefix;
01031 } IDL_SYS_ERROR_STATE;
01032
01033
01034
01035
01036 typedef struct {
01037 IDL_LONG x;
01038 IDL_LONG y;
01039 IDL_LONG button;
01040 IDL_LONG time;
01041 } IDL_MOUSE_STRUCT;
01042
01043
01044
01045
01046 typedef struct {
01047 IDL_STRING arch;
01048 IDL_STRING os;
01049 IDL_STRING os_family;
01050 IDL_STRING os_name;
01051 IDL_STRING release;
01052 IDL_STRING build_date;
01053 IDL_INT memory_bits;
01054 IDL_INT file_offset_bits;
01055 } IDL_SYS_VERSION;
01056
01057 #endif
01058
01059
01060
01061
01062
01063
01064 #ifndef prog_nam_ver_IDL_VERSION
01065 #define prog_nam_ver_IDL_VERSION
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080 #define IDL_VERSION_MAJOR 8
01081 #define IDL_VERSION_MINOR 2
01082 #define IDL_VERSION_SUB 1
01083 #define IDL_VERSION_SUB_DIRDIGIT 0
01084
01085
01086
01087
01088
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099 #define IDL_VERSION_STRING "8.2.1"
01100 #define IDL_VERSION_STRING_COPY "8.2.1"
01101 #define IDL_VERSION_STRING_NOSUBMINOR "8.2"
01102
01103 #endif
01104
01105
01106
01107
01108
01109
01110 #ifndef crearr_IDL_DEF
01111 #define crearr_IDL_DEF
01112
01113
01114 #define IDL_ARR_INI_ZERO 0
01115 #define IDL_ARR_INI_NOP 1
01116 #define IDL_ARR_INI_INDEX 2
01117 #define IDL_ARR_INI_TEST 3
01118
01119
01120 #define IDL_BARR_INI_ZERO IDL_ARR_INI_ZERO
01121 #define IDL_BARR_INI_NOP IDL_ARR_INI_NOP
01122 #define IDL_BARR_INI_INDEX IDL_ARR_INI_INDEX
01123 #define IDL_BARR_INI_TEST IDL_ARR_INI_TEST
01124
01125 #endif
01126
01127
01128
01129
01130
01131
01132 #ifndef exithand_IDL_DEF
01133 #define exithand_IDL_DEF
01134
01135
01136
01137 typedef void (* IDL_EXIT_HANDLER_FUNC)(void);
01138
01139
01140 #endif
01141
01142
01143
01144
01145
01146
01147 #ifndef ez_IDL_DEF
01148 #define ez_IDL_DEF
01149
01150
01151
01152 #define IDL_EZ_ACCESS_R 1
01153 #define IDL_EZ_ACCESS_W 2
01154 #define IDL_EZ_ACCESS_RW 3
01155
01156
01157
01158
01159
01160
01161 #define IDL_EZ_DIM_MASK(dim_code) (1 << dim_code)
01162
01163
01164 #define IDL_EZ_TYP_NUMERIC \
01165 ( IDL_TYP_MASK(TYP_INT) | IDL_TYP_MASK(TYP_LONG) \
01166 | IDL_TYP_MASK(TYP_FLOAT) | IDL_TYP_MASK(TYP_DOUBLE) \
01167 | IDL_TYP_MASK(TYP_COMPLEX) | IDL_TYP_MASK(TYP_BYTE) \
01168 | IDL_TYP_MASK(TYP_DCOMPLEX) | IDL_TYP_MASK(TYP_UINT) \
01169 | IDL_TYP_MASK(TYP_ULONG) | IDL_TYP_MASK(TYP_LONG64) \
01170 | IDL_TYP_MASK(TYP_ULONG64) )
01171
01172
01173
01174 #define IDL_EZ_DIM_ARRAY 510
01175 #define IDL_EZ_DIM_ANY 511
01176
01177
01178
01179
01180
01181 #define IDL_EZ_PRE_SQMATRIX 1
01182 #define IDL_EZ_PRE_TRANSPOSE 2
01183
01184
01185
01186
01187
01188
01189
01190 #define IDL_EZ_POST_WRITEBACK 1
01191
01192 #define IDL_EZ_POST_TRANSPOSE 2
01193
01194
01195
01196
01197
01198
01199
01200 typedef struct {
01201 short allowed_dims;
01202
01203
01204
01205
01206 int allowed_types;
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217 short access;
01218
01219 short convert;
01220
01221
01222
01223 short pre;
01224
01225
01226
01227
01228
01229
01230 short post;
01231
01232
01233
01234
01235 IDL_VPTR to_delete;
01236
01237
01238
01239
01240
01241
01242 IDL_VPTR uargv;
01243
01244
01245 IDL_ALLTYPES value;
01246
01247
01248
01249
01250 } IDL_EZ_ARG;
01251
01252 #endif
01253
01254
01255
01256
01257
01258
01259 #ifndef graphics_IDL_DEF
01260 #define graphics_IDL_DEF
01261
01262
01263 #define IDL_MAX_TICKN 60
01264 #define IDL_MAX_TICKUNIT_COUNT 10
01265
01266 #define IDL_COLOR_MAP_SIZE 256
01267
01268 #define IDL_NUM_LINESTYLES 6
01269 #define IDL_X0 0
01270 #define IDL_Y0 1
01271 #define IDL_X1 2
01272 #define IDL_Y1 3
01273 #define IDL_Z0 4
01274 #define IDL_Z1 5
01275
01276
01277 #define IDL_AX_LOG 1
01278 #define IDL_AX_MAP 2
01279 #define IDL_AX_MAP1 3
01280
01281 #define IDL_AX_EXACT 1
01282 #define IDL_AX_EXTEND 2
01283 #define IDL_AX_NONE 4
01284 #define IDL_AX_NOBOX 8
01285 #define IDL_AX_NOZERO 16
01286
01287 #define IDL_GR_PRECISION_SINGLE 0
01288 #define IDL_GR_PRECISION_DOUBLE 1
01289
01290 #define IDL_TICKLAYOUT_STANDARD 0
01291 #define IDL_TICKLAYOUT_NOAXISLINES 1
01292 #define IDL_TICKLAYOUT_BOXOUTLINE 2
01293
01294 typedef struct {
01295 IDL_STRING title;
01296 int type;
01297 int style;
01298
01299 int nticks;
01300 float ticklen;
01301 float thick;
01302 double range[2];
01303 double crange[2];
01304 double s[2];
01305 float margin[2];
01306 float omargin[2];
01307 float window[2];
01308 float region[2];
01309 float charsize;
01310 int minor_ticks;
01311 double tickv[IDL_MAX_TICKN];
01312 IDL_STRING annot[IDL_MAX_TICKN];
01313 IDL_LONG gridstyle;
01314 IDL_STRING format[IDL_MAX_TICKUNIT_COUNT];
01315 double tickinterval;
01316 IDL_LONG ticklayout;
01317 IDL_STRING tickunits[IDL_MAX_TICKUNIT_COUNT];
01318
01319
01320
01321
01322 IDL_VPTR ret_values;
01323 int log_minor_ticks;
01324
01325 } IDL_AXIS;
01326
01327
01328
01329 #define IDL_CURS_SET 1
01330 #define IDL_CURS_RD 2
01331 #define IDL_CURS_RD_WAIT 3
01332 #define IDL_CURS_HIDE 4
01333 #define IDL_CURS_SHOW 5
01334 #define IDL_CURS_RD_MOVE 6
01335 #define IDL_CURS_RD_BUTTON_UP 7
01336 #define IDL_CURS_RD_BUTTON_DOWN 8
01337 #define IDL_CURS_HIDE_ORIGINAL 9
01338
01339
01340
01341
01342 #define IDL_COORD_DATA 0
01343 #define IDL_COORD_DEVICE 1
01344 #define IDL_COORD_NORMAL 2
01345 #define IDL_COORD_MARGIN 3
01346 #define IDL_COORD_IDEVICE 4
01347
01348 #define IDL_PX 0
01349 #define IDL_PY 1
01350 #define IDL_PZ 2
01351 #define IDL_PH 3
01352
01353 typedef union {
01354
01355 struct {
01356 float x,y,z,h;
01357 } d;
01358
01359
01360
01361 struct {
01362 int x,y;
01363 } i;
01364
01365
01366 struct {
01367
01368 double x,y,z,h;
01369 } d_s;
01370
01371
01372
01373 float p[4];
01374
01375
01376 double d_arr[4];
01377
01378
01379 struct {
01380 int x, y;
01381 float z, h;
01382 } dev;
01383
01384
01385
01386 } IDL_GR_PT;
01387
01388 typedef enum {
01389 IDL_GR_PT_UNKNOWN = 0,
01390 IDL_GR_PT_INT_STRUCT = 1,
01391 IDL_GR_PT_FLOAT_STRUCT = 2,
01392 IDL_GR_PT_FLOAT_ARRAY = 3,
01393 IDL_GR_PT_DOUBLE_STRUCT = 4,
01394 IDL_GR_PT_DOUBLE_ARRAY = 5,
01395 IDL_GR_PT_DEV_STRUCT = 4
01396 } IDL_GR_PT_TYPE_e;
01397
01398 typedef struct {
01399 IDL_GR_PT_TYPE_e type;
01400 int coord;
01401 IDL_GR_PT pt;
01402 } IDL_GR_TYPED_PT;
01403
01404 typedef struct {
01405 IDL_GR_PT origin;
01406 IDL_GR_PT size;
01407 } IDL_GR_BOX;
01408
01409 typedef struct {
01410 IDL_ULONG color;
01411 float thick;
01412 int linestyle;
01413 double *t;
01414
01415 int *clip;
01416
01417 IDL_AXIS *ax,*ay,*az;
01418 int chl;
01419 } IDL_ATTR_STRUCT;
01420
01421 typedef struct {
01422
01423 int font;
01424 int axes;
01425
01426 float size;
01427 float orien;
01428 float align;
01429
01430 } IDL_TEXT_STRUCT;
01431
01432
01433
01434 typedef struct {
01435 short xsize_exp;
01436 short ysize_exp;
01437 IDL_LONG xsize, ysize;
01438 int chl;
01439 int order;
01440
01441
01442
01443 int color_stride[3];
01444 int image_is_scratch;
01445 int b_per_pixel;
01446 } IDL_TV_STRUCT;
01447
01448
01449
01450
01451
01452
01453 typedef void (* IDL_DEVCORE_FCN_DRAW)(IDL_GR_PT *p0, IDL_GR_PT *p1,
01454 IDL_ATTR_STRUCT *a);
01455 typedef void (* IDL_DEVCORE_FCN_RW_PIXELS)(UCHAR *data, int x0, int y0, int nx,
01456 int ny, int dir,
01457 IDL_TV_STRUCT *secondary);
01458
01459 typedef struct {
01460 IDLBool_t bInterior;
01461 IDL_LONG iNAllocEdgeLists;
01462 IDL_LONG iNUsedEdgeLists;
01463 UCHAR **ppEdgeLists;
01464 IDL_MEMINT iBottomY, iTopY;
01465 } IDL_ROI_STATE;
01466
01467 typedef struct {
01468 enum {
01469 POLY_SOLID, POLY_PATTERN, POLY_IMAGE, POLY_GOURAUD, POLY_IMAGE3D
01470 } fill_type;
01471 IDL_ATTR_STRUCT *attr;
01472 union {
01473 IDL_DEVCORE_FCN_DRAW draw;
01474 IDL_DEVCORE_FCN_RW_PIXELS rw_pixels;
01475 } rtn;
01476 union {
01477 struct {
01478 UCHAR *data;
01479 int d1, d2;
01480 float *im_verts;
01481 float *im_w;
01482 UCHAR interp;
01483 UCHAR transparent;
01484 UCHAR im_depth;
01485 } image;
01486 struct {
01487 float angle;
01488 int spacing;
01489 float ct, st;
01490 } lines;
01491 int fill_style;
01492
01493 } extra;
01494 struct {
01495 union {
01496 float *f;
01497 double *d;
01498 }z;
01499 int precision;
01500 int *shades;
01501 } three;
01502
01503 IDL_ROI_STATE *pROIState;
01504
01505 } IDL_POLYFILL_ATTR;
01506
01507
01508
01509
01510
01511 typedef int (* IDL_DEVCORE_FCN_TEXT)(IDL_GR_PT *p, IDL_ATTR_STRUCT *ga,
01512 IDL_TEXT_STRUCT *ta, char *text);
01513 typedef void (* IDL_DEVCORE_FCN_ERASE)(IDL_ATTR_STRUCT *a);
01514 typedef void (* IDL_DEVCORE_FCN_CURSOR)(int funct, IDL_MOUSE_STRUCT *m);
01515 typedef void (* IDL_DEVCORE_FCN_POLYFILL)(int *x, int *y, int n,
01516 IDL_POLYFILL_ATTR *poly);
01517 typedef void (* IDL_DEVCORE_FCN_INTER_EXIT)(void);
01518 typedef void (* IDL_DEVCORE_FCN_FLUSH)(void);
01519 typedef void (* IDL_DEVCORE_FCN_LOAD_COLOR)(IDL_LONG start, IDL_LONG n);
01520 typedef void (* IDL_DEVCORE_FCN_DEV_SPECIFIC)(int argc, IDL_VPTR *argv,
01521 char *argk);
01522 typedef void (* IDL_DEVCORE_FCN_DEV_HELP)(int argc, IDL_VPTR *argv);
01523 typedef void (* IDL_DEVCORE_FCN_LOAD_RTN)(void);
01524 typedef void (* IDL_DEVCORE_FCN_RESET_SESSION)(void);
01525
01526
01527
01528
01529
01530
01531
01532 typedef struct {
01533 IDL_DEVCORE_FCN_DRAW draw;
01534 IDL_DEVCORE_FCN_TEXT text;
01535 IDL_DEVCORE_FCN_ERASE erase;
01536 IDL_DEVCORE_FCN_CURSOR cursor;
01537 IDL_DEVCORE_FCN_POLYFILL polyfill;
01538 IDL_DEVCORE_FCN_INTER_EXIT inter_exit;
01539 IDL_DEVCORE_FCN_FLUSH flush;
01540 IDL_DEVCORE_FCN_LOAD_COLOR load_color;
01541 IDL_DEVCORE_FCN_RW_PIXELS rw_pixels;
01542 IDL_DEVCORE_FCN_DEV_SPECIFIC dev_specific;
01543 IDL_DEVCORE_FCN_DEV_HELP dev_help;
01544 IDL_DEVCORE_FCN_LOAD_RTN load_rtn;
01545
01546
01547 IDL_DEVCORE_FCN_RESET_SESSION reset_session;
01548 } IDL_DEVICE_CORE;
01549
01550
01551
01552
01553
01554
01555
01556
01557 typedef struct {
01558 void (* window_create)(int argc, IDL_VPTR *argv,char *argk);
01559 void (* window_delete)(int argc, IDL_VPTR *argv);
01560 void (* window_show)(int argc, IDL_VPTR *argv, char *argk);
01561 void (* window_set)(int argc, IDL_VPTR *argv);
01562 IDL_VPTR (* window_menu)(int argc, IDL_VPTR *argv, char *argk);
01563 } IDL_DEVICE_WINDOW;
01564
01565
01566
01567
01568
01569
01570
01571 typedef struct {
01572
01573 IDL_STRING name;
01574 int t_size[2];
01575 int v_size[2];
01576 int ch_size[2];
01577 float px_cm[2];
01578 int n_colors;
01579 int table_size;
01580 int fill_dist;
01581 int window;
01582 int unit;
01583 int flags;
01584 int origin[2];
01585 int zoom[2];
01586 float aspect;
01587 IDL_DEVICE_CORE core;
01588 IDL_DEVICE_WINDOW winsys;
01589 char *reserved;
01590 } IDL_DEVICE_DEF;
01591
01592
01593
01594
01595 #define IDL_D_SCALABLE_PIXELS 1
01596 #define IDL_D_ANGLE_TEXT (1 << 1)
01597
01598 #define IDL_D_THICK (1 << 2)
01599 #define IDL_D_IMAGE (1 << 3)
01600 #define IDL_D_COLOR (1 << 4)
01601 #define IDL_D_POLYFILL (1 << 5)
01602 #define IDL_D_MONOSPACE (1<<6)
01603 #define IDL_D_READ_PIXELS (1<<7)
01604 #define IDL_D_WINDOWS (1<<8)
01605 #define IDL_D_WHITE_BACKGROUND (1<<9)
01606
01607 #define IDL_D_NO_HDW_TEXT (1<<10)
01608 #define IDL_D_POLYFILL_LINE (1<<11)
01609
01610 #define IDL_D_HERSH_CONTROL (1<<12)
01611
01612 #define IDL_D_PLOTTER (1<<13)
01613 #define IDL_D_WORDS (1<<14)
01614 #define IDL_D_KANJI (1 << 15)
01615 #define IDL_D_WIDGETS (1 << 16)
01616
01617 #define IDL_D_Z (1 << 17)
01618 #define IDL_D_TRUETYPE_FONT (1 << 18)
01619
01620 typedef struct {
01621 int background;
01622 float charsize;
01623 float charthick;
01624 int clip[6];
01625 IDL_ULONG color;
01626 int font;
01627 int linestyle;
01628 int multi[5];
01629 int clip_off;
01630 int noerase;
01631 int nsum;
01632 float position[4];
01633 int psym;
01634 float region[4];
01635 IDL_STRING subtitle;
01636 float symsize;
01637 double t[16];
01638 int t3d_on;
01639 float thick;
01640 IDL_STRING title;
01641 float ticklen;
01642 int chl;
01643
01644 double sr_restore_pad;
01645
01646
01647
01648
01649
01650
01651 IDL_DEVICE_DEF *dev;
01652 } IDL_PLOT_COM;
01653
01654
01655
01656 #endif
01657
01658
01659
01660
01661
01662
01663
01664 #ifndef keyword_IDL_DEF
01665 #define keyword_IDL_DEF
01666
01667
01668
01669 #define IDL_KW_ARRAY (1 << 12)
01670
01671
01672 #define IDL_KW_OUT (1 << 13)
01673
01674
01675
01676
01677
01678
01679
01680
01681 #define IDL_KW_VIN (IDL_KW_OUT | IDL_KW_ARRAY)
01682
01683
01684
01685
01686
01687
01688 #define IDL_KW_ZERO (1 << 14)
01689
01690
01691
01692
01693 #define IDL_KW_VALUE (1 << 15)
01694
01695
01696
01697
01698
01699
01700
01701
01702
01703
01704
01705
01706
01707
01708
01709
01710
01711 #define IDL_KW_VALUE_MASK ((1 << 12) -1)
01712
01713
01714
01715
01716
01717
01718
01719 #define IDL_KW_FAST_SCAN { (char *)"", 0,0,0,0,0 }
01720
01721
01722
01723
01724
01725
01726
01727
01728
01729
01730 #define IDL_KW_OFFSETOF2(s, m) ((void *)(&(((s *)0)->m)))
01731 #define IDL_KW_V_OFFSETOF2(s, m) ((char *)(&(((s *)0)->m)))
01732 #define IDL_KW_S_OFFSETOF2(s, m) ((int *)(&(((s *)0)->m)))
01733
01734
01735
01736
01737
01738 #define IDL_KW_OFFSETOF(m) IDL_KW_OFFSETOF2(KW_RESULT, m)
01739 #define IDL_KW_V_OFFSETOF(m) IDL_KW_V_OFFSETOF2(KW_RESULT, m)
01740 #define IDL_KW_S_OFFSETOF(m) IDL_KW_S_OFFSETOF2(KW_RESULT, m)
01741
01742
01743
01744
01745
01746
01747 #define IDL_KW_ADDROF(x) ((char *) &(x))
01748
01749
01750
01751
01752
01753
01754 #define IDL_KW_ARR_DESC_ADDROF(x) ((char *) &(x))
01755
01756
01757 typedef struct {
01758 char *keyword;
01759
01760
01761
01762 UCHAR type;
01763
01764
01765
01766 unsigned short mask;
01767
01768
01769
01770
01771 unsigned short flags;
01772 int *specified;
01773
01774
01775 char *value;
01776
01777
01778
01779
01780
01781
01782
01783
01784
01785 } IDL_KW_PAR;
01786
01787
01788
01789
01790
01791
01792
01793
01794
01795
01796
01797
01798
01799
01800
01801
01802
01803
01804
01805 #define IDL_KW_COMMON_ARR_DESC_TAGS \
01806 char *data; \
01807 IDL_MEMINT nmin; \
01808 IDL_MEMINT nmax;
01809
01810 typedef struct {
01811 IDL_KW_COMMON_ARR_DESC_TAGS
01812 IDL_MEMINT n;
01813 } IDL_KW_ARR_DESC;
01814
01815 typedef struct {
01816 IDL_KW_COMMON_ARR_DESC_TAGS
01817 IDL_MEMINT *n_offset;
01818
01819 } IDL_KW_ARR_DESC_R;
01820
01821
01822
01823
01824
01825
01826
01827
01828
01829
01830 extern int IDL_CDECL IDL_KWGetParams(int argc, IDL_VPTR *argv, char *argk,
01831 IDL_KW_PAR *kw_list,
01832 IDL_VPTR *plain_args, int mask);
01833 extern void IDL_CDECL IDL_KWCleanup(int fcn);
01834
01835 #define IDL_KW_MARK 1
01836
01837 #define IDL_KW_CLEAN 2
01838
01839
01840
01841
01842
01843
01844
01845
01846
01847
01848
01849 #define IDL_KW_RESULT_FIRST_FIELD int _idl_kw_free
01850 #define IDL_KW_FREE if (kw._idl_kw_free) IDL_KWFree()
01851
01852
01853
01854 #endif
01855
01856
01857
01858
01859
01860
01861
01862
01863
01864 #define IDL_LMGR_CLIENTSERVER 0x01
01865 #define IDL_LMGR_DEMO 0x02
01866 #define IDL_LMGR_EMBEDDED 0x04
01867 #define IDL_LMGR_RUNTIME 0x08
01868 #define IDL_LMGR_STUDENT 0x10
01869 #define IDL_LMGR_TRIAL 0x20
01870 #define IDL_LMGR_CALLAPPNOCHECKOUT 0x40
01871 #define IDL_LMGR_CALLAPPLICINTERNAL 0x80
01872 #define IDL_LMGR_VM 0x100
01873
01874
01875
01876
01877 #define IDL_LMGR_SET_FORCEDEMO 0x01
01878 #define IDL_LMGR_SET_NOCOMPILE 0x02
01879 #define IDL_LMGR_SET_NORESTORE 0x04
01880
01881
01882
01883
01884
01885
01886 #ifndef os_IDL_DEF
01887 #define os_IDL_DEF
01888
01889
01890
01891 typedef char IDL_ATIME_BUF[25];
01892
01893
01894 #define IDL_USER_INFO_MAXHOSTLEN 64
01895 typedef struct {
01896 char *logname;
01897 char *homedir;
01898 char *pid;
01899 char host[IDL_USER_INFO_MAXHOSTLEN];
01900 char wd[IDL_MAXPATH+1];
01901 IDL_ATIME_BUF date;
01902 } IDL_USER_INFO;
01903
01904
01905 typedef enum {
01906 IDL_GETKBRD_T_CH=0,
01907 IDL_GETKBRD_T_CH_OR_ESC=1,
01908
01909
01910
01911
01912
01913 IDL_GETKBRD_T_CH_OR_NAME=2
01914
01915 } IDL_GETKBRD_T;
01916
01917
01918 typedef char IDL_GETKBRD_BUFFER[128];
01919 #endif
01920
01921
01922
01923
01924
01925
01926 #ifndef pout_IDL_DEF
01927 #define pout_IDL_DEF
01928
01929
01930 #define IDL_POUT_SL 1
01931 #define IDL_POUT_FL 2
01932 #define IDL_POUT_NOSP 4
01933 #define IDL_POUT_NOBREAK 8
01934 #define IDL_POUT_LEADING 16
01935 #define IDL_POUT_FORCE_FL 32
01936
01937
01938
01939 typedef struct {
01940 int unit;
01941 int curcol;
01942 int wrap;
01943 char *leading;
01944 int leading_len;
01945 char *buf;
01946 int max_len;
01947 } IDL_POUT_CNTRL;
01948
01949
01950 #define IDL_POUT_BLANK_LINE(pout_cntrl) \
01951 IDL_Pout(pout_cntrl, IDL_POUT_SL|IDL_POUT_FORCE_FL, (char *) 0, "")
01952
01953 #endif
01954
01955
01956
01957
01958
01959
01960 #ifndef prog_nam_IDL_DEF
01961 #define prog_nam_IDL_DEF
01962 #endif
01963
01964
01965
01966
01967
01968
01969 #ifndef ptr_IDL_DEF
01970 #define ptr_IDL_DEF
01971 typedef struct idl_heap_variable {
01972 struct idl_heap_variable *hash;
01973
01974 IDL_HVID hash_id;
01975 IDL_LONG refcount;
01976 int flags;
01977 IDL_VARIABLE var;
01978
01979 } IDL_HEAP_VARIABLE;
01980 typedef IDL_HEAP_VARIABLE *IDL_HEAP_VPTR;
01981
01982
01983 #define IDL_HEAPNEW_NOCOPY 1
01984 #define IDL_HEAPNEW_GCDISABLE 2
01985 #define IDL_HEAPNEW_ZEROREF 4
01986 #endif
01987
01988
01989
01990
01991
01992
01993 #ifndef raster_IDL_DEF
01994 #define raster_IDL_DEF
01995
01996
01997
01998 #define IDL_DITHER_REVERSE 0
01999 #define IDL_DITHER_THRESHOLD 1
02000 #define IDL_DITHER_FLOYD_STEINBERG 2
02001 #define IDL_DITHER_ORDERED 3
02002
02003
02004 #define IDL_DITHER_F_WHITE 0x01
02005
02006 #define IDL_RASTER_1BYTEPP 0x02
02007
02008
02009
02010 #define IDL_RASTER_MSB_LEFT { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }
02011 #define IDL_RASTER_MSB_RIGHT { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }
02012
02013 typedef struct {
02014 UCHAR *fb;
02015 int nx, ny;
02016 int bytes_line;
02017 int byte_padding;
02018
02019 int dot_width;
02020
02021 int dither_method;
02022 int dither_threshold;
02023 UCHAR bit_tab[8];
02024
02025 int flags;
02026 } IDL_RASTER_DEF;
02027
02028 #endif
02029
02030
02031
02032
02033
02034
02035 #ifndef rline_IDL_DEF
02036 #define rline_IDL_DEF
02037
02038
02039 #define IDL_RLINE_OPT_NOSAVE 1
02040 #define IDL_RLINE_OPT_NOJOURNAL 2
02041 #define IDL_RLINE_OPT_JOURCMT 4
02042 #define IDL_RLINE_OPT_NOEDIT 8
02043
02044 #endif
02045
02046
02047
02048
02049
02050
02051 #ifndef sfile_IDL_DEF
02052 #define sfile_IDL_DEF
02053
02054
02055 typedef IDL_LONG IDL_SFILE_FLAGS_T;
02056
02057
02058 typedef IDL_LONG IDL_SFILE_PIPE_EXIT_STATUS;
02059
02060
02061
02062
02063
02064
02065 typedef struct {
02066 IDL_LONG64 access;
02067 IDL_LONG64 create;
02068 IDL_LONG64 mod;
02069 } IDL_SFILE_STAT_TIME;
02070
02071 #endif
02072
02073
02074
02075
02076
02077
02078 #ifndef sig_IDL_DEF
02079 #define sig_IDL_DEF
02080
02081
02082 #include <signal.h>
02083
02084
02085 #if defined(SIGWINDOW) && !defined(SIGWINCH)
02086 #define SIGWINCH SIGWINDOW
02087 #endif
02088
02089
02090
02091
02092
02093 typedef struct {
02094 #ifdef linux
02095 unsigned long set[_SIGSET_NWORDS];
02096 #else
02097 double set[4];
02098 #endif
02099 } IDL_SignalSet_t;
02100
02101
02102 typedef void (* IDL_SignalHandler_t)(int signo);
02103
02104 #endif
02105
02106
02107
02108
02109
02110
02111 #ifndef structs_IDL_DEF
02112 #define structs_IDL_DEF
02113
02114
02115
02116 #define IDL_STD_INHERIT 1
02117
02118
02119
02120
02121 typedef struct {
02122 char *name;
02123
02124
02125
02126
02127
02128
02129 IDL_MEMINT *dims;
02130
02131
02132
02133
02134 void *type;
02135
02136
02137
02138
02139
02140
02141
02142 UCHAR flags;
02143 } IDL_STRUCT_TAG_DEF;
02144 #endif
02145
02146
02147
02148
02149
02150
02151 #ifndef sysnames_IDL_DEF
02152 #define sysnames_IDL_DEF
02153
02154
02155
02156 #define IDL_SRE_B_DISABLE 1
02157
02158 #define IDL_SRE_B_EXCLUSIVE 2
02159
02160
02161
02162 #define IDL_SRE_ENABLE 0
02163
02164
02165 #define IDL_SRE_ENABLE_EXCLUSIVE IDL_SRE_B_EXCLUSIVE
02166
02167 #define IDL_SRE_DISABLE IDL_SRE_B_DISABLE
02168
02169
02170 #define IDL_SRE_DISABLE_EXCLUSIVE (IDL_SRE_B_DISABLE|IDL_SRE_B_EXCLUSIVE)
02171
02172
02173
02174 #endif
02175
02176
02177
02178
02179
02180
02181 #ifndef sysnames_obs_IDL_DEF
02182 #define sysnames_obs_IDL_DEF
02183
02184
02185
02186
02187
02188
02189
02190
02191
02192
02193
02194
02195
02196
02197
02198 typedef struct {
02199 IDL_FUN_RET funct_addr;
02200 char *name;
02201 UCHAR arg_min;
02202 UCHAR arg_max;
02203
02204
02205 UCHAR flags;
02206 } IDL_SYSFUN_DEF;
02207
02208
02209
02210
02211
02212
02213
02214
02215
02216
02217 #define IDL_KW_ARGS 128
02218
02219 #endif
02220
02221
02222
02223
02224
02225
02226 #ifndef sysv_IDL_DEF
02227 #define sysv_IDL_DEF
02228
02229
02230
02231
02232
02233 #define IDL_SysvErrString IDL_SysvErrorState.msg
02234 #define IDL_SysvSyserrString IDL_SysvErrorState.sys_msg
02235 #define IDL_SysvErrorCode IDL_SysvErrorState.code
02236 #define IDL_SysvSyserrorCodes IDL_SysvErrorState.sys_code
02237
02238
02239
02240
02241
02242
02243 #define IDL_SYSVVALUES_INF 0
02244 #define IDL_SYSVVALUES_NAN 1
02245
02246 #endif
02247
02248
02249
02250
02251
02252
02253 #ifndef tout_IDL_DEF
02254 #define tout_IDL_DEF
02255
02256 typedef void (* IDL_TOUT_OUTF)(int flags, char *buf, int n);
02257
02258 #define IDL_TOUT_F_STDERR 1
02259 #define IDL_TOUT_F_NLPOST 4
02260
02261
02262
02263
02264
02265 #define IDL_TOUT_MORE_RSP_QUIT 0
02266 #define IDL_TOUT_MORE_RSP_PAGE 1
02267 #define IDL_TOUT_MORE_RSP_LINE 2
02268
02269 #endif
02270
02271
02272
02273
02274
02275
02276 #ifndef ur_main_IDL_DEF
02277 #define ur_main_IDL_DEF
02278
02279
02280
02281 #define IDL_INIT_GUI 1
02282 #define IDL_INIT_GUI_AUTO (IDL_INIT_GUI|2)
02283
02284
02285
02286
02287 #define IDL_INIT_RUNTIME 4
02288 #define IDL_INIT_EMBEDDED (IDL_INIT_RUNTIME|8)
02289
02290
02291 #define IDL_INIT_NOLICALIAS 16
02292
02293
02294
02295
02296
02297
02298
02299
02300
02301
02302 #define IDL_INIT_BACKGROUND 32
02303
02304
02305
02306 #define IDL_INIT_QUIET 64
02307
02308
02309 #define IDL_INIT_STUDENT 128
02310
02311 #define IDL_INIT_DEMO (1 << 9)
02312
02313
02314 #define IDL_INIT_LMQUEUE (1 << 10)
02315
02316
02317
02318
02319
02320 #define IDL_INIT_GENVER (1 << 11)
02321
02322
02323 #define IDL_INIT_NOCMDLINE (1 << 12)
02324
02325
02326
02327
02328
02329 #define IDL_INIT_OCX IDL_INIT_NOCMDLINE
02330
02331
02332 #define IDL_INIT_VM (1 << 13)
02333
02334
02335
02336
02337
02338
02339
02340
02341 #define IDL_INIT_NOVM (1 << 14)
02342
02343
02344
02345
02346 #define IDL_INIT_NOTTYEDIT (1 << 15)
02347
02348
02349
02350
02351
02352
02353
02354
02355
02356
02357
02358
02359
02360
02361
02362
02363
02364
02365 #define IDL_INIT_CLARGS (1 << 17)
02366
02367
02368
02369 #define IDL_INIT_HWND (1 << 18)
02370
02371
02372
02373
02374 #define IDL_INIT_NODEMOWARN (1 << 21)
02375
02376
02377 #define IDL_INIT_APPLIC (1 << 27)
02378
02379
02380
02381
02382 typedef int IDL_INIT_DATA_OPTIONS_T;
02383
02384 typedef struct {
02385
02386
02387
02388
02389
02390
02391
02392
02393
02394
02395
02396
02397
02398
02399
02400
02401
02402 IDL_INIT_DATA_OPTIONS_T options;
02403
02404
02405 struct {
02406 int argc;
02407 char **argv;
02408
02409
02410 } clargs;
02411
02412 #ifdef MSWIN
02413
02414 void *hwnd;
02415 #endif
02416
02417 char **applic;
02418
02419 } IDL_INIT_DATA;
02420
02421
02422
02423
02424 #endif
02425
02426
02427
02428
02429
02430
02431 #define IDL_VAL_DEMODLG_BITMAP 37
02432
02433
02434
02435
02436
02437
02438 #ifndef widgets_IDL_DEF
02439 #define widgets_IDL_DEF
02440
02441 typedef void (* IDL_WIDGET_STUB_SET_SIZE_FUNC)
02442 (IDL_ULONG id, int width, int height);
02443
02444 #endif
02445
02446
02447
02448
02449
02450
02451 #ifndef zfiles_IDL_DEF
02452 #define zfiles_IDL_DEF
02453
02454 #define IDL_OPEN_R 1
02455 #define IDL_OPEN_W 2
02456 #define IDL_OPEN_NEW 4
02457
02458 #define IDL_OPEN_APND 8
02459
02460
02461 #define IDL_F_ISATTY ((IDL_SFILE_FLAGS_T) 1)
02462
02463 #define IDL_F_ISAGUI ((IDL_SFILE_FLAGS_T) 2)
02464
02465 #define IDL_F_NOCLOSE ((IDL_SFILE_FLAGS_T) 4)
02466
02467 #define IDL_F_MORE ((IDL_SFILE_FLAGS_T) 8)
02468 #define IDL_F_XDR ((IDL_SFILE_FLAGS_T) 16)
02469 #define IDL_F_DEL_ON_CLOSE ((IDL_SFILE_FLAGS_T) 32)
02470
02471 #define IDL_F_SR ((IDL_SFILE_FLAGS_T) 64)
02472
02473
02474 #define IDL_F_SWAP_ENDIAN ((IDL_SFILE_FLAGS_T) 128)
02475
02476
02477
02478 #define IDL_F_VAX_FLOAT (((IDL_SFILE_FLAGS_T) 1) << 8)
02479
02480
02481
02482 #define IDL_F_COMPRESS (((IDL_SFILE_FLAGS_T) 1) << 9)
02483
02484 #define IDL_F_UNIX_F77 (((IDL_SFILE_FLAGS_T) 1) << 10)
02485
02486 #define IDL_F_PIPE (((IDL_SFILE_FLAGS_T) 1) << 11)
02487 #define IDL_F_UNIX_PIPE IDL_F_PIPE
02488
02489
02490 #define IDL_F_UNIX_RAWIO (((IDL_SFILE_FLAGS_T) 1) << 12)
02491 #define IDL_F_UNIX_NOSTDIO IDL_F_UNIX_RAWIO
02492
02493 #define IDL_F_UNIX_SPECIAL (((IDL_SFILE_FLAGS_T) 1) << 13)
02494
02495 #define IDL_F_STDIO (((IDL_SFILE_FLAGS_T) 1) << 14)
02496
02497 #define IDL_F_SOCKET (((IDL_SFILE_FLAGS_T) 1) << 15)
02498
02499
02500
02501
02502
02503
02504
02505
02506 #define IDL_F_VMS_FIXED ((IDL_SFILE_FLAGS_T) 0)
02507 #define IDL_F_VMS_VARIABLE ((IDL_SFILE_FLAGS_T) 0)
02508 #define IDL_F_VMS_SEGMENTED ((IDL_SFILE_FLAGS_T) 0)
02509 #define IDL_F_VMS_STREAM ((IDL_SFILE_FLAGS_T) 0)
02510 #define IDL_F_VMS_STREAM_STRICT ((IDL_SFILE_FLAGS_T) 0)
02511 #define IDL_F_VMS_RMSBLK ((IDL_SFILE_FLAGS_T) 0)
02512 #define IDL_F_VMS_RMSBLKUDF ((IDL_SFILE_FLAGS_T) 0)
02513 #define IDL_F_VMS_INDEXED ((IDL_SFILE_FLAGS_T) 0)
02514 #define IDL_F_VMS_PRINT ((IDL_SFILE_FLAGS_T) 0)
02515 #define IDL_F_VMS_SUBMIT ((IDL_SFILE_FLAGS_T) 0)
02516 #define IDL_F_VMS_TRCLOSE ((IDL_SFILE_FLAGS_T) 0)
02517 #define IDL_F_VMS_CCLIST ((IDL_SFILE_FLAGS_T) 0)
02518 #define IDL_F_VMS_CCFORTRAN ((IDL_SFILE_FLAGS_T) 0)
02519 #define IDL_F_VMS_CCNONE ((IDL_SFILE_FLAGS_T) 0)
02520 #define IDL_F_VMS_SHARED ((IDL_SFILE_FLAGS_T) 0)
02521 #define IDL_F_VMS_SUPERSEDE ((IDL_SFILE_FLAGS_T) 0)
02522
02523
02524
02525
02526
02527
02528
02529 #define IDL_F_DOS_NOAUTOMODE ((IDL_SFILE_FLAGS_T) 0)
02530 #define IDL_F_DOS_BINARY ((IDL_SFILE_FLAGS_T) 0)
02531
02532
02533
02534
02535
02536
02537 #define IDL_F_MAC_BINARY ((IDL_SFILE_FLAGS_T) 0)
02538
02539
02540
02541
02542 #define IDL_FILE_NOCLOSE(unit) IDL_FileSetClose((unit), FALSE)
02543
02544
02545 #define IDL_FILE_CLOSE(unit) IDL_FileSetClose((unit), TRUE)
02546
02547
02548 #define IDL_STDIN_UNIT 0
02549 #define IDL_STDOUT_UNIT -1
02550 #define IDL_STDERR_UNIT -2
02551 #define IDL_NON_UNIT -100
02552
02553
02554 #define IDL_EFS_USER 1
02555 #define IDL_EFS_OPEN 2
02556 #define IDL_EFS_CLOSED 4
02557 #define IDL_EFS_READ 8
02558 #define IDL_EFS_WRITE 16
02559 #define IDL_EFS_NOTTY 32
02560 #define IDL_EFS_NOGUI 64
02561 #define IDL_EFS_NOPIPE 128
02562 #define IDL_EFS_NOXDR (1 << 8)
02563 #define IDL_EFS_ASSOC (1 << 9)
02564
02565
02566
02567 #define IDL_EFS_NOT_RAWIO (1 << 10)
02568
02569 #define IDL_EFS_NOT_NOSTDIO IDL_EFS_NOT_RAWIO
02570 #define IDL_EFS_NOCOMPRESS (1 << 11)
02571 #define IDL_EFS_STDIO (1 << 12)
02572 #define IDL_EFS_NOSOCKET (1 << 13)
02573 #define IDL_EFS_SOCKET_LISTEN (1 << 14)
02574
02575
02576
02577 typedef struct {
02578 #ifdef IDL_OS_HAS_TTYS
02579 char *name;
02580 char is_tty;
02581 #endif
02582 int lines;
02583 int columns;
02584 } IDL_TERMINFO;
02585
02586
02587
02588 typedef struct {
02589 char *name;
02590 short access;
02591 IDL_SFILE_FLAGS_T flags;
02592 FILE *fptr;
02593 } IDL_FILE_STAT;
02594
02595 #define IDL_FCU_FREELUN 2
02596
02597 #endif
02598
02599
02600
02601
02602
02603
02604 #ifndef zstring_IDL_DEF
02605 #define zstring_IDL_DEF
02606
02607
02608
02609
02610
02611
02612
02613
02614
02615
02616
02617
02618
02619
02620
02621
02622
02623
02624
02625
02626
02627
02628
02629
02630
02631
02632
02633
02634
02635
02636
02637
02638 #include <string.h>
02639 #if (defined(unix) && !defined(hpux))
02640 #include <strings.h>
02641 #include <wchar.h>
02642 #endif
02643 #include <wctype.h>
02644 #if defined(sun)
02645 #include <widec.h>
02646 #endif
02647
02648
02649
02650
02651
02652
02653
02654
02655
02656
02657
02658 #if defined(hpux) || defined(MSWIN)
02659 #ifndef bcopy
02660 #define bcopy(src,dest,len) (memcpy((dest), (src), (len)))
02661 #endif
02662 #ifndef bzero
02663 #define bzero(dest,len) (memset((dest), 0, (len)))
02664 #endif
02665 #ifndef bcmp
02666 #define bcmp(b1,b2,len) (memcmp((b1), (b2), (len)))
02667 #endif
02668 #endif
02669
02670
02671
02672
02673
02674
02675
02676
02677
02678
02679
02680
02681 #define IDL_BZERO(zero_var) bzero((char *) &(zero_var), sizeof(zero_var))
02682 #define IDL_BZERO_ARRAY(zero_arr) bzero((char *) (zero_arr), sizeof(zero_arr))
02683 #define IDL_BZERO_BYADDR(zero_var_addr) \
02684 bzero((char *) (zero_var_addr), sizeof(*(zero_var_addr)))
02685
02686
02687
02688
02689
02690
02691 #define IDL_SUPPLIES_STRLCPY
02692 #define IDL_SUPPLIES_STRLCAT
02693
02694
02695
02696
02697 #define IDL_SUPPLIES_STRBCOPY
02698
02699
02700 #ifdef MSWIN
02701 #define strcasecmp _stricmp
02702 #define strncasecmp _strnicmp
02703 #define wstrcasecmp _wcsicmp
02704 #define wstrncasecmp _wcsnicmp
02705
02706
02707 #define snprintf _snprintf
02708 #define snwprintf _snwprintf
02709 #define vsnprintf _vsnprintf
02710 #else
02711 #define snwprintf swprintf
02712 #if defined(darwin)
02713 #define wstrcasecmp CocoaWcsCaseCmp
02714 #elif defined(sun)
02715 #define wstrcasecmp wcscmp
02716 #else
02717 #define wstrcasecmp wcscasecmp
02718 #endif
02719 #endif
02720
02721
02722
02723
02724 #define IDL_SUPPLIES_STRCASESTR
02725
02726
02727 #if defined(ALPHA_OSF)
02728
02729
02730
02731 #define IDL_SUPPLIES_SNPRINTF
02732 #define IDL_SUPPLIES_VSNPRINTF
02733 #endif
02734
02735
02736
02737
02738
02739
02740
02741
02742
02743 #ifdef IDL_SUPPLIES_STRLCPY
02744 #define strlcpy IDL_StrBase_strlcpy
02745 #endif
02746
02747 #ifdef IDL_SUPPLIES_STRLCAT
02748 #define strlcat IDL_StrBase_strlcat
02749 #define strlcatW IDL_StrBase_strlcatW
02750 #endif
02751
02752 #ifdef IDL_SUPPLIES_STRBCOPY
02753 #define strbcopy IDL_StrBase_strbcopy
02754 #define strbcopyW IDL_StrBase_strbcopyW
02755 #endif
02756
02757 #ifdef IDL_SUPPLIES_STRCASECMP
02758 #define strcasecmp IDL_StrBase_strcasecmp
02759 #endif
02760
02761 #ifdef IDL_SUPPLIES_STRNCASECMP
02762 #define strncasecmp IDL_StrBase_strncasecmp
02763 #endif
02764
02765 #ifdef IDL_SUPPLIES_STRCASESTR
02766 #define strcasestr IDL_StrBase_strcasestr
02767 #endif
02768
02769 #ifdef IDL_SUPPLIES_SNPRINTF
02770 #define snprintf IDL_StrBase_snprintf
02771 #endif
02772
02773 #ifdef IDL_SUPPLIES_SNPRINTF
02774 #define vsnprintf IDL_StrBase_vsnprintf
02775 #endif
02776
02777
02778 #endif
02779
02780
02781
02782
02783
02784
02785 #ifndef ztimer_IDL_DEF
02786 #define ztimer_IDL_DEF
02787
02788 typedef void (* IDL_TIMER_CB)(void);
02789 typedef IDL_TIMER_CB IDL_TIMER_CONTEXT;
02790 typedef IDL_TIMER_CONTEXT *IDL_TIMER_CONTEXT_PTR;
02791
02792 #endif
02793
02794
02795
02796
02797
02798
02799
02800 extern void IDL_CDECL IDL_Win32MessageLoop(int fFlush);
02801 extern int IDL_CDECL IDL_BailOut(int stop);
02802 extern int IDL_CDECL IDL_Cleanup(int just_cleanup);
02803 extern int IDL_CDECL IDL_Initialize(IDL_INIT_DATA *init_data);
02804 extern int IDL_CDECL IDL_Init(IDL_INIT_DATA_OPTIONS_T options, int *argc,
02805 char *argv[]);
02806 extern int IDL_CDECL IDL_Win32Init(IDL_INIT_DATA_OPTIONS_T iOpts, void
02807 *hinstExe, void *hwndExe, void *hAccel);
02808 extern int IDL_CDECL IDL_Main(IDL_INIT_DATA_OPTIONS_T options, int argc,
02809 char *argv[]);
02810 extern int IDL_CDECL IDL_ExecuteStr(char *cmd);
02811 extern int IDL_CDECL IDL_Execute(int argc, char *argv[]);
02812 extern int IDL_CDECL IDL_RuntimeExec(char *file);
02813 extern void IDL_CDECL IDL_Runtime(IDL_INIT_DATA_OPTIONS_T options, int
02814 *argc, char *argv[], char *file);
02815 extern char *IDL_OutputFormat[];
02816 extern char *IDL_CDECL IDL_OutputFormatFunc(int type);
02817 extern int IDL_OutputFormatLen[];
02818 extern int IDL_CDECL IDL_OutputFormatLenFunc(int type);
02819 extern char *IDL_OutputFormatFull[];
02820 extern char *IDL_OutputFormatNatural[];
02821 extern IDL_LONG IDL_TypeSize[];
02822 extern int IDL_CDECL IDL_TypeSizeFunc(int type);
02823 extern char *IDL_TypeName[];
02824 extern char *IDL_CDECL IDL_TypeNameFunc(int type);
02825 extern IDL_ALLTYPES IDL_zero;
02826 extern IDL_VPTR IDL_CDECL IDL_nonavailable_rtn(int argc, IDL_VPTR argv[],
02827 char *argk);
02828 extern IDL_TERMINFO IDL_FileTerm;
02829 extern char *IDL_CDECL IDL_FileTermName(void);
02830 extern int IDL_CDECL IDL_FileTermIsTty(void);
02831 extern int IDL_CDECL IDL_FileTermLines(void);
02832 extern int IDL_CDECL IDL_FileTermColumns(void);
02833 extern int IDL_CDECL IDL_FileEnsureStatus(int action, int unit, int flags);
02834 extern void IDL_CDECL IDL_FileSetMode(int unit, int binary);
02835 extern int IDL_CDECL IDL_FileOpenUnitBasic(int unit, char *filename, int
02836 access_mode, IDL_SFILE_FLAGS_T flags, int msg_action,
02837 IDL_MSG_ERRSTATE_PTR errstate);
02838 extern int IDL_CDECL IDL_FileOpen(int argc, IDL_VPTR argv[], char *argk,
02839 int access_mode, IDL_SFILE_FLAGS_T extra_flags, int longjmp_safe, int
02840 msg_attr);
02841 extern int IDL_CDECL IDL_FileCloseUnit(int unit, int flags,
02842 IDL_SFILE_PIPE_EXIT_STATUS *exit_status, int msg_action,
02843 IDL_MSG_ERRSTATE_PTR errstate);
02844 extern void IDL_CDECL IDL_FileClose(int argc, IDL_VPTR argv[], char *argk);
02845 extern void IDL_CDECL IDL_FileFlushUnit(int unit);
02846 extern void IDL_CDECL IDL_FileGetUnit(int argc, IDL_VPTR argv[]);
02847 extern void IDL_CDECL IDL_FileFreeUnit(int argc, IDL_VPTR argv[]);
02848 extern int IDL_CDECL IDL_FileSetPtr(int unit, IDL_FILEINT pos, int extend,
02849 int msg_action);
02850 extern int IDL_CDECL IDL_FileEOF(int unit);
02851 extern void IDL_CDECL IDL_FileStat(int unit, IDL_FILE_STAT *stat_blk);
02852 extern void IDL_CDECL IDL_FileSetClose(int unit, int allow);
02853 extern IDL_VPTR IDL_CDECL IDL_FileVaxFloat(int argc, IDL_VPTR *argv, char
02854 *argk);
02855 extern int IDL_CDECL IDL_SysRtnAdd(IDL_SYSFUN_DEF2 *defs, int is_function,
02856 int cnt);
02857 extern IDL_MEMINT IDL_CDECL IDL_SysRtnNumEnabled(int is_function, int
02858 enabled);
02859 extern void IDL_CDECL IDL_SysRtnGetEnabledNames(int is_function,
02860 IDL_STRING *str, int enabled);
02861 extern void IDL_CDECL IDL_SysRtnEnable(int is_function, IDL_STRING *names,
02862 IDL_MEMINT n, int option, IDL_SYSRTN_GENERIC disfcn);
02863 extern IDL_SYSRTN_GENERIC IDL_CDECL IDL_SysRtnGetRealPtr(int is_function,
02864 char *name);
02865 extern char *IDL_CDECL IDL_SysRtnGetCurrentName(void);
02866 extern int IDL_CDECL IDL_LMGRLicenseInfo(int iFlags);
02867 extern int IDL_CDECL IDL_LMGRSetLicenseInfo(int iFlags);
02868 extern int IDL_CDECL IDL_LMGRLicenseCheckoutUnique(char *szFeature, char
02869 *szVersion);
02870 extern int IDL_CDECL IDL_LMGRLicenseCheckout(char *szFeature, char
02871 *szVersion);
02872 extern int IDL_CDECL IDL_AddSystemRoutine(IDL_SYSFUN_DEF *defs, int
02873 is_function, int cnt);
02874 extern void IDL_CDECL IDL_StrDup(IDL_REGISTER IDL_STRING *str,
02875 IDL_REGISTER IDL_MEMINT n);
02876 extern void IDL_CDECL IDL_StrDelete(IDL_STRING *str, IDL_MEMINT n);
02877 extern void IDL_CDECL IDL_StrStore(IDL_STRING *s, const char *fs);
02878 extern void IDL_CDECL IDL_StrEnsureLength(IDL_STRING *s, int n);
02879 extern IDL_VPTR IDL_CDECL IDL_StrToSTRING(const char *s);
02880 extern void IDL_CDECL IDL_VarGetData(IDL_VPTR v, IDL_MEMINT *n, char **pd,
02881 int ensure_simple);
02882 extern IDL_STRING *IDL_CDECL IDL_VarGet1EltStringDesc(IDL_VPTR v, IDL_VPTR
02883 *tc_v, int like_print);
02884 extern char *IDL_CDECL IDL_VarGetString(IDL_VPTR v);
02885 extern IDL_VPTR IDL_CDECL IDL_ImportArray(int n_dim, IDL_MEMINT dim[], int
02886 type, UCHAR *data, IDL_ARRAY_FREE_CB free_cb, IDL_StructDefPtr s);
02887 extern IDL_VPTR IDL_CDECL IDL_ImportNamedArray(char *name, int n_dim,
02888 IDL_MEMINT dim[], int type, UCHAR *data, IDL_ARRAY_FREE_CB free_cb,
02889 IDL_StructDefPtr s);
02890 extern void IDL_CDECL IDL_Delvar(IDL_VPTR var);
02891 extern IDL_VPTR IDL_CDECL IDL_VarTypeConvert(IDL_VPTR v, IDL_REGISTER int
02892 type);
02893 extern void IDL_CDECL IDL_VarEnsureSimple(IDL_VPTR v);
02894 extern char *IDL_CDECL IDL_VarMakeTempFromTemplate(IDL_VPTR template_var,
02895 int type, IDL_StructDefPtr sdef, IDL_VPTR *result_addr, int zero);
02896 extern char *IDL_DitherMethodNames[];
02897 extern char *IDL_CDECL IDL_DitherMethodNamesFunc(int method);
02898 extern void IDL_CDECL IDL_RasterDrawThick(IDL_GR_PT *p0, IDL_GR_PT *p1,
02899 IDL_ATTR_STRUCT *a, IDL_DEVCORE_FCN_POLYFILL routine, int dot_width);
02900 extern void IDL_CDECL IDL_RasterPolyfill(int *x, int *y, int n,
02901 IDL_POLYFILL_ATTR *p, IDL_RASTER_DEF *r);
02902 extern void IDL_CDECL IDL_RasterDraw(IDL_GR_PT *p0, IDL_GR_PT *p1,
02903 IDL_ATTR_STRUCT *a, IDL_RASTER_DEF *r);
02904 extern void IDL_CDECL IDL_Raster8Image(UCHAR *data, IDL_ULONG nx,
02905 IDL_ULONG ny, IDL_ULONG x0, IDL_ULONG y0, IDL_ULONG xsize, IDL_ULONG
02906 ysize, IDL_TV_STRUCT *secondary, IDL_RASTER_DEF *rs, IDLBool_t
02907 bReverse);
02908 extern void IDL_CDECL IDL_RasterImage(UCHAR *data, IDL_ULONG nx, IDL_ULONG
02909 ny, IDL_ULONG x0, IDL_ULONG y0, IDL_ULONG xsize, IDL_ULONG ysize,
02910 IDL_TV_STRUCT *secondary, IDL_RASTER_DEF *rs, IDLBool_t bReverse);
02911 extern void IDL_CDECL IDL_Dither(UCHAR *data, int ncols, int nrows,
02912 IDL_RASTER_DEF *r, int x0, int y0, IDL_TV_STRUCT *secondary);
02913 extern void IDL_CDECL IDL_BitmapLandscape(IDL_RASTER_DEF *in,
02914 IDL_RASTER_DEF *out, int y0);
02915 extern IDL_VPTR IDL_CDECL IDL_transpose(int argc, IDL_VPTR *argv);
02916 extern int IDL_CDECL IDL_KWProcessByOffset(int argc, IDL_VPTR *argv, char
02917 *argk, IDL_KW_PAR *kw_list, IDL_VPTR *plain_args, int mask, void *base);
02918 extern int IDL_CDECL IDL_KWProcessByAddr(int argc, IDL_VPTR *argv, char
02919 *argk, IDL_KW_PAR *kw_list, IDL_VPTR *plain_args, int mask, int
02920 *free_required);
02921 extern void IDL_CDECL IDL_KWFree(void);
02922 extern void IDL_CDECL IDL_KWFreeAll(void);
02923 extern IDL_VPTR IDL_CDECL IDL_CvtBytscl(int argc, IDL_VPTR *argv, char
02924 *argk);
02925 extern void IDL_CDECL IDL_Freetmp(IDL_REGISTER IDL_VPTR p);
02926 extern void IDL_CDECL IDL_Deltmp(IDL_REGISTER IDL_VPTR p);
02927 extern IDL_VPTR IDL_CDECL IDL_Gettmp(void);
02928 extern IDL_VPTR IDL_CDECL IDL_GettmpByte(UCHAR value);
02929 extern IDL_VPTR IDL_CDECL IDL_GettmpInt(IDL_INT value);
02930 extern IDL_VPTR IDL_CDECL IDL_GettmpLong(IDL_LONG value);
02931 extern IDL_VPTR IDL_CDECL IDL_GettmpFloat(float value);
02932 extern IDL_VPTR IDL_CDECL IDL_GettmpDouble(double value);
02933 extern IDL_VPTR IDL_CDECL IDL_GettmpPtr(IDL_HVID value);
02934 extern IDL_VPTR IDL_CDECL IDL_GettmpObjRef(IDL_HVID value);
02935 extern IDL_VPTR IDL_CDECL IDL_GettmpUInt(IDL_UINT value);
02936 extern IDL_VPTR IDL_CDECL IDL_GettmpULong(IDL_ULONG value);
02937 extern IDL_VPTR IDL_CDECL IDL_GettmpLong64(IDL_LONG64 value);
02938 extern IDL_VPTR IDL_CDECL IDL_GettmpULong64(IDL_ULONG64 value);
02939 extern IDL_VPTR IDL_CDECL IDL_GettmpFILEINT(IDL_FILEINT value);
02940 extern IDL_VPTR IDL_CDECL IDL_GettmpMEMINT(IDL_MEMINT value);
02941 extern char *IDL_CDECL IDL_GetScratch(IDL_REGISTER IDL_VPTR *p,
02942 IDL_REGISTER IDL_MEMINT n_elts, IDL_REGISTER IDL_MEMINT elt_size);
02943 extern char *IDL_CDECL IDL_GetScratchOnThreshold(IDL_REGISTER char
02944 *auto_buf, IDL_REGISTER IDL_MEMINT auto_elts, IDL_REGISTER IDL_MEMINT
02945 n_elts, IDL_REGISTER IDL_MEMINT elt_size, IDL_VPTR *tempvar);
02946 extern void IDL_CDECL IDL_VarCopy(IDL_REGISTER IDL_VPTR src, IDL_REGISTER
02947 IDL_VPTR dst);
02948 extern void IDL_CDECL IDL_StoreScalar(IDL_VPTR dest, int type,
02949 IDL_ALLTYPES *value);
02950 extern void IDL_CDECL IDL_StoreScalarZero(IDL_VPTR dest, int type);
02951 extern void IDL_CDECL IDL_unform_io(int type, int argc, IDL_VPTR *argv,
02952 char *argk);
02953 extern void IDL_CDECL IDL_Print(int argc, IDL_VPTR *argv, char *argk);
02954 extern void IDL_CDECL IDL_PrintF(int argc, IDL_VPTR *argv, char *argk);
02955 extern IDL_VPTR IDL_CDECL IDL_BasicTypeConversion(int argc, IDL_VPTR
02956 argv[], IDL_REGISTER int type);
02957 extern IDL_VPTR IDL_CDECL IDL_CvtByte(int argc, IDL_VPTR argv[]);
02958 extern IDL_VPTR IDL_CDECL IDL_CvtFix(int argc, IDL_VPTR argv[]);
02959 extern IDL_VPTR IDL_CDECL IDL_CvtLng(int argc, IDL_VPTR argv[]);
02960 extern IDL_VPTR IDL_CDECL IDL_CvtFlt(int argc, IDL_VPTR argv[]);
02961 extern IDL_VPTR IDL_CDECL IDL_CvtDbl(int argc, IDL_VPTR argv[]);
02962 extern IDL_VPTR IDL_CDECL IDL_CvtUInt(int argc, IDL_VPTR argv[]);
02963 extern IDL_VPTR IDL_CDECL IDL_CvtULng(int argc, IDL_VPTR argv[]);
02964 extern IDL_VPTR IDL_CDECL IDL_CvtLng64(int argc, IDL_VPTR argv[]);
02965 extern IDL_VPTR IDL_CDECL IDL_CvtULng64(int argc, IDL_VPTR argv[]);
02966 extern IDL_VPTR IDL_CDECL IDL_CvtMEMINT(int argc, IDL_VPTR argv[]);
02967 extern IDL_VPTR IDL_CDECL IDL_CvtFILEINT(int argc, IDL_VPTR argv[]);
02968 extern IDL_VPTR IDL_CDECL IDL_CvtComplex(int argc, IDL_VPTR argv[], char
02969 *argk);
02970 extern IDL_VPTR IDL_CDECL IDL_CvtDComplex(int argc, IDL_VPTR argv[]);
02971 extern IDL_VPTR IDL_CDECL IDL_CvtString(int argc, IDL_VPTR argv[], char
02972 *argk);
02973 extern IDL_LONG IDL_CDECL IDL_grMesh_Clip(float fPlane[4], short clipSide,
02974 float *pfVin, IDL_LONG iNVerts, IDL_LONG *piCin, IDL_LONG iNConn,
02975 float **pfVout, IDL_LONG *iNVout, IDL_LONG **piCout, IDL_LONG *iNCout,
02976 IDL_VPTR vpAuxInKW, IDL_VPTR vpAuxOutKW, IDL_VPTR vpCut);
02977 extern IDL_LONG IDL_CDECL IDL_LongScalar(IDL_REGISTER IDL_VPTR v);
02978 extern IDL_ULONG IDL_CDECL IDL_ULongScalar(IDL_REGISTER IDL_VPTR v);
02979 extern IDL_LONG64 IDL_CDECL IDL_Long64Scalar(IDL_REGISTER IDL_VPTR v);
02980 extern IDL_ULONG64 IDL_CDECL IDL_ULong64Scalar(IDL_REGISTER IDL_VPTR v);
02981 extern double IDL_CDECL IDL_DoubleScalar(IDL_REGISTER IDL_VPTR v);
02982 extern IDL_MEMINT IDL_CDECL IDL_MEMINTScalar(IDL_REGISTER IDL_VPTR v);
02983 extern IDL_FILEINT IDL_CDECL IDL_FILEINTScalar(IDL_REGISTER IDL_VPTR v);
02984 extern float IDL_CDECL IDL_CastUL64_f(IDL_ULONG64 value);
02985 extern double IDL_CDECL IDL_CastUL64_d(IDL_ULONG64 value);
02986 extern IDL_ULONG IDL_CDECL IDL_CastFloat_UL(float value);
02987 extern IDL_ULONG IDL_CDECL IDL_CastDouble_UL(double value);
02988 extern int IDL_CDECL IDL_StrBase_strcasecmp(const char *str1, const char
02989 *str2);
02990 extern int IDL_CDECL IDL_StrBase_strncasecmp(const char *str1, const char
02991 *str2, size_t nchars);
02992 extern size_t IDL_CDECL IDL_StrBase_strlcpy(char *dst, const char *src,
02993 size_t siz);
02994 extern size_t IDL_CDECL IDL_StrBase_strlcat(char *dst, const char *src,
02995 size_t siz);
02996 extern size_t IDL_CDECL IDL_StrBase_strlcatW(wchar_t *dst, const wchar_t
02997 *src, size_t siz);
02998 extern int IDL_CDECL IDL_StrBase_vsnprintf(char *s, size_t n, const char
02999 *format, va_list args);
03000 extern int IDL_CDECL IDL_StrBase_snprintf(char *s, size_t n, const char
03001 *format, ...);
03002 extern int IDL_CDECL IDL_StrBase_strbcopy(char *dst, const char *src,
03003 size_t siz);
03004 extern int IDL_CDECL IDL_StrBase_strbcopyW(wchar_t *dst, const wchar_t
03005 *src, size_t siz);
03006 extern void IDL_CDECL IDL_RgbToHsv(UCHAR *r, UCHAR *g, UCHAR *b, float
03007 *h, float *s, float *v, int n);
03008 extern void IDL_CDECL IDL_RgbToHls(UCHAR *r, UCHAR *g, UCHAR *b, float
03009 *h, float *l, float *s, int n);
03010 extern void IDL_CDECL IDL_HsvToRgb(float *h, float *s, float *v, UCHAR
03011 *r, UCHAR *g, UCHAR *b, int n);
03012 extern void IDL_CDECL IDL_HlsToRgb(float *h, float *l, float *s, UCHAR *r,
03013 UCHAR *g, UCHAR *b, int n);
03014 extern int IDL_CDECL IDL_AddDevice( IDL_DEVICE_DEF *dev, int msg_action);
03015 extern char *IDL_CDECL IDL_MakeTempStruct(IDL_StructDefPtr sdef, int
03016 n_dim, IDL_MEMINT *dim, IDL_VPTR *var, int zero);
03017 extern char *IDL_CDECL IDL_MakeTempStructVector(IDL_StructDefPtr sdef,
03018 IDL_MEMINT dim, IDL_VPTR *var, int zero);
03019 extern IDL_StructDefPtr IDL_CDECL IDL_MakeStruct(char *name,
03020 IDL_STRUCT_TAG_DEF *tags);
03021 extern IDL_MEMINT IDL_CDECL IDL_StructTagInfoByName(IDL_StructDefPtr sdef,
03022 char *name, int msg_action, IDL_VPTR *var);
03023 extern IDL_MEMINT IDL_CDECL IDL_StructTagInfoByIndex(IDL_StructDefPtr
03024 sdef, int index, int msg_action, IDL_VPTR *var);
03025 extern char *IDL_CDECL IDL_StructTagNameByIndex(IDL_StructDefPtr sdef, int
03026 index, int msg_action, char **struct_name);
03027 extern int IDL_CDECL IDL_StructNumTags(IDL_StructDefPtr sdef);
03028 extern int IDL_STDCALL IDL_InitOCX(void *pInit);
03029 extern char *IDL_CDECL IDL_FilePathFromRoot(int flags, char *pathbuf, char
03030 *root, char *file, char *ext, int nsubdir, char **subdir);
03031 extern wchar_t *IDL_CDECL IDL_FilePathFromRootW(int flags, wchar_t
03032 *pathbuf, wchar_t *root, wchar_t *file, wchar_t *ext, int nsubdir,
03033 wchar_t **subdir);
03034 extern char *IDL_CDECL IDL_FilePathFromDist(int flags, char *pathbuf, char
03035 *file, char *ext, int nsubdir, char **subdir);
03036 extern wchar_t *IDL_CDECL IDL_FilePathFromDistW(int flags, wchar_t
03037 *pathbuf, wchar_t *file, wchar_t *ext, int nsubdir, wchar_t **subdir);
03038 extern char *IDL_CDECL IDL_FilePathFromDistBin(int flags, char *pathbuf,
03039 char *file, char *ext);
03040 extern wchar_t *IDL_CDECL IDL_FilePathFromDistBinW(int flags, wchar_t
03041 *pathbuf, wchar_t *file, wchar_t *ext);
03042 extern char *IDL_CDECL IDL_FilePathFromDistHelp(int flags, char *pathbuf,
03043 char *file, char *ext);
03044 extern wchar_t *IDL_CDECL IDL_FilePathFromDistHelpW(int flags, wchar_t
03045 *pathbuf, wchar_t *file, wchar_t *ext);
03046 extern void IDL_CDECL IDL_FilePathGetTmpDir(char *path);
03047 extern void IDL_CDECL IDL_FilePathGetTmpDirW(wchar_t *path);
03048 extern int IDL_CDECL IDL_FilePathExpand(char *path, int msg_action);
03049 extern int IDL_CDECL IDL_FilePathExpandW(wchar_t *wcharPath, int
03050 msg_action);
03051 extern void IDL_CDECL IDL_TerminalRaw(int to_from, int fnin);
03052 extern void IDL_CDECL IDL_Pout(IDL_POUT_CNTRL *control, int flags, char
03053 *fmt, ...);
03054 extern void IDL_CDECL IDL_PoutVa(IDL_POUT_CNTRL *control, int flags, char
03055 *fmt, va_list *args);
03056 extern void IDL_CDECL IDL_PoutRaw(int unit, char *buf, int n);
03057 extern void IDL_CDECL IDL_EzCall(int argc, IDL_VPTR argv[], IDL_EZ_ARG
03058 arg_struct[]);
03059 extern void IDL_CDECL IDL_EzCallCleanup(int argc, IDL_VPTR argv[],
03060 IDL_EZ_ARG arg_struct[]);
03061 extern void IDL_CDECL IDL_EzReplaceWithTranspose(IDL_VPTR *v, IDL_VPTR
03062 orig);
03063 extern char *IDL_CDECL IDL_MakeTempArray(int type, int n_dim, IDL_MEMINT
03064 dim[], int init, IDL_VPTR *var);
03065 extern char *IDL_CDECL IDL_MakeTempVector(int type, IDL_MEMINT dim, int
03066 init, IDL_VPTR *var);
03067 extern void IDL_CDECL IDL_TimerSet(IDL_LONG length, IDL_TIMER_CB callback,
03068 int from_callback, IDL_TIMER_CONTEXT_PTR context);
03069 extern void IDL_CDECL IDL_TimerCancel(IDL_TIMER_CONTEXT context);
03070 extern void IDL_CDECL IDL_TimerBlock(int stop);
03071 extern void IDL_CDECL IDL_ToutPush(IDL_TOUT_OUTF outf);
03072 extern IDL_TOUT_OUTF IDL_CDECL IDL_ToutPop(void);
03073 extern void IDL_CDECL IDL_CvtVAXToFloat(float *fp, IDL_MEMINT n);
03074 extern void IDL_CDECL IDL_CvtFloatToVAX(float *fp, IDL_MEMINT n);
03075 extern void IDL_CDECL IDL_CvtVAXToDouble(double *dp, IDL_MEMINT n);
03076 extern void IDL_CDECL IDL_CvtDoubleToVAX(double *dp, IDL_MEMINT n);
03077 extern void IDL_CDECL IDL_ExitRegister(IDL_EXIT_HANDLER_FUNC proc);
03078 extern void IDL_CDECL IDL_ExitUnregister(IDL_EXIT_HANDLER_FUNC proc);
03079 extern void IDL_CDECL IDL_WidgetIssueStubEvent(char *rec, IDL_LONG value);
03080 extern void IDL_CDECL IDL_WidgetSetStubIds(char *rec, unsigned long t_id,
03081 unsigned long b_id);
03082 extern void IDL_CDECL IDL_WidgetGetStubIds(char *rec, unsigned long *t_id,
03083 unsigned long *b_id);
03084 extern void IDL_CDECL IDL_WidgetStubLock(int set);
03085 extern void *IDL_CDECL IDL_WidgetStubGetParent(IDL_ULONG id, char
03086 *szDisplay);
03087 extern char *IDL_CDECL IDL_WidgetStubLookup(IDL_ULONG id);
03088 extern void IDL_CDECL IDL_WidgetStubSetSizeFunc(char *rec,
03089 IDL_WIDGET_STUB_SET_SIZE_FUNC func);
03090 extern void IDL_CDECL IDL_Wait(int argc, IDL_VPTR argv[]);
03091 extern void IDL_CDECL IDL_GetUserInfo(IDL_USER_INFO *user_info);
03092 extern int IDL_CDECL IDL_GetKbrd(int should_wait);
03093 extern void IDL_CDECL IDL_TTYReset(void);
03094 extern IDL_PLOT_COM IDL_PlotCom;
03095 extern UCHAR IDL_ColorMap[];
03096 extern IDL_PLOT_COM *IDL_CDECL IDL_PlotComAddr(void);
03097 extern UCHAR *IDL_CDECL IDL_ColorMapAddr(void);
03098 extern void IDL_CDECL IDL_PolyfillSoftware(int *x, int *y, int n,
03099 IDL_POLYFILL_ATTR *s);
03100 extern double IDL_CDECL IDL_GraphText(IDL_GR_PT *p, IDL_ATTR_STRUCT *ga,
03101 IDL_TEXT_STRUCT *a, char *text);
03102 extern char *IDL_CDECL IDL_VarName(IDL_VPTR v);
03103 extern IDL_VPTR IDL_CDECL IDL_GetVarAddr1(char *name, int ienter);
03104 extern IDL_VPTR IDL_CDECL IDL_GetVarAddr(char *name);
03105 extern IDL_VPTR IDL_CDECL IDL_FindNamedVariable(char *name, int ienter);
03106 extern IDL_HEAP_VPTR IDL_CDECL IDL_HeapVarHashFind(IDL_HVID hash_id);
03107 extern IDL_HEAP_VPTR IDL_CDECL IDL_HeapVarNew(int hvid_type, IDL_VPTR
03108 value, int flags, int msg_action);
03109 extern void IDL_CDECL IDL_HeapIncrRefCount(IDL_HVID *hvid, IDL_MEMINT n);
03110 extern char *IDL_CDECL IDL_Rline(char *s, IDL_MEMINT n, int unit, FILE
03111 *stream, int is_tty, char *prompt, int opt);
03112 extern void IDL_CDECL IDL_RlineSetStdinOptions(int opt);
03113 extern void IDL_CDECL IDL_Logit(char *s);
03114 extern IDL_SYS_VERSION IDL_SysvVersion;
03115 extern IDL_STRING *IDL_CDECL IDL_SysvVersionArch(void);
03116 extern IDL_STRING *IDL_CDECL IDL_SysvVersionOS(void);
03117 extern IDL_STRING *IDL_CDECL IDL_SysvVersionOSFamily(void);
03118 extern IDL_STRING *IDL_CDECL IDL_SysvVersionRelease(void);
03119 extern IDL_CPU_STRUCT IDL_SysvCpu;
03120 extern char *IDL_ProgramName;
03121 extern char *IDL_CDECL IDL_ProgramNameFunc(void);
03122 extern char *IDL_ProgramNameLC;
03123 extern char *IDL_CDECL IDL_ProgramNameLCFunc(void);
03124 extern IDL_STRING IDL_SysvDir;
03125 extern IDL_STRING *IDL_CDECL IDL_SysvDirFunc(void);
03126 extern IDL_LONG IDL_SysvErrCode;
03127 extern IDL_LONG IDL_CDECL IDL_SysvErrCodeValue(void);
03128 extern IDL_SYS_ERROR_STATE IDL_SysvErrorState;
03129 extern IDL_SYS_ERROR_STATE *IDL_CDECL IDL_SysvErrorStateAddr(void);
03130 extern IDL_STRING *IDL_CDECL IDL_SysvErrStringFunc(void);
03131 extern IDL_STRING *IDL_CDECL IDL_SysvSyserrStringFunc(void);
03132 extern IDL_LONG IDL_CDECL IDL_SysvErrorCodeValue(void);
03133 extern IDL_LONG *IDL_CDECL IDL_SysvSyserrorCodesAddr(void);
03134 extern IDL_LONG IDL_SysvOrder;
03135 extern IDL_LONG IDL_CDECL IDL_SysvOrderValue(void);
03136 extern float IDL_CDECL IDL_SysvValuesGetFloat(int type);
03137 extern double IDL_CDECL IDL_SysvValuesGetDouble(int type);
03138 extern int IDL_CDECL IDL_MessageNameToCode(IDL_MSG_BLOCK block, char
03139 *name);
03140 extern IDL_MSG_BLOCK IDL_CDECL IDL_MessageDefineBlock(char *block_name,
03141 int n, IDL_MSG_DEF *defs);
03142 extern void IDL_CDECL IDL_MessageErrno(int code, ...);
03143 extern void IDL_CDECL IDL_MessageErrnoFromBlock(IDL_MSG_BLOCK block, int
03144 code, ...);
03145 extern void IDL_CDECL IDL_Message(int code, int action, ...);
03146 extern void IDL_CDECL IDL_MessageFromBlock(IDL_MSG_BLOCK block, int code,
03147 int action,...);
03148 extern void IDL_CDECL IDL_MessageSyscode(int code, IDL_MSG_SYSCODE_T
03149 syscode_type, int syscode, int action, ...);
03150 extern void IDL_CDECL IDL_MessageSyscodeFromBlock(IDL_MSG_BLOCK block, int
03151 code, IDL_MSG_SYSCODE_T syscode_type, int syscode, int action, ...);
03152 extern void IDL_CDECL IDL_MessageVarError(int code, IDL_VPTR var, int
03153 action);
03154 extern void IDL_CDECL IDL_MessageVarErrorFromBlock(IDL_MSG_BLOCK block,
03155 int code, IDL_VPTR var, int action);
03156 extern void IDL_CDECL IDL_MessageResetSysvErrorState(void);
03157 extern void IDL_CDECL IDL_MessageSJE(void *value);
03158 extern void *IDL_CDECL IDL_MessageGJE(void);
03159 extern void IDL_CDECL IDL_MessageVE_UNDEFVAR(IDL_VPTR var, int action);
03160 extern void IDL_CDECL IDL_MessageVE_NOTARRAY(IDL_VPTR var, int action);
03161 extern void IDL_CDECL IDL_MessageVE_NOTSCALAR(IDL_VPTR var, int action);
03162 extern void IDL_CDECL IDL_MessageVE_NOEXPR(IDL_VPTR var, int action);
03163 extern void IDL_CDECL IDL_MessageVE_NOCONST(IDL_VPTR var, int action);
03164 extern void IDL_CDECL IDL_MessageVE_NOFILE(IDL_VPTR var, int action);
03165 extern void IDL_CDECL IDL_MessageVE_NOCOMPLEX(IDL_VPTR var, int action);
03166 extern void IDL_CDECL IDL_MessageVE_NOSTRING(IDL_VPTR var, int action);
03167 extern void IDL_CDECL IDL_MessageVE_NOSTRUCT(IDL_VPTR var, int action);
03168 extern void IDL_CDECL IDL_MessageVE_REQSTR(IDL_VPTR var, int action);
03169 extern void IDL_CDECL IDL_MessageVE_NOSCALAR(IDL_VPTR var, int action);
03170 extern void IDL_CDECL IDL_MessageVE_NOMEMINT64(IDL_VPTR var, int action);
03171 extern void IDL_CDECL IDL_MessageVE_STRUC_REQ(IDL_VPTR var, int action);
03172 extern void IDL_CDECL IDL_MessageVE_REQPTR(IDL_VPTR var, int action);
03173 extern void IDL_CDECL IDL_MessageVE_REQOBJREF(IDL_VPTR var, int action);
03174 extern void IDL_CDECL IDL_Message_BADARRDNUM(int action);
03175 extern void IDL_CDECL IDL_SignalSetInit(IDL_SignalSet_t *set, int signo);
03176 extern void IDL_CDECL IDL_SignalSetAdd(IDL_SignalSet_t *set, int signo);
03177 extern void IDL_CDECL IDL_SignalSetDel(IDL_SignalSet_t *set, int signo);
03178 extern int IDL_CDECL IDL_SignalSetIsMember(IDL_SignalSet_t *set, int
03179 signo);
03180 extern void IDL_CDECL IDL_SignalMaskGet(IDL_SignalSet_t *set);
03181 extern void IDL_CDECL IDL_SignalMaskSet(IDL_SignalSet_t *set,
03182 IDL_SignalSet_t *oset);
03183 extern void IDL_CDECL IDL_SignalMaskBlock(IDL_SignalSet_t *set,
03184 IDL_SignalSet_t *oset);
03185 extern void IDL_CDECL IDL_SignalBlock(int signo, IDL_SignalSet_t *oset);
03186 extern void IDL_CDECL IDL_SignalSuspend(IDL_SignalSet_t *set);
03187 extern int IDL_CDECL IDL_SignalRegister(int signo, IDL_SignalHandler_t
03188 func, int msg_action);
03189 extern int IDL_CDECL IDL_SignalUnregister(int signo, IDL_SignalHandler_t
03190 func, int msg_action);
03191 extern int IDL_CDECL IDL_SetValue(int id, void* pvValue);
03192 extern void IDL_CDECL IDL_WinPostInit(void);
03193 extern void IDL_CDECL IDL_WinCleanup(void);
03194 extern void *IDL_CDECL IDL_MemAlloc(IDL_MEMINT n, char *err_str, int
03195 msg_action);
03196 extern void *IDL_CDECL IDL_MemRealloc(void *ptr, IDL_MEMINT n, char
03197 *err_str, int action);
03198 extern void IDL_CDECL IDL_MemFree(IDL_REGISTER void *m, char *err_str, int
03199 msg_action);
03200 extern void *IDL_CDECL IDL_MemAllocPerm(IDL_MEMINT n, char *err_str, int
03201 action);
03202
03203
03204 #ifdef __cplusplus
03205 }
03206 #endif
03207
03208 #endif