Depending on the direction (I, O, or IO) of a particular type, both call-ins and call-outs may transfer a value in two directions as follows:
Call-out: GT.M -> C -> GT.M       Call-in:     C -> GT.M -> C
            |     |     |                      |     |     |
            '-----'-----'                      '-----'-----'
               1     2                            2     1
In the following table, the GT.M->C limit applies to 1 and the C->GT.M limit applies to 2. In other words, GT.M->C applies to I direction for call-outs and O direction for call-ins and C->GT.M applies to I direction for call-ins and O direction for call-outs.
| 
 GTM->C  | 
 C->GT.M  | 
|||
|---|---|---|---|---|
| 
 Type  | 
 Precision  | 
 Range  | 
 Precision  | 
 Range  | 
| 
 gtm_int_t, gtm_int_t *  | 
 Full  | 
 [-2^31+1, 2^31-1]  | 
 Full  | 
 [-2^31, 2^31-1]  | 
| 
 gtm_uint_t, gtm_uint_t *  | 
 Full  | 
 [0, 2^32-1]  | 
 Full  | 
 [0, 2^32-1]  | 
| 
 gtm_long_t, gtm_long_t * (64-bit)  | 
 18 digits  | 
 [-2^63+1, 2^63-1]  | 
 18 digits  | 
 [-2^63, 2^63-1]  | 
| 
 gtm_long_t, gtm_long_t * (32-bit)  | 
 Full  | 
 [-2^31+1, 2^31-1]  | 
 Full  | 
 [-2^31, 2^31-1]  | 
| 
 gtm_ulong_t, gtm_ulong_t * (64-bit)  | 
 18 digits  | 
 [0, 2^64-1]  | 
 18 digits  | 
 [0, 2^64-1]  | 
| 
 gtm_ulong_t, gtm_ulong_t * (32-bit)  | 
 Full  | 
 [0, 2^32-1]  | 
 Full  | 
 [0, 2^32-1]  | 
| 
 gtm_float_t, gtm_float_t *  | 
 6-9 digits  | 
 [1E-43, 3.4028235E38]  | 
 6 digits  | 
 [1E-43, 3.4028235E38]  | 
| 
 gtm_double_t, gtm_double_t *  | 
 15-17 digits  | 
 [1E-43, 1E47]  | 
 15 digits  | 
 [1E-43, 1E47]  | 
| 
 gtm_char_t *  | 
 N/A  | 
 ["", 1MiB]  | 
 N/A  | 
 ["", 1MiB]  | 
| 
 gtm_char_t **  | 
 N/A  | 
 ["", 1MiB]  | 
 N/A  | 
 ["", 1MiB]  | 
| 
 gtm_string_t *  | 
 N/A  | 
 ["", 1MiB]  | 
 N/A  | 
 ["", 1MiB]  | 
![]()  | 
Notes | 
|---|---|
  |